レビュー
現時点で世界最高のマルチスレッド性能を引っさげ,AMDがHEDT市場へ還ってきた
Ryzen Threadripper 1950X
Ryzen Threadripper 1920X
2017年8月3日の記事でお伝えしているとおり,4Gamerでは,発表時点の最上位モデルである16コア32スレッド対応製品「Ryzen Threadripper 1950X」(以下,1950X)と,その1つ下に位置する12コア24スレッド対応製品「Ryzen Threadripper 1920X」(以下,1920X)を含むレビュワー向け評価キットの貸し出しを,短時間ながら受けることができた。そこで今回は,注目の新世代CPUについて,前編と後編の2回に分け,テスト結果をお届けしたいと思う。
なお,それに先だって既報を簡単にまとめておくと,1950XはRyzen Threadripperの発表時点における最上位モデルだ。定格クロック3.4GHz,自動クロックアップ機能「Precision Boost」有効時の最大クロック4.0GHzで,さらに余力がある場合に最大クロックを超えて動作クロックを引き上げるExtended Frequency Range(XFR)では最大4.2GHzを達成するとされている。倍率ロックフリーなので,自己責任を覚悟すればオーバークロック設定も容易だ。
CPU側でサポートするPCI Express Gen.3レーン数は64と,非常に多い。
一方の1920Xは1950Xの1つ下という扱いのCPUで,動作クロックは定格3.5GHz,最大4.0GHz,XFRで4.2GHzになっている。倍率ロックフリー,あるいは64のPCI Express Gen.3レーン数といった仕様は上位モデルと変わらない。
「Ryzen Threadripper」到着! これまでにない製品ボックスと,アイデア賞モノのCPU取り付け方法を見てみよう
前編となる本稿では,性能を知るうえで押さえておくべき仕様概要と,ゲームを中心としたアプリケーションにおける性能をまとめてみよう。
2種類のメモリアクセスモードをサポートするRyzen Threadripper
というのもRyzen Threadripperは,これまで一般PCユーザーのところまで下りてきたことのないような特徴を持っていて,しかも「それを知らずには使えない」と言っても過言ではない製品になっているからである。
それに先だって軽く復習しておくと,Zenマイクロアーキテクチャを採用するCPUでは,4基のCPUコアを1つの「CPU Complex」(公式略称「CCX」。以下略称表記)として管理し,2基のCCXを1つのシリコンダイに統合する設計になっている。Ryzen 7・5・3はこのシリコンダイを1基搭載することで最大8コア16スレッドに対応するわけだが,Ryzen Threadripperの場合は,1つのCPUパッケージ上に2基のシリコンダイを搭載する,いわゆるMCM(Multi-Chip Module)技術により,最大で16コア32スレッド対応を実現しているのが大きな特徴となる。
上の模式図ではシリコンダイの中でCPUコアが4基ずつ分かれているが,これはCCXを示したものだ。2基あるCCXの間にある「∞」マークは,2基のCCXがオンダイの広帯域インタフェースである「Infinity Fabric」によりつながっていることを表す。
ZenマイクロアーキテクチャにおいてInifnity Fabricはスケーラビリティを実現する鍵という扱いで,Ryzen Threadripperの場合は,2基のシリコンダイを結ぶオンチップのインタフェースとしてもInfinity Fabricを採用している(※模式図に見える縦向きの「∞」マークがそれ)。
そのスペックは大まかにしか明らかになっていないものの,102.22GB/sという広い帯域幅を持つことと,1bitあたり2pJ(ピコジュール)のエネルギーでデータ転送できる低消費電力性がアピールポイントだ。
上のスライドを見て気付いた人もいると思うが,Ryzen Threadripperの場合,メモリコントローラはシリコンダイあたり2chで,合計4chという仕様になっている。そのため,あるCPUコアからメモリへアクセスするとき,当該CCX,当該シリコンダイとつながっているメモリコントローラへアクセスするのと,Infinity Fabric経由でもう1つのシリコンダイとつながるメモリコントローラへアクセスするのでは,必然的にアクセス遅延が変わってくる。AMDによれば,アクセス遅延は前者が78ns,後者が133nsだ。
というわけでそろそろ本題に入るが,このように,複数のCPUコアがそれぞれ“自前”のメモリコントローラを持ち,メモリ空間に対して一律のメモリアクセス遅延ではアクセスできないマルチプロセッサシステムを,専門用語では「Non-Uniform Memory Access」(以下,NUMA)と呼ぶ。
対立概念は「Uniform Memory Access」(以下,UMA)で,これはすべてのメモリ空間に対して一律のアクセス遅延が得られるシステムだ。一般PC向けのCPUはこれまですべてUMAだった(※)。
※Ryzen 7・5・7は2基のCCXを1基のシリコンダイ上に実装しており,CCX間でアクセス遅延が異なる。なのでRyzenもNUMAに限りなく近いメモリアクセス仕様とは言えるのだが,RyzenはWindowsに「私はNUMAです」と申告しない仕様なので,WindowsもUMAとして扱っている。
NUMAは,マルチソケットのサーバーだととても一般的ながら,コンシューマ向けPC市場で採用されたことはほとんどない。「事実上,Ryzen Threadripperが初」と言ってもいいくらいだろう。しかもRyzen Threadripperの場合は「シングルソケットのNUMA」なので,これまでにない構成のマルチコアCPUということになる。
そこでAMDがRyzen Threadripperで導入したのが,2つのメモリアクセスモード,
- UMAモード(別名:Distributed Mode)
- NUMAモード(別名:Local Mode)
である。
UMAモードはRyzen TheadripperをシングルソケットのCPUとして扱うモードだ。UMAモードでは,4chのメモリコントローラを並列動作させることで広いメモリ帯域幅を実現する一方,前述のとおりInfinity Fabricを介したメモリアクセスが発生するため,その遅延は大きくなる。
一方のNUMAモードだと,WindowsはRyzen Threadripperをデュアルソケットのシステムと同等のCPUとして扱うことになる。
Windowsは,メモリコントローラを備えるCPUを「NUMAノード」(NUMA node,NUMAモードとは別物なので要注意)として把握している。デスクトップPC向けCPUのNUMAノード数は,これまですべて1だった。
それがRyzen Threadripperの場合は,NUMAモードを選択すると,WindowsからNUMAノード
Windowsは,認識しているNUMAノードの数に応じて,アプリケーションを割り当てるCPUと物理メモリページを決めている。NUMAノードが1つなら,Windowsは任意のCPUとメモリにアプリケーションを割り当てることができる。
一方,複数のNUMAノードを持つシステムでは,Windowsはアプリケーションが使用するCPUとメモリを特定のNUMAノードに割り当てるようになる。
Ryzen ThreadripperのNUMAモードだとWindowsは,アプリケーションを,可能な限りCPUに近い物理メモリ側に近いメモリへ割り当てるようになる。結果として,UMAと比べるとメモリアクセス遅延の大幅な低減を図れるわけだ。
一方で,4chの分散アクセスを(基本的に)行わなくなるため,メモリバス帯域幅はUMA接続時と比べると低下する。
UMAモードとNUMAモードでどんな違いがあるのか,ざっくりまとめたAMDの資料が下のスライドとなる。
左がUMAモード,右がNUMAモードを示しており,縦軸は左から順にメモリ読み出し性能,書き込み性能,コピー性能。グラフの上には平均のメモリアクセス遅延も書いてある。UMAモードのほうがメモリバス帯域幅で,NUMAのほうがメモリアクセス遅延でそれぞれ優位性があるというわけだ。
筆者が試用した時点では後者の準備が整っておらず,前者からしか切り替えはできなかったが,短い貸出期間が終わり,返却した直後に新しいRyzen Masterがレビュワーへ配布されたりもしていたので,読者がRyzen Threadripperを入手する頃には,Ryzen Masterからも設定切り替えを行えるようになっているのではなかろうか。
いずれにしても,UMAとNUMAの両モードを切り換えた場合は,「Windowsが認識するNUMAノード数」が変わるため,OSの再起動が必須となる。
Windowsが認識しているNUMAノード数は,MicrosoftがTechnetで配布している「Coreinfo」(Version 3.31)を使えば確認できる。実際にWindowsが認識しているCPU情報を得てみたので,その例を示しておこう。
Coreinfoのログ自体は4Gamerからダウンロードできるようにしておいたので(※リンクをクリックするとzipファイルのダウンロードが始まります),興味のある人はそちらもチェックしてもらうとして,ここでは一部の抜粋をお届けしてみたい。
1950X:UMAモード
16基ある物理CPUコアをNUMAノード0としてWindowsは認識している。「16コアのシングルソケットCPU」という,ごく普通の認識の仕方だ。Logical to Physical Processor Map:
**------------------------------ Physical Processor 0 (Hyperthreaded)
--**---------------------------- Physical Processor 1 (Hyperthreaded)
----**-------------------------- Physical Processor 2 (Hyperthreaded)
------**------------------------ Physical Processor 3 (Hyperthreaded)
--------**---------------------- Physical Processor 4 (Hyperthreaded)
----------**-------------------- Physical Processor 5 (Hyperthreaded)
------------**------------------ Physical Processor 6 (Hyperthreaded)
--------------**---------------- Physical Processor 7 (Hyperthreaded)
----------------**-------------- Physical Processor 8 (Hyperthreaded)
------------------**------------ Physical Processor 9 (Hyperthreaded)
--------------------**---------- Physical Processor 10 (Hyperthreaded)
----------------------**-------- Physical Processor 11 (Hyperthreaded)
------------------------**------ Physical Processor 12 (Hyperthreaded)
--------------------------**---- Physical Processor 13 (Hyperthreaded)
----------------------------**-- Physical Processor 14 (Hyperthreaded)
------------------------------** Physical Processor 15 (Hyperthreaded)
Logical Processor to Socket Map:
******************************** Socket 0
Logical Processor to NUMA Node Map:
******************************** NUMA Node 0
1950X:NUMAモード
Windowsは,ソケットこそ「Socket 0」だけだと認識する一方,NUMAノードの数は2つあり,NUMAノードごとに8基の物理コアがあると判定するようになる。「Approximate Cross-NUMA Node Access Cost」以下で,「ノード間のメモリアクセスコスト」の違いが算出されている点にも注目してほしい。00や01と記されているのがNUMAノード番号で,たとえば00がNUMAノード0だ。
縦軸と横軸が交わるところが,メモリアクセスコストである。縦の00と横の00が交わるところがノード0内におけるメモリアクセスコストで,これを1.0としたとき,他のノードのメモリアクセスコストがどうなのかを示している。たとえば,「ノード0→ノード1」のメモリアクセスコストは1.3で,「ノード1→ノード0」だと1.2,というわけだ。
やや気になるのは,ノード1とノード1の間,つまり同一ノードであっても1.2というコストが算出されている点だろうか。
Logical to Physical Processor Map:
**------------------------------ Physical Processor 0 (Hyperthreaded)
--**---------------------------- Physical Processor 1 (Hyperthreaded)
----**-------------------------- Physical Processor 2 (Hyperthreaded)
------**------------------------ Physical Processor 3 (Hyperthreaded)
--------**---------------------- Physical Processor 4 (Hyperthreaded)
----------**-------------------- Physical Processor 5 (Hyperthreaded)
------------**------------------ Physical Processor 6 (Hyperthreaded)
--------------**---------------- Physical Processor 7 (Hyperthreaded)
----------------**-------------- Physical Processor 8 (Hyperthreaded)
------------------**------------ Physical Processor 9 (Hyperthreaded)
--------------------**---------- Physical Processor 10 (Hyperthreaded)
----------------------**-------- Physical Processor 11 (Hyperthreaded)
------------------------**------ Physical Processor 12 (Hyperthreaded)
--------------------------**---- Physical Processor 13 (Hyperthreaded)
----------------------------**-- Physical Processor 14 (Hyperthreaded)
------------------------------** Physical Processor 15 (Hyperthreaded)
Logical Processor to Socket Map:
******************************** Socket 0
Logical Processor to NUMA Node Map:
****************---------------- NUMA Node 0
-----------------**************** NUMA Node 1
Calculating Cross-NUMA Node Access Cost...
Approximate Cross-NUMA Node Access Cost (relative to fastest):
00 01
00: 1.0 1.3
01: 1.2 1.2
このように,UMAモードとNUMAモードを切り替えると,Windowsが認識するNUMAノード数が変わる。長々と説明してきたが,冒頭でお伝えした「それを知らずには使えない」ほどの機能というのはまさにこれで,どちらを選ぶかがユーザーに委ねられているという意味において,Ryzen Threadripperは難しいというか,少なくとも初心者向けではないCPUということになるだろう。
もっとも見方を変えれば,Ryzen Threadripperは性質が異なる2種類のCPUとして使える,お得な存在と言えるかもしれない。
いずれにしても悩ましいのは,「どちらのモードを使うべきか」だろう。
AMDは,「一般的なクリエーター向けのマルチスレッドアプリケーションは,より大きなメモリバス帯域幅を必要とするケースが多いため,UMAモードのほうが有利になる」としている。
肝心要のゲームはどうかだが,「ゲームの場合はかなり難しく,タイトルごとに,性能向上を左右する要素が異なる」とAMDは言う。とくにメモリアクセス遅延やコア間のアクセス遅延が“効く”タイトルでは,UMAモードとNUMAモードを切り換えることで性能が変わるとのことだ。
ちなみに,AMDが例として挙げている「メモリアクセス遅延が効くタイトル」は以下の3つだ。
- Gears of War Ultimate
- Fallout 4
- Hitman Absolution
また,「コア間の遅延が効くタイトル」の例は以下の3つである。
- Call of Duty Modern Warfare
- Far Cry 4
- Star Wars Battlefront
ここに名前の挙がったタイトルではNUMAモードのほうが高いフレームレートが得られる可能性は高いものの,この結果も,あくまでAMDが調べた範囲内の話だ。それ以外のゲームでNUMAとUMAのどちらで有利かというのは,調べてみないと分からない。もっと言えば,ゲーム以外のアプリケーションでどちらがいいのかというのも,明らかにCPUコア数やスレッド数が重要というのものを除けば,やはり動かさないと分からない。
UMA,NUMAとは別に「Game」モードもあるRyzen Threadripper
さて,ここまであえて触れてこなかったが,Ryzen Masterには,UMA,NUMAの両動作モードとは別に,切り換えられる動作プリセットというものがある。
動作プリセットというのは,Ryzen Threadripper向けの設定済みプロファイルだ。Ryzen Masterは,設定をプロファイルにまとめて保存することができるが,それとは別に,
設定済みプロファイルとして,AMDはRyzen Masterに「Creator Mode」と「Game Mode」という,2つのプリセットを用意している。
では,Game Modeでは何ができるかだが,Game Modeを適用すると,Ryzen Masterの「Additional Control」にある「Leagacy Compatibility Mode」が「ON」になり,使えるCPUコア数が半分になる。
Leagacy Compatibility Modeは,「過去との互換性を考慮して,コアを半分にしてしまう」モードだ。
なぜそんなモードがあるかというと,AMDによれば理由は2つある。1つは,文字どおり互換性問題で,AMDによると,20を超える論理CPUがあるシステムでは起動しない,もしくは動作が不安定になるタイトルがあるという。具体的な例として挙がっているのは以下の3タイトルだ。
- DiRT Rally
- Far Cry Primal
- Far Cry
実際,試用機にFar Cry Primalをインストールして試してみたところ,Creator Modeのままだと,エラーすら表示されないまま起動途中で停止してしまうという症状を確認できた。このようなタイトルに対しては,Leagacy Compatibility Modeを有効化するわけである。
そしてもう1つの理由は,「60以上のタイトルを調査した結果,Leagacy Compatibility Modeを有効化したほうがフレームレートの上がるタイトルが多かった」というものだ。AMDによると,3840
ただし,フレームレート向上の中央値は+2%。最も高い性能向上率が得られる上位25%のタイトルでは平均12%ものフレームレート向上が得られる一方,下位25%のタイトルでは平均5%のフレームレート低下があったことも,AMDは紹介している。
つまり,ゲームではLeagacy Compatibility Modeを有効化してコア数を半分にしたほうがフレームレートは上がる可能性が高いものの,下がることもあるわけだ。
AMDが挙げている,Leagacy Compatibility Modeの有効化によってとくに性能向上が期待できるタイトルは次のとおりとなる。
- Sid Meier's Civilization VI
- Call of Duty: Modern Warfare Remastered
- Heroes of the Storm
- Gears of War: Ultimate Edition
- Dota 2
- Watch Dogs
- Thief
- Hitman: Absolution
- Fallout 4
もちろん,AMDが調べた60以上のタイトルでこうだったという話で,AMDが調べていないタイトルでどうなるかは,やってみないことには分からない。先のUMA,NUMAという2モードに加えて,ゲームではLeagacy Compatibility Modeを有効化するか否かという難しい判断を迫るCPUが,Ryzen Threadripperなのである。
Ryzen Threadripperではストレージと電源ユニットを除いて評価機材でテスト
長々とした説明になってしまったが,Ryzen ThreadripperがUMAとNUMAという2つのメモリアクセスモードを持つことはこれまでにない特徴であり,それが何を生んでいるかは,性能を見ていくうえでとても重要だ。
また,Game Modeプリセットを適用してLeagacy Compatibility Modeを有効化したときの挙動も気になるところである。
まず,今回1950Xと1920Xの比較対象として用意したのは,8コア16スレッド対応の「Ryzen 7 1800X」(以下,1800X)と,8月10日時点におけるIntelの最上位モデルである10コア20スレッド対応CPU「Core i9-7900X」(以下,7900X),そして,4Gamer読者に最も馴染み深いと思われ,かつ純然たるゲーム性能では現状最速の4コア8スレッド対応CPU「Core i7-7700K」(以下,7700K)の3つだ。
5製品の主なスペックは表1のとおりで,各プラットフォームの現行上位モデルをRyzen Threadripperと比較してみようということになる。
1950Xと1920Xでは基本的に,4Gamerで入手した評価キットを用いる。ただし,ここまで繰り返してきているように,貸し出し期間が極めて短いという制約があったため,一部は4Gamer側で用意した機材を用いることとなった。
試用期間に余裕があればこのメモリモジュールを使い回せたのだが,今回は残念ながらそうではない。そのため,比較対象となるプラットフォームでは,4Gamerで独自に用意したG.Skill International Enterprise製のPC4-25600,容量8GBモジュール4枚セット「F4-3200C15Q-32GVK」を使うことになる。こちらは公式のスペックとしてDDR4-3200設定時のメモリアクセスタイミングは15-15-15-35だ。
というわけなので,1950Xおよび1920Xの14-14-14-34設定に対して,他のCPUではメモリアクセスタイミングがやや遅くなる15-15-15-35設定でテストせざるを得なかった。
ちなみに,7900Xをレビューしたときは1800X環境でメモリモジュールを4枚差したときにDDR4-3200設定を行うと画面がブラックアウトしたままPOSTまでたどり着かなかったが,今回は最新BIOSへのデップデートが効いたようで,4枚差しでもDDR4-3200設定で問題なく動作した。さらに,メモリアクセスタイミング15-15-15-35も“通った”ので,今回,比較対象となる3プラットフォームでメモリアクセスタイミングは共通ということになる。
また,ストレージは,AMDがレビュワー向けにSamsung Electronics製のPCI Express x4接続のM.2 SSD「SSD 960 PRO」を用意していたが,これもやはり時間の都合で使い回せない。そのため今回,SSD 960 PROは使わず,4Gamerで独自に用意したKingston Technology製のSerial ATA 6Gbps接続型SSD「Hyper-X SAVAGE Solid-State Drive」(製品型番SHSS37A/480,容量480GBモデル)を全プラットフォームで共通して使うことにした。
評価キットに付属するThermaltake Technology製電源ユニット「Toughpower iRGB PLUS 1250W Titanium - TT Premium Edition」(以下,Toughpower)も,テストには使用していない。
理由は2つあり,ストレージ同様に,試用期間の都合で他のプラットフォームに使い回せないのが1つめ。ourghpowerの電源ケーブルが色分けされておらず,4Gamerのベンチマークレギュレーション20.0で導入した「EPS12Vの電流を測るクランプメーター」を使いづらかったというのがもう1つの理由である。
そのためテストには,SilverStone Technology製の「SST-ST1200G Evolution」(容量1200W)を全プラットフォーム共通で使っている。
そのほかテスト環境は表2のとおりだ。
レビュー前編となる今回実行するテストは,大きく分けてゲーム系と一般アプリケーション系の2種類である。4GamerではGPUの性能評価に対してレギュレーションを設けているが,CPU評価のレギュレーションはまだ決定していない。そのため,限られた時間で何ができるかを考えて,今回はテスト項目を決定している。
まず,ゲーム系では,ベンチマークレギュレーション20.0から,「3DMark」(Version 2.3.3732)と「Superposition Benchmark」(Version 1.0,以下 Superposition),「Overwatch」,そして「ファイナルファンタジーXIV: 紅蓮のリベレーター」公式ベンチマークソフト(以下,FFXIV紅蓮のリベレーター ベンチ)の4つに絞った。Overwatchでは,「Open Broadcaster Software」(Version 19.0.3,以下 OBS)を用いたゲーム録画のテストも行うが,詳細はそれぞれのパートで紹介する。
一方の一般アプリケーションでは今回,Futuremark製の総合ベンチマーク「PCMark 10」(Version 1.0.1275)と,CPUベースで3Dのレンダリングを実行する「CINEBENCH R15」(Release 15.038),ファイルの圧縮解凍を行う「7-Zip」(Version 16.04),フォトレタッチソフト「DxO OpticsPro 11」(Build 12306),動画変換を実行するトランスコードソフト「ffmpeg」(Nightly Build Version N-86691-gc885356)でテストを行った。こちらも具体的なテスト方法は,個別の評価の部分で詳細に説明したい。
テストにあたっての,各プラットフォームの設定にも触れておこう。まず,1950Xと1920Xでは前出のUMAモードとNUMAモードの両方を用いる。ゲーム系のテストのうち,純然たるベンチマークではGame Modeプリセットを適用してコア数を半減させた状態でもスコアを取得した。
また,今回はユーザーが常用の状態を想定しているため,Ryzen系では自動クロックアップ機能Precision Boostを有効に,またXFR機能も有効にしている。一方のIntel系でも同様に自動クロックアップ機能「Intel Turbo Boost Technology」を有効にしているほか,7900XではXFR機能に類似する「Intel Turbo Boost Max Technology 3.0」も有効化している。つまり,全プラットフォームで最大の性能が得られると思われる設定で統一しているわけだ。
なお,Windowsの電源設定は「高パフォーマンス」で統一。Ryzen Threadripperでは「Ryzen Balancedか高パフォーマンスのいずれか」を使うようAMDから指定されており,今回は他のプラットフォームとの兼ね合いで,高パフォーマンス設定のほうを選択した次第である。
ゲームの録画で圧倒的な威力を発揮するRyzen T h r e a d r i p p e r。 U M AとNUMAのどちらがいいとは断言できない
というわけで,まずは基本的なゲーム系ベンチマークの結果から見ていこう。グラフ1はDirectX 11テストである「Fire Strike」の総合スコアをまとめたものだ。3840
Fire Strikeの“無印”において,8コア動作しているGame Modeのスコアが,同じ8コアのRyzen 7 1800Xよりも約4%高いスコアを示しているのは面白いところだ。動作クロックはほとんど同じなので,1950Xの広帯域メモリが効いているのかもしれない。
一方で1920Xの総合スコアはUMAモード,NUMAモードとも冴えないが,Game Mode時のスコアがUMAモードに対して約4%,NUMAモードに対して約7%高いことは押さえておきたい。
なお,UMAモードとNUMAモードの違いはよく分からない。1920XのFire StrikeではUMAのほうがNUMAに対してスコアが約2%高いものの,1950Xだとそのような傾向は出ていないので,UMAが有利とは言い切れないと思われる。
グラフ2は,Fire Strikeの総合スコアから,CPU性能を見る「Physics test」の結果である「Physics score」を抜き出したものだ。
マルチスレッドに最適化されているテストだけに,16コア32スレッド対応の1950Xが完全に頭一つ抜けている。Fire Strike“無印”の総合スコアで1950Xがトップに立った理由はこれと言って間違いないだろう。
興味深いのは,1950XのスコアでUMAとNUMAの両モードに違いがある点だ。Fire Strike Ultraでは約2%,Fire Strike Extremeでは約4%,Fire Strike“無印”では約3%と,バラツキはあれど,いずれもNUMAモードのほうが高い。
一方で1920Xだと,UMAとNUMAの両モードに同様の傾向は見られず,逆にUMAモードのほうが1〜3%程度高い結果になっている。したがって,単純に「3DMarkではUMAモードがいい」「NUMAがいい」と言い切れない。
8コア動作になる1950XのGame Modeは,3つのテスト条件で1800Xより1〜3%高いスコアを示した。同じ8コアでもメモリ周りの強力な1950X(のGame Mode)のほうが,やや性能は高いのかもしれない。
あるいは,Ryzen Threadripperで大幅にエラッタ修正が入ったり,PCI Expressを含むI/O性能が向上したりしていると言われているので,本当だとすると,その結果がGame Modeで現れた可能性もある。
続いてはSuperpositionである。Superpositionでは,ベンチマークレギュレーション20.0に準拠し,「1080p Extreme」「1080p High」「1080p Medium」という3つのベンチマークプリセットを実行している。グラフ3がその結果だが,全体として,CPUによるスコアの違いはそれほど大きくない。あえて言えば1950XだとNUMAモードのほうがUMAモードより1〜4%程度高いスコアを示し,1920XだとUMAモードのほうがNUMAモードより1〜3%程度高いスコアを示しているので,「メモリアクセスモードの有利不利が逆転する傾向は3DMarkと同じ」と言えなくもないが,その程度である。
全体を見回してみると,1920XのNUMAモードは1080p Extreme以下のテスト条件でスコアがやや低めだ。
実際にプレイして検証するゲームの代表例として,今回はベンチマークレギュレーション20.0に準拠しつつ,「ウルトラ」プリセットでテスト解像度を2560
結果はグラフ4,5のとおりで,2560
その傾向は1920
もっとも,1920Xや1950XのUMA,NUMAの間にははっきりした違いが見られない。1920X,1950Xともに1920×1080ドットでは平均が2fps前後高いが,誤差の範囲とも言えなくもないので,OverwatchでUMAが有利とは言い切れないだろう。
続いてはFFXIV紅蓮のリベレーター ベンチである。テスト方法はベンチマークレギュレーション20.0に準拠しつつ,プリセットは「標準品質(デスクトップPC)」,テスト解像度は2560
ただし,筆者がうっかりしていてFrapsによる最小フレームレート計測を忘れたという理由により,グラフ6は総合スコアを示し,グラフ画像をクリックすると平均フレームレートベースのグラフ6’を表示するという,レギュレーション19世代までのやり方を採用しているので,この点はご了承を。
さて,数字を見てみると,まず圧倒的なのは7700Kであり,この時点で,FFXIV紅蓮のリベレーター ベンチにおいて重要なのがスレッド数ではないことが分かる。2番手が7900Xなのは,「FFXIVはIntel有利」という傾向を反映している印象だ。
1950Xと1920Xでは,明確にNUMAモードが優勢という結果になった。1950Xでは12〜17%程度,1920Xでは11〜15%程度も違うのだから,インパクトは大きい。
なぜここまでの違いが出ているのかだが,その理由は,FFXIV紅蓮のリベレーター ベンチが論理CPU数だけスレッドを起動するという,ゲームエンジン側の仕様にあると筆者は考えている。多数のレンダリングスレッドを起動するため,各スレッドのメモリアクセス遅延が累積的にスコアへ影響を与える可能性があるわけだ。
FFXIV紅蓮のリベレーターに限らず,同じような実装のタイトルではUMAモードに比べてNUMAモードが有意に高い性能を示すケースが生じうるだろう。
一方,7700Kのスコアが高かったことでGame Modeの効用にも期待したのだが,結果は芳しいものではなかった。1950X,1920Xとも,UMAモードよりは高いスコアを示す一方で,NUMAモードのそれにはまったく届いていない。
ゲーム系検証の最後は,OBSによるゲームの録画である。
そこで今回は,7900Xレビュー時の「中負荷」をベースに,16コア32スレッド対応の1950Xが持つ性能を活かせる程度まで録画負荷を高めることにした。具体的には,エンコーダとしてx264を使用し,10MbpsのVBRでOverwatchのゲームプレイを録画する。プリセットは「fast」とし,そのうえで「animation」チューニングを加えることにより,リアルタイム録画としてやや高めの負荷が得られるように設定した次第だ。
ここでは解像度として1920
なお,ゲームの録画は言うまでもなく,CPUコア数が効くテストだ。物理CPUコア数を半減させるGame Modeを選択する意味はないので,このテストではGame Modeは省略している。
また,掲載する動画では,録画した約1分間のシーンの中から,典型的で同じシーンを選んで1950X
というわけで,まずは1920
ただし,今回の設定だと1800Xではわずかにフレーム落ちが見られた。「使えない」レベルではないもののフレーム落ちは出ており,1950Xや1920X,7900Xといった10コア以上のCPUと比べるとぎこちない録画品質であることは否めない。
1950Xと1920Xの場合,UMAとNUMA,両モードの違いは感じない。どちらでも実用レベルの映像が得られるということでいいだろう。
続いて,より負荷の高い2560
それと比べると,(性能ターゲットを1950Xに置いているのだから当たり前ではあるものの)1950Xは依然としてスムーズだ。さすがは16コア32スレッド対応CPUといったところだろう。細かく見ると,UMAモードとNUMAモードでは前者のほうがより滑らかなようだが,その理由については後段であらためて触れたい。
以上が,ゲーム関連のテスト結果である。貸し出し期間の都合でテスト規模を小さくせざるを得なかったのが返す返すも残念だが,それでも,OverwatchのようにUMAとNUMAの両モードで大きな違いないタイトルがあるかと思えば,FFXIV紅蓮の紅蓮のリベレーターのように,明らかにNUMAモードが有利になるものもあるなど,AMDが言及しているとおり,ゲームタイトルごとにメモリアクセスモードとの相性が出たり出なかったりすることがあるのはよく分かった。
Ryzen Threadripper搭載機でゲームをプレイするなら,まずはUMAモードとNUMAモードのそれぞれでざっとフレームレートを計測してみるのが正解ということになるはずだ。
また,ゲームの録画という,CPUの処理できるスレッド数が問われる用途では,1920Xと7900Xが(AMDの主張どおり)ほぼ互角の性能を示し,1950Xであれば7900Xを超える性能が得られる。これはそう断言してしまって構わないだろう。
マルチスレッド性能が問われる局面では7900Xを圧倒する1950X
続いては一般アプリケーションを用いたベンチマークである。CPUコアを半分(=シリコンダイ1基分)無効化するGame Modeプリセットは常用するものではないことから,以下,1950Xと1920XではUMAモードとNUMAモードのみでテストを進めていくことになる。
というわけでまずは,Futuremark製の総合ベンチマークアプリケーションであるPCMark 10の結果を見ていこう。今回はCPUのテストなので,「PCMark 10 Extended」を選択し,「Custom」タブでOpenCLアクセラレーションを無効化したうえで実行している。そのため,総合スコアは得られない点に注意してほしい。
結果はグラフ7のとおりだ。Webブラウジングやアプリケーションの起動といった日常的な快適さを見る「Essentials」や,ビジネスアプリケーションの性能を見る「Productivity」では,シングルスレッドの性能が嫌でも効いてくるため,どうしてもシングルスレッド性能で競合製品に一歩譲るRyzenは不利になる。
一方,マルチスレッド処理が有効なレイトレーシングソフトウェア「POV-Ray」を含むDigital Content Creationでは,1950Xが7900Xと肩を並べた。1950Xと1920Xのスコアに注目すると,いずれもUMAモードよりNUMAモードのほうが約1%高いので,若干NUMAモードが有利になっているようだ。
その理由だが,Digital Content Creationの個別テストとなる,3Dのレンダリング性能を見る「Rendering and Visualization Score」を参照するとはっきりする。
グラフ8がそのスコアだが,ここで1950XだとUMAモードに対してNUMAモードのスコアが約5%,1920Xだと約3%高い。前述のとおり,クリエイター向けアプリケーションではUMAモードに分があるというのがAMDの立場だが,それでもソフトウェアによってはNUMAのほうが高い性能を示すケースもあるので,その点は要注意と言えそうである。
次は,3Dレンダリングベンチマークにして,マルチスレッド性能検証用としてはドの付く定番であるCINEBENCH R15だ。ここではすべてのCPUコアとスレッドを使い切る「CPU」と,1コア1スレッドの性能を見る「CPU(Single Core)」のスコアを掲載している。
CINEBENCH R15はCPUのマルチスレッド性能が素直に問われるが,グラフ9を見ると,当然のように1950Xのスコアが突出した。UMAモードとNUMAモードはほぼ互角ながら,ほんのわずかにNUMAモードのほうがスコアは高いことから,後者のスコアを基準に計算してみると,対1920X(のNUMAモード)では約23%,対7900Xだと約36%ものギャップがある。
北米市場におけるメーカー想定売価999ドル(税別)の1950Xが,同1029ドル――1000個ロット時単価は999ドル――の7900Xに対して約36%高いスコアを示すというのは相当に衝撃的だ。
なお,計算する都合上,上で「ほんのわずかにNUMAモードのほうがスコアは高い」としたが,実際のところ,1950Xにおける両メモリアクセスモードの違いはほぼ誤差範囲である。一方,1920XではNUMAモードのほうがUMAモードよりも約2%高い。
PCMark 10のRendering and Visualization ScoreではUMAとNUMAに有意な差があったが,同じ3Dレンダリング系でも使っているエンジンによって,またCPUコア数によって,単純にどちらが有利不利とは言い切れないことが分かる結果である。
日常作業はもちろんのこと,ゲームのインストール時にもお世話になる,ファイルの圧縮および解凍性能を見てみよう。ここではマルチスレッドに最適化されたファイルの圧縮・展開ツールである7-Zipを用いる。
7-Zipのベンチマークは手動で停止しない限りテストを繰り返す仕様で,圧縮,展開の個別評価欄の数字はテストするたびに更新されていく。なので,個別評価欄に大きなゆらぎがないことをテスト回数5回になるまで確認したうえで,その時点の総合評価をスコアとして採用することにした。
総合評価の単位は,1秒間に何回の命令を実行できたかを示すMIPS(Mega Instruction per Second)だが,その結果をまとめたものがグラフ10だ。
ここでダントツのトップに立ったのはUMAモードの1950Xで,2番手となったNUMAモードと比べて約13%のスコア差を付けている。対7900Xでも約18%高いスコアだ。その7900Xに対して1920XのUMAモードはほぼ互角の,1920XのNUMAモードとの間では約16%高いスコアをそれぞれ示しているのも分かる。いずれにせよ,7-Zipではメモリアクセス遅延よりもメモリバス帯域幅が重要になるという理解でいい。
今回はDxO Optics Pro 11を使い,処理負荷の高い「ノイズ除去」→「PRIME」を含むベンチマーク用のプリセットを作成した。ニコン製デジタルカメラ「D810」を用いて撮影した,解像度7360
テスト結果はグラフ11のとおりで,グラフの横軸は300秒(=5分)刻みにしてある。
最も時間を要した7700Kで42分以上かかるところ,8コア16スレッド対応の1800Xはそれを27分台にまで縮めた。さらに7900Xで22分半までスコアを詰めるが,1950XはUMAモードで20分を切っている。1920XもNUMAモードで21分半と,7900Xより短い時間で処理を終えた。価格対性能比で見ると,1800Xの健闘も光る。
なお,1950XのNUMAモードだけ極端にスコアが悪い理由は何とも言えないものの,何かトラブルが起きた可能性はある。
一般アプリケーションを用いた性能検証の最後は,ffmpegを使った動画のトランスコードである。
今回はFFXIV:紅蓮のリベレーターで実際にゲームをプレイした,計7分25秒,ビットレート437MbpsのMotion JPEG形式,解像度1920
使用したバッチファイルを参考のため以下のとおり掲載しておくが,animationチューニングを加え,可能な限り画質の劣化を抑えた変換を行う設定である。
del test.mp4
powershell -c measure-command {.\ffmpeg -i Diademe.avi -c:v libx264 -b:v 8000k -preset slow -tune animation -crf 18 -threads 0 test.mp4}
その結果がグラフ12である。最速は11分台を叩き出した1950XのUMAモードで,1920Xと7900Xがそれに続くという,ある意味順当なものになっている。
UMAモードとNUMAモードでかなりのスコア差が生じているのも目を惹くところで,実際,1950XではUMAモードがNUMAモード比約83%,1920Xでは同92%の時間で処理を完了させた。
なぜこうなるかだが,libx264を用いるffmpegの場合,NUMAモードではCPUコアの半分がほぼ遊んだ状態になってしまうためだ。Windowsがエンコードスレッドに対してアクセス遅延の小さなメモリを優先的に割り当てようとする結果として,CPU使用率が大きく低下し,エンコード時間が余計にかかってしまうのである。
なお,録画テストのときに後述するとした「録画時にUMAモードの成績がややよかった理由」も,おそらくはffmpegと同じではないかと推測している。ここでもテストスケジュールの都合で「ゲーム中のCPU使用率」は計測できていないため,断言こそできないものの,エンコーダとして同じx264を使用している以上,同様の現象が生じていても不思議ではない。
以上,このパートではゲーマーが純然たるゲームプレイ以外で使う可能性の高い,主立った一般アプリケーションにおける性能を見てきたが,マルチスレッドが有効なアプリケーションにおいて,1950Xの性能は明らかに7900Xより高い。また,1920XはAMDの主張通り,7900Xとほぼ互角だ。
PCMark 10のEssentialsやProductivityのように,Ryzen Threadripperが好成績を残せないテストもある。ただ,コア数の多いHEDT環境において,Webブラウジングや日常作業で不自由ない性能が出ていれば十分だろう。重要なのは「多数のコアを活かせるアプリケーションで速いかどうか」であって,その点において1950Xは,いま市場で購入できる最高性能のCPUであると言い切れる。
注意が必要なのは,ゲーム以外のアプリケーションにおいても,UMAモードとNUMAモードの使い分けが難しいところ。x264を用いるffmpegのようにUMAモードに明確なメリットがあるアプリケーションがある一方で,PCMark 10のDigital Content Creationのように,NUMAのほうが優勢というケースもあるからだ。
UMAとNUMAの両モードはシステムの再起動なしには切り替えられないため,「切り換えながら使う」のは現実的でない。そのためユーザーは,日常的によりよく使うアプリケーションでの性能を調べて,自分で常用するモードを決める必要があるのではなかろうか。
Ryzen Threadripperは消費電力もまずまず
最後に消費電力を見ておきたい。今回はベンチマークレギュレーション20.0に規定されているとおり,アプリケーション実行中にEPS12Vの電流を測り,12を掛けて電力換算する。
システムをアイドル状態で30分放置した時点の電力値をアイドル時のスコア,またアプリケーション実行中に記録した最大値を当該アプリケーションのスコアとしてそれぞれ採用している。
テスト行っていて気付いたのは,1950Xと1920XのUMAモードおよびNUMAモードでは消費電力値に一定の傾向が見えたことだ。たとえば,1950Xで最も高いピーク消費電力を示したDxO OpticsPro 11ではUMAモード時の約234Wに対して,NUMAモード時224W,ffmpegでは同UMAモード時約143Wに対して,NUMAモード時には132Wという具合だ。UMAモードとNUMAモードはほぼ同じか,NUMAモードがやや低めという結果が全般に見られる。この傾向は1920Xでも同じだ。
そこで今回は,デフォルト設定であるUMAモードのスコアを典型的な消費電力値として採用することにした。NUMAモードでは若干低くなることを踏まえてもらえればと思う。
一方,Game Modeプリセットを適用すると明らかに消費電力が変わってくるため,Game Mode時のスコアはテストを実施したアプリケーションに限って結果を計測した。
結果はグラフ13のとおり。そのまま掲載すると縦に長くなりすぎるため,記事中には簡略版を示しているが,1950Xで目を惹くのはDxO OpticsPro 11における234Wという数字だろう。ここでは性能に対する代償を払っているわけだが,最高性能を出しているのも確かなので,納得できる範囲とは言えそうだ。
むしろ興味深いのはDxO OpticsPro 11以外のスコアで,7900Xに対して1950Xが全体に低い消費電力を記録している。たとえば,ffmpegだと性能では1950Xのほうが良好な成績を残しているにもかかわらず,消費電力は7900Xの約160Wに対して,1950Xは約143Wに留まっている。
ただ,FFXIV紅蓮のリベレーター ベンチだと,7900Xの約94Wに対して,1950Xでは143Wを記録しており,他のテストとは異なる結果になった。原因は特定できていないものの,1920Xでも同様の傾向が出ている以上,偶然ではなさそうだ。論理CPUコア数分のスレッドを起動するというFF XIV:紅蓮のリベレーターの特性がRyzen Threadripperの消費電力を引き上げる原因になっているのかもしれない。
1920Xの消費電力もFFXIV紅蓮のリベレーター ベンチを除けば7900Xを下回っていた。7900Xとほぼ互角の性能を見せているだけに,一部の例外を除き,7900Xを下回る消費電力を示した点は特筆できるだろう。
今回のテストでやや異常な値を見せたのは1800Xで,DxO Optiscs Pro11やCINEBENCH R15では200Wを超えてしまう結果を残した。1920Xよりも消費電力が高いというのは驚きだが,EPS12Vのピーク時を取っていることが関係しているかもしれない。平均消費電力は1920Xが高くてもピーク時は1800Xが上回るということは十分にありえるからだ。
今回の結果を踏まえ,中央値も取ってみようと思うので,その結果はレビュー後編でお伝えしたい。ピーク消費電力を示した今回の結果は参考程度にしてもらえればと思う。
ただ,そんな参考値的なデータでも,「Game Modeプリセット適用時の消費電力は明らかに低く,おおむね1800Xと同等かそれ以下に収まっている」ことは言えよう。ゲームのフレームレートはコア数が半分になってもさほど変わらないため,「ゲームプレイ時には消費電力の観点からGame Modeプリセットを適用する」という運用の仕方は検討に値するかもしれない。
CPUの温度が気になる読者も多いと思うが,今回,温度計測データは掲載しない。なぜかというと,Ryzen Threadripperのテストでは評価キットに含まれるThermaltake Technology製の簡易液冷CPUクーラー「Floe Riing RGB 360 TT Premium Edition」を利用したのに対し,スケジュールの都合で返却せざるを得ないという理由から,残るプラットフォームではすべてサイズ製の空冷式サイドフローモデル「MUGEN 5 Rev.B」を使用したからだ。
結果的に,それぞれのプラットフォームで冷却システムを揃えることができないので,データを示しても意味がないだろう,というわけである。
それでも……という読者のため,参考までに,1950Xで最も消費電力の高かったDxO OpticsPro 11の実行時にRyzen Masterの温度表示を観察してみたのだが,1950X,1920Xとも67℃で頭打ちになっていた。どうやら,簡易液冷システムの冷却能力と,CPUからの発熱量が67℃で平衡状態に入ったようだ。
ちなみにそのときのラジエータ温度もかなり低く,「室温より少し高いかな」程度に収まっていた。したがって,Floe Riing RGB 360 TT Premium Editionの冷却能力はかなり高いと言ってよく,それゆえにほかのプラットフォームとCPUクーラーが異なる今回のテスト環境で,CPU温度を比較することの意味はなさそうである。
ただ,ピーク時の消費電力から見て,1950X,1920Xともに,TDP(Thermal Design Power,熱設計消費電力)180Wというスペックに見合う発熱なのは確かだろう。7900Xと比べても特段に消費電力が高かったりはしていないので,HEDT向けのCPUとして,電力性能はまずまずと見ていいのではなかろうか。
現時点で最高のマルチスレッド性能を持つデスクトップPC向けCPUだが,とにかく国内価格設定が残念
7700Kと1800X,そして7900Xが出揃った時点で4Gamerは,「純然たるゲーム用途では7700Kが最高で,配信なども考慮に入れるなら1800Xが候補となる」という結論を下していた(関連記事)。それを踏まえて話をすると,まず「純然たるゲーム用途」で7700Kがファーストチョイスというのは,Ryzen Threadripperの登場後も揺るがない。それはおそらく,8月下旬以降に発売予定のCore Xプロセッサ上位モデルが登場しても変わらないはずだ。
また,一般的なゲーマーが配信や動画のトランスコードなどまで考慮に入れたときコストパフォーマンスに優れた選択がRyzen 7だというのも,しばらくは変わらないだろう。
ならRyzen Threadripperはというと,マルチスレッド性能が要求されるアプリケーションにおいては,8月10日時点で世界最高性能のデスクトップPC向けCPUである。これはもう,間違いないレベルだ。AMD製のCPUを「世界最高性能」と紹介できるのはいつ以来だろう?
もちろん,最終的な評価はSkylake-Xシリーズのラインナップがすべて出揃ってからになるのだろうが,仮にIntelの上位モデルが「マルチスレッド性能世界最速」の座を今後奪い返すのだとしても,税別999ドルの1950Xが税別1029ドルの7900Xを圧倒している事実は揺るがない。税別1000ドルクラスのHEDT市場向けCPUとして,1950Xは有力な選択肢だ。
また,1950Xと比べると地味ながらも,税別799ドルのCPUで税別1029ドルと互角のマルチスレッド性能を発揮できている1920Xにも,やはり十分な魅力がある。「価格対マルチスレッド性能比」を追求するならこちらだろう。
ただし,UMAモードとNUMAモードの使い分けはなかなか難しそうだ。
マニア視点に立てば,「UMAモードとNUMAモードとでどのような違いが生じるのかを調べる」という興味深い作業ができるので,一粒で二度美味しいくらいの評価になると思う。だが,純粋にマルチスレッドに最適化されたアプリケーションをガンガンぶん回したい向きには,UMAモードとNUMAモードの使い分けは,明らかに,悩ましい問題として立ちはだかることになる。いずれ情報は出揃うはずだが,それまでは十分に注意すべきポイントということになると思われる。
そんなわけで,性能面に関してはほとんど不満のないRyzen Threadripperだが,とにかく問題なのは国内における価格設定である。
あらためてRyzen Threadripperの北米市場におけるメーカー想定売価と国内におけるメーカー想定売価,単純計算した税込価格と,競合製品の北米市場におけるメーカー想定売価および2017年8月10日現在の実勢価格を以下のとおり示しておくが,1950Xは「競合より安くて速い」はずが,「速いけれどもかなり高価なので,人を選ぶ」CPU,1920Xは「競合より200ドルも安いのに同等性能」だったのが「同等性能なのに高いため,選ぶ理由がほとんどない」CPUになってしまっている。とくに1920Xの“初値”は致命的だと言わざるを得ない。
- 1950X:999ドル(税別),14万5800円(税別),15万7464円(税込)
- 1920X:799ドル(税別),11万5800円(税別),12万5064円(税込)
- 7900X:1029ドル(税別),11万4000〜12万5000円程度(税込)
近い将来,店頭価格が落ち着くことを祈るばかりである。
前編はここまで。
レビュー後編では,CPUの特性を調べるベンチマークソフトウェアである「AIDA64」と「Sandra」を主に用い,Ryzen Threadripperの基本特性を細かく調べてみたいと思う。
Ryzen Threadripperレビュー後編。依然として謎の多いプロセッサの正体に,基本テストで可能な限り迫ってみた
Ryzen Threadripper 1950Xをパソコンショップ アークで購入する
Ryzen Threadripper 1950Xをパソコンショップ アークで購入する
Ryzen Threadripper 1950XをAmazon.co.jpで購入する(Amazonアソシエイト)
Ryzen Threadripper 1920XをAmazon.co.jpで購入する(Amazonアソシエイト)
AMDのRyzen Threadripper製品情報ページ
- 関連タイトル:
Ryzen(Zen,Zen+)
- この記事のURL: