タグ付けされた質問 「cpu」

CPUは中央演算処理装置の略です。単に中央プロセッサと呼ばれることもありますが、より一般的にはプロセッサと呼ばれます

7
CPUではなくGPUに作業をオフロードする必要があるのはいつですか?
OpenCLなどの新しいシステムは、グラフィックプロセッサでより多くのコードを実行できるように作成されています。これは、システムで可能な限り多くのパワーを利用できるようにする必要があるためです。 ただし、これらすべての新しいシステムでは、あらゆる点でGPUがCPUよりも優れているようです。GPUは並列計算を実行できるため、マルチコアGPUは実際にはマルチコアCPUよりもはるかに優れているように見えます。一度に多くの計算を行うことができ、本当に速度が向上します。シリアル処理がパラレルよりも優れ、高速、かつ/または効率的である特定のケースがまだありますか?
15 optimization  cpu  gpu 

2
スレッドのスリープはどのように機能しますか?
スレッドを眠っているとき、実際には何が起こっていますか? スレッドをスリープ状態にすると、「現在のスレッドを一定期間一時停止」することがわかります。しかし、それはどのように機能するのでしょうか? Thread.sleep()が内部でどのように動作し、Thread.sleepが実際にどのように動作するかによると?: スリープ期間は、システム固有の細分性の影響を受けます 睡眠が妨げられている スレッドはCPUを離れ、その実行を停止します スレッドはスリープ中にCPU時間を消費していません これが何を意味するのかについての内部および基本的なメカニズムを完全に理解することはできません。 スレッド間の切り替えを担当するスケジューラと呼ばれるものがあることを理解しています。 ソースはこれがOS(またはハードウェア)によって異なることを示しているようで、ほとんどのスレッドには、CPUが別のスレッドに切り替える前にいくつかのアクションを実行するために1ミリ秒から60ミリ秒程度与えられます。 しかし、スレッドがスリープ状態になると(たとえば、数秒)、どのように再開しますか?タイマーが何らかの形で関与していると思いますが、それはマザーボードのクロックですか?CPUクロックレートに関連していますか? タイマーが含まれている場合でも、CPUは、スレッドに再び注意を払う時期になったことをどのようにして知るのでしょうか。常にスレッドをチェックインして、準備ができているかどうかを確認する必要はありませんか?効果的ではないことを、ポーリングは、したがって、種類のされたCPU時間を消費しますか? スレッドは言語固有にスリープしていますか、それともOSがスレッドを担当していますか、それともCPU固有のものですか? 誰かがスケジューラのようなものの基本的な説明とこれのすべての間にCPUが何をしているのかでこれを私に説明してくれませんか?

4
コード行はCPUによってどのように実行されますか?
私は、高級言語がマシンコードに正確に変換され、CPUによって実行される方法を正確に理解しようとしています。 コードがマシンコードにコンパイルされることを理解しています。これは、CPUが使用できる低レベルのコードです。割り当てステートメントがある場合: x = x + 5; y = x - 3; CPUは一度に1行ずつ実行しますか?したがって、最初にx = x + 5を実行します。CPUが実行する次の命令はy = x-3です。私は本当に実行プロセスと、書いたコードがCPUによって実際に実行される方法を理解しようとしています。

3
コンパイラは通常、インストールされているプラ​​ットフォームの実行可能ファイルのみを生成するのはなぜですか?
私はC ++開発者であり、クロスプラットフォーム開発をよりよく理解するために、コンパイラーの実装の詳細と、コンパイラーがOS固有のバイナリーを正確に作成する方法をよりよく理解しようとしています。私の調査の最中に、少なくともしばらくの間、特定のプラットフォーム用にダウンロードしたほとんどのコンパイラーは、そのプラットフォーム用のバイナリーのみをコンパイルすることに気付きました。したがって、Windows用のコンパイラexeが付属しているIDEをダウンロードした場合、そのコンパイラはx86-x64 Windowsアプリケーション用のプログラムのみをコンパイルでき、LinuxまたはMacアプリケーションはコンパイルできません。 現在、プラットフォームごとに異なるバイナリ形式が必要であることを理解していますが、WindowsのビジュアルC ++コンパイラーがLinuxバイナリ実行可能ファイルを生成するのが難しいのはなぜですか?実行中のCPUのアセンブリ命令とOS固有のライブラリがある限り、任意のマシンの任意のプラットフォーム用の実行可能ファイルをコンパイルできませんか?

4
「コンパイルして、CPUが間違った処理を実行しないようにしたかった」という文の意味は何ですか。
この記事を読んでいました。次の段落があります。 そして、Scalaは高速であることが判明しましたか?さて、あなたの高速の定義は何ですか?ほぼJavaと同じくらい高速です。CやAssemblyほど高速である必要はありません。PythonはRubyよりも大幅に高速ではありません。同時実行性を活用して、より少ないマシンでより多くのことを実行したいと考えました。それをコンパイルして、間違った処理を行っているCPUを焼き付けないようにしたかったのです。 最後の文の意味を探しています。インタプリタ言語はCPUにどのようにして「間違った」処理をさせるのでしょうか?

3
この可能なL1キャッシュ書き込み最適化を実行するCPUはありますか?
L1キャッシュを備えたCPUが書き込みを行うと、通常、(データの更新に加えて)書き込み先のキャッシュラインがすでにL1キャッシュにあると想定して、キャッシュがそのキャッシュラインをダーティとしてマークします。 、後で更新されたデータを含む行を書き出します。 可能な最適化の1つは、キャッシュに書き込みの内容と以前のキャッシュの内容を比較させ、それらが同じである場合、その行をダーティとしてマークしないことです。これにより、キャッシュでライトバックを回避できる場合があるため、CPU製造元がこのロジックを実行するために必要なゲートに値するものとして、これをどのように認識しているかを確認できます。 私の質問:この最適化を実行するCPUはありますか? なぜ私が尋ねているのかについての背景:一定のメモリアクセスを必要とするいくつかのコードを書いています。つまり、キャッシュの動作を聞くことができる人は、私がしていることを推測できないはずです。私のアクセスの一部は書き込みであり、このコードを実装する明白な方法では、書き込みの多くは、すでに存在するものと同じデータを書き込みます。書き込みを行う必要があるのは、データによっては、書き込んでいるデータが同じである場合とそうでない場合があり、同じアクションを実行することが重要であるためです。CPUが「no-change-write」を実際に書き込まないことによって最適化する場合、それはキャッシュの動作が私がやっていることによって異なり、それが私の目標を覆すことになることを意味します。 それで、この方法で書き込みを最適化しようとするCPUはありますか?
9 caching  cpu 
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.