AMDの32コアThreadripper 2990WXは、これまで販売されたコンシューマー向けCPUの中で最速です。はっきりさせておきますが、そう言う人には完全に同意します。しかし、同時に限界もあることも真っ先に指摘しておきます。
最も顕著なのは、利用可能なコアを最大限に活用できるコンシューマー向けアプリケーションの不足です。もう一つの制約は、AMDがこの32コアのモンスターをどのように構築したかを示す下図に明確に示されています。AMDは、すべてのCPUコアを単一のチップに搭載するのではなく、高速なInfinity Fabricを使用して4つのダイを接続しています。
メモリ帯域幅が32コアThreadripperに影響を与える理由
図をよく見ると、2つのダイには独自のメモリコントローラやPCIeアクセスが備わっていないことがわかります。代わりに、隣接するCPUダイと通信する必要があります。
本質的には、2 つのアパートがあり、2 番目のアパートが最初のアパートを通って外の廊下にアクセスする必要があるようなものです。

AMD によれば、4 ダイの Threadripper には、すべてのチップ間で共有される 25GB の帯域幅があるという。
おそらくもっと重要なのは、利用可能な総帯域幅です。AMDは当初、4つのCPUダイ間の利用可能な総帯域幅は双方向で25GBpsと発表していました。しかし、同社は当初の資料を修正し、総帯域幅と記載しました。16コアのThreadripper 2950Xと比較すると、50GBpsの帯域幅と2つのダイ間のリンクが2つあります(AMDからの最新情報も参照)。

2 ダイ 16 コアの Threadripper 2950X は 50GBps で、2 つのダイ間に 2 つのリンクがあります。これは AMD が当初主張した (その後修正された) 4 つのダイ間の 25GBps と比較すると低い数値です。
多くの人が、これがThreadripper 2990WXの最大の弱点だと考えています。コアあたりのメモリ帯域幅の不足が、圧縮やエンコードといったメモリを大量に消費するタスクに影響を与えているのです。Threadripper 2990WXにとってさらに問題なのは、IntelのCore i9-7980XEよりも14コア多いCPUで帯域幅を共有しなければならないことです。
以下は、Sandra 2018 Titaniumのメモリ帯域幅テストの結果と、コアあたりの利用可能な帯域幅です。ご覧のとおり、コアあたりの帯域幅は、8コアおよび16コアでは約5GBですが、32コアすべてを利用するとわずか2GBにまで急落します。

Sisoft Sandra 2018 Titanium のコアあたりのメモリ帯域幅の結果によると、Threadripper ではコアあたり 2GB しか使用できません。
合成メモリ帯域幅テストは一つの方法ですが、メモリを大量に消費するテストのパフォーマンスをさらに詳しく調べるために、無料で人気の高い7-Zipアプリケーションの最新バージョンを起動しました。Igor Pavlov氏によって開発されたこのオープンソースの圧縮・解凍ユーティリティは人気が高く、一般的に優れたツールです。例えば、ラップトップでテストを実行し、Windows 10の組み込みユーティリティを使ってCinebench R15.08と数千もの小さなファイルを解凍すると、完了するまでに数分かかります。実際には、インターネットに接続して7-Zipをダウンロードし、Cinebench R15.08のコンテンツを7-Zipで解凍すると、Windowsの組み込みユーティリティよりも短い時間で解凍できます。
GUI版では、圧縮と解凍の2つのテストを実行します。総合スコアは、2つの結果の単純平均のようになります。
7-Zipのテスト
テストの詳細については7-cpu.comのウェブサイトをご覧ください。ここではテストに関する重要な情報をいくつかご紹介します。圧縮テストについては、ウェブサイトでテスト結果に影響を与える要因について説明されており、「メモリ(RAM)のレイテンシ、データキャッシュのサイズと速度、TLBに大きく依存します。CPUのアウトオブオーダー実行機能もこのテストでは重要です」と述べています。さらに、「圧縮テストでは、RAMとデータキャッシュへのランダムアクセスが多数発生します。そのため、実行時間の大部分はCPUがデータキャッシュまたはRAMからのデータの取得を待機する時間です」と述べています。
解凍テストについて、ウェブサイトでは「CPUの整数演算に大きく依存します。このテストで最も重要なのは、分岐予測ミスのペナルティ(パイプラインの長さ)と32ビット命令(「乗算」、「シフト」、「加算」など)のレイテンシです。解凍テストには予測不可能な分岐が非常に多く含まれています」と説明されています。
ThreadripperとCore i9の再テスト方法
再テストでは、Threadripper 2990WXとCore i9-7980XEの両方を3GHzに固定し、各CPUのブーストスキームによる変動を排除することにしました。これは、比較がクロック速度の違いではなく、テスト結果に大きく依存するようにするためです。また、クロックはDDR4/3,200に設定し、特に記載がない限り、どちらもクアッドチャネルモードで動作させました。率直に言うと、ThreadripperシステムはCL14および1TでCASレイテンシがわずかに優位に立ったのに対し、Core i9はCL15および2Tで動作していました。最初のレビューと同様に、両システムともFounders Edition GTX 1080カード、同じドライバー、同じバージョンのWindows 10 Enterprise Editionを使用していました。
Threadripper に関する懸念の多くはコアあたりのメモリ帯域幅パフォーマンスであるため、各 CPU で 1 スレッドから最大スレッド数まで実行してみることにしました。また、ダイをオフにした場合に Threadripper のパフォーマンスが変化するかどうかも確認するため、ダイを 1 個(8 コア/16 スレッド)、ダイを 2 個(16 コア/32 スレッド)、ダイを 4 個すべて(32 コア/64 スレッド)で実行しました。
7-Zipの整数演算に特化した解凍コンポーネントでは、パフォーマンスは非常に良好でした。完全なスケーリングは確認できませんが、ダイをオフにしても7-Zipの解凍パフォーマンスにほとんど変化はありません。
すべてのテストは、デフォルトの辞書サイズ 32 MB の 7-Zip 18.05 の GUI バージョンを使用して完了しました (ただし、独自のバージョンも再コンパイルすることにしました)。

32 コアの Threadripper では、ダイを 1 個、2 個、または 4 個に切り替えても、解凍パフォーマンスに明らかな変化はありません。
おそらくCore i9とThreadripper 2990WXの比較に興味があるでしょうから、もちろんそちらもテストしました。全体的には、どちらのCPUも悪くありません。興味深いことに、Threadripper 2990WXは8コアを超えると解凍性能がわずかに低下するようです。Core i9は16コアあたりまでは十分なパフォーマンスの優位性がありますが、それを超えると勢いがなくなり、32コアのThreadripper 2990WX CPUに負けてしまいます。

7-Zip LZMA解凍は、整数、分岐予測、命令レイテンシの影響を受けやすいです。Core i9には若干の優位性がありますが、最終的にはコア数が多い方が優れていることは明らかです。
しかし、これはそれほど驚くべきことではありません。メモリ帯域幅が不足していないときのThreadripper 2990WXのCPUパフォーマンスは、既に定評があります。マルチスレッドレンダリングテストを見れば、その驚異的な性能がお分かりいただけるでしょう。
問題は、メモリ帯域幅やメモリレイテンシのテストではどうなるかということです。7-Zipの圧縮テストでThreadripper 2990WXをテストした結果がこちらです。あまり良い結果ではありませんが、幸いなことに、ダイの電源をオフにしても問題はありませんでした。ご覧の通り、CPUは26スレッドで頭打ちになり、そこからさらに悪化しているようです。

メモリ帯域幅の問題が緩和されるかどうかを確認するために、Threadripper 2990WX をシングルダイ、デュアルダイ、クアッドダイ構成で実行しました。
Core i9-7980XEと比較すると、さらに悪い結果になるかもしれません。繰り返しますが、どちらのCPUもクロック速度は3GHz、DDR4/3200に固定されていました。

7-Zipの圧縮テストは、メモリレイテンシ、キャッシュ、アウトオブオーダー効率に敏感だと言われています。当然のことながら、32コアのThreadripperでは良い結果が出ません。
これは 32 コアの Threadripper 2990WX にとって良い結果とは言えず、メモリのレイテンシと帯域幅の処理能力が大幅に低下していることを裏付けているようです。
しかし、メモリ帯域幅もCore i9に悪影響を与える可能性があるのでしょうか?これを調べるために、Core i9システムをクアッドチャネルモードからシングルチャネルモードに切り替えました。残念ながら、モジュールの密度不足のため、テストではメモリ容量を32GBから16GBに減らす必要がありました。幸いなことに、デフォルトの辞書を使用した7-Zipは問題なく動作し、メモリ容量全体が問題だったとは考えられません。Sandra 2018で測定されたメモリ帯域幅は、Intel製パーツにおいて、クアッドチャネルメモリモードの77GBpsからシングルチャネルモードの18.5GBpsに削減されました。コアあたりのメモリ帯域幅は、クアッドチャネルモードの4.8GBpsからシングルチャネルモードの1GBpsに減少しました。

Core i9-7980XE のメモリ帯域幅を削減すると、7-Zip の圧縮パフォーマンスも低下しますか? はい、その通りです。
ご覧の通り、Core i9-7980XEもメモリ帯域幅が大幅に削減されるとパフォーマンスが低下します。Threadripper 2990XEほどではありませんが、これはIntel寄りのコードが原因のようではありません。
Linuxテストで驚きの結果が!読み進めてください!
LinuxのテストはWindows 10が結果にどう影響するかを示している
普段なら、メモリ帯域幅とレイテンシこそが真の問題だと答えるところですが、Linuxという問題があります。Linux専門サイトPhoronixのMichael Larabel氏が行ったテストでは、Threadripper 2990WXはCore i9-7980XEに大きく遅れをとるどころか、むしろ同等のパフォーマンスを示しました。Phoronixは7-Zipのやや古いバージョンを使用していますが、Linuxへの移行がThreadripper 2990WXにとって大きなメリットとなることは明らかです。PhoronixはWindows 10 Serverでもテストを行いました。

結局それは Threadripper ではないのでしょうか?
PhoronixのLinuxテストでは、7-Zipだけでなく、Windows 10がLinux版よりもパフォーマンスが劣るという他のいくつかのテストでも問題が見られました。つまり、Windowsに現時点で問題があることは明らかです。しかし、もしあなたがそれを弱点として全く無視しているのであれば、私はそうは思いません。
LinuxとWindowsを比較したテストで、メモリ帯域幅とレイテンシの問題を裏付けるものとして、Techspot.comのSteve Walton氏によるテストがあります。Walton氏は最新の7-Zipバージョンを使用してWindowsとLinuxのパフォーマンスをテストし、コア数が少ないにもかかわらず、Core i9が依然として優れていることを明らかにしました。Threadripperでは大幅に改善されたのでしょうか?確かにそうです。しかし、利用可能なコア数すべてにスケールするマルチスレッドテストでは、依然として明らかに遅いです。

Techspot の Linux 対 Windows テストでは、Threadripper は依然として Core i9 より劣っています。
コンパイラは別の要因である
Threadripper の 7-Zip のパフォーマンスについてさらに詳しく調べる中で、コンパイラに問題があるのではないかと考えました。7-Zip 実行ファイルのビルドに古いコンパイラが使用されていた場合、Threadripper のパフォーマンスに悪影響を与える可能性は十分にあります。この疑問を解消するため、Microsoft Visual Studio 2017 の最新バージョンである 7-Zip のソースコードをダウンロードし、実行ファイルにコンパイルしました。
結果は基本的に同じで、7-Zipの最新バージョンは最新のVisual C++コンパイラを使用しているようです。これはコンパイラの違いを完全に否定するものではありません。コンパイラの違いは確かに重要です。例えば、Linux上のアプリケーションがGCCまたはIntelコンパイラでコンパイルされていたとしたら、パフォーマンスの違いを説明できるかもしれません。

最新バージョンの Visual Studio 2017 を使用して 7-Zip 18.05 のソースコードを再コンパイルしたところ、おそらくそれが 7-Zip が最近コンパイルされたものであることがわかりました。
ハンドブレーキのテストはさらなる疑問を生む
Windows 10 には明らかに Threadripper の設計上の問題があるものの、メモリ帯域幅とレイテンシが関係ないと言うのは間違いでしょう。
メモリ帯域幅が両CPUにどの程度のメリット(あるいはデメリット)をもたらすかを確認するため、VeraCryptを1GBのワークロードで実行しました。7-Zipの場合と同様に、Core i9のVeraCryptのパフォーマンスは急激に低下し、実際にはThreadripper(クアッドコアメモリ搭載)よりも劣っています。これは、下の青いバーから確認できます。
Threadripper 2990WXは1GBのワークロードで大きなパフォーマンス低下を見せています。しかし、WindowsがThreadripperのメモリ構成をどのように処理しているかが問題であれば、2つのダイをシャットダウンすれば改善するはずです。確かに改善はしますが、下の緑色のバーからわかるように、コア数を16、スレッド数を2に制限してもパフォーマンスはわずかにしか向上しません。この結果はまたしても不可解です。共有メモリコントローラーの設計パフォーマンスの低さがWindows 10のせいだとしたら、なぜThreadripper 2990WXのパフォーマンスはCore i9ほど速くないのでしょうか? 両方のCPUとも3GHzで固定されていることを忘れないでください。

メモリ帯域幅を削減すると、Core i9 (青) のパフォーマンスが低下しますが、奇妙なことに、ダイのうち 2 つをオフにしても Threadripper のパフォーマンスは向上しません。
前回のテストでは、HandBrake 1.1.1を使用し、Chromecastの1080pプリセットを使用して4K動画ファイルをエンコードしました。注:このHandBrakeの結果はこれまで実行した他のテストとは異なるため、以前の結果と比較することはできません。
ビデオエンコードはメモリ帯域幅の増加と関連付けられることが多いです。確かに影響はありますが、この特定のプリセットでCore i9のメモリ帯域幅が77GBpsから18GBpsに上昇したとしても、それほど大きな問題ではないことがわかります。
Threadripper のダイ使用数を4個から2個に減らした結果も、大きな問題ではありません。2個のダイをオフにすると実際にはわずかに速くなりますが、HandBrake エンコードではほぼエラーの範囲内です。
このことから、今回のHandBrake実行において、32コアのThreadripperが18コアのCore i9よりもわずかに遅いのは、HandBrake自体の不安定さと、各プロセッサでの動作の安定性によるものと考えられます。また、アプリ自体はマルチスレッドですが、コア数に応じてスケーリングされないことにも留意する必要があります。

Core i9 のメモリ帯域幅を削減しても、予想ほど劇的なパフォーマンスの変化は見られませんでした。これは、ビデオ エンコーディングが思ったほどメモリ帯域幅に依存していないことを示しています。
簡単な答えはない
Threadripper のパフォーマンスに関する疑問に簡単な答えを期待していたなら、数字で答えてみてください。私たちのテストに基づくと、答えは「複雑」です。
Linux のテストは実施していませんが、他社が実行した結果を十分に確認した結果、Windows 10 は特定のアプリケーションのパフォーマンスを制限していると言えます (ただし、これらの特定のテストに使用されたコンパイラにも責任の一端がある可能性があります)。
また、Threadripper 2990WXは、一部のワークロードにおいてメモリ帯域幅とレイテンシの制約を受ける可能性があると考えています。これは、32コアでクアッドチャネルメモリを共有する場合と、18コアでクアッドチャネルメモリを共有する場合を比較すると当然のことです。
結局のところ、高性能CPUを選ぶ際には、実行するタスクに基づいて選ぶべきだと考えています。以前のレビューで得た結果は、基本的に今でも当てはまります。3Dレンダリングやモデリングなど、スレッドを多用するタスク、あるいはマルチタスクを頻繁に行う場合、32コア64スレッドのThreadripper 2990WX(Amazonで1,749ドル)は、これまでにないほど優れた性能を発揮するでしょう。
ただし、ほとんどのビデオエンコード作業など、スレッド化がそれほど高くないワークロードに集中し、スレッド化の低いアプリケーションでより高いクロック速度が必要であり、メモリ帯域幅に大きく依存する場合は、Core i9-7980XE (Amazon で 2,000 ドル) の方が適している可能性があります。

アプリケーションでスレッド数が少なく、高いクロック速度が求められる場合は、このグラフの左側に該当し、Core i9 がより適しています。一方、より多くのコア数が必要な場合は、このグラフの右側に該当し、Threadripper がより適した選択肢となります。