OpenDLSS-NR 是一个基于 Vulkan 的 NVIDIA DLSS 5 神经渲染网络的重新实现,采用 MIT 许可证发布,与原始专有实现实现位级兼容。它精确复制了 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 处理引擎渲染的帧以在不增加分辨率的情况下提升视觉质量。系统接受四个输入:当前帧的低动态范围代理、三个高斯噪声通道、使用运动向量重新投影的前一帧输出,以及代表曝光、聚焦距离和风格强度等参数的五个条件标量。由此,它每像素生成四个 f32 通道——其中三个通道为 RGB 颜色残差,一个通道为时间混合 logit——游戏引擎将这些与原始帧结合以合成最终输出。在 RTX 4070 SUPER 上的性能基准显示,在 768×768 分辨率下每帧最短执行时间为 2.8 毫秒,1920×1080 为 7.8 ms,2560×1440 为 12.6 ms,3840×2160 为 29.3 ms,测量窗口为 40 帧。

此图像展示了神经渲染网络所实现的视觉改善,该网络处理引擎渲染的帧以在不提升分辨率的情况下提高质量,如文中所述。
为了独立于 NVIDIA 特定硬件验证正确性,该项目在 ports/browser-webgpu 目录中提供了一个独立的 WebGPU 移植版,在不使用张量核心或 FP8 精度的情况下,逐层生成字节级相同的中间结果。此外,一个 Three.js/WebGPU 移植版(three-dlss-nr)将 WebGPU 实现打包以直接集成到 three.js 场景中,在 WebGPURenderer 内以 TSL 计算内核运行 71 块架构。验证表明,整个网络(每帧 451 次计算调度)在使用合成权重时,在 64×64 和 512×512 等分辨率下产生与参考实现位级相同的输出,并通过对参考的数值固定装置进行 FP8 运算、f16 四舍五入及逐元素运行的详尽测试确认了数值一致性。

此图像演示了文中提到的 Three.js/WebGPU 移植版,该移植版将 WebGPU 实现打包以直接集成到 three.js 场景中,以 TSL 计算内核运行 71 块架构。