2016年7月15日2:00,Futuremarkは,定番ベンチマークソフト「3DMark」の新テストとなる「Time Spy」(タイムスパイ)を発表した。4Gamerの公式ミラーでも,3Dmark初のDirectX 12対応グラフィックステストとなるTime Spyのダウンロード提供をまもなく開始予定だ。
リンク:4Gamerの3DMark公式ミラーページ(※準備が整い次第,こちらで公開します)
これまでも3DMarkには,DirectX 12,より正確を期すとDirect3D 12のAPIを使ったテスト「API Overhead feature test」があったが,これはあくまでもAPIのオーバーヘッドを計測するためのもので,GPU同士の比較には適さないものだった。それが,「高性能なPC向け」とされるTime Spyの登場により,ようやく,DirectX 12世代のGPU性能を3DMarkから比較できるようになるわけだ。
なおTime Spyは,当初,「Basic Edition」と呼ばれる無料体験版での配布となるが,後日,既存のユーザーに対するアップデート版も提供になる予定だ。
ではこのTime Spyとはどんなテストで,GPUごとにどういうスコア傾向が見られるだろうか。Time Spyテストの概要をまとめつつ,GeForceとRadeon計16製品を用いてのテスト結果をお伝えしたい。
■DirectX 12 Feature Level 11_0を採用するTime Spy。Async Computeによる負荷は10〜20%ほど
Futuremarkは,「3DMarkは,ゲームにおける挙動を模したテストである」という立場を貫いており,そのため,各テストにストーリー的なものを与えている。今回のTime Spyで用意されているのは,「未来からの来訪者が,博物館と思しき場所を巡り,3DMarkの歴史を辿る」という,アドベンチャーっぽい感じのストーリーだ。
そんなTime Spyの動作要件は以下のとおり。対応OSがWindows 10のみなのは当然として,32bit版Windows 10が動作対象外となっている点は,押さえておいたほうがいいだろう。
・OS:64bit版Windows 10
テスト解像度は2560×1440ドット。Advanced Edition以上では解像度の変更が可能だが,変更した場合,総合スコアは算出されない。
DirectX 12でサポートされるAsynchronous Compute(非同期演算,以下 Async Compute)は,もちろん採用。Time Spyではレンダリングパスを重ねることでGPUの使用率を最大にする設計を実装しているという。Async Computeによる描画負荷は,フレームあたり10〜20%だそうだ。
■Graphics testはA-bufferを多用する構成
Time Spyは,「Graphics test 1」「Graphics test 2」「CPU test」という,3つのテストで構成されている。これだけ見ると,DirectX 11世代のテストである「Fire Strike」から「Combined test」を省略しただけのようなイメージだ。
DirectX 12の特徴として,CPUのオーバーヘッドが少なくなるという話題はよく挙がるわけだが,結果としてTime Spyではオブジェクトやテクスチャ,それにエフェクトの描画数が増しており,Futuremarkが示した資料によると,Fire Strikeと比べて,Time Spyでは,頂点数(Vertices),トライアングル数(Triangles),テッセレーションのパッチ数(Tessellation patches),Compute Shaderの実行数(Compute shader invocations)のすべてで,フレームあたりの処理量が圧倒的に多くなっているという。
「フレームあたりの処理量が圧倒的に多くなった理由」をFuturemarkは明言していないのだが,その代わりに同社は,「DirectX 12の利用により,デベロッパはハードウェアの利用率やマルチスレッドのスケーリングを上げることができるが,グラフィックスに関する高度な知識とメモリレベルのプログラミングスキルが必要」だとは述べている。
上の表を見ると,Time SpyにおけるGraphics test 1とGraphics test 2ではテッセレーションの量が大きく異なっていることも分かるが,具体的にそれぞれどういった内容のテストなのだろうか。
Graphics test 1は透明要素のレンダリングに焦点を当てたテストとなっているとのこと。
パーティクルに対する影の生成は一部の選択された光源に対してのみ行い,一方でレイマーチング法を用いた(≒レイトレーシングベースの)ボリューメトリックイルミネーション(Volumetric Illumination)は平行光源(Directional Light)に対してのみ有効になっている。
一方のGraphics test 2は,レイマーチング法を用いたボリューメトリックイルミネーションで,大量のシャドウやスポットライトを描くという,より負荷の高いものになっている。こちらでA-Bufferは芝の半透明処理や,小さなパーティクルの処理に使っているとのことだ。
最後にCPU testだが,こちらではGPUの負荷を最小限に保ちつつ,物理シミュレーションや遮蔽されたオブジェクトのレンダリングを省く処理であるオクルージョンカリング(Occulusion Culling),アルゴリズムで自動的に意味のあるコンテンツを作り出すプロシージャル(Procedual)な生成処理をCPUに実行させる実行させるテストとなっている。負荷を切り換えながら10秒間のテスト実行を3回繰り返す仕様で,3回めの負荷が最も高くなる。
このCPU testでは「水晶のプロシージャル生成」と「古典的なboid-system(=群システム)とシンプルなバネ質量系を使った小さい物体群のシミュレーション」のコンビネーション実行を行うことになるという。
■スコアの計算方法と,マルチGPU対応
3DMarkでは,テストごとに平均フレームレートを測定し,そこからスコアを算出するというのが通例で,それはTime Spyでも変わらない。
またCPU testでは,3回あるテストのうち,最も負荷の高い3回めの平均フレームレートを抽出し,それに298をかけたものを「CPU Score」として採用する。
そして総合スコアは,GPU Scoreに0.85,CPU Scoreに0.15の重み付けを与えるため,それぞれの重み付けの値を各スコアで割った値を加算し,その逆数を総合スコアとして採用している。
なお,DirectX 12は,マルチGPU動作モードとして,異なるメーカーのGPUが同一システム上にある状態をサポートする「Multi Display Adapter」(以下,MDA)と,複数のGPUを1基のGPUに見立てる「Linked Display Adapter」(以下,LDA)をサポートしているが,Time Spyで対応するのはLDAのみ。より正確を期すと,LDAにはドライバ側で複数のGPUを駆使する,SLIおよびCrossFire風の挙動となる「LDA Implicit」(LDA暗黙)モードと,アプリケーション側から複数のGPUを1基として見立てて扱う「LDA Explicit」(LDA明示)モードの2種類があるのだが,Time Spyが対応するのは後者だ。
なお,レンダリングモードはAFR(Alternate Frame Rendering)を採用するとのことだ。
■GPU計16製品でTime Spyを実行してみる
といったところを踏まえ,テストのセットアップに入ろう。
■■GeForce
■■Radeon
今回もできる限りリファレンス仕様のものを用意すべく努力したが,GTX 960やR9 390Xなど,そもそもリファレンスデザインを採用する製品が国内で流通していないものは,カードメーカー各社の製品を用意したうえで,MSI製のオーバークロックツールの「Afterburner」(Version 4.3.0 Beta)を用いて,リファレンスレベルにまで動作クロックを下げて利用している。それでもクーラーの能力が異なるため,ブーストクロックは高めに出てしまうのだが,そこはやむを得ないものとして話を進める。
用いるグラフィックスドライバは,GeForce側が「GeForce 368.69 Driver」,Radeon側が「Radeon Software Crimson Editon 16.7.2 Hotfix」で,いずれもテスト時に最新バージョンとなるものだ。そのほかテスト環境は表のとおりとなる。
また,これは毎度おなじみだが,テストに用いたCPUの自動クロックアップ機能「Intel Turbo Boost Technology」は,テストによって効果に差が生じることを防ぐため,マザーボードのUEFI(≒BIOS)から無効に設定しているので,この点もご了承を。
なお,今回のテストでは,GPUあたり連続して2回実行し,高いほうを採用するという,レギュレーションと同じ方法を採用した。
■Pascalが突出して高いスコアを示すTime Spy
以下,GPUベンチマークのグラフは,基本的にGeForce→Radeonの順で,かつGPU単位ではモデルナンバー順としてあるが,いずれもグラフ画像をクリックすると,スコア順に並び替えたものを表示するようにしてあると断りつつ,総合スコアをまとめたグラフ1から見ていくことにしよう。
これを見ると,GTX 1080のスコアが突出し,少し離れてGTX 1070が続くといった形で,Pascal世代のGPUが上位を占める結果となった。前世代のハイエンドモデルで比較すると,R9 Fury XがGTX 980 TiやGTX TITAN Xに対して優勢に立ち回り,R9 FuryにR9 Nano,R9 390XがGTX 980より高いスコアを示すあたりからは「DirectX 12で強いRadeon」を感じられるのだが,それらをまとめてGTX 1080が置き去りにしているのはとても興味深いところだ。
これだけで判断するのは難しいが,Time Spyにおける「フレームあたりのAsync Compute負荷が10〜20%」というのは,Radeonの「Async Shaders」にとって意味がある以上に,GP104コアの高クロック動作と,実行スレッドの切り換えをスレッド優先順位に従いつつ割り込みを行う「プリエンプション」(preemption)機能にとって絶妙な負荷状況ということなのかもしれない。
Graphics testの結果をもう少し詳しく見るべく,グラフ2にはGraphics test 1,グラフ3にはGraphics test 2の平均フレームレートをまとめてみた。
Time SpyがどれだけCPUに依存するテストなのかも確認しておく必要があるだろう。そこで,GPUをGTX 1080で固定のうえ,マザーボードのUEFIからHyper-Threading Technologyの有効/無効,有効にするCPUコア数を切り換えて,標準仕様の4コア8スレッド(以下,4C8T)以外に,4コア4スレッド(以下,4C4T),2コア4スレッド(以下,2C4T),2コア2スレッド(以下,2C2T)といった状況を作り出したうえで,Time Spyを実行することにした。
グラフ4は総合スコア,グラフ5はCPU testの結果をそれぞれまとめたものになるが,論理コア数の違いは,スコアに大きな影響を及ぼしている。とくに後者で平均フレームレートを見ると違いは顕著だ。
ログの取得が可能なワットチェッカー「Watts up? PRO」を用い,Time Spy実行時におけるシステム全体の消費電力を取得し,最も高い消費電力値をスコアとして採用したものがグラフ6となる。
■Time SpyではPascalが優勢。DX12世代のタイトルは,ゲームの作り方次第で傾向が変わる!?
今回の結果を総合的に見る限り,従来世代のGPU同士で比較する限り,「DirectX 12で優勢なRadeon」は変わりない。しかし,その点においてもPascalアーキテクチャはゲームチェンジャーであり,プリエンプションや高クロック化といった「DirectX 12対策」は,確実に効果を上げているように思う。
DirectX 12 APIだと,従来よりもGPUの深いところを“叩く”ことになるため,ドライバの最適化よりもアプリケーション側の実装が,GPUごとに得られる性能を大きく左右するというのは,よく知られているわけだが,AMDとNVIDIAの両社が開発に携わっているTime Spyでこういう結果になったのはとても示唆的だ。
その意味でTime Spyは,「ほかのどんなDirectX 12タイトルとも似ていない」という点で,従来のテストよりもさらに「実ゲーム」からは離れた存在になるだろう。しかし同時に,DirectX 12世代の中道的なベンチマークテストとして,新たな価値をもたらしてくれそうな気配もある。
―――――――――――――――――――――――――――――
―――――――――――――――――――――――――――――