2015年02月03日

SLIとCrossfireの真の力を引き出す 新たなAPIはメモリーも統合。





”GPUを二枚組み込んでも、そのメモリーは二倍の効果を得ることはない。”


 例えば、4GBのGPUをSLIやCrossfireで動かしても、8GBのvRAMとして機能することはない ということだ。

 これがデュアルGPU環境における常識であり、当然の考えであった。






 しかしこの常識が覆されようとしている、

 複数のGPUを、ひとつの強力なGPUとして使える日がやって来るかもしれない。




MantleとDirectX12がその常識に挑む。


 AMDの著名な技術者でもあるロバート・ハロックは、このようなケースはMantleAPIやDirectX12などのローレベルAPIにおいては、もはや当て嵌まらないことを自身のツイッターで明かした。



 ここで従来のデュアルGPUでは、なぜメモリーのスタック効果(二つであれば二倍)が起こらないのか、その理由に触れたい。


 従来のグラフィックス処理である”Alternate frame rendering”という手法では、複数のGPUが、GPU1≒frameA,GPU2=frameB,GPU3=frameC,GPU4-frameD という具合にフレームを分割し、交互にフレームを描写するという仕組みが取られていた。

 そしてこの方法を実現する場合、GPUそれぞれのメモリー毎に完全に同じゲーム内容のコピーが実行されている必要がある。これがメモリーのスタック効果が得られない理由だ。




 しかし、MantleやDirectX12は、このような態様を超えるコントロールを提供する。


 例えば、二つのGPUでスクリーンのフレームバッファを半分ずつ担当する、”Split frame rendering”が可能になる。

 この方法であれば、それぞれのGPUが受け持つ情報は極小となり、メモリーの使用は最適化される。4GBが二枚であれば8GBに、そして複数のGPUは一つの巨大なGPUのような働きをするようになるのだ。


 そういった意味では、”メモリーは二倍にならない”は、もはや古い常識となりつつある





 ただし、ここで注意しておきたい。Windows10とDirectX12やMantleを使えば、当然スタック効果が得られるわけではないという点だ。

 おそらく、この効果を得るためにはゲームソフト側の最適化が必要となるだろう。DX12が普及した後ですら、多くのゲームではその最適化が行われない可能性がある。



 しかし、最先端のゲームや開発者にとって、新たな道が開けたのも事実だ。そしてその時代はもう目前まで来ている。



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

メールアドレス:

ホームページアドレス:

コメント:


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

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