複数のGPUを組み合わせてグラフィック性能を上げる「マルチGPU」ではどのようなメモリ管理がされているのか?
複数のGPUを組み合わせてグラフィック性能を高める技術として、すでにNVIDIAのSLI、AMDのCrossFireなどの技術が使われていますが、新API「Vulkan」やDirectX 12では、異なる種類のグラフィックを組み合わせられるようになります。複数のGPUを組み合わせるマルチGPUではどのような処理が行われているのかをムービー「A New Perspective on Multi-GPU Memory Management」が解説しています。
A New Perspective on Multi-GPU Memory Management - YouTube
AMDのCrossFireやNVIDIAのSLIは、複数のGPUを統合して使える機能(マルチGPU)です。
DirextX 12とAPIのVulkanは、これまでのマルチGPU構成にあった制限を取り払うことができます。
DirextX 11までの古いAPIでは、ゲームや他のアプリケーションではバッファ・質感・素材・コンピュートテストは、一つの統合APIで取り扱われ、グラフィックドライバーによって処理されます。これは、同一のグラフィックドライバーの範囲内でのみマルチGPUをコントロール可能なことを意味しており、必然的に異なる種類のGPUを混合できない仕組みになっています。
そこで、グラフィックドライバーを「偽装」して複数の異なるGPUを扱えるようソフトウェア・ハードウェアの対応が求められる「LucidLogix Virtu」のような特別な技術が必要です。
しかし、VulkanやDirectX 12では、複数のCPUのスレッドを独立に処理できるだけでなく複数のGPUでも別々に処理することができます。
開発者は複数の異なる目的を持つリストを取り扱えるようになり……
それぞれのGPUメモリに違うデータを蓄えたり、不要なデータを無視したりできるようになります。
ただ、ゲーム開発者はタスクやメモリをコントロールできるようになりますが、ただちにSLIやCrossFireよりも効率的にタスクを分配できるというわけではありません。
他方でAFR(Alternate Frame Rendering)はフレームのドローコールをGPUごとに振り分けて描画することを可能にする技術です。
AFRは理想的な状態ではfpsを高める効果を発揮します。
これに対してGPUメモリの処理はこのようにうまくはいきません。
AFRにおいてはフレームを分割して交互にフレームを描画するときに、それぞれのGPUメモリが同一の内容を複製する必要があります。このせいでOpenGLやDirectX 11では、例えば4GBのGPUメモリのグラフィックボードを2枚組み合わせても、4GB分しか使えないということになっていました。
しかし、別のアルゴリズムも存在します。ここで、サイドスクロールのアクションゲームを例に考えてみます。
この画面は、例えば背景とプレイエリアのように奥行きの異なる複数のレイヤーとして取り扱うことができます。
この異なるレイヤーを異なるGPUに別々のイメージとしてレンダリングさせてから合成して一つの画として描くことが可能なはず。
メモリチップに関して言えば、シーンごとにオブジェクトのかけらを貯めこむことになります。
この描画方法のもう一つのメリットは、GPUの能力を平等に使い分ける必要がないということ。
レンダリングの負荷が小さなレイヤーについては例えばCPU内蔵のGPUのような、グラフィック能力が非力なGPUに担当させることが可能。
これによって、AFRと違って相対的に性能が劣る古いGPUと最新のGPUを混合して使うこともできます。
大容量のGPUメモリをもつGPUではAFRは有効な技術ですが、レイテンシやスタッターを増やしてしまいます。
他方でレイヤー・メソッドはオブジェクト描画の複雑な実装が必要です。
VRや3D映像はアルゴリズムによる恩恵を受けます。なぜなら私たちの目は、ほとんど同じ情報をレンダリングしているので、AFRに近い操作をしているから。
とはいえ私たちの目にはAFRのようなレイテンシやスタッターの問題はなく、ロードバランスは完璧です。いずれにせよ、ゲーム開発者は、ゲームの内容によってGPUに関係するアルゴリズムを適切に選び出すことが求められています。
・関連記事
DirectX 12の異種混合GPU「EMA」でGeForceとRadeonをハイブリッドすると意外な結果に - GIGAZINE
PCからAndroidまでサポートする新グラフィックAPI「Vulkan」がOpenGLからどれくらい性能向上しているのかがベンチマークで判明 - GIGAZINE
DirectX 12環境下ではついにAMDがNVIDIAを逆転する可能性 - GIGAZINE
前ハイエンドTITAN Xの2倍の性能&3倍の電力効率で3割も安いという化物グラボ「GeForce GTX 1080」をNVIDIAが発表 - GIGAZINE
激安2万円強でVRゲーム対応&GTX 1080を上回るコストパフォーマンスのAMD新グラボ「Radeon RX480」登場 - GIGAZINE
GeForce GTX 1080などVR対応をさらに進めたPascal世代のグラフィック技術に関するNVIDIA説明会に行ってきました - GIGAZINE
・関連コンテンツ