DLSS 5とNVIDIA RTX 50シリーズGPUの衝撃
2024年X月X日(具体的な日付は元の記事に記載なし)、NVIDIAの次世代DLSS技術「DLSS 5 Neural Rendering」に関する興味深いデモンストレーションがオンラインで公開されました。開発者のMarcelo Guibout氏が、DLSS 5のニューラルレンダリング処理をセカンダリGPUに割り当てるMod「MGPU Bridge」を披露したのです。
このModは、メインGPUでゲームのレンダリングを行い、セカンダリGPUでDLSS 5のニューラルポストプロセスを実行することで、最大127%のFPS向上を実現しました。
これは、かつて物理演算処理を専用カードに任せていたNVIDIA PhysXを思い出させます。自分の環境でどれくらいパフォーマンスが伸びるのか、非常に興味を惹かれる技術ではないでしょうか。
MGPU Bridgeの仕組みとパフォーマンス
Guibout氏のデモンストレーションでは、AMD Ryzen 7 7800X3Dと32GB DDR5メモリを搭載したシステムに、2枚のNVIDIA RTX 5060 Ti 16GB GPU(いずれもPCIe 5.0 x8接続)を使用し、それぞれのカードにディスプレイを接続しています。MGPU Bridgeは、ReShadeのアドオンとして機能し、メインGPUがレンダリングした最終フレームを読み取り、それをセカンダリGPUに送信してDLSS-NR(Neural Rendering)を適用します。この際、結果はセカンダリGPUに接続されたモニターに直接表示されるため、メインGPUへのデータ転送は発生しません(出典)。
『The Blood of Dawnwalker』の1080pデモにおけるパフォーマンス数値は以下の通りです。このテストでは、DLSS超解像は全てのモードで動作しており、DLSS 5のニューラルレンダリングの有無や実行場所が結果にどう影響するかが示されています(出典)。
| DLSSモード | DLSS 5オフ | DLSS 5をレンダリングカードで実行 | DLSS 5をセカンダリカードで実行 |
|---|---|---|---|
| DLAA | 67-70 | 44 | 67-70 |
| Quality | 98-99 | 54-55 | 91 |
| Performance | 127-131 | 59 | 106-107 |
| Ultra Performance | 172 | 69-71 | 157 |
この表を見ると、DLSS 5のニューラルレンダリングをセカンダリGPUで実行することで、パフォーマンスが大幅に向上していることがわかります。特に「Performance」モードでは、DLSS 5をレンダリングカードで実行した場合の59FPSから、セカンダリカードで実行した場合は106-107FPSへと約80%近く向上しています。これはかなりの差だと感じます。
Guibout氏は「フレームレート自体が重要なのではなく、DLAAからUltra Performanceに移行する際のゲインとその維持率が重要だ」と説明しています。ニューラルポストプロセスは、どのデバイスで実行されても出力解像度で動作し、DLSSモードを下げてもコストはほとんど変わりません。
そのため、レンダリングカードで実行すると、フレームの大部分を占めるようになり、アップスケーリングのメリットが相殺されてしまいます。しかし、セカンダリカードにオフロードすることで、本来のパフォーマンスの86%を維持できるとのことです(出典)。
また、セカンダリGPUを利用するメリットはパフォーマンス向上だけではありません。ニューラル処理の負荷がなくなることで、メインのレンダリングカードの温度が21度も低くなるという副次的な効果も報告されています。これはPCハードウェアの安定性や寿命にも寄与する重要なポイントだと感じます。
注意点と公式サポートとの違い
Guibout氏は、このModがNVIDIAのSLI技術の再来ではないことを明確にしています。SLIはフレームレンダリングのワークロードを複数のGPUに分散するものでしたが、MGPU BridgeはDLSS 5のポストプロセスに特化しています。
また、このModはNVIDIAが意図するDLSS 5のビジョンではなく、公式のDLSS 5サポートのようなネイティブな統合は欠けています。あくまでコミュニティによる実験的なアプローチであり、今後のNVIDIAの動向にも注目が必要です。
しかし、このModは、セカンダリGPUを活用することでDLSS 5のパフォーマンスボトルネックを解消できる可能性を示しており、PCエンスージアストにとっては非常に魅力的な選択肢となるのではないでしょうか。特に、余っているGPUがあるエンジニアの方には、試してみる価値があると感じます。うちのスクリプトでAI処理をオフロードする際にも、こうした手法が使えないか検討してみたくなりますね。