32コアCPU、発売される
実売約24万円。Ryzen Threadripper 2990WXがついに登場。
サーバ用ではない32コア
AMDから遂にエンスージアスト向け(正確には開発者、研究者向けらしい)の32コアCPUである「Ryzen Threadripper 2990WX」が発売された。
32コアという物理コアを持っている為、論理コアで考えれば64スレッドという、とんでもない数の並列性をもつCPUだが、今までのPCでは当然ここまで並列性の高いCPUは存在していなかったので、想像ではとんでもない性能を叩き出すに違いないと考えていても、実際問題どうなのか? という現実を調べなければわからない。
深夜販売が実施され、既に一般人の手にも分かっているが、プレスにも既に評価キットが配付され、その性能が調べられ始めているので、今回はその中身をいろいろと考えて見たい。
私が見たのは以下のレビューサイト。
PC Watch
https://pc.watch.impress.co.jp/docs/topic/review/1137864.html
他にもいろんなレビューサイトがあるが、結果的にはどのサイトも似たような結果が出ている。…当たり前と言えば当たり前の話である。
まだ最適化が追いついていない
レビューサイトの結果を見てみると、CINEBENCH R15ではとんでもない結果が出ている。
圧倒的な並列性能でマルチコアでの処理はCore i9-7960Xの1.6倍の処理能力を示している。
シングルスレッドは相変わらずCore i9-7960Xが優位だが、Core i9-7960Xの89%の性能で2990WXも動作しているところを見ると、従来のZen系の性能より多少向上しているところが見受けられる。
ところが、一般的にはマルチスレッド性能が高ければ高いほど有利な動画エンコード性能含めて、他いろいろなアプリケーションでは、残念な事に全てにおいて2990WXが最高性能を叩き出してはいない。
具体的には前述のレビューサイトを見てもらいたいが、未だアプリケーション側でここまでのマルチスレッド処理に対応できていない事が見て取れる。
AMDもこうした事を理解していて、それ故にLegacy Compatibilityモードが存在していて、Core数を半分、1/4に制限するモードを持っている。
ただ、2990WXはこのLegacy Compatibilityモードであってもメモリアクセスモードを変更する事ができない仕組みになっている。
これは、2990WXが従来のThreadripperと異なる構造を執っているからに他ならない。
IOダイとコンピュートダイ
今回、第2世代Ryzen Threadripperは「WX」と「X」いう、2つのアーキテクチャに分かれている。
これは、単純に16コア製品と32コア製品の違いである事を意味しているのだが、16コア製品の「X」は第1世代のThreadripperと同じ構造を執っている。32コア製品(16コアを超える製品)である「WX」は、従来のコアとは異なり、8つのZenコアを一纏めにしたコアを4コアフルに搭載し、それらを相互接続している。従来は8つのZenコアを一纏めにしたコアを2つ搭載に、2つはダミーとして搭載していたところが異なるところである。
この延長上でThreadripperは作られている為、サーバ用途のEPYCと異なり、4コアすべてがDRAMと接続されているわけではない。
このDRAMと接続されているコアを「IOダイ」と呼び、DRAMと接続されていないコアを「コンピュートコア」と呼び、「コンピュートコア」がDRAMにアクセスしようとすると、一度隣接する「IOダイ」を経由してDRAMにアクセスする必要が出てくる。ここがサーバ用途のEPYCと最大に違う部分である。
普通に考えれば、全てのコアがダイレクトにDRAMにアクセスできた方が高速にタスク処理できると考えがちだが、このような処理は多数のスレッドが同時に動作しているサーバ向けの話であり、今回の第2世代Threadripperではあくまでも従来の互換性を第一に考え、安定性を執ってこのような非対称型の構成を執っているという。
つまり、第2世代Threadripperは、あくまでもサーバ用途向けではなく、ワークステーション向けとして最適化しており、負荷が軽い時は従来のThreadripperのような動作で動き、重い処理が来たときに「コンピュートダイ」を追加して演算能力を高めるという処理方法を採ったと考えられる。そうすれば、プログラム的には従来のThreadripperと同じような処理で問題なく動作すると言えるが、問題は負荷がかかって「コンピュートダイ」を動作させる際のトリガーを追加してやらないと、「WX」はその性能の真価を発揮できない可能性が考えられる。
ハードが先行するAMD
第2世代Threadripperのように、従来の動作と互換性を執りつつ新しい処理構造を追加していくという意味では、今回も実にAMDらしいやり方だと思うのだが、時としてこのやり方は、確かに互換性は執れるものの、ハードウェアが持っている性能を示しにくい事が多い。
今回の2990WXはまさにそんな感じに受け止められるCPUであり、32コア64スレッドというバケモノじみたスペックを持っていたとしても、実際のアプリケーションはまだ未対応で性能の真価を見せつけられないモノでしかない。
製品のリリースと同時にそうした対応が出来ていれば一番良いのだろうが、それが出来ないからこそ、今回はLegacy Compatibilityモードで対応しようという狙いだったのかもしれない。
x86系プログラムは昔からIntel系への最適化は浸透しているが、AMD系への最適化が遅いイメージがある。
毎回の事とはいえ、そのアタリを改善できると、AMD製品はもっと良くなるような気がするのは多分私だけではないのではないかと思う。