OpenDLSS:Nvidia の DLSS 5 ニューラルレンダリングネットワークの Vulkan リ実装

2026/09/30 17:43

OpenDLSS:Nvidia の DLSS 5 ニューラルレンダリングネットワークの Vulkan リ実装

RSS: https://news.ycombinator.com/rss

要約▶

Japanese Translation:

このオープンソースプロジェクトは、NVIDIA の DLSS 5 Neural Rendering (DLSS-NR) ネットワーク(ビルド 310.8.0)のビット単位で正確な Vulkan リインプリメンテーションを提供し、Ada クラスまたはそれ以降の GPU を用いて FP8 テンソルコアを利用して精密な結果を達成します。モデルはグローバル ViT を含む 71 ブロックの Swin/ViT U-net 構造を採用しており、FP8(E4M3)アクティベーションと FP16 アクムレイションを使用し、従来のアップスケールではなく注入されたノイズから詳細を生成します。完全なパフォーマンスを発揮するには

VK_KHR_cooperative_matrix
が必須です。RTX 4070 SUPER では低解像度で約 2.8 ms で動作し、4K(3840x2160)では約 29.3 ms にスケールします。テンソルコアアクセラレーションを欠くため、
ports/browser-webgpu/
には遅い WebGPU ポートが存在し、512x512 で約 72 ms です。

ツールチェーンは移植可能で、完全な Vulkan SDK を必要としません。glslang、Vulkan-Headers、CMake、Ninja などの依存関係を自動的に取得します。ビルド手順には PowerShell スクリプト(

fetch_tools.ps1
,
build.ps1
,
fetch_filament.ps1
,
build_demo.ps1
)を用いてツール、シェーダー、PTX カーネル、および Filament デモ(Vulkan 互換性のためのパッチが適用されたバージョン 1.77.0)を生成します。モデルディレクトリには、ステージとテンソルをブロック/レイヤーマッピングで定義する
manifest.json
を含める必要があり、このリポジトリはこのデータを自動生成しません。ユーザーは提供されたコマンド(タイミング測定のための
bench
、外部フィクスチャディレクトリに対するビット単位正確性チェックのための
parity
、ブロック単位のカーネルバイセクションのための
verify
)を用いて設定を検証できます。環境スイッチにより、カーネルを GLSL にルートしたり、特定の最適化(例:split-K 融合)を無効にしたりすることも可能です。

重要なのは、この独立した実装が MIT ライセンスの下で開発者がローカルでニューラルレンダリングモデルを検証することを可能にし、GPU パフォーマンス解析における透明性を促進しながら、NVIDIA の知的財産権を厳格に尊重し、NVIDIA IP に関する権利は一切付与されないと明確に表明している点です。

本文

Vulkan 再実装 NVIDIA DLSS 5 ニューラルレンダリングネットワーク紹介

オリジナルの NVIDIA DLSS 5 ニューラルレンダリング(DLSS-NR)とビットごとの一致を確保した、Vulkan による高品質な再実装です。

技術概要

  • アーキテクチャ:
    • WebGPU バージョン 310.8.0 と同等の71 ブロック構成の Swin/ViT ネットワークを採用
    • テンソルコア上で**FP8(E4M3)**演算を実行
  • 精度保証:
    • 最終画像だけでなく、中間計算結果も完全に一致
    • すべての75 のブロック境界でバイト単位の同一性を確認済み

WebGPU ポート版

  • 場所:
    ports/browser-webgpu/
  • 特徴:
    • ブラウザ環境向け独立実装
    • テンソルコアや FP8 サポートなしでも動作
    • 完全なバイト一致を保証

ユーザーによるモデルの準備

ネットワークを実行するには、以下の形式のモデルディレクトリが必要です。

  • nr::Model
    フォーマットの
    manifest.json
    を含むディレクトリ
  • ファイル構造とファイル名はガイドラインに従う(詳細は後述)

ネットワーク構成

NVIDIA のGenerative Neural Rendering (GNR) アーキテクチャを採用しています。

  • 構造: U-net 構造
    • 下部:グローバル ViT モジュール
    • 上部:71 ブロックのシフトウィンドウトランスフォーマー
  • 計算精度:
    • **FP8(E4M3)**アクティベーション
    • FP16アキュムレーション
  • 容量: 約141 MiBの重み情報

GNR の機能

  • 既に描画されたフレームを再レンダリングしてノイズから詳細を生成
  • トーン、構造、肌の質感を調整
  • 入力と出力の解像度は同一(アップスケーラーではない)

WebGPU 比較デモ

  • 比較画像: 左側(NR オフ)vs 右側(NR オン)
  • シーン例: 「Cowboy Gramps」(Muhammed Ismayil / CC0 ライセンス)
  • 処理内容:
    • レンダリングされたフレームの低ダイナミックレンジプロキシ
    • ガウスノイズの3 チェーン(入力機能として)
    • 前フレームからの再射影出力
    • 5 つのコンディショニングスカラー
  • 出力形式: ピクセルあたり4 つの f32 チャンネル
    • RGB リジッド残差
    • 時間的ブレンディングロジット

詳細は

docs/network.md
または NVIDIA の報告書「DLSS 5: Generative Neural Rendering」を参照してください。


ビルドと実行方法

必要なスクリプト(Windows PowerShell)

# ツールチェーンの一次取得(一度だけ)
scripts\fetch_tools.ps1 [-Npm]

# シェーダー、PTX コード、Vulkan バイナリのビルド
scripts\build.ps1

# デモ用 Filament ライブラリの取得(一度だけ)
scripts\fetch_filament.ps1  
scripts\build_filament.ps1  

# デモアプリケーションのビルド
scripts\build_demo.ps1

実行コマンド例

  • ベンチマークテスト
    build\dlss5vk.exe bench --model <モデルディレクトリ> --width 768 --height 768
    
  • パフォーマンスプロファイリング(各ディスパッチの時間測定)
    build\dlss5vk.exe profile --model <モデルディレクトリ> --width 768 --height 768
    
  • オリジナルとのビット一致検証
    build\dlss5vk.exe parity --model <モデルディレクトリ> --fixture <フックアップディレクトリ>
    
  • ブロック単位のバインティング検証(block-0 で Kernel ごとに分割)
    build\dlss5vk.exe verify --model <モデルディレクトリ> --fixture <フックアップディレクトリ>
    
  • PTX ディビダーのテスト(numpy を使用)
    python scripts\ptx\test_fast_divmod.py  
    

デモアプリについて

  • ダブルクリックで直接起動可能
  • build/scenes/
    に配置されるシーンがデフォルトドロップダウンリストに表示され、最初の一つから開始
  • コマンドライン引数で glTF ファイルを指定すると、そのシーンをロード

モデルディレクトリの優先順位:

  1. --model <ディレクトリ>
  2. DLSS5VK_MODEL
    環境変数
  3. models\nr/
    (README と隣接)

詳細は

demo/README.md
を参照してください。


パフォーマンス結果

テスト環境: RTX 4070 SUPER、全体ネットワークをフレーム単位の最小値で計測(40 フレーム以上平均)、241 回のディスパッチを各解像度で実行

解像度処理時間
768×7682.8 ms
1920×10807.8 ms
2560×144012.6 ms
3840×216029.3 ms

注記: GPU は持続負荷下でクロック周波数の状態を切り替えるため、中央値は最小値よりも数%高い場合があります。比較時は必ず最小値を使用してください。


コンポーネント構成表

パートファイルパス備考
ホストコード
src/
(C++20)
Vulkan コンテキスト、モデルローディング、重み再配置、カーネルラッパー、ネットワークグラフ、CPU レファレンス算術ロジック、dlss5vk ツール
GLSL カーネル
shaders/
リファレンスルート:cooperative-matrix FP8 GEMM、32 チャンネルブロック融合、QKV+ ウィンドウアテンション融合、expert MLP、グローバルアテンション、要素ごと演算。独自に完全機能
PTX カーネル
scripts/ptx/
Python ジェネレーターで高速ルート用 PTX を出力:mma.sync E4M3+f16 アキュムレーション、cp.async リング、バリアレスチェーン(デバイスカウンタ経由)、split-K GEMM、ストリーミンググローバルアテンション。ビルド時に
build/ptx/
に生成されます
デモアプリ
demo/, third_party/filament.patch
Filament(Apache-2.0 ライセンス)フレームに内包されたネットワーク:オブジェクトごとの運動ベクトル対応、Vulkan 互換フック、glTF シーン読み込み(gltfio)、ImGui コントロール
WebGPU ポート
ports/browser-webgpu/
ブラウザ環境向け同型実装。テンソルコアなし、FP8 なし、ブロック融合なし、チェーン処理なし。ハードウェアではなく仕様レベルで一致性を保証。512×512 で 72ms(本実装より遅い:2.7ms)

未実装機能: DLSS-SR は別のネットワークのため含まれていません。ただし、時間経路は実装されており、デモではネットワークのヒストリ入力チャンネルとピクセルごとのブレンディングロジットが再射影フィードバックループを駆動します(

docs/frame.md
参照)。
dlss5vk
ツールは単一フレームのみを実行し、履歴なしで動作します(これがレファレンスキャプチャの方式と一致しています)。


システム要件

  • OS: Windows
  • GPU: NVIDIA Ada シリーズ以降(VK_KHR_cooperative_matrix などの拡張をサポート)
  • ドライバー:
    VK_EXT_shader_float8
    、
    VK_NV_cuda_kernel_launch
    を公開する最新バージョン推奨

開発環境

  • Visual Studio 2022 以降(C++ x64 ツールセット対応;
    vswhere
    で探せるか、
    VCVARS64
    を
    vcvars64.bat
    に設定)
  • Git
  • Python 3(PTX ジェネレーター用)
  • Node.js + npm(シーンコンバーター用)
  • Pillow(画像処理用)

ポータブルツールチェーン

tools/
ディレクトリに格納され、git で無視されます。

  • scripts\fetch_tools.ps1
    が以下を自動取得:
    • glslang 16.6.0
    • Vulkan-Headers v1.4.363
    • volk(固定タグ)
    • CMake 3.31、Ninja 1.13
  • -Npm
    オプションを使用すると、シーンコンバーターのモジュールも
    tools\gltf/
    にインストールされます。

デモ用 Filament

  • Filament v1.77.0 を
    scripts\fetch_filament.ps1
    でクローン・パッチ適用
  • scripts\build_filament.ps1
    で一度ビルド(約15 分、6 GB のビルドツリー)
  • 出力先:
    %LOCALAPPDATA%\dlss5-vulkan
    または
    DLSS5_FILAMENT_BUILD_DIR
  • 並列コンパイル数は
    DLSS5_BUILD_JOBS
    で制限可能(デフォルト8。MSVC は 1 タスクあたり最大 1 GB を消費するため)

モデルディレクトリ構造

nr::Model
フォーマットは
manifest.json
を読み込みます。

  • stages アレイ: 各エントリに
    id
    ,
    file
    (相対パス)、
    packedByteLength
    ,
    sha256
  • tensors アレイ: 各エントリに
    name
    ,
    block
    ,
    layer
    ,
    parameter
    ,
    stage
    ,
    stageOffset
    ,
    byteLength

ステージファイルはE4M3 重みをパックしたバイト形式で保持し、ホスト側がカーネルが消費する行列形式へ再配置します(

src/nr_model.cpp
参照)。 このリポジトリ自体ではこのようなディレクトリを生成する機能はありません。

グラフ制限:

  • DLSS-NR バージョン 310.8.0 と同等の71 ブロックネットワークのみ対応
  • 他のブロック数を有するモデルは読み込み時に拒否されます

Fixture(検証用キャプチャ)

parity
コマンドで使用される記録済みキャプチャは、このリポジトリに含まれていません。 Fixture は以下のような
manifest.json
を持つディレクトリで構成されます。

キー説明
sourceDimensions
/
fullDimensions
有効サイズとパディングされたフィールド
proxy
または
inputFeatures
入力画像(RGBA f32、コンディショニング・シード・autoMask付き)またはf32機能値本身
checks
ファイトが検証する項目("boundaries", "head", "output"のいずれか;必須且つ空でない)
blocks
,
transitions
"boundaries": E4M3 参照情報(ブロック ID、幅、高さ、チャンネル、ファイルパス)
omittedBoundaries
参照のない境界に対する説明({name: reason}形式)
referenceHead
"head": f32 RGBA ヘッド値
nativeOutput
"output": 合成画像(dtype="f32"=RGBA ハーフ、proxy 必要 または dtype="u8"=8 ビットキャプチャ)

検証プロセス

GPU 実行前に行われるすべての検証項目が成功しないと実行が拒否されます。以下の条件で失敗判定:

  • 宣言されたチェックに対応する参照がない場合
  • 参照が存在せず、短縮、またはグラフに記述されていない場合
  • チェックで使用されていない参照がある場合
  • 比較可能な境界(ブロック 0-69、5 つのエンコーダトランジション)で参照も理由もない場合

判定基準

  • ビット完全一致(パス)
  • ゼロ符号のみ異なる(失敗)
  • コード 1 以内の差(8 ビットキャプチャのみ、別途報告)
  • 不一致

比較スケジュール

ヘッダーと出力は生産スケジュールに基づき、

--repeat
回(デフォルト3 回)再提出され、バリア下でも同じグラフで合致する必要があります。境界は計測実行から取得し、そのヘッダーが生産環境との一致を確認します。


チューニングスイッチ

すべてのスイッチはデフォルトで「高速且つ正確なルート」を使用します。各スイッチでは出力バイト列が同一であり、

parity
検証もパスされます。GLSL ルートに切り替えるスイッチは、カウンターチェーンリングを無効化します(PTX カーネルのみが参加するため)。

  • DLSS5VK_UNFUSED=1
    : GLSL リファレンスルートを実行(最大解像度 2560×1440 まで)、すべての中間値を生成
  • DLSS5VK_PTX_DIR
    : PTX ディレクトリ指定(デフォルト
    build/ptx
    )
  • DLSS5VK_CHAIN=0
    : バリア間でディスパッチ分離(カウンターチェーンリング無効化)
  • DLSS5VK_PTX_GEMM
    ,
    GEMMT
    ,
    GEMMV
    ,
    BLOCK32
    ,
    FFN
    ,
    QKV
    ,
    ATTN
    =0: 該当カーネルファミリを GLSL スクリプトへ戻す
  • DLSS5VK_ATTN_STREAM
    : ストリーミンググローバルアテンションをオン/オフ(1/0)
  • DLSS5VK_SPLITK=0
    ,
    DLSS5VK_VIT_CHAIN=0
    ,
    DLSS5VK_NO_PTX_MLP=1
    : split-K、ViT チェーン、PTX MLP を無効化
  • DLSS5VK_NO_FUSE_PRE
    ,
    POOL
    ,
    UPRES
    ,
    POST
    =1: 各融合を省略
  • DLSS5VK_CHAIN_MASK
    : ビットマスク(1:expert ステージ, 2:c32 ブロック, 4:split GEMM;デフォルト3)
  • DLSS5VK_DEFER_MAX
    : プロjection GEMM を融合する最大ステージ幅(デフォルト128)
  • DLSS5VK_VALIDATION=1
    : Khronos バリデーションレイヤー下で動作(未インストール時は拒否;Vulkan SDK または
    VK_LAYER_PATH
    設定必要)
  • DLSS5VK_DEBUG=1
    : ドライバー固有メッセージのみ出力(PTX コンパイラー含む)
  • DLSS5VK_LIST_EXTENSIONS=1
    : 拡張機能をリスト表示

ドキュメント構成

  • docs/README.md
    : インデックス
    • network.md
      : ネットワークグラフ
    • numerics.md
      : 正確性契約(数値精度に関する仕様)
    • weights.md
      : 重みのレイアウト形式
    • execution.md
      : スケジューリング戦略
    • frame.md
      : デモフレームの構造

免責事項・ライセンス

NVIDIA 非公式声明

  • 本プロジェクトはNVIDIA とは一切関係なく、承認も支援も受けていません。
  • NVIDIA のソフトウェア、重みデータ、ヘッダー、または取得方法の説明を含むものではありません。
  • このリポジトリやライセンスから何らかの NVIDIA 知的財産権を付与されることはありません。使用するモデルデータのライセンスについては各自で責任を負ってください。

ライセンス

  • このリポジトリ内のすべてのコードはMIT ライセンス(
    LICENSE
    ファイル参照)
  • サードパーティコンポーネントの詳細は
    NOTICE
    ファイルにリストされています

同じ日のほかのニュース

一覧に戻る →

2026/10/02 4:33

Pi 1.0

## 日本語翻訳: Pi 1.0 のリリースは、機能の急速な拡張よりも安定性を優先する点において、そのエージェントハネスにおける顕著な進化を表しています。すべての最新技術を即時に採用する代わりに、このバージョンでは既存のシステム制約に対して堅牢性が証明された後にのみ変更を統合することに焦点を当てています。この「強化された」アプローチにより、ソフトウェアは不必要な複雑性を持たずに簡潔かつ拡張可能であるように保たれます。新機能には、Model Context Protocol (MCP) へのネイティブ対応、Jev や画像モデルといった大型言語モデル以外との互換性、遅延ツールロード、会話中のシステムメッセージが含まれます。ユーザーエクスペリエンスの向上のために、インターフェースも新しいテーマとデフォルトのフルスクリーンモードで強化されました。何十万もの週次ユーザーからのフィードバックに基づき開発が進められた本プロジェクトは、MIT ライセンスの下でオープンソースとして存続しています。今後の展望として、実験的な「Pi Durable」パッケージでは、ミニマリズムを維持しながら長期的な AI タスクの管理機能を備えています。これにより、ユーザーは異なるプラットフォーム上で、より長期間にわたって基盤となる AI を自在に操作・制御することが可能になります。Pi 1.0 のインストールは `curl` または PowerShell コマンドによるものが利用でき、Pi Durable については `npm install @earendil-works/pi-durable @earendil-works/pi-ai @earendil-works/chord` を実行する必要があります。両方とも pi.dev でドキュメントが提供され、github.com/earendil-works/pi にコードが公開されています。Codemode の機能には、Claude Opus、GPT、Jev などの特定モデルを使用してコミットのサマリーを記述するスクリプトや、自作拡張の記述などが含まれます。

2026/10/02 6:07

Web 開発教育の死

## Japanese Translation: 生成 AI は、エコシステムを破壊することで Web 開発者、教育者、出版社の経済的健全性を根底から覆している。Baldur Bjarnason や Axel Rauschamayer のような著者および出版社は収入が急落し、事業の閉鎖に追い込まれている。特に Rauschamayer は 2026 年に書籍からの収益がゼロとなり、AI クローラーが彼の作品を盗みながら広告収益を生み出さなかったため、コンテンツをオフラインに移すことを余儀なくされた。同様に、Web 開発者の教育者である Josh W. Comeau や Kyle Cook も、LLM がタスクを自動化し仕事を吸収したことで Comeau の収益は半分になり、Cook は深層技術チュートリアルから AI モデルに関する浅く簡単に制作される動画への視聴者のシフトにより半分もの視聴数を失ったと報告している。 この危機は財務面のみならず、Salma Alam-Naylor のような専門家の中で深刻なバーンアウトと不安を引き起こしており、彼女のスキルや共感力が業界で貶められたため、一般に露出の少ない低給の役割を受け入れた。この変化は高品質な教育を脅かしており、開発者は学習のためにエラーが発生しやすいチャットボートに頼る傾向が強まっている一方、Rachel Andrew は GenAI が主題領域の専門家と編集者の間の重要な関係性を損ない、生産性の負担を読者に押し付けるだけであり、根本原因を解決したり実際の効率を高めたりしていないと主張している。究極的には、現在のトレンドは真実の人間の協働よりも短期的利益を優先している。

2026/10/02 1:18

Clef:オープンソースの意思決定モデルと新しい強化学習ファインチューニングプラットフォーム

## Japanese Translation: Cloudflare は、Apache 2.0 ライセンスの下で Workers AI 上にホストされる 2 つの新しい決定モデル、Clef および Clef-flash を発売します。これらのモデルは、標準的な大規模言語モデル(LLM)がしばしば予測不可能なテキストを生成するのと鮮明な対比をなすように、低コストで一貫性があり、厳格に型付けされた構造化された出力を提供します。Qwen アーキテクチャに基づいて構築されており(Clef は Qwen3.8-27B、Clef-flash は Qwen3.5-9B)、画像分類のためにビジョンエンコーダーで強化され、非自己回帰的処理を利用して推論速度を高速化しています—Cloudflare の一般 LLM gpt-oss-120b と比較して、脅威インテリジェンスタスクにおいて 2 倍のレイテンシ削減を示しました。現在 Jev Decision Index ベンチマークで最高スコアを得ており(BFCL ケース exact ベンチマークで 98.47 のほぼ完璧なスコア)、Clef は他のモデルである Jev および Kev 9B を凌ぐような大きな性能向上を提供しています。両モデルとも 64k コンテキストウィンドウを備えており(Jev と比較して 32k)、データが保存されることも、トレーニングに使用されることもないというエンタープライズ対応の保証をサポートします。AI Gateway および Workers AI といった Cloudflare の既存インフラストラクチャを活用し、これらのツールはすでにドメイン分類およびサポートトラージングのための内部運用を動力付けています。このリリースは、Cloudflare の「エージェントクラウド」ミッションを実現するために高速分類器向けニッチ市場への戦略的参入を意味し、新しい強化学習製品および Forward-Deployed Engineer サービスを通じた微調整のためのさらなる機能を提供します。

OpenDLSS:Nvidia の DLSS 5 ニューラルレンダリングネットワークの Vulkan リ実装 | そっか~ニュース