オススメ機能
Twitter
お気に入り
記事履歴
ランキング
TOP
PC
Xbox
PS4
PSV
Switch
3DS
スマホ
女性向け
VR
ハードウェア
ハードウェア
レビュー
テストレポート
インタビュー
ムービー
ドライバ
ベンチマークレギュレーション
AC
アナログ
お気に入りタイトル/ワード

タイトル/ワード名(記事数)

最近記事を読んだタイトル/ワード

タイトル/ワード名(記事数)

LINEで4Gamerアカウントを登録
QRコードでLINEの4Gamer
アカウントを友達登録すると
月〜金の週5回,21時に厳選
ニュースをお届けします!
※購読にはLINEアプリが必要です
西川善司の3DGE:AMDによる主張「NVIDIA製GPUは,DirectX 12の優位性を活用できない」を考察する
特集記事一覧
注目のレビュー
注目のムービー
印刷2015/10/31 00:00

連載

西川善司の3DGE:AMDによる主張「NVIDIA製GPUは,DirectX 12の優位性を活用できない」を考察する

Richard Huddy氏(Chief Gaming Scientist, Office of the CTO, AMD)。電話会議だったので,写真は別途提供してもらったものとなる
 最近になって「Radeon Technologies Group」(RTG)としてまとまったAMDのGPU部門は,2015年秋,「Graphics Core Next」(以下,GCN)アーキテクチャをベースとしたRadeonこそがDirectX 12(Direct3D 12)時代に最適なGPUであると主張するキャンペーン「GCN: Better Prepared for DirectX 12」を実施中だ。
 今回,筆者は,AMDのGPUエヴァンジェリストであるRichard Huddy(リチャード・ハディ)氏によるプレゼンテーションを受けることができたので,その内容に,筆者による考察を添えて紹介してみたい。


GCN世代のRadeonは,競合に対していかなる優位性を持つのか


 DirectX 12やVulkan(あるいはその基となるMantle)といった新世代グラフィックスAPIでは,より直接的にGPUを駆動できるようになった。これはDirectX 12やVulkan,Mantleの発表時に幾度となく繰り返されたメッセージなので「もう知っているよ」という人も多いだろう。

 少し振り返っておくと,DirectX 11(Direct3D 11)以前のAPIでは,GPUへ伝送するコマンド列の形成をDirectX 11 APIが担当していたので,GPUにグラフィックス描画用コマンドを発行するのもGPGPU処理用コマンドを発行するのも,ほぼ順送り式となっていた。この実行形態では,GPUがグラフィックス描画とGPGPU処理を並列に行えるとしても,その優位性は表に出てきづらい。

こちらがDirectX 11以前のAPIにおけるグラフィックス描画とGPGPU処理のイメージ。命令は順送りに逐次実行される
Radeon R9 Fury

 それに対して,DirectX 12やVulkanなどといった「直接的にGPUを駆動できるAPI」では,グラフィックス描画用コマンド列とGPGPU処理用コマンド列を,マルチコアCPUを駆使したマルチスレッド処理によってアプリケーション側から並列に生成し,任意のタイミングで発行できる。それこそ,生成したそばから並列的に発行することも――実行されるかどうかはハードウェアの仕様次第だが――可能だ。

DirectX 12世代以降のAPIでグラフィックス描画とGPGPU処理が並列的に(=同時に)に発行された場合の実行イメージ。上段がグラフィックス描画で下段がGPGPU処理,中段はGPU内部のDMA(Direct Memory Access)によるメモリ制御(=ホスト側のメインメモリとGPU間のデータ転送)だ。グラフィックス描画とGPGPU処理を並列実行できるGPUであれば,実行時間を短縮できるという理屈である
Radeon R9 Fury

 そして,いま述べたような「グラフィックス描画とGPGPU処理の並列的な実行」を実現するのが,GCNベースのGPUに実装される「Asynchronous Shaders」(非同期シェーダ,以下 Async Shaders)であり,このAsync Shadersがある分,DirectX 12世代では,RadeonのほうがGeForceよりも性能がいい。AMDの主張とは,端的にまとめると,以上のようなものになる。


ゲームデベロッパによる,Async Shadersへのポジティブな反応一覧。キュー・ゲームスのJaymin Kessler氏は,グラフィックス描画とGPGPU処理を並列実行できるAsync Shaders機能がなければ,PlayStation 4用タイトル「The Tomorrow Children」はモノにならなかったと述べている
Radeon R9 Fury
 GCNアーキテクチャのGPUは,「Southern Islands」という開発コードネームで呼ばれていた第1世代がGCN 1.0,続く「Sea Islands」とそのリフレッシュとなる「Caribbean Islands」が第2世代のGCN 1.1,そして「Volcanic Islands」およびそのHBM(High Bandwidth Memory)対応版となる「Pirate Islands」が第3世代のGCN 1.2となるが,いずれのGCN世代においても,Async Shadersは利用可能だ。
 GCNの世代と型番の対応は下にまとめたが,GCN 1.2ではさらに,進行中のグラフィックス描画に対して割り込みをかけ,別の用途のグラフィックス描画を実行させることができる機能「GPU Graphics Preemption」(GPUグラフィックスプリエンプション)を搭載(関連記事)。GPU内部の稼働率を上げつつ,より低遅延な処理を実現することも可能となった。

●GCNの世代と型番の関係
(※OEM向け製品を除く。カッコ内は開発コードネーム)
  • GCN 1.2:Radeon R9 Furyシリーズ(Fiji),Radeon R9 380(Antigua(Tonga Refresh)),Radeon R9 285(Tonga)
  • GCN 1.1:Radeon R9 390シリーズ(Grenada(Hawaii Refresh)),Radeon R7 360(Tobago(Bonaire Refresh),Radeon R9 29xシリーズ(Hawaii),Radeon R7 260シリーズ(Bonaire)
  • GCN 1.0::Radeon R7 370(Trinidad(Curaçao Refresh),Radeon R9 280シリーズ(Tahiti),Radeon R9 270シリーズ(Curaçao),Radeon R7 250・240シリーズ(Cape Verde&Oland)

 では,GeForceはどうかというと,第1世代Maxwell以前と第2世代Maxwell以降では事情が若干異なる。第1世代Maxwell以前は,グラフィックス描画とGPGPU処理の並列実行には対応しておらず,どちらか一方が終了してから「グラフィックスモード/GPGPUモード」のモードチェンジを行ってからでないと処理に取りかかれない。
 それに対し,第2世代Maxwell(≒GeForce GTX 900シリーズ)では,並列実行を行えるようになっている。アーキテクチャ上はGCN 1.1ベースのRadeonと同じというわけだ。

2015年10月時点でアーリーアクセスという扱いにあるAshes of the Singularityは,現在,最も現実的にDirectX 12を活用したタイトルといえる
Radeon R9 Fury
 ただ,実態もそうなのであれば,わざわざHuddy氏が出てきてアピールしたりはしないだろう。そう,ゲームデベロッパOxide Gamesが,自社開発のDirectX 12対応RTS「Ashes of the Singularity」(PC)で検証したところ,GeForceでは,第2世代MaxwellベースのGPUであっても,グラフィックス描画とGPGPU処理が並列実行されていないとしか思えない結果になってしまったというのが,Huddy氏によるアピールのメイントピックなのである。

Oxide Gamesのコメントを大々的に引用したスライド。「NVIDIAの(第2世代)Maxwellは,仕様上,Async Shadersを利用できることになっているが,我々が調査した限りでは利用できなかった」という(※編注:AFAIKは「As far as I know」の略)
Radeon R9 Fury

 Oxide Games自体は,NVIDIA主催のカンファレンスに登壇していたこともあったりと,必ずしも「AMDべったり」なデベロッパではない。むしろ,「自社製品の評判に関わる(≒「Radeonで速く,GeForceで遅いという事態が,予期せぬ風評被害を生む可能性がある)ため,早期の対応を求むべく,この事実を公開した」というのが,発表の趣旨のようだ。NVIDIA側も,ドライバ側の問題として,現在,対応を進めているところだという。


DX12世代の立ち上がりによって明らかになる,GPU側の「DX12対応能力」


 ここからは筆者の私見と考察になるが,実際のところ,2015年の10月時点において,たとえば動的なシャドウマップ生成と環境マップ生成といった,異なるコンテクストの描画タスクが発行された場合の処理効率で比較すると,アーキテクチャ上はGCN 1.2のほうが第2世代Maxwellよりも優れている。
 それは,前段でも触れてあるとおり,GCN 1.2では,ハードウェアレベルにおけるプリエンプション機能の搭載によって,異なるタスクを切り換えながら実行できるからだ。GPU視点に立った場合,GPU内部の演算リソースを休ませずに実行できるうえ,アプリケーション視点では,発行したタスクが低遅延で実行されるメリットを生みやすい。

 それがNVIDIAのGPUだと,第2世代Maxwellでも,異なるコンテクストの描画タスクは,現在実行中の描画タスクが終了したタイミングで切り換えられることになる。NVIDIAも,この点については「次世代で以降で解決される課題」として認知している。
 ただ,繰り返すが,Async Shaders自体は,DirectX 12で最低限されるべきAPIなので,DirectX 12に対応する第2世代Maxwellでも描画タスクとGPGPUタスクの並列実行自体はできるはずだ。にもかかわらず,性能が上がらないのは,ハードウェア的にちゃんと並列実行できていないからだというのが,Oxide Gamesによる指摘なのである。

DirectX 12対応ゲームとして登場する予定となっている「Deus Ex: Mankind Divided」(PC / PlayStation 4 / Xbox One
Radeon R9 Fury
 こうした問題が,最近まであまり話題になってこなかったのは,DirectX 12対応のPCゲームタイトルがほとんど存在しなかったためだ。これまた前述したように,DirectX 11世代以前のAPIでは,グラフィックス描画とGPGPU処理は発行された順番での順送り逐次実行となっていたため,Radeonの持つAsync Shaders機能の優位性,そしてGeForce側の弱点は露呈しにくかった。
 今後,DirectX 12ベースのPCゲームタイトルや,PlayStation 4(以下,PS4)およびXbox Oneで開発されたゲームのPC移植が増えてくるに連れ,Async Shadersメカニズムの有効性は一般ユーザーからもはっきりと分かるようになるはず。その意味において,このタイミングでAMD,そしてOxide Gamesが問題を提起したことは,悪いことではないように思う。

Huddy氏が示した「同価格帯のRadeonとGeForceで比較した,Ashes of the Singularity性能比較」。Async Shaders効果で,Radeonほうが性能は上というプレゼンテーションである
Radeon R9 Fury Radeon R9 Fury

業界標準ベンチマーク「3DMark」のDirectX 12対応テストとなる「API Overhead feature test」でも,同様のテスト結果が得られるというスライド
Radeon R9 Fury
 なお現在のところ,PS4およびXbox One用で,かつ先進技術を駆使しようというタイトルでは,GPGPUによるポストプロセスをはじめとした描画支援処理を積極的に活用する傾向がある。
 GPUにおけるグラフィックス描画処理系とGPGPU処理系の違いは,実質的に,ジオメトリ演算機能の利用とグラフィックス処理専用の固定機能の利用,ROPユニットの活用という3点ができるかできないかだけだ。なので,先端的なゲームグラフィックス処理では,GPUでグラフィックス描画をさせつつ,GPGPUを活用してグラフィックス描画支援を行うという実装形態が目立ち始めている。

 仮に,この流れがDirectX 12時代のPCゲームにもそのままやってくるとすれば,Async Shadersの実効性は,グラフィックス品質に直結しやすくなるという予測が成り立つ。つまり,グラフィックス表現がリッチになったり,あるいはフレームレートを上げやすくなったりするため,ユーザーの側から見て分かりやすいメリットとして表れる可能性が高いということだ。
 もちろん本来的な,GPGPUを用いた物理シミュレーションやAI処理といった活用が進めば,Async Shadersの効能はゲーム全体の性能や品質に大きく影響することになるだろう。

 現状,ユーザーに何かできることはあるのかというと,残念ながらない。しばらくは静観ということになるだろうか。
 NVIDIAが,第2世代MaxwellでAsync Shadersをちゃんと動くようにしてくれれば,それはそれでいい。そうならない場合,短期的には,DirectX 12世代のタイトルを重視する場合,GCN系のRadeonを選択するのが正解ということになりそうだ。この瞬間について語るなら,DirectX 12周りで有利だが,HDMI 2.0をサポートしないRadeonか,HDMI 2.0をサポートし,4K解像度との互換性において優勢ながら,DirectX 12周りで不利なGeForceかという,悩ましい選択を迫られることになると思われる。

AMDのデスクトップ用GPU製品情報ページ

  • 関連タイトル:

    Radeon R9 Fury

  • 関連タイトル:

    Radeon R9 300

  • 関連タイトル:

    Radeon R9 200

  • 関連タイトル:

    Ashes of the Singularity

  • この記事のURL:
line
4Gamer.net最新情報
トピックス
スペシャルコンテンツ
注目記事ランキング
集計:10月16日〜10月17日