概要
このプロジェクトは、NVIDIA DLSS 5 Neural Renderingネットワークの Vulkanによる再実装。 オリジナルとビット単位で一致 する精度を持ち、 71ブロックのSwin/ViTネットワーク を用いる。 Tensorコア上でFP8演算 を実行し、中間データも完全一致。 WebGPUによる ブラウザ実装 も含むが、TensorコアやFP8は未使用。 NVIDIAとは 無関係 であり、MITライセンス下で公開。
DLSS 5 Neural Rendering Vulkan再実装の特徴
- NVIDIA純正DLSS 5 NR (バージョン310.8.0)のネットワークを Vulkanで再現
- 71ブロックのSwin/ViT U-net 構造、6段階のプーリングレベル
- FP8(E4M3)アクティベーション、 FP16で累積計算、重みは約141MiB
- 生成型ニューラルレンダリングネットワーク として、既存フレームにノイズ注入・ディテール生成・トーンや構造の調整
- アップスケーラではなく、入力と出力の解像度は同じ
- 中間データ75箇所全てがオリジナルとバイト単位で一致 (最終画像だけでなく全ブロック境界も検証)
WebGPUポートについて
- ports/browser-webgpu/ にて 独立したWebGPU実装
- TensorコアやFP8は未使用、ブロック間の融合や連鎖もなし
- ビット単位の一致は仕様レベルで保証
- 512x512で72ms(Vulkan実装は同条件で2.7ms)
入出力・処理内容
- 入力 :レンダリング済みフレーム、3チャンネルのガウスノイズ、前フレームの再投影出力、5つの条件スカラー
- 出力 :ピクセルごとに4つのf32チャンネル(RGB残差+時系列ブレンドロジット)
- デモ :LDRプロキシ画像を用い、NRオフ/オンの比較表示可能。glTFシーン対応
ビルドと実行方法
- 必要環境 :Windows、NVIDIA Ada以降のGPU、VK_KHR_cooperative_matrix等のVulkan拡張対応ドライバ
- 開発ツール :Visual Studio 2022(C++ x64)、git、Python 3(PTX生成用)、Node.js+npm(シーン変換用)、Pillow
- ツールチェーン自動取得 :scripts\fetch_tools.ps1で依存ツール一括DL
- ビルド手順 :
- shaders, PTX, 実行ファイルのビルド
- Filamentのパッチ適用・ビルド(デモ用)
- 実行例 :
build\dlss5vk.exe bench --model <dir> --width 768 --height 768build\dlss5vk.exe parity --model <dir> --fixture <dir>(ビット一致検証)
パフォーマンス
- RTX 4070 SUPERでの1フレーム処理時間(最小値、40フレーム平均)
- 768x768:2.8ms
- 1920x1080:7.8ms
- 2560x1440:12.6ms
- 3840x2160:29.3ms
ソース構成
- src/ :C++20によるVulkanコンテキスト、モデルロード、重み再配置、ネットワークグラフ、CPU参照実装
- shaders/ :GLSLカーネル。協調行列FP8 GEMM、QKV+ウィンドウアテンション等
- scripts/ptx/ :PythonによるPTXカーネル自動生成
- demo/ :Filament統合デモ、glTFシーン、ImGui制御
- ports/browser-webgpu/ :WebGPUによるビット一致実装
モデルディレクトリと検証
- モデル構成 :manifest.jsonによるstages配列(id, ファイル名, サイズ, sha256)、tensors配列(名前、ブロック、レイヤー、パラメータ等)
- E4M3重みをパックしたステージファイル
- 検証用fixture :manifest.json+参照データ(入力、出力、中間データ等)
- 欠損や不整合がある場合は即エラー
- ビット一致、ゼロ符号違い、8bit誤差、ミスマッチを判定
チューニングスイッチと環境変数
- デフォルトは最速・完全一致ルート
- GLSL参照ルート(DLSS5VK_UNFUSED=1) や、各カーネル単位での切り替えも可能
- バリア挿入、カウンタ連鎖の有無、PTXディレクトリ指定等 多彩な検証オプション
- Khronosバリデーションレイヤー対応 (DLSS5VK_VALIDATION=1)
ライセンス・注意事項
- MITライセンス (サードパーティはNOTICE参照)
- NVIDIAとは一切無関係
- NVIDIAのソフトウェア・重み・ヘッダー・取得方法等は一切含まれない
- 利用モデルデータのライセンス遵守は利用者責任
参考ドキュメント
- docs/network.md :ネットワーク全体グラフ
- docs/numerics.md :数値的精度の詳細
- docs/weights.md :重みデータのレイアウト
- docs/execution.md :スケジューリング
- docs/frame.md :デモのフレーム処理
本プロジェクトは、DLSS 5 Neural Renderingの 研究・検証・デモンストレーション を目的とした オープンソース実装。
NVIDIA公式のDLSS-SR(アップスケーリング用途)とは異なるネットワーク であり、 生成型レンダリング の挙動を高精度に再現する。
メインのREADMEがLLM生成だと、なんか興味が持てないのは俺だけかな?著者は自分が何をしたのか、どう使われるのかを書く時間がないの?