シングルスレッドQaudコアとハイパースレッディングデュアルコア[重複]


10

2つのCPUがあるとします。1つは4コアのクアッドコア3.2 Ghzで、各コアに2スレッドの2コアのデュアルコア3.2 Ghz(ハイパースレッディング)があります。プログラマーとしての私の仮定は、4つのコアをエミュレートするために2番目のCPUがスレッド間を切り替える必要があり、最初のCPUがそれぞれのような切り替えを実行する必要がないため、4コア4スレッドは2コア4スレッドよりも高速に実行する必要があります。コアは独立して個別に実行できます。

私の仮定が正しいことを確認したいと思います。そうでない場合は、なぜ一方が他方よりも優れているのか説明してください。


3
短いGoogle検索(Wikipedia)で答えが得られたため、反対票を投じてください。
Werner Henze 2013年

4
@WernerHenzeあなたが言っていることが真実である間、私たちは人々に彼らがそのようなものをグーグルするときスーパーユーザーの結果を見ることを望みます:)
Shekhar

回答:


10

ハイパースレッディングはいくつかの要素(特にメインの実行リソース)を共有するため、これらのリソースが解放されるのを待たずに、一度に4つの完全なスレッドを実行できると思います。

HTのポイントは、ダイ面積を小さくしてパフォーマンスを向上させることです。クアッドコアは通常、非HTデュアルコアチップよりも2倍近く大きいチップになりますが、HTデュアルコアチップは約5%大きい。クアッドコアは、適切な作業負荷の下で最大2倍の速度を実現できます(ただし、ほとんどの場合、4つのスレッドを全容量で実行することはおそらくないため)、デュアルコアHTプロセッサは15〜30%向上します。デュアルコア非HTプロセッサよりも(ウィキペディアによれば)パフォーマンス。

通常、実際のコアの数が多いほど優れています。


1
HTプロセッサは15〜30%を表示します。HTは真のセカンドコア(または2、4など)の代替品ではありません
オースティンTフランス語

1
より多くのCPU、より多くのコア、ハイパースレッディングを使用するとさらに良いでしょう...:D
Keltari

HTでパフォーマンスが向上する最大の理由は、CPUが完全にロードされることはまれであることです。つまり、単一のスレッドがCPUサイクルごとにデータを処理することはほとんどありません。HTを使用すると、CPUはその他の未使用のサイクル中に2番目のスレッドをスケジュールできます。Facebookと電子メールを切り替える場合、これは非常に効果的ですが、スレッドごとにCPUを集中的に使用するほど、パフォーマンスは低下します。
トーマス

1

ウィキペディアから:

ハイパースレッディングは、プロセッサの特定のセクション(アーキテクチャの状態を格納するセクション)を複製することで機能しますが、メインの実行リソースは複製しません。これにより、ハイパースレッディングプロセッサを通常の「物理」プロセッサとして、またホストオペレーティングシステムに対して追加の「論理」プロセッサとして表示でき(HTT非対応オペレーティングシステムは2つの「物理」プロセッサを参照)、オペレーティングシステムは2つのスレッドをスケジュールできます。または同時に適切に処理します。ハイパースレッディングのないプロセッサで現在のタスクが実行リソースを使用しない場合、特にプロセッサがストールしている場合、ハイパースレッディングを備えたプロセッサは、それらの実行リソースを使用して別のスケジュールされたタスクを実行できます。(プロセッサは、キャッシュミス、分岐予測ミス、

クアッドコアシステムを使用している場合、4つのスレッドをそれぞれフルコアで実行できます。デュアルコアハイパースレッディングシステムを使用している場合、フルコアで2つのスレッドをそれぞれ実行できますが、4つのスレッドでは、スレッド1と2が1つのコアを共有し、スレッド3と4がもう1つのコアを共有します。ハイパースレッディングは、2つのスレッドが同じプロセッサリソースを使用しない場合に、並列で(のみ)実行できるようにします。したがって、理想的なケースでは高度な並列化が得られる可能性がありますが、Wikipediaによると、パフォーマンスの向上は100%ではなく、15〜30%です。


1

ハイパースレッディングでは、タスクAのコアのアイドル時間(このコアはディスクにデータを要求し、ディスクがプラッターの領域を探し、データを読み取ってコアに送り返すのを待つことができます。 )は、別のタスクBを実行するために利用されます。したがって、タスクBがいわゆるスレッド2によって処理されている場合、タスクAによるデータフェッチ要求が完了しても、タスクAはコアがスレッド2を完了するまで待機する必要があります。両方のスレッドを1つのコアで同時に実行することはできません。繰り返しになりますが、HTは、コア/プロセッサーとコンピューター内のさまざまなサブシステム間の速度の不一致を利用します。HTはコアをフルキャパシティまで使用します...フルキャパシティの利用のようなものです。したがって、ブラウザで4つのタブを開くと、各タブは4コアシステムのコアを持ち、2つのタブは2コアシステムのコアを共有する必要があります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.