0

コードを設計するときにマルチスレッド パラダイムを使用しない場合、ハイパースレッディングは自動的に負荷を論理コアに分割しますか、それとも物理コアの場合と同様に、他のコアを利用するように特別に作成する必要がありますか?

4

1 に答える 1

2

@ us2012 の提案で、コメントからここに投稿します...

そんな魔法はありません。スーパースカラー CPU、特にOOO (Out Of Order execution) プロセッサは魔法のように機能しますが、それは1 つのコア内にあります。

逆に、ハイパースレッディングは、1 つの完全なコアの前にある (非常に単純化された) 2 つのパイプラインと考えることができます。

AMD Bulldozer CPUにも同様のビットがありますが、さらに一歩進んでいます。整数コアも 2 つに分割されていますが、2 つのパイプライン + 整数コアは 1 つの浮動小数点ユニットを共有しています。この全体を「モジュール」と呼び、2 つのスレッドを持ちます。

TL;DR

スーパースカラー (ウィキより)

スーパースカラー CPU アーキテクチャは、単一のプロセッサ内で命令レベルの並列処理と呼ばれる形式の並列処理を実装します。したがって、特定のクロック レートで他の方法よりも高速な CPU スループットが可能になります。スーパースカラー プロセッサは、複数の命令をプロセッサ上の冗長機能ユニットに同時にディスパッチすることにより、クロック サイクル中に複数の命令を実行します。各機能ユニットは個別の CPU コアではなく、算術論理演算ユニット、ビット シフタ、乗算器などの単一の CPU 内の実行リソースです。

順不同の実行 (Wiki より)

コンピューター エンジニアリングでは、アウトオブオーダー実行 (OoOE または OOE) は、ほとんどの高性能マイクロプロセッサで使用されるパラダイムであり、そうでなければ特定のタイプのコストのかかる遅延によって無駄になる命令サイクルを利用します。このパラダイムでは、プロセッサは、プログラム内の元の順序ではなく、入力データの可用性によって制御される順序で命令を実行します。そうすることで、プロセッサは、プログラム内の次の命令のためにデータが取得されている間、アイドル状態になることを回避でき、代わりに、すぐに実行できる次の命令を処理できます。

ハイパースレッディング (どこから...どこか知っていますか...)

ハイパースレッディング (正式にはハイパースレッディング テクノロジまたは HT テクノロジ、略して HTT または HT) は、PC マイクロプロセッサで実行される計算 (一度に複数のタスクを実行する) の並列化を改善するために使用される Intel 独自の同時マルチスレッディング (SMT) 実装です。2002 年 2 月に Xeon サーバー プロセッサで、2002 年 11 月に Pentium 4 デスクトップ CPU で初めて登場しました。1その後、Intel はこのテクノロジを Itanium、Atom、Core 'i' シリーズ CPU などに搭載しました。

ブルドーザー (ウィキからではありません)

Bulldozer は、2003 年に AMD が K8 プロセッサを発売して以来、AMD のプロセッサ アーキテクチャの最初の大幅な再設計であり、1 つの 256 ビット FPU に組み合わせることができる 2 つの 128 ビット FMA 対応 FPU も備えています。この設計には、それぞれ 4 つのパイプラインを備えた 2 つの整数クラスターが伴います (フェッチ/デコード ステージは共有されます)。Bulldozer は、新しいアーキテクチャに共有 L2 キャッシュも導入します。AMD のマーケティング サービスでは、この設計を「モジュール」と呼んでいます。16 スレッドのプロセッサ設計では、これらの「モジュール」を 8 つ備えますが [7]、オペレーティング システムは各「モジュール」を 2 つの論理コアとして認識します。

于 2013-09-09T13:01:30.213 に答える