開発者のMAAN氏は2026年9月、NVIDIAのDLSS 5で使われるニューラルレンダリングのネットワークを再実装した「OpenDLSS-NR」を公開した。Windows上のGeForce RTX 4070 SUPERで動作するVulkan版に加え、WebGPUを使ってブラウザー上で実行する版も用意されている。作者が示した1080pでの処理時間は7.8ミリ秒。ただし、これはゲーム全体のフレーム時間ではなく、40フレームを測定したうち最速だったネットワーク単体の処理時間だ。
今回の公開の意義は、「非対応GPUでも公式DLSS 5が使えるようになった」という話とは異なる。NVIDIAのランタイムを呼び出す改造ではなく、ネットワーク内部の演算や数値の丸め方まで再構成し、中間段階の出力についても記録済みのデータと照合できる形にした点にある。一方、高速なVulkan版はNVIDIA固有の拡張機能とPTXに依存し、モデルの重みも配布されていない。この二つを見落とすと、今回の実装が意味するところを取り違えやすい。
71ブロックからなるニューラルレンダリング網を再実装
NVIDIAはDLSS 5について、従来の超解像や画像再構成とは異なり、ゲームが描画した画像をもとに、最終的な画面の見え方を生成する技術だと説明している。現在のフレーム、動きの情報、前フレームから引き継ぐ状態、開発者が指定する調整値などを入力として使う。公式機能では、ゲーム側が提供するデータやマスク制御と組み合わせて利用される。
OpenDLSS-NRが対象としたのは、DLSS-NR build 310.8.0に含まれる71ブロック構成の推論ネットワークだ。作者のREADMEによると、ずらしながら設定したウィンドウ単位で画像を処理するTransformerと、画像全体を扱うVision TransformerをU字形の構造に組み合わせている。モデルの重みは141MiBある。
入力には、レンダリング結果から作る表示用画像、ノイズ、前フレームの内容を現在のフレームに対応する位置へ変換した画像、各種の調整値などが含まれる。出力されるのは、元画像に加えるRGBの補正値と、前フレームの情報をどの程度混ぜるかを決める値だ。入力と出力の解像度は同じであり、DLSS Super Resolutionを置き換えるものではない。
この違いは、既存の非公式なDLSS導入手法と比較する際にも重要だ。ゲームからNVIDIAのDLLを呼び出させる手法は、製品版ランタイムを利用する経路を変更している。一方、OpenDLSS-NRはネットワークの計算処理そのものを別に実装した。
ただし、後述するように、計算に必要なモデルの重みは利用者自身が用意する必要がある。ソースコードが公開されていることと、モデル一式を自由に入手・配布できることは同じではない。
「ビット単位で一致」は何を比べたのか
作者は、最終的な画像が似ているかどうかを目視で比べるだけではなく、推論途中の複数の地点で出力値を記録し、検証用データと照合している。
ブロック0〜69に加え、5カ所の中間変換を含む計75地点で、FP8形式の値がバイト単位で一致したと報告している。512×512の検証データでは、57,704,448バイトすべてが一致したという。
一方、最後に生成される8ビット画像については、丸め方法が不明な古い記録データと比較しているため、1階調以内の差を許容する別の判定として扱っている。
ここまで細かく比較する必要があるのは、ニューラルネットワークでは同じ重みを使っていても、演算の順序や小数値を丸めるタイミングが違えば、最終的な出力が変わる可能性があるためだ。技術文書には、FP16へ丸めた後にFP8へ変換する手順、行列積で値を加算する順序、注意機構の計算方法などが記されている。
GLSLによる参照実装と、PTXを使った高速実装についても、同じ出力になることを確認したとしている。WebGPU版ではWGSLにFP8型やTensor Coreがないため、整数演算などを使って同じ丸め処理を再現している。
ただし、比較元となったNVIDIA実装の記録データはリポジトリには含まれていない。第三者は公開されたコードや検証方法を確認できるものの、作者が行ったすべての比較を、公開物だけでそのまま再現することはできない。
また、CPUによる参照実装はネットワーク全体の処理を網羅しておらず、一部については二つのGPU実装と記録データを照合する形で検証している。したがって、「ビット単位で一致」という表現は、作者が用意した特定の入力と記録データに対する検証結果として捉える必要がある。
Vulkan版とWebGPU版では「動く」の意味が違う
OpenDLSS-NRには三つの実行経路があり、いずれも同じネットワークを計算する。ただし、高速なVulkan版はNVIDIA固有のPTXや拡張機能に依存しており、WebGPU版は同じRTX 4070 SUPERを使った512×512の測定でも、約27倍の処理時間を要している。
| 経路 | 公開資料にある要件・方法 | RTX 4070 SUPERでの作者測定 |
|---|---|---|
| VulkanのGLSL参照経路 | FP8協調行列演算などを使い、正しさを確認するための基準実装として利用 | 同条件での速度は公表されていない |
| VulkanのPTX高速経路 | VK_NV_cuda_kernel_launchからNVIDIA向けPTXを起動し、演算の統合や同期処理の削減を行う |
512×512で約2.7ミリ秒 |
| ブラウザーのWebGPU経路 | WGSLで演算と丸め処理を再現。Tensor Core、FP8型、PTXは使わない | 512×512で初期化後の1フレームが73ミリ秒、処理の起動回数は451回 |
73を2.7で割ると約27になる。いずれも作者が同じRTX 4070 SUPERで示したネットワーク単体の測定値だが、異なる資料から引用した概数であり、測定方法や統計の取り方が完全にそろっているわけではない。独立した第三者による追試もない。
したがって、この数字から公式DLSS 5との速度差を求めたり、実際のゲームで得られるフレームレートを推定したりすることはできない。
Vulkan版のREADMEでは、WindowsとAda世代以降のGPUに加え、VK_KHR_cooperative_matrix、VK_NV_cooperative_matrix2、VK_EXT_shader_float8、VK_NV_cuda_kernel_launchなどの拡張機能を要求している。
つまり、Vulkanという共通APIを使ってはいるものの、その上でNVIDIA固有の機能に依存している。Vulkanに対応しているというだけで、この高速版がAMDやIntelなど他社のGPUでも動くとは言えない。
一方のWebGPU版は、NVIDIA固有の行列演算機能を使わず、同じネットワークを別の方法で計算する試みだ。作者による512×512での測定では、73ミリ秒のうち、FP8の行列積に44.5ミリ秒、ウィンドウ単位の注意機構に16.8ミリ秒を要した。
ブラウザーデモでは、これに加えてデータ転送などのオーバーヘッドも発生する。シーンをWebGLで描画した後、そのデータをWebGPU側へ渡す必要があるためだ。約1904×929の例では、画像を読み戻すだけで約15ミリ秒、ネットワーク処理には約465ミリ秒かかったという。
ただし、この数値は512×512のネットワーク単体測定とは解像度も処理範囲も異なるため、単純に比較することはできない。
公開コードで試せる範囲と、今後の検証点
リポジトリのコードはMITライセンスで公開されている。一方、NVIDIAのソフトウェア、モデルの重み、ヘッダー、重みを入手するための手順は含まれておらず、検証用データも別途用意する必要がある。
READMEでも、利用するモデルデータについて必要な権利があるかを利用者自身で確認するよう明記している。つまり、コードを取得すれば誰でもそのまま同じ画像を生成できるという状態ではない。
公式のDLSS 5にも、別の意味で利用範囲の制約がある。NVIDIAが9月22日に発表した対応範囲は、NBA 2K27におけるGeForce RTX 50シリーズ搭載のデスクトップPC・ノートPCと、GeForce NOW Ultimateだ。開発者はモデルの選択に加え、形状や色調への効果の強さ、対象物ごとのマスクなどを調整できる。
OpenDLSS-NRがネットワークそのものを再現していたとしても、こうしたゲーム側との統合や、製品としてのサポートまで再現したわけではない。
今後の評価で重要なのは二つある。
一つは、作者以外の第三者が同じ重みと記録データを適法に用意し、複数の解像度で中間出力の一致や処理速度を再検証できるかどうかだ。
もう一つは、ゲームの描画処理、前フレームの扱い、ブラウザー上でのデータ転送なども含めて連続動作させた場合に、画質と遅延がどの程度になるかである。
今回公開された実装によって、DLSS 5のニューラルレンダリングが内部で行う計算を検証するための基盤ができた。その一方で、ネットワークを再現できたことと、実際のゲームで公式DLSS 5と同じ体験を再現できることは別の話だ。後者を示すには、ゲームへ統合した状態での画質、性能、安定性を検証するさらなるデータが必要になる。


