Intel Xeon "Nehalem-EX"などの新しい CPU の一部の文献で、 8 コアと 16 スレッドを搭載しているのを見てきました。彼らはここで何について話しているのですか?参照でこれについての言及を見たので、SPARCSも、確かにこれはコードによって生成された種類の論理スレッドではありませんか? このハイパースレッディングは名前が変更されていますか?
5 に答える
はい、Nehalem ベースのプロセッサはハイパースレッディングを実装しています。
あなたが参照している新しいNehalem-EXには8つの物理コアがあり、各コアは合計16の論理コアに対して2つの論理コアと見なすことができ、単一のプロセッサで16のアプリケーションスレッドを実行できます。
これは、ハイパースレッディング対応の Pentium 4 プロセッサで使用されているものと同じテクノロジであり、最近では Atom プロセッサでも使用されています。私の Eee PC には、2 つの論理コアを持つシングルコア Atom プロセッサが搭載されています。Windows タスク マネージャーには 2 つの CPU グラフが表示されます。論理コアごとに 1 つ。
Sun のUltraSPARC T2 (および T1) では、同時マルチスレッド化(Intel の実装は Hyper-Threading と呼ばれ、Intel の商標) も可能です。これにより、単一のコアが複数の論理コアとして表示され、単一のコアで複数のスレッドを実行できるようになります。
同時マルチスレッドの背後にある大まかなアイデアは、プロセッサの状態を格納する複数のレジスタを持つことです。そのため、ハードウェア レジスタのフルセットが複数あるため、実際には 1 つのコアに複数のコアがあるように見えます。
ALU や FPU などの物理的な機能は増えないかもしれませんが、物理コアでより多くのスレッドを実行するためのレジスタのセットを増やすと、利用可能なプロセッサ リソースの使用率が向上する可能性があります。単一のスレッドを実行するときはコアが飽和していない可能性がありますが、複数のスレッドを実行すると、すべてのユニットが最大限に飽和する可能性があります。
では、プログラマーにとってそれは何を意味するのでしょうか?
これは、マルチスレッド ソフトウェアを作成する必要があることを意味します。単一のスレッドしか持たないプログラムでは、単一の論理コアしか利用できません。これらのプロセッサが提供する膨大な数の論理コアを活用できるのは、適切に作成されたマルチスレッド コードがある場合のみです。
同時マルチスレッドでも、コードは論理コアごとに 1 つのスレッドで実行されます。
ハイパースレッディング (ちなみに INTEL の商標) では、各スレッドを実際に同時に実行できます。したがって、この場合、同時に 8X2 アプリケーション スレッドを実行できます。
パンフレットから・・・
Intel Nehalem アーキテクチャは、Intel 独自の 45nm high-k メタル ゲート テクノロジ プロセスに基づいて構築されています。
Up to **8 cores** per processor
Up to **16 threads per processor** with Intel® Hyper-threading
2.3 billion transistors
これを、各スレッドをスケジュールする必要があり、最大でも 1 つのスレッドのみがアクティブになる単一 CPU、単一コア システムと比較してください。その 1 つは実行中の CPU バウンド タスクで、他のスレッドは I/O 転送を待機しています。
元々、スレッド化は一連の並行アクティビティをモデル化する (実際には並行して実行されないモデルではない) か、I/O を実行している間でも応答するシステムの外観を生成するために使用されていました。たとえば、スレッドを使用しないと、ドキュメントの保存中にワード プロセッサが停止したように見えます。
長年にわたり、私はデスクトップ アプリケーションに複数のスレッドを含めるという考えに抵抗していました。コードが複雑になり、パフォーマンスが低下する可能性がありました。OS カーネルが関与する必要があるすべてのミューテックス操作について考えてみてください。スレッドの実際の並列実行の出現により、私の反対意見は減りましたが、1 つのプロセスで複数のスレッドを使用するよりも、複数のプロセスを使用する方が優れたアプローチであると私は信じています。
クリス
名前が変更されたハイパースレッディングではありません-ハイパースレッディングです(リンクを提供したこのWebページに書かれています)。
簡単に言うと、プロセッサは OS に 16 個のコアがあることを伝えるので、2 倍のコア数でタスクのバランスをとることができます。ハイパースレッディング テクノロジには、2 つの異なるプログラム/スレッドからの 2 つの異なる命令を 1 つのコアで同時に実行できる場合があるため、いくつかの利点があります。しかし、確かに 200% の速度アップは得られません。私はそのようなプロセッサで作業しませんでしたが、約 10% から 20% の追加の CPU 時間を得ることができると思います。