SMTによる性能向上は簡単ではない
SMT自体はわりと一般的な技法になりつつあるのだが、もちろん欠点もいくつかある。その最大のものは、性能が上がらない、ということだ。
先述のとおり、SMTは空いている実行ユニットを活用する技術だから、これが空いてないとオーバーヘッドが増えるだけである。実際、Pentium 4で採用されたNetburst Architectureの場合、Hyper-Threadingを使わない場合の実行ユニットの利用率は平均30%程度。Hyper-Threadingを有効にすることで、これが50%程度まで高まった、なんていう解析結果がインテル自身から語られるほどに、実行ユニットが空いていたから性能改善の余地が大きかった。
ところが、実行ユニットを効率よく使うNehalemの場合、特にWindows XPあたりで通常のデスクトップアプリケーションを使うと、露骨に性能が落ちるという状況に陥った。このあたりはWindows 7になって、同時に動くプログラムの数が増えたことで多少緩和された(Hyper-Threadingを有効にして性能が落ちるケースはほとんどなくなった)が、30%もの性能アップが見込めるケースはほとんどない。
また消費電力は、特に実行ユニット以外の部分が、2スレッド分の管理が必要になったこともあってむしろ増えており、性能/消費電力比の観点ではむしろ悪化しているケースも見られた。それにも関わらず、インテルがNehalem世代でHyper-Threadingを再び有効にしたのは、特にサーバー向けの分野で大量のデータを処理する際に、Hyper-Threadingによるレイテンシー遮蔽の効果が効きやすいからだ。逆に言えば、デスクトップやモバイルでは、あまり効果が見られないことになる。
もうひとつ致命的なのは、システム全体としての性能は上がっても、1スレッドあたりの性能は変わらないことだ。先ほど「30%向上」と書いたが、あくまでもシステム全体での話である。もっともこれに関しては「いや、ある程度体感できる」という人もいるかも知れないが、これは別の事情による。
特にWindows XP以降では、OSが常時さまざまな処理をしており、これによるオーバーヘッドが馬鹿にならない。そのため1スレッドのCPU(例えばCeleron)を使っていると、アプリケーションの実行中に頻繁にOS関係の処理が割り込むことになり、見かけ上アプリケーションの動作が遅くなっていた。
ところがHyper-Threadingを有効にすると、こうしたOS関係の処理が別スレッドで実行できるため、アプリケーション処理のスレッドがフルに動けるようになる、というものだ。ただ、これは別にSMTの利点ではなく、マルチコアCPUでも同じ効果が得られる話であり、SMTそのもので1スレッドの性能が上がるわけではない。
インテルはこの分野でも研究を重ねており、「Speculative Pseudo Multi-Threading」「Helper Thread」「Victim Thread」などと呼ばれる「仮想マルチスレッド」の仕組みを研究していた。これを簡単に言えば、あるプログラムを複数のスレッドで、同時に実行するというものである。
例えば、あるプログラムがデータA、B、Cを読み込んでから処理する場合、プログラムのメインスレッドに先立って、Helper ThreadがあるものはAを、あるものはBを、別のものはCをと、それぞれ取り込む。そのため、メインのスレッドが動くときには、A~Cのデータはすでに読み込まれてキャッシュ中にあるため、最小限のレイテンシーで実行できるという壮大なものだ。
ただし、言うは易く行なうは難し。性能が上がるケースもあれば下がるケースもあるといった具合に、必ずしもうまくいかなかった。インテルはこれを、「Prescott」(90nm世代Pentium 4)に続く「Tejas」世代で本格的に活用する予定だったようだが、Tejasが消えたのと連動してこちらも実用化の目処がなくなった(関連記事)。そんなわけで、今のところSMTによる1スレッドの性能改善方法は、見当たらないままである。
性能の改善率が平均30%程度、というのも問題であり、これもあってAMDは次世代の「Bulldozer」コアで、SMTではなく独自のデュアルコア構成を採用する。必ずしもSMTは万能ではないわけだ。
この連載の記事
-
第774回
PC
日本の半導体メーカーが開発協力に名乗りを上げた次世代Esperanto ET-SoC AIプロセッサーの昨今 -
第773回
PC
Sound Blasterが普及に大きく貢献したGame Port 消え去ったI/F史 -
第772回
PC
スーパーコンピューターの系譜 本格稼働で大きく性能を伸ばしたAuroraだが世界一には届かなかった -
第771回
PC
277もの特許を使用して標準化した高速シリアルバスIEEE 1394 消え去ったI/F史 -
第770回
PC
キーボードとマウスをつなぐDINおよびPS/2コネクター 消え去ったI/F史 -
第769回
PC
HDDのコントローラーとI/Fを一体化して爆発的に普及したIDE 消え去ったI/F史 -
第768回
PC
AIアクセラレーター「Gaudi 3」の性能は前世代の2~4倍 インテル CPUロードマップ -
第767回
PC
Lunar LakeはWindows 12の要件である40TOPSを超えるNPU性能 インテル CPUロードマップ -
第766回
デジタル
Instinct MI300のI/OダイはXCDとCCDのどちらにも搭載できる驚きの構造 AMD GPUロードマップ -
第765回
PC
GB200 Grace Blackwell SuperchipのTDPは1200W NVIDIA GPUロードマップ -
第764回
PC
B100は1ダイあたりの性能がH100を下回るがAI性能はH100の5倍 NVIDIA GPUロードマップ - この連載の一覧へ