OpenDLSS-NRは、MITライセンスでリリースされたVulkanベースのNVIDIAのDLSS 5ニューラルレンダリングネットワークの再実装であり、オリジナルのプロプライエタリ実装とビットエキザクトな互換性を達成します。DLSS-NRビルド310.8.0で使用される71ブロックのSwin-Transformer/Vision-Transformerアーキテクチャを精密に複製し、NVIDIA Ada世代のGPUにおいてVK_KHR_cooperative_matrix、VK_NV_cooperative_matrix2、VK_EXT_shader_float8、VK_NV_cuda_kernel_launch拡張を通じてFP8(E4M3)活性化とFP16累積を採用します。リポジトリには、ポータブルツールチェーン(glslang、Vulkan-Headers、volk、CMake、Ninja)のダウンロードを自動化し、dlss5vk実行可能ファイルおよびFilamentベースのデモンストレーションをコンパイルするビルドスクリプトが含まれています。
生成ニューラルレンダリングネットワークとして動作するOpenDLSSは、解像度を上げずにエンジンがレンダリングしたフレームを処理し、視覚的品質を向上させます。システムは4つの入力を取ります:現在のフレームの低ダイナミックレンジのプロキシ、3チャンネルのガウスノイズ、モーションベクトルを使用してリプロジェクトされた前フレームの出力、および露出、フォーカス距離、スタイル強度などのパラメータを表す5つのコンディショニングスカラーです。これらから、ピクセルごとに4つのf32チャンネルを生成します-RGB色残留用の3チャンネルと時間的ブレンドロジット用の1チャンネル-これらはゲームエンジンによって元のフレームと組み合わされ、最終出力を合成します。RTX 4070 SUPERでのパフォーマンスベンチマークは、768×768解像度で1フレームあたりの最小実行時間が2.8ミリ秒、1920×1080で7.8ms、2560×1440で12.6ms、3840×2160で29.3msであることを示しており、40フレームウィンドウで測定されています。

この画像は、記事で述べたように、エンジンがレンダリングしたフレームを処理し解像度を上げずに品質を向上させるニューラルレンダリングネットワークによって達成された視覚的改善を示しています。
NVIDIA固有のハードウェアに依存しない正確性を検証するため、プロジェクトはports/browser-webgpuディレクトリにスタンドアロンのWebGPUポートを提供し、テンソルコアやFP8精度を利用せずにネットワークの各層でバイトエキザクトの中間結果を生成します。これに加えて、Three.js/WebGPUポート(three-dlss-nr)はWebGPU実装をパッケージ化し、three.jsシーンへの直接統合を可能にし、WebGPURenderer内で71ブロックアーキテクチャをTSLコンピュートカーネルとして実行します。検証により、合成ウェイトを使用した場合、64×64および512×512を含む解像度で、ネットワーク全体(1フレームあたり451のコンピュートディスパッチ)が参照とビットエキザクトな出力を生成することが示されており、FP8操作、f16丸め、および要素ごとの操作について参照の数値フィクスチャーとの数値の一貫性が総合的なテストによって確認されています。

この画像は、記事で言及されたThree.js/WebGPUポートを示しており、WebGPU実装をパッケージ化してthree.jsシーンへの直接統合を可能にし、71ブロックアーキテクチャをTSLコンピュートカーネルとして実行します。