AMD HEROES

twitter
facebook
line

「Ryzen Master」の新機能「Dynamic Localモード」をねちっこく考察

2920Xと2970WXの価格はお得か?Ryzen Threadripper全モデル検証

文● 加藤勝明 編集●ASCII編集部

今回編集部が入手したサンプル。左がRyzen Threadriiper 2970WXで右が同2920Xだ。

2018年10月30日、AMDは第2世代Ryzen Threadripperの新モデル「Ryzen Threadripper 2970WX」及び「同2920X」を発売した。この2製品は今年8月に登場した「2990WX」、「2950X」の下位モデルにあたる。

2970WXは24コア/48スレッドで実売価格17万2000円前後、2920Xは12コア/24スレッドで実売価格8万6000円前後となる。Threadripperの登場によりHEDT向けCPUは急激なメニーコア化路線に移行したわけだが、今回はその廉価版を出してRyzen 7との隙間を埋めにきたという流れだ。

インテルは間もなくHEDT向けに“Skylake-X Refresh”こと最新のCore Xシリーズをリリースすると噂されているが、最上位のCore i9-9980XEでも18コア/36スレッドとThreadripperの物理コア優位は揺るがない(インテルの切り札であるXeon W-3175Xは12月登場予定だが、それでも28コア/56スレッドだ)。Skylake-X Refreshは怒涛の7SKUで“選びやすさ”を押し出す戦略のようだが、Threadripperは4SKUでコストパフォーマンスを武器にしている。

今回は2970WX及び2950Xをテストする機会に恵まれた。果たして先行する2990WXや2950Xとどの程度性能差があるのか? そして、メインストリームの最上位「Ryzen 7 2700X」とのパフォーマンスの差などを検証していきたい。

2970WXのサンプル。物理的形状やCPUソケットに安全に着地させるためのオレンジ色のガイドの存在などは先行していた上位モデルとまったく同じ。刻印を見なければ先行モデルと識別することすら困難だ。なお、付属品も以前と同じ。X399チップセット搭載マザーボードで利用でき、2990WXが動くBIOSであれば、問題なく2970WXや2920Xも動作する。初代Threadripperからの乗り換えを考えているなら、最初にBIOS更新をかけておこう。

コア数減が主な変更点だがTDPは変化せず

では改めて第2世代Threadripperのスペックを確認しよう。従来どおり「WX」付きが4基のダイで動作するクリエイター・イノベーター向けモデル、「X」付きが2基のダイで動作するエンスージアスト・ゲーマー向けモデルとなる。今回投入された12コア/24スレッドの2920Xは実売価格8万6000円前後だが、現行モデルでコア数的に対等な「Core i9-7920X」は実売価格12万2000円前後なので3万6000円ほど安く手に入る計算だ。

価格的に対等な製品は現在存在しないが実売価格7万円前後の「Core i7-7820K」や6万円台後半の「Core i9-9900K」と比較すると、物理コア数で勝るという図式になる。Skylake-X Refreshの国内価格は現時点において不明だが、2018年11月時点の予想価格通りだとすれば、今回の2920Xはコア数と価格のバランスが絶妙だ。コア数でも価格でもCore Xに優位に立てるよう計算されているようだ。

第2世代Threadripper及びRyzen 7最上位のスペック
Ryzen Threadripper 2990WX Ryzen Threadripper 2970WX Ryzen Threadripper 2950X Ryzen Threadripper 2920X Ryzen 7 2700X
アーキテクチャー Zen+ Zen+ Zen+ Zen+ Zen+
コア / スレッド 32 / 64 24 / 48 16 / 32 12 / 24 8 / 16
CCX・ダイ構成 (4コア+4コア)×4ダイ (3コア+3コア)×4ダイ (4コア+4コア)×2ダイ (3コア+3コア)×2ダイ 4コア+4コア
ベースクロック 3GHz 3GHz 3.5GHz 3.5GHz 3.7GHz
ブースト最大クロック 4.2GHz 4.2GHz 4.4GHz 4.3GHz 4.3GHz
L2キャッシュ 16MB 12MB 8MB 6MB 4MB
L3キャッシュ 64MB 64MB 32MB 32MB 16MB
XFR2
Precision Boost 2
Precision Boost Overdrive
対応メモリー 4ch DDR4-2933 4ch DDR4-2933 4ch DDR4-2933 4ch DDR4-2933 2ch DDR4-2933
TDP 250W 250W 180W 180W 105W
PCIeレーン数 64レーン 64レーン 64レーン 64レーン 24レーン

上の表の通り、2970WXと2920Xは、先行モデルのCCXが4コア+4コア構成だったものを、単純に3コア+3コア構成のものに置換しただけだ。コア数とL2キャッシュ以外のスペックはほぼ据え置きとなる。ただし、コア数が少なくなってもTDPは上位モデルから減っていないという点も重要。オーバークロック(以下、OC)して楽しみたいという人はマザーボードのVRMのレーン数などに注意したいところだ。

2970WX(左)と2920X(右)の情報を「CPU-Z」で拾ってみた。TDP表記と右下のコアとスレッド数の違いに注目

WXの弱点を克服する「Dynamic Localモード」が実装される

2970WXと2920Xは先行モデルの廉価版であるため、新規要素はまったくない。だが今回の発売と同時にリリースされたAMD純正チューニングツール「Ryzen Master」のバージョン1.5に、「Dynamic Localモード」という注目すべき機能が実装されたのでこれを紹介しておきたい。

この機能は、2990WX及び2970WX環境でRyzen Master最新版をインストールすると自動的に有効になる。ご存知の通り、4基のダイを運用する「WX」付きモデルでは、メモリーやPCI-Eコントローラーと直接つながっている“IOダイ”と、それらをまったく持たない“コンピュートダイ”が存在する。後者の演算性能はIOダイと一緒だが、メモリーにアクセスする処理ではダイ間を接続する“Infinity Fabric”がボトルネックになってしまい、「IOダイより遅くなる」という現象が発生することが知られている。

2970WXのように4ダイを擁する「WX」付きThreadripperの場合、外界と直接接触を持たないコンピュートダイが2基ある。Infinity Fabric経由でメモリーアクセスする場合、メモリー帯域よりInfinity Fabric(1リンク)のほうが狭いため、性能が上がらなくなる。

2920Xのような「X」付きThreadripperでは、2基のダイがそれぞれメモリーへアクセスできる。遠いほうのメモリーへアクセスする際は時間的なロスがあるものの、Infinity Fabricが2リンクあってメモリー帯域とほぼ同等(DDR4-3200時)になるため、WX付きのような問題は起きない。

これを解決するには、OS側がダイの特性を考えて処理を割り振る、つまりメモリーアクセスの多い処理をIOダイに割り振れるようにする必要がある。WX付きモデルはLinuxで運用するのがベスト、というのはこれが理由だ。

今回Ryzen Masterに搭載されたDynamic Localモードは、「メモリーアクセスの多い処理をIOダイに優先的に割り振る」という機能をWindows 10で実現する。Ryzen Masterを導入するとデフォルトで有効化されるので、2970WXで組む人はもちろん2990WXユーザーにとっても必携のツールとなった。Dynamic LocalモードはOS上のサービスとして起動するため、有効⇔無効の切替時にOSの再起動を伴わないというのも長所である。

AMD公認チューニングツールである「Ryzen Master」。現在AMD公式で配布されているバージョン1.5以降のものにはDynamic Localモードが実装される。全体のインターフェースは以前のものと変わらない。

「Dynamic Localモード」を切り替えるスイッチ。「X」付きThreadripperではこのスイッチは表示されない。

Ryzen Master 1.5以降をインストールすると、OS側に「AMD Dynamic Local Mode Service」というサービスが組み込まれる。これがプロセスの割当てを制御する技術的核心部分なのだ。

第2世代Threadripper全モデル&Ryzen 7 2700Xで比較

今回は先行していた第2世代Threadripper及びRyzen 7 2700Xとの違いを検証する。2990WXでPrecision Boost Overdriveを効かせるとVRM温度が上がりすぎてシステムが落ちたことがファーストレビュー時に観測されたため、今回はメモリークロック以外BIOSやOSのデフォルト設定を利用し、Precision Boost Overdriveは無効(Auto設定のまま)とした。

検証環境:Ryzen Threadripper
CPU AMD Ryzen Threadripper 2990WX(32C64T、3GHz〜4.2GHz)、AMD Ryzen Threadripper 2970WX(24C48T、3GHz〜4.2GHz)、AMD Ryzen Threadripper 2950X(16C32T、3.5GHz〜4.4GHz)、AMD Ryzen Threadripper 2920X(12C24T、3GHz〜4.3GHz)
マザーボード ASUS ROG ZENITH EXTREME(AMD X399、BIOS 1501)
メモリー G.Skill F4-3200C14D-16GFX×2(DDR4-2933で運用)
グラフィックス GeForce RTX 2080Ti Founders Edition
ストレージ Intel SSDPEKKW512G7X1(NVMe M.2 SSD、512GB)
電源ユニット SilverStone SF85F-PT(850W、80PLUS PLATINUM)
CPUクーラー Enermax ELC-LTTR240-TBP(簡易水冷、240mmラジエーター)
OS Microsoft Windows 10 Pro 64bit版(April 2018 Update)
電力計 ラトックシステム REX-BTWATTCH1
検証環境:Ryzen
CPU AMD Ryzen 7 2700X(8C16T、3.7GHz〜4.3GHz)
マザーボード ASUS ROG STRIX X470-F GAMING(AMD X470)
その他のパーツはThreadripper環境と共通

結果に速い時と遅い時がある?

定番の「CINEBENCH R15」から検証を開始。2990WX及び2970WXはDynamic Localモード無効時と有効時(末尾DL)の違いも合わせて検証する。

CINEBENCH R15のスコアー。

マルチスレッドは2990WXがダントツに高く、ややコア数を減じた2970WXはその下になるのは当然の流れ。ただし、シングルスレッドはコア数が少ない2970Xのほうが若干高い。このテストではDynamic Localモードを有効にするとややスコアーが下がるが、これはサービスが処理の振り分けにCPUパワーをわずかに消費するためだ。CINEBENCH(を含めCG系ベンチマーク)はコンピュートダイ上で処理しても速度的なペナルティーがほとんどないため、Dynamic Localモードはかえって逆効果なのだろう。

続いては同じCG系である「blender」を利用する。今回はCycles Benchmarkから“barbershop_interior”を、Production Benchmarkから“Gooseberry”をチョイス。それぞれ最初の1フレームだけをレンダリングする時間を計測した。

blenderにおける1フレームレンダリング時間。

Ryzen 7 2700Xも8コア/16スレッドなので決して遅くはないのだが、24コア/48スレッドの2970WXでは処理時間がほぼ半分に。そして、12コア/24スレッドの2920Xは2970WXと2700Xのほぼ中間的な性能だ。CG作成系の勉強をするなら、将来的に上位CPUにグレードアップしやすい2920Xは非常に良いスタートラインと言えるだろう。

Adobeのエンコーダーでは2950X/2930Xが上位よりも優秀

では動画エンコード系のテストへ入る。まずは「Premiere Pro CC」で編集した再生時間1分の8K動画を「Media Encoder CC」を利用してMP4形式の動画にエンコードする時間を計測する。ビットレートは50Mbpsとし、コーデックは2パスH.264及び1パスH.265とした。

Premiere Pro CC 2018で編集した動画をMedia Encoder CCで8K MP4動画にエンコードする時間。

2990WXのファーストレビュー時点では、動画エンコードは2990WXは苦手なようだと結論付けた。だが今回Dynamic Localモードを有効にすることで、大幅に処理時間が短縮していた。ただし、それでもはやり2990WXよりも2950Xのほうが単純に速いということを考えると、「WX」付きThreadripperは動画エンコードが(少なくともAdobeの動画エンコーダーでは)苦手という結論は揺るがない。

また、Dynamic Localモードを無効化した時のエンコード速度には大きな幅がある点を強調しておこう。今回は試行回数を多く儲けワーストケースを記述したが、Dynamic Localモード無効化の場合でも2990WXなら最短で14分台、2970WXも16分台で終わることもあった。この理由については後ほど検討するが、Dynamic Localモード無効時の結果の振れ幅は“運”の要素が絡んでいる。

なお、Dynamic Localモードの効果が見られたのはH.264の処理だけで、より計算負荷の高いH.265では効果が出ていないのは、Zen系CPUはMedia EncoderにおけるH.265の処理を不得意とする傾向があるのと、CPU負荷があまり高くない(コアを均等に使わない)点に原因があるようだ。

HandbrakeやLightroomでも2950X/2920Xが光る

では、同じ動画エンコード系でも「Handbrake」ではどうだろうか。再生時間約6分半の4K動画を準備し、Handbrakeでx264及びx265コーデックを利用して20MbpsのMP4動画に再エンコードする時間を測定した。

Handbrakeによる4Kエンコード時間。

HandbrakeではMedia Encoder CCのような振れ幅は見られなかった。最速をマークしたのはコンピュートダイを持たない2950Xであり、「WX」付きThreadripperは2920Xよりやや速い程度の性能しか出せていない。

次は「Lightroom Classic CC」で検証しよう。RAW画像200枚(ARW形式)からDNG形式に変形する時間と、そのDNGを最高画質のJPEGに書き出す時間を計測する。JPEG書き出し時にはシャープネス処理を付与(スクリーン用、適用量は標準)している。

Lightroom Classic CCによるRAW現像処理時間。

このテストでは、DNGへの処理時間はどんなCPUを使っても極端に早くなることはない。CPU負荷が低すぎるためだ。だがJPEG書き出し時のシャープネスはマルチスレッド化されているので、コア数の多いCPUはそれなりに恩恵がある。だがThreadripper環境、特にWX付きモデルではこの処理も荒れる。グラフは数回計測した中で傾向を掴めそうな値をピックアップしているが、2970WXのDynamic Localモード無効時でもDNG→JPEG処理で2分台を出すこともあるし、時々ではあるがDynamic Localモード有効時でも5分台をマークすることもある。上手く処理がハマると速いが、そうでないと遅いのだ。

Far Cry 5でDynamic Localモードの恩恵を感じるものの……

続いてはゲーミング性能はどうだろうか? まずは小手調べとして「3DMark」のスコアー比べから始めよう。

3DMarkのスコアー。

このテストではCPUのコア数が少ないほうがTime Spyでスコアーが伸びる傾向が確認できた。WX付きモデルはCPUコアが多すぎてクロックが上がらず、結果としてDirectX11ベースのテストでスコアーを落としてしまうようだ。

次にDynamic Localモードの恩恵があると(AMDが)言っている「Far Cry 5」を試してみよう。画質は“最高”とし、ゲーム内ベンチマーク機能を利用して計測している。解像度は1920×1080ドットのみで計測した。解像度を上げるとボトルネックがGPU側に移るため、一番影響の出やすいシチュエーションでのみ比較することにする。

Far Cry 5のフレームレート。

Far Cry 5はマルチスレッド化されたゲームではあるが、Threadripperはクロックが抑えられているため、「コア数の多いモデルほど遅い」という悲しい結果になった。ただし、WX付きモデルではDynamic Localモードを有効にすると若干フレームレートが伸びており、Dynamic Localモードの有用性がひとつ実証されたことになる。

ただゲーミング用途としては、コンピュートダイを持たない2950Xや2920Xの結果はベストではないにせよ間違いではない選択(価格を無視すれば、だが)と言えるだろう。ゲーム中心で考えているなら無理にThreadripperを選ぶよりも、導入コストが格段に安いRyzen 7を選ぶのがずっと理にかなっている。

ゲーミング用途ならRyzen 7 2700Xを選ぶのが吉

Far Cry 5はThreadripperの悪いところが思い切り出たようなベンチマークだったが、CPU負荷のより高い「Shadow of the Tomb Raider」ではどうだろうか。APIはDirectX12、画質は“最高”とした。ゲーム内ベンチマーク機能を利用し、CPU側で処理するゲーム処理のフレームレート(CPU-最小5%/CPU-平均/CPU-最大)と、プレーヤーが実際に目にするベンチマークシーン全体の平均fps(シーンfps)をそれぞれ比較する。

Shadow of the Tomb Raiderのフレームレート。

Far Cry 5ではコア数と性能が反比例していたが、このゲームではあまり変わらない。むしろDynamic Localモードを有効にすると微妙にフレームレートが落ちていた。2950X/2920Xと2990WX/2970WXに実質的なフレームレートの差がない点を考えると、内部的にコンピュートダイでも十分パフォーマンスの出せる処理をしているようだ。

続いてはぐっとCPU占有率の低い「PLAYERUNKNOWN’S BATTLEGROUNDS」で試す。6コアCPUでも十分余裕のあるゲームなので、Threadripperには負荷にもならないゲームだが、結果的にこれがThreadripperのコンピュートダイの挙動を見る良いテストとなった。

画質は“ウルトラ”とし、マップ“Erangel”におけるリプレイデータ再生時のフレームレートを「OCAT」で測定する。WX付きモデルについては他のCPUより試行回数を増やして測定し、ワーストケースと判断したものを記載した。

PLAYERUNKNOWN’S BATTLEGROUNDS単体実行時におけるフレームレート。

まずWX付きモデルに関しては、Dynamic Localモード無効時に大きくフレームレートが落ちているが、Dynamic Localモード有効時とほぼ同程度のフレームレートが観測されることもある。Dynamic Localモード無効では振れ幅が異常に大きい。この理由については後ほど解説するが、高めで安定するパターンに入るとPUBGを落とさない限りはそのまま安定する。Dynamic Localモード有効時は2950Xなどよりもやや高いフレームレートが観測されたが、この程度は誤算の範囲だ。

プレイ&配信でもRyzen 7 2700Xは優秀なコスパ

また、PUBGの裏で「XSplit Broadcaster」を利用した録画&配信処理を実施した時のフレームレートも合わせて計測する。配信先はTwitchとし、ビットレートは14Mbps、録画時の画質は“VeryHigh”に設定。Webカメラの映像を画面上にオーバーレイ表示する処理(キリヌキ加工はしていない)も追加した。

PLAYERUNKNOWN’S BATTLEGROUNDS実行中にXSplitによるTwitch配信と録画を並行して実施した時のフレームレート。

また、XSplit配信作業を行なうとフレームレートは一気に下がるので、CPUのコア数以外の部分が処理のボトルネックになっていることがわかる。ThreadripperがRyzen 7に対し優位に立つデータを示してはいるが、コスパを考えるとRyzen 7 2700Xが圧倒的に優れている。

消費電力はコア数であまり変化なし

最後に消費電力を比較しておこう。今回はシステム起動10分後の安定値を“アイドル時”、「OCCT Perestroika v4.5.1」の“CPU Linpack”テスト(64bit/AVX/全論理コア使用)を15分稼働させ、よく見られる値を“高負荷時”とした。

システム全体の消費電力(W)。

2990WXより2970WX、2950Xより2920Xのほうが物理コアが減ったぶん消費電力が減ると予想していたが、考えていたほどは減らなかった、というのが正直なところだ。コア数は減ってもTDPは据え置きなので、消費電力もほぼ横ばい、という感じになっている。この辺はインテル製CPUよりずっとわかりやすくてよい。Ryzen 7よりダイが1基多い2920Xの高負荷時消費電力が40W程度しか上がっていないのは、Threadripperが全体に低クロック動作だからと考えられる。ただし、Threadripperのアイドル時消費電力が高いのはマザーボードが多機能なハイエンドモデルであることも考慮する必要があるだろう。

Dynamic Localモードで速くなる理由は?

さて、今回筆者を苦しめたのはDynamic Localモード無効時に極端に結果がブレることが観測されたということだ。Lightroom Classic CCやPUBGでは、特にそれが顕著であると感じた。Handbrakeなどの結果は変わらなかった。試行回数を十分確保すれば観測できた可能性もあるが、時間的制約上の問題で追求は断念せざるをえなかった。

ここで考察するのは、WX付きThreadripperでDynamic Localモードを有効・無効化した際、CPUコアの使われ方がどう違い、それが結果にどう影響するかだ。

それにはどのコアがIOダイで、どのコアがコンピュートダイ上にあるかを確認する必要がある。そのためにはマイクロソフトが公開している「Coreinfo」を使うのが一番だ。このツールではダイが「NUMA Node」という表現をしているので、これに倣って表記している。

2970WXでCoreinfoを実行し、中盤に表示される「NUMA Node Map」と「Cross-Numa Node Access Cost」を見る。ノードが4つあるということは、つまり4基のダイが接続されていることを示す。

WXでないThreadripperはRyzenやCore i7/i9などと同じように、ノードは1基であると表示される。実際は2基のダイが稼働しているが、メモリーアクセスなどの面でほぼ等価であるため、論理的には単一12コア/24スレッドCPUとして扱われるのだ。

なお、タスクマネージャーの各コアの上にマウスポインターをかざしても、コアがどのダイ(ノード)に所属しているか調べられる。左上をノード0コア0とし、右隣がノード0コア1……右下がノード3コア11とカウントされる。

タスクマネージャー上で2970WXの各コアがどのダイに載っているかを書き加えてみた。1ダイ6コア、SMTを合わせ12コアでまとまっている。2990WXの場合はこれを16コア単位に拡張すればよい。

上図の場合、Socket MapとNUMA Node Mapに表示されているアスタリスク(*)1つが1論理コアを示す(左端が一番若いコアとなる)。NUMA Node Mapの「NUMA Node 0〜3」が4基のダイ(ノード)を示し、アスタリスクが表示されているコアがそのダイに載っていることを示す。一番上のNUMA Node 0はコア0〜コア11、Node 2がコア12〜23、Node 1がコア24〜35、Node 3がコア36〜47となる。

そして、ダイの結びつきはCross-NUMA Node Access Costに書かれている。各ノードから別のノードへアクセスした時の時間的コストを数値化したものだが、図ではノード0と2に非常に小さい(=速い)数値がある一方で、ノード1と3は全般的に大きい(=遅い)。つまり、ノード0と2が外界とのアクセスを持つIOダイ、1と3がコンピュートダイと判断できるわけだ。

Linux環境があるなら“numactl –hardware”コマンドを使ってみよう。2970WX環境で試した結果、ノード0と2にメモリーが16GBずつ接続されていると表示されたので、これらがIOダイだと一発でわかる。ちなみにWindows Subsystem for Linuxでもnumactlは使えるが、CPUの構造を正しく認識しない

IOダイに処理を関連付けたら性能が高めで安定

ここでPUBGの処理を各ノードに限定するようにした場合、フレームレートがどう変化するかを調べてみた。タスクマネージャーを開き「詳細タブ」から「関連の設定」を選ぶことで、そのプロセス(PUBGの場合Tslgame.exe)がどのコアで実行するか指定できるというものだ。さて、高速なIOダイにPUBGの全処理を押し付けたら(関連付けたら)どうなるのか?

PUBGの実行ファイルである「Tslgame.exe」に対し、特定のノード内のコアだけを使うように設定してみる。

PUBGを4つあるノードの上だけで実行させた時のフレームレート。

上のグラフからわかる通り、IOダイ(ノード0及び2)上で処理をさせた場合と、コンピュートダイ(ノート1及び3)上で処理をさせた場合ではパフォーマンスに大きな開きが出た。「Dynamic Localモード無効時は速い時もあれば、遅い時もあった」という奇妙な結果になったのはこれが原因だろう。つまり、プログラム実行時にどのダイにその処理が割り当てられたか、が重要なファクターになるのだ。

そして、Dynamic Localモードを有効化してPUBGを起動すると、処理の速いノード0とノード2に負荷が偏ることが確認できた。さらに言えば、XSplit配信を加えてもそれは変化しない。Dynamic Localモードの実装によって、「WX」付きThreadripperの使い勝手はいくぶん軽減されたと言えるだろう。

ただ今回試した限りでは、Dynamic Localモードを有効にしていても“速度が出ない”ケースも何回かに1回の確率で見られた。このあたりが「WX」付きThreadripperの使いにくさを象徴していると言えるだろう。

Dynamic Localモードを有効にしてPUBGを起動すると、ノード0と2に処理が偏る(左)。PUBGの裏でXsplit配信をしても、しっかり0と2に負荷がかかっていることが確認できた(右)。

Dynamic Localモードを無効にしてPUBGを起動すると、コンピュートダイであるノード1と3に処理が落ちるケースが観測された。こうなるとフレームレートは大きく下がってしまう。無論、試行機会によってはこうならない場合もあるのが悩ましいところ。

Dynamic Localモード無効時にFar Cry 5のベンチマークを起動した時の状態。ノード0は4割程度しか使われていないが、コンピュートダイであるノード3の占有率は6〜7割と高い。Dynamic Localモードを有効にすればノード1とノード3の処理がノード2に回されるのでパフォーマンスが上がるというわけだ。

Dynamic Localモードが動画エンコードで恩恵薄めな理由を考察

Dynamic LocalモードはPUBGでは高い効果が得られるようだが、動画エンコードではあまり効果が得られなかった。ここではHandbrakeにおけるノードの使われ方を観察しつつ、この理由を考察してみたい。

Handbrakeテスト実施時における、CPU占有率の一例(Dynamic Localモード無効)。左がx264、右がx265の場合。
Handbrakeテスト実施時における、CPU占有率の一例(Dynamic Localモード有効)。左がx264、右がx265の場合。

Dynamic Localモード無効時では、IOダイであるノード0が集中的に使われてはいるものの、残りのダイ1/2/3もほぼ均等に使われている。しかし、Dynamic Localモードを有効にするとノード0の使われ方は同じだが、もう一方のIOダイであるノード2の負荷が目に見えて上がっている。特にx264の処理では、ノード1と3の負荷がかなり抑えられている点に注目したい。

Dynamic Localモードはしっかり効いているのに無効時と処理時間に差が見られない理由として、ノード1と3に降りてきた処理がボトルネックになっているから、という仮説を立てることができる。2970WXよりもノードあたりのコア数の多い2990WXのほうがノード1と3の負荷を下げられそうだが、処理時間はかえって遅くなっている。論理コア数が増えた結果、オーバーヘッドも増えてしまったのが原因ではないだろうか。

Media Encoder CCでx265エンコード中のCPU占有率の一例(Dynamic Localモード有効)。ノード2に最も高い負荷がかかっているが、ノード1と3にも間欠的に高い負荷がかかっている。ノード0にもっと処理を集中できれば良さそうだが……

まとめ:使い勝手の良い2920X。2970WXは依然として使い手を選ぶ

以上で第2世代Threadripperの最後のピースとなる2970WXと2920Xのレビューは終了だ。24コア/48スレッドの2970WXはCGレンダリングで強烈な強さを発揮するものの、動画エンコードやゲーム目的ではコンピュートダイという特殊なNUMAノードの存在が足かせにになっているので、フルパワーが発揮できるシチュエーションは相当に限定される。ただし、Ryzen Masterを組み込んでしまえばDynamic Localモードがデフォルトで有効化されるのでいくぶんラクになるが、それでもCGレンダリング以外では安定して速いとは言い難い現状がある。

これに対し、2920Xはベンチマークスコアー的なインパクトは薄いものの、実売価格8万円台で購入できるHEDT向けCPUとしては良好なパフォーマンスを発揮している。X付きThreadripperにはIOダイしかないので、ゲーム配信や動画エンコードでも快適だ。とはいえ、ゲーム単体プレイにおいてはクロックが抑えられているので格下のRyzen 7のほうが優秀というHEDT向けCPU特有のジレンマはあるものの、今後この価格帯でコア数的に対抗してくるインテル製CPUが出てくる可能性は薄い。Ryzen 7もいいが、もう少し尖ったCPUを使いたいと考えるなら、まずThreadripper 2920Xの検討をオススメしたい。


関連サイト

この記事もおすすめ

PAGE TOP