Intel CPUではハイパースレッディングという機能が長らく使われてきましたが、先日の公式発表で、次世代CPUではこの機能が外されることが予告されました。今回はその影響について考えていきたいと思います。
目次
ハイパースレッディング(同時マルチスレッディング)とは
同時マルチスレッディング(Simultaneous multithreading; SMT)とは、CPUコアにデータ取得待ちなどで生じる隙間時間に、別のスレッドを処理することで並列計算能力を高める技術です。1990年代に実用化が進み、Intelは2002年のPentium 4において独自の商標である「ハイパースレッディングテクノロジー」(Hyper-Threading Technology; HT)という名前とともに導入しました。
2つのスレッドを区別するための少しの回路増強で疑似的にコアを増やせる一方、あくまで隙間時間を埋めるだけですので性能倍増とはいきません。現代の典型的なパソコン用途の場合、回路を1割増やし、コアを休まず働かせて電力を2割多く消費すると、並列演算性能が3割程度向上するという関係になっています。
この機能は基本的にはあって損はないと考えられていましたが、インテルの次世代CPU(Lunar lakeは確定、Arrow lakeもおそらく)ではこの機能が外されることが予告されました。発表では、HT無効コアと削除コアの比較が行われており、単に機能が無効化されているのではなく、回路そのものが削除されていると考えられます。ただ同時にHT有効の最新コアとの比較も行われており、基礎設計段階ではHTが含まれ、例えばワークステーション向けのXeonでは有効になり、パソコン向けのCore Ultraでは回路ごと削除されている、といった関係になるのではないかと思われます。
その影響は気になるところですが、本稿では公式の発表スライドをベースに、様々な人の論評なども加えて整理していきます。
基本的な影響――シングル効率は上がり、マルチ性能は下がる
シングルスレッド
公式発表のスライドでは、HT削除の目的はシングルスレッドの効率向上にあると説明されています。スライドでは、HT回路を削除するとその分の電力が浮き、シングルスレッドではHT無効コアよりも電力効率が15%高いとされています。この数字は他スライドから同周波数・同電圧条件と推定され、おおむね同クロック電力-15%、同電力クロック+7%(処理時間-7%)と解釈できます。
実効的には、この数字の分の累積省電力低減が期待できる一方、パソコンにはディスプレイやメモリなどほかに電力を消費する部品がありますから、実効的には電池持ちが4~8%(典型的なノートPCで30分)ほど改善する、という理解が可能でしょう。
また同電力クロックは向上しますが、シリコンの特性としての最大クロックは変化がないと思われます。シングルスレッドでもTDP制限にかかってしまうタブレット向けの超低消費電力版でもない限り、スペック上の最大クロックが伸びるわけではないでしょう。
マルチスレッド
HTを削除し、クロックがそのままであるならば、コア単位では単に最大マルチ性能が25~30%下がることになります。今のIntel CPUはマルチスレッド性能の半分をEコアが稼いでいるため、それを含めると15%弱下がる計算になりますが、HT削除で浮いた消費電力の分クロックを上げられるため、トータルでは同じTDPのとき最大マルチ性能が10~15%低下することになるでしょう。
Pコア8個からHTを削除すると、Pコア1個弱の面積が浮き、Pコア2つ分のマルチスレッド性能が失われますが、浮いたPコア1個の面積にはEコア4個組を入れることができ、Eコア4個組はPコア2個相当のマルチスレッド性能を加算できますから、結果的につり合いが取れます。HTを削除してもEコアを使ってデメリットを帳消しにしてメリットだけ享受できると考えれば、HT削除という決断も理解できます。Lunar lake世代のEコアは前世代に比べ1コアあたり性能が1.5倍と爆発的に伸びており、HTを削除してEコアを足す動機が増している側面もあるでしょう。
とはいえ、実際にはEコアは足されず前世代と同じ数のままですので、最大マルチスレッド性能はコア当たり性能の伸びやコア数から期待されるほどには伸びず、期待の1割減という感じにならざるを得ません。
実用上の影響
HT削除される次世代CPUは、μアーキテクチャや製造プロセスの変更が重なって性能の伸びが期待され、現在噂として出回っている標準クロック設定(35W、65W時)だけ見ても1.3倍程度の数字になっていますので、HT削除に伴うデメリットを相殺して十分余りある程度にはマルチ性能は伸びるでしょうから、そこはあまり心配ないでしょう。
とはえいえ、HTを削除すれば当然ベンチマークの数字は低下し見栄えは悪くなります。メリットであるバッテリー持ちの改善は定量的に示すレビュワーが少なくあまりアピールしないのも事実です。その意味では、マーケティング上は思い切った決断であるようにも思いました。
最大マルチスレッド性能が低下するというデメリットは気になるところですが、使い方によって体感性能は変わります。以前のコア数の選び方を考える記事でも説明しましたが、「ネットとオフィス」的な使い方では多くても6コア(12スレッド)程度しか使ないため、6P8EのCPUが20スレッドから14スレッドに減っても、最大マルチスレッド性能の低下というデメリットが表出しないまま、シングルスレッド効率の向上というメリットのみを享受できるでしょう。使い方の違いによる影響の違いは、後の節で「ネットとオフィス」「ゲーム」「動画編集」の3つのケースで考えます。
基本的な影響2――同居スレッド間の資源競合
Hyper-threadingでは、基本的に1つのコアを共有する2つのスレッドは対等な扱いを受けます。このため、2つのスレッドが同時に重い処理を始めると、双方が計算資源を奪い合い、シングルスレッド性能の65%程度を分け合うというような状況は珍しくありません。
このような事態は、ゲームのFPSの律速要因になっているような、時間に厳しいタスクの場合には不都合です。HTなしなら最高速で走るところ、律速スレッドが2つが1つのコアに相乗りさせられて資源を奪い合ってしまうと、実用上35%の速度低下となってしまいます。そうならないようにある程度スレッド配置は調整されますが、スレッドの重さを事前に知ることは難しく完全には避けられないのも事実で、現実的にも〈HTを無効化したほうがFPSが伸びるゲーム〉は一定割合存在します。
時間に厳しいタスクを最適に配置するには、①可能な限り空いたPコアに割り振り、②Pコアが埋まっていれば次善策のEコアに振り、③干渉の恐れのあるPコアの論理コア2は最後の手段とする、というのが理想的手法になるでしょう。実際Intel第12~14世代のThread Directorはそのようにふるまっていたと説明されており、私自身のテストでもi5-12500Hはそのような挙動になっていました(比してRyzen 7 5825UはSMTを積極的に使ってアクティブなコアを減らし省電力を狙う傾向が見られました)。
「HTを無効化したほうがFPSが伸びるゲーム」は、「Intel第11世代以前と一部のRyzen」という区切りが多く、実はすでにHTは可能な限り避け最後の手段に過ぎないという運用がされていた、と考えれば、どうせほとんど使わない機能を完全に廃止し、確実にゲーム(や少数スレッドが走るネットとオフィス)の性能を確保するという判断も理解できるところです。
ユースケースごとの影響――ネットとオフィス、ゲーム、動画編集
ネットとオフィス
「ネットとオフィス」と総称されるような、多くのユーザーにとって使用時間の大半を占めるシングルスレッド依存の状況では、低TDP機種では最大クロックが伸び、電池持ちが多少改善するメリットが享受できる一方、12スレッド以上がフル稼働することは稀で、デメリットであるマルチスレッド性能の低下を感じることは少ないでしょう。
Core Ultra 5以上、4P+8Eや6P+4Eより多くのコアがあれば、大半のユーザーにとってメリットはあってもデメリットはないに等しい状況になるでしょう。Lunar lake(Core Ultra Vシリーズ)は4P+4Eの合計8コアしかありませんが、こちらは用途からして省電力性重視なのでメリットのほうが重要でしょう。
ゲーム
近年のゲームは「高速で走らせたい時間に厳しいなスレッドが複数あるが、8個よりは少ない」というタイプのものが多くあります。こういったゲームは8コア(7800X3D)で十分な速度を得ることができ、理屈上はHTなしで各コアにスレッドを配置すると高速になると予想でき、実際的にもHTを無効化するとゲームのフレームレートが上がる例が以前からしばしば報告されていました。
有名な例として、MMORPGの「黒い砂漠」は初期バージョンでは(Intel・AMDともに)HT無効にすることで2倍のフレームレートになると言われていました。アップデートが進んだ2021年でもHT無効化によって15~20%程度FPSが向上したそうです(個人ブログ)。最近でも「アーマードコア6」でHT有効時にカクつくといった報告や、Counter-Strike 2がHT無効化でFPSが2倍になるといった掲示板へのポストがあります。さらに言えば、最新のRyzen 7 9700XでもSMT無効化で複数のゲームタイトルの平均FPSが3%前後向上したとするレビューもあります。
HTの有効無効でフレームレートが2倍も変わるようなケースは、資源競合の疑いが濃いものです。第12世代の初期にゲームがEコアに配置されてカクつくといった問題が散見されましたが(ほとんどがThread Director周りの改善で解決済み)、HT/SMTでも実は同じことが起きていた、と考えることもできます。
また6~8コアで十分なゲームが「複数コアを全力で走らるのでTDP制限に引っかかりクロックが落ちるが、コア数以下のスレッド数しか使わないのでHTはいらない」という状態である場合、HT/SMTを切って電力効率が改善した分をクロック向上に振ることで性能が向上する可能性があります。実際、Xbox Series XはZen2の専用APUを使っていますが、SMTありで最大3.66 GHzか、SMTを切って最大3.8 GHz(+4%)にするかを選べる仕様になっています。
Intel次世代でHTが削除されると、最初からHT無効化と同じ誤配置防止効果が得られるうえ、使わないHT回路の消費電力が追加で減り、TDPいっぱいまで使っているなら最大+7%程度までクロックを伸ばすことが可能になります。端的に言えば、ほとんどのゲームではHT削除はメリットになりこそすれデメリットにはならない、ということになるでしょう。
ただしこれらのメリットは、①ゲームがすでにHT/SMTに最適化していない②律速スレッドはコア数以下の数しかないというような条件依存で、ソフトとCPUの相性にも依存するので、一概にすべてのゲームが高速化するとは言い難いでしょう。数は少ないながらCPUのマルチ性能に依存するようなゲームでは速度はHT有効時より低下しますので、デメリットがゼロというわけでもありません。
動画編集
動画編集などマルチ性能依存のアプリに関しては、HTがなくなるデメリットを直接的に被ることになります。ただ、すでに書いたようにオーバークロッカー向けでない標準的なTDP設定(35W、65W、125Wあたり)でのマルチ性能は、CPU製造工程などの世代更新でかなり伸びると考えられるので、「新しい世代は買ってはダメ」ということはなく、十分に満足して使うことができるでしょう。もちろん、Lunar lakeはコア数が少なくTDPも低めに設定されていて、最初から動画編集向けとして売っていないCPUにはなります。
ただ本格的な動画編集などの場合、Zen5がAVX-512については大幅に性能を伸ばしていますから、動画編集が主目的ならZen5の上位機種や、業務用レベルならAVX-512が有効になっているXeon W、Threadripperなどが選択肢に入るでしょう。
セキュリティへの影響
近年、CPUの実装に脆弱性があることが問題になっています。こういったCPUの脆弱性の多くは、サイドチャネル攻撃という、情報を直接盗めずとも「CPUに問い合わせをして帰ってきた時間」などの間接情報を統計的に処理して機密情報を特定する手法で(質の高い喩えではないですが、空き巣狙いが無言電話をかけて出る時間帯を調べてターゲットが不在の時間を確定させる、というのが似ているかもしれません)、有名なMeltdownとSpectreもこの一種です。
その中にはHTに関するものもあり、例えばPortSmash (CVE-2018-5407)は、同一コアに同居する別のHTスレッドに待たされる時間を測定・統計処理することで、そのスレッドに含まれる秘密鍵を推測できる、というものになっています。
これらのサイドチャネル攻撃はCPUの統計的な”癖”を研究し、それを利用して情報を盗み取るものですが、”癖”を全く持たないCPUはないので(Intel CPU固有の癖を使ったMeltdownやSpectreが有名ですが、AMDのシェアが増えて以降はそちらの研究も進み、2022年ころからBranch Type Confusion、Zenbleed、InceptionなどZen系アーキテクチャしか影響を受けない脆弱性も出ています)、将来のCPUも研究されれば癖は必ず見つかるでしょう。
HTが削除されていれば、HT関連の問い合わせを利用したサイドチャネル攻撃は最初からシャットダウンできることになります。すぐに影響が出るものでもありませんが、HTの性能的利点が薄れてきたなら、セキュリティも加味していっそやめてしまうというのは理解できるところです。
ハイパースレッディングの”後継技術”?
以前からリーク情報を扱う界隈で”Rentable Unit”なる特許がHTの後継になる、といった話があります。私が当該特許を読み解いた限り、各コアのタスクを最適に詰め合わせることで疑似的にシングルスレッド性能を上げるというもののようです。ただ実現するかは不明ですし、せっかく回路を削除したメリットも捨てかねないので、「余ったスレッドタグ付け回路の活用案の一つ」程度に思っておくのが無難でしょう。
まとめ
最後にまとめです。HT削除は、「ネットとオフィス」やゲームなど、パソコン購入者のユースケースの大半で、体感速度を下げることなく(あるいはむしろ若干改善したうえで)実用上の電池持ちとセキュリティが改善する点にあるでしょう。一方で、動画編集などマルチスレッド性能依存のタスクでは性能が(潜在的なものに比べ)下がるほか、同一TDP設定であれば電力効率も下がることになるため、そちらのユーザーの方は向いていない対応と言えるでしょう。
マルチスレッド性能の低下はレビューやベンチマークにおいて見栄えが悪く、マーケティング上のメリットを捨てて実用性を追及した方針と見ることもできます。それでもあえてこの戦略を取ったのは、PC市場の規模が頭打ちとなる中で、UMPCやタブレット、果てはスマートフォンなど、Intelが進出に失敗しているモバイル市場を攻めるためではないかと推測します。
また、本当にマルチスレッド性能の高い製品が求められた場合、HT削除で浮いた面積に面積効率の高いEコアを詰め込むことで、面積あたりのマルチスレッド性能を損なうことなく埋め合わせることができるため、マルチスレッド性能が高いほうが売れるということになればIntelはHTを削除したままEコアを追加するのではないかと思います。
余談ですが、HT削除で得られる効果を見ると、むしろRaptor Lake-Uのような〈Intel 7製でTDP15WのCPU〉でこそ輝く技術のように思えます。Lion Cove / SkymontのIntel 7へのバックポート版、ないしRaptor CoveのHT削除版は、興味本位で見てみたい気はします。