2015年02月26日

GeforceとRadeonでSLIが実現か。 そしてSplit Frame Renderingとは。


DirectX12_678x452.png




 DirectX12と言えば、”ハードウェアにより密接な処理をする”ということはご存じだろう。だいたいはそれでfpsが向上するといったイメージだろうか。

 しかし、新たなAPIはフレームを劇的に改善するだけでなく、遅延も削減する。そしてそれですらDirectX12の機能の一部に過ぎない。







マルチGPUの力を引き出す”Split frame rendering"


 DirectX12では非同期のマルチGPU処理が可能になり、さらに複数のグラフィックスリソースをひとつのシステムで同時に使うことができるようになる、ゲーム開発者は、ワークロードを振り分けることができ、異なるハードウェアに異なるタスクを課すことができる。



 この新たな機能のひとつに、”Split frame rendering"というものがある。これのスゴイところは何といってもマルチGPUで使用できるメモリーの容量が増えるという点だ。


 何故そのようになるかというと、GPUメモリーのフレームバッファはもうミラーリング(同期)を行う必要がなくなるからだ。

 従来のマルチGPUでは、Alternate frame renderingという手法をとることが多かったが、この場合、両方のGPUのメモリのバッファの内容を同期させる必要があった。つまり、4GBのGPUを複数搭載しても、フレームバッファに使えるメモリは実質的に4GBだけだったということになる。


 DirectX12で導入される”Split frame rendering"は、これを撤廃し、4GBが二枚であれば8GBのメモリーとして機能させることができるようになるはずだ。

 その仕組みを簡単に言うと、描写するスクリーンを分割し、それぞれのスクリーンの処理を各GPUが担当するといったものだ。DirectX12では、これにより双方のメモリの同期が不要となり、使用量も最適化される。

 ソフト開発者は手動もしくは自動で、テクスチャやジオメトリデータをそれぞれのGPUに振り分けてフレーム毎に処理させることができ、それぞれが割り当てられたスクリーンを描写するようになる。また分割されるスクリーンの数は、搭載するGPUの数と連動する。



Split Frame Renderingは遅延も削減。


 さらに私達のソースは、この技術がレイテンシ(遅延時間)の削減も可能とすることを指摘している。

 その説明はシンプルだ。AFRでは、スムーズに描写するために、多くのフレームはGPUキュー(順番)というものが存在していた。これがレイテンシの原因となっており、ユーザーの入力から4~5フレームの遅延が発生してしまう。


 対してSFRではキューデプス(順番待ち)といったものは常にひとつだ。それかもしくは存在しなくなるだろう。分割されたスクリーンを各々のGPUが描写するだけである。キューデプスは小さくなり、リソースが解放されることで、フレームレートも向上すると考えて間違いない。

 さらにソースでは、マルチGPUをより密接に連動させることで、DirectX12はすべてのグラフィックスサブシステムをひとつのカードとして見なす。といった内容も伝えている。ユーザーは複数のGPUでありながら、強力なシングルGPUとして処理させることができるようになるのだろう。




すでにSplit frame renderingは活躍している。


 ここでお伝えしたいのだが、Civilizationの最新作Beyond Earthでは、Mantleを使ってすでにSFR(もしくはそれに似たような処理)が導入されている。MantleがSFRをサポートしているためだが、そういった意味では、SFRはすでに新しいトリックではない。

 多くのデベロッパーが、フォトグラフィーや3DモデリングアプリケーションでSFRを活用しており、同様にゲームエンジン方面でもSFRをサポートするものは90以上にものぼるという。

 もちろん、上記のメリットが同時にすべて享受できるとは限らないだろう。おそらくだが、Split frame renderingでも一部のテクスチャやジオメトリデータは旧来のマルチプルフレームバッファに頼るケースも考えられる。そして何らかの短所も存在する可能性は否定できない。




AMDとNvidiaのビデオカードを同時に使用できる!?


 さらにDirectX12では、アーキテクチャが異なるGPUの橋渡しもサポートするという。しかも同時にである。これが意味するところは、同じゲームやフレームのレンダリングでNvidia GeforceとAMD Radeonがタンデムを組むということである。


 これは大変夢のある話だ。さらに二種類のプラットフォームのすべての恩恵をあなたの望むように受けられる可能性もある。

 Nvidiaの Geforce Experienceソフトウェアや3D Visionと、AMDのTrueAudioやFreesyncを同時に使うことはできない。しかしDirectX12なら、このすべてが叶うかもしれないのだ。もっとも一方が主要カードで、一方が補助に使われるという形が一番現実的ではあるが。



恩恵はビデオカードだけではない。開発者にも優しく。


 ここまでのところDirectX12はすべてのグラフィックリソースを集合させられるようになったと言える。

 しかし、この恩恵はデスクトップだけではない。ラップトップのデュアルグラッフィクスや、APU+GPUの構成でもメリットを教授できるだろう。DirectX12によってSLIやCrossFIre等のマルチグラフィックスに生じるミスマッチは過去のものとなる。



 しかし気がかりなのは、DirectX12が開発者の負担にならないかという点だ。しかし、この点についてもDirectX12は開発者にフレンドリーであることを目指しているという。

 応用の利いた使い方は少々トリッキーになるかもしれないが、ソースによるとSFRは多くのデベロッパーにとって比較的シンプルで負担の少ないものになるとしている。













 APU+Radeon+Geforceなんて変態構成が可能に!!?



 それが案外冗談じゃなかったりするんです。

 というのも、Anandのレポートでは、DirectX12のベンチでCore i7=Core i3=APUという結果が出てたりしまして。





 とりあえずGDCで次世代APU関連が来るみたいなので、楽しみですね。










posted by 日々さか@海外 at 15:20| Comment(0) | TrackBack(0) | API (DirectX12、Vulkan、Mantle) | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:


この記事へのトラックバック
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。