まずはSMTを理解するための基本
プロセスとスレッドの関係
今回は「SMT」(Simultaneous MultiThreading、同期マルチスレッディング)の話をしてみたい。インテルではこれを「Hyper-Threading」と呼んでおり、以下では一般論の場合にはSMT、インテル製品に関する話題ではHyper-Threadingと、それぞれ称することにする。このSMTの技法はここ5回に渡って説明してきたパイプラインの改良そのものとは、ちょっと異なる方法論である。
例えば、図1のようなデュアルコアCPUを考えてみよう。2次キャッシュがコア別に異なるのは、インテルの「Pentium D」やAMDの「Athlon 64 X2」「Athlon X2」など、共有なのが「Core Duo」以降のインテルのCoreマイクロ・アーキテクチャー製品になる。だが、この話では2次/3次キャッシュはあまり問題ではないので、ここでは省いている。
このケースで「一番動いていないのはどこか?」と言うと、赤い枠で示した部分だ。ようするに実行ユニットに当たる部分で、データの依存関係の解消やらパイプラインストールやらと、何かと実行を妨げられる要素が多いから、ALUやLoad/Storeユニットがフルに動いている状況というのはそれほど多くない。というよりも、大半は寝ていると言っても過言ではない。
もちろん最適化したプログラムを動かせば、実行ユニットの利用率はぐんと高まる。だがそうは言っても、OS上で動いている以上は定期的にスケジューラーにより別のプログラムが動いたり、割り込みが入ってその処理が優先されたりするから、本当にフルに動く、というケースはむしろマレと言ってもいい。
では効率が低いALUやロードストアユニットを減らせば効率が上がるかというと、確かに効率は上がるのだが、今度はピーク性能が落ちてしまうため、全体としての処理性能はむしろ低下する傾向にある。
そこで出てきたアイディアが、「2つ以上のスレッドを同時に実行させる」というものである。スレッドというのは、処理の流れと考えればいい。
- プロセス(Process):ある特定のプログラムを動かすための環境一式
- スレッド(Thread):あるプロセス内で、プログラムを実行する部分
例えば以下の画面はCGレンダリングベンチマークテスト「CINEBENCH 11.5」の実行中のシーンだ。この場合、プロセスとは「CineBench 11.5全体」を指し、スレッドは「レンダリング中のオレンジ枠の正方形ひとつひとつ」になる。
つまりCineBench 11.5の場合、上のケースでは13個のスレッドが動作している(12個の正方形のレンダリングに12、CineBench全体の管理に1)。簡単なプログラムの場合には、ひとつのプロセスにひとつのスレッドしか含まれていないこともある。
本記事はアフィリエイトプログラムによる収益を得ている場合があります

この連載の記事
-
第879回
PC
なぜAIには「光」が必要なのか? NVIDIAが解説するスケールアップネットワークの低遅延・省電力化戦略 -
第878回
PC
もはや銅配線は限界? 3200Gイーサネット実現に立ちはだかる200GT/秒の壁 -
第877回
PC
「不良品ゼロ」と「水冷NG」の狭間で。ルネサスが明かした車載チップレットSoCのリアル -
第876回
PC
このままではメモリーが燃える! HBM4/5世代に向けた電力供給の限界と、Samsungが示すパッケージ協調設計の解 -
第875回
PC
1000A超のAIプロセッサーをどう動かすか? Googleが実践する垂直給電(VPD)の最前線 -
第874回
PC
AIの未来は「電力」で決まる? 巨大GPUを支える裏面給電とパッケージ革命 -
第873回
PC
「銅配線はまだ重要か? 答えはYesだ」 NVIDIA CEOジェンスンが語った2028年ロードマップとNVLink 8の衝撃 -
第872回
PC
NVIDIAのRubin UltraとKyber Rackの深層 プロトタイプから露見した設計刷新とNVLinkの物理的限界 -
第871回
PC
GTC 2026激震! 突如現れたGroq 3と消えたRubin CPX。NVIDIAの推論戦略を激変させたTSMCの逼迫とメモリー高騰 -
第870回
PC
スマホCPUの王者が挑む「脱・裏方」宣言。Arm初の自社販売チップAGI CPUは世界をどう変えるか? -
第869回
PC
半導体プロセスの新たな覇権! インテルのDNNプロセッサーはAMDやMetaを凌駕する配線密度と演算密度 - この連載の一覧へ











