Previewおよび開封の儀でご紹介した通り、Ryzen Threadripper 2950Xと2990WXが筆者の元にやってきたので、その性能をご紹介したいと思う。

  • 「Ryzen Threadripper 2」深層レビュー

    写真はRyzen Threadripper 2990WX

レビューに入る前にちょっとだけ座学を。Gen 2 Threadripperは「基本的」にはGen 1 Threadripperと変わらない。違いはダイで、これがGen 2 Ryzen(つまり12nmプロセスで製造したもの)になるだけで、これにより若干の動作周波数変更とキャッシュ/メモリ周りのLatency削減、XFR 2とPrecision Boost 2の実装が行われているが、このあたりは以前『Ryzen 7 2700X/Ryzen 5 2600Xレビュー - 第2世代RyzenでIntelに追いつくことができたのか?』で説明した通りなので割愛する。

  • 「Ryzen Threadripper 2」深層レビュー

    ここでLinkが1本にまとめられているのが誤解を招く

ちょっとした違いは、ダイ間の接続である。Xシリーズの場合、こんな具合(Photo01)に2つの実働ダイと2つのダミーダイが搭載され、間を50GB/secの双方向リンクでつないでいるとする。他方、WXシリーズは4つの実働ダイが搭載されるが、Ininity FabricおよびDDR4/PCIeの接続はこんな格好だ(Photo02)。これだと、どのコアでアプリケーションが動くかによってえらく性能差が出やすい形になる。

  • 「Ryzen Threadripper 2」深層レビュー

    DDR4/PCIeを繋いだダイと繋がないダイの2種類がある

ただこれについてJoe Macri氏(Corporate Fellow&CTO, Computing&Graphics Business Group)は「すべてのダイに(1chづつ)Memory(やPCIe)を分散させると、どのコアで動かしても一様に遅くなる。(Threadripperは)NUMA構成なので、(DDR4のある)高速なダイから順に(OSが)Taskを割り振るようにすることで、まずは高速なダイが全部動き、それで足りなければ(DDR4のない)遅いダイが動く形になる」と説明する。

実際、Ryzen Threadripper 2990WXをWindows 10で利用中に「関係性の設定」画面を開くと、Die 0 → Die 2 → Die 1 → Die 3の順に仮想プロセッサ(ダイあたり16個)が出現する。これにより、まずDDR4/PCIeメモリが直付けのDie 0とDie 2が使われ、次いでInfinity Fabric経由となるDie 1とDie 3が使われるという訳だ。

ついでにもう一つ。Photo01/02ではLinkあたり25GB/secとなっているが、以前EPYCの説明ではこうなっていた(Photo03)。なんかリンクの速度があってないのでは? という感じだが、EPYCの42.6GB/secは双方向あわせての数字(つまり片方向あたり21.3GB/sec)で、Ryzen Threadripperはこれが25GB/secに引き上げられている格好だ。

  • 「Ryzen Threadripper 2」深層レビュー

    これは昨年(2017年)のHotChipsにおけるAMDの発表資料

数字が違うのは、定格のメモリ速度が異なる(EPYCはDDR4-2666、Ryzen Threadripper 2990WXはDDR4-2933)ことの両方に起因すると思われる。Infinity Fabricの速度の原則は「Memory Bandwidthにあわせる」(Macri氏)ということで、若干の動作周波数アップが図られたようだ。

実際、DDR4-2666だとメモリ帯域は21.3GB/secできっちりEPYCの帯域にマッチするが、DDR4-2933だとメモリ帯域は1chあたり23.4GB/secになり、Infinity Fabricがボトルネックになる。25GB/secだと、DDR4-3200にはちょっと足りない(こちらは25.6GB/secになる)程度だが、DDR4-2933には十分だからだ。

という訳で、ちょっとPhoto01/02を描き直してみたのが下の図1・図2である。図1がXシリーズ、図2がWXシリーズの構成となる。

  • 「Ryzen Threadripper 2」深層レビュー

    左側の図1がXシリーズ、右側の図2がWXシリーズの構成