一つのCPUで複数のスレッドを実行する技術「SMT」が合理的でなくなってきているとの指摘
現代のCPUは、クロック周波数の向上や入力に基づいて論理的に処理を事前に行う「投機的実行」技術など、パフォーマンスを上げるための高度な技術が数多く用いられています。そうしたCPUのパフォーマンス向上に貢献している技術の一つに、単一のCPUコアで複数のスレッドを同時に実行することができる機能「SMT(同時マルチスレッディング)」がありますが、そのSMTが合理的ではなくなってきている可能性があります。
Does SMT still make sense?
https://www.codeblueprint.co.uk/2019/11/05/does-smt-make-sense.html
現代のほとんどのCPUにはSMTが使われており、並列してタスクを処理することができます。Intelが実装しているSMTは「hyperthreading」と呼ばれ、パフォーマンスの改善を目指して2002年よりPentium 4やクロック周波数の向上が要求されなかったサーバー用のXeonといったCPUに搭載されました。現在のIntel製CPUのほぼ全てに「ハイパースレッディング・テクノロジー」と呼ばれるSMTの一つが搭載されています。
AMDはSMTをさらに複雑に駆使しているとのこと。下の画像はAMDのCPUアーキテクチャ「Zen」のSMT動作を表したダイアグラムで、どの領域が独立していて、どの領域が共有されているのか、一目見ただけで判別するのは困難です。
SMTのメリットとして、SMTはx86アーキテクチャのCPUでは一般的な技術であり、簡単にCPUのパフォーマンスをあげることができる点であるとのこと。多くのPCではBIOSからSMT機能をオンにすることが可能です。
SMTを用いるもう一つのメリットとして、物理的にコアを2倍にするなどCPU資源を増やすよりも、ダイサイズや消費電力の観点から効率がいいという点があげられています。Intelによると、SMTのマルチスレッド技術により、ダイサイズを5%アップすると理論上は30%のパフォーマンス向上が得られるそうです。
しかし、Intelのハイエンド向けCPUであるIntel Core i9-9980XEは18の物理コアを搭載し、AMDが2020年に販売予定のRyzen第3世代CPU「AMD Ryzen Threadripper 3990X」では64コアになるなど、CPUのコア数は近年増加してきており、SMTを用いなくても高いパフォーマンスを得ることが可能だといいます。
by Christian Wiediger
また、OS側でSMTがオンになっているのかどうか判別が難しい点も、SMTの有用性を下げることにつながっていると述べられています。物理コアを仮想マシンに割り当てる際、パフォーマンスを2倍にするには割り当てるコア数を2倍にすればいいと思いがちですが、SMTがオンになっているとCPU内でリソースの奪い合いが生じ、実際に得られるパフォーマンスを予測するのが難しいとのこと。
しかし、SMTの最も大きなデメリットは、SMTに関連する脆弱性だといいます。2018年に見つかったIntel製CPUの脆弱性「Foreshadow」や「MDS」といった脆弱性も、SMTが関係しているとのこと。
by Markus Spiske
チップレベルの脆弱性に関連することを考えると、セキュリティが心配な場合はSMTをオフにしておいたほうがいいと結論づけられています。
・関連記事
AMDの第3世代Ryzenシリーズがついに発売、Ryzen 9 3900XとIntel Core i9-9900Kとの比較レビューが公開中 - GIGAZINE
第3世代Threadripper最上位モデルの64コア/128スレッドCPU「AMD Ryzen Threadripper 3990X」が2020年に登場予定 - GIGAZINE
独立したWindowsのデスクトップ環境を再現して安全にいろいろ試せる「Windows Sandbox」がWindowsの新機能として登場 - GIGAZINE
第3世代Threadripper最上位モデルの64コア/128スレッドCPU「AMD Ryzen Threadripper 3990X」が2020年に登場予定 - GIGAZINE
IntelのCPUで新たな脆弱性「Portsmash」が発見される、ハイパースレッディングに関する2つ目の脆弱性 - GIGAZINE
・関連コンテンツ
in ハードウェア, Posted by darkhorse_log
You can read the machine translated English article Pointed out that technology `` SMT '….