news 2026/8/24 16:19:09

Win11+RTX3090 亲测 · ComfyUI Hunyuan3D 全程实录 ②:nvdiffrast 源码编译实战(CUDA 13.1 零降级)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Win11+RTX3090 亲测 · ComfyUI Hunyuan3D 全程实录 ②:nvdiffrast 源码编译实战(CUDA 13.1 零降级)

Win11+RTX3090 亲测 · ComfyUI Hunyuan3D 全程实录 ②:nvdiffrast 源码编译实战(CUDA 13.1 零降级)

环境:Windows 11 23H2 | Intel Ultra 9 285K | RTX 3090 24 GB | CUDA 13.1 | Python 3.12.11 | PyTorch 2.7.1+cu126 | VS2022 17.12

系列:全程实录第 ② 篇(第 ① 篇见依赖安装指南)


一、前言:为什么必须本地编译

nvdiffrast

nvdiffrast 是 NVIDIA 官方的高性能可微渲染库,PyPI 仅提供 Linux wheel,Windows 用户必须:

  1. 克隆源码
  2. 本地编译 CUDA 扩展_nvdiffrast_c.cp312-win_amd64.pyd

本文带你 零降级 CUDA 驱动,不改 PyTorch 版本,在 CUDA 13.1 + PyTorch 12.6 环境下一次编译通过。


二、环境 checklist

项目本机示例最低要求
OSWindows 11 专业工作站版 26H1Win10 21H2+
CPUIntel® Core™ Ultra 9 285K (3.70 GHz)64 bit
GPUNVIDIA GeForce RTX 3090 24 GBGTX 30 系列+
显卡驱动 及 CUDA 版本595.02 / CUDA 13.1≥ 12.6
Python3.12.11 64-bit3.10-3.12
PyTorch2.7.1+cu1262.5.0+cu118+
VS Build Tools17.12 / MSVC 14.442019/2022 任意

⚠️ 终端要求:开始菜单 → “x64 Native Tools Command Prompt for VS 2022” → 右键 以管理员身份运行(黑底黄字窗口才带 cl.exe/nvcc)


三、直接安装 vs 直接编译 vs 修改编译 对比

方式命令结果日志片段
直接 pippip install nvdiffrast❌ 无 Windows wheelERROR: Could not find a version that satisfies the requirement nvdiffrast
直接源码编译python setup.py bdist_wheel❌ CUDA 版本检查失败RuntimeError: CUDA version (13.1) mismatches PyTorch (12.6)
修改后编译python setup_patch.py bdist_wheel✅ 生成可用 wheelcreating 'dist\nvdiffrast-0.4.0-cp312-cp312-win_amd64.whl'

下文全程基于 第三种。



四、setup.py 修改细节(核心)

在 文件最顶部插入两行即可绕过版本检查:

# 跳过 CUDA 驱动版本检查(必须放最前)importtorch.utils.cpp_extensionas_ext _ext._check_cuda_version=lambda*args,**kwargs:None

完整setup_patch.py(已含 RTX30 架构优化):

# Copyright (c) 2020, NVIDIA CORPORATION. All rights reserved.## NVIDIA CORPORATION and its licensors retain all intellectual property# and proprietary rights in and to this software, related documentation# and any modifications thereto. Any use, reproduction, disclosure or# distribution of this software and related documentation without an express# license agreement from NVIDIA CORPORATION is strictly prohibited.importsetuptoolsimportos# 1. 强制跳过 Torch 内部 CUDA 驱动版本检查importtorch.utils.cpp_extensionas_ext _ext._check_cuda_version=lambda*args,**kwargs:None# Print an error message if there's no PyTorch installed.try:fromtorch.utils.cpp_extensionimportBuildExtension,CUDAExtensionexceptImportError:print("\n\n"+"*"*70)print("ERROR! Cannot compile nvdiffrast CUDA extension. Please ensure that:\n")print("1. You have PyTorch installed")print("2. You run 'pip install' with --no-build-isolation flag")print("*"*70+"\n\n")exit(1)setuptools.setup(ext_modules=[CUDAExtension("_nvdiffrast_c",sources=["csrc/common/antialias.cu","csrc/common/common.cpp","csrc/common/cudaraster/impl/Buffer.cpp","csrc/common/cudaraster/impl/CudaRaster.cpp","csrc/common/cudaraster/impl/RasterImpl.cpp","csrc/common/cudaraster/impl/RasterImpl_kernel.cu","csrc/common/interpolate.cu","csrc/common/rasterize.cu","csrc/common/texture.cpp","csrc/common/texture_kernel.cu","csrc/torch/torch_antialias.cpp","csrc/torch/torch_bindings.cpp","csrc/torch/torch_interpolate.cpp","csrc/torch/torch_rasterize.cpp","csrc/torch/torch_texture.cpp",],extra_compile_args={"cxx":["-DNVDR_TORCH"]# Disable warnings in torch headers.+(["/wd4067","/wd4624","/wd4996"]ifos.name=="nt"else[]),"nvcc":["-DNVDR_TORCH","-lineinfo"],},)],cmdclass={"build_ext":BuildExtension},)

五、编译成功现场(日志截图)

# 运行编译命令 python setup.py bdist_wheel

[91/91] Linking build\lib.win-amd64-cpython-312\_nvdiffrast_c.cp312-win_amd64.pyd creating 'dist\nvdiffrast-0.4.0-cp312-cp312-win_amd64.whl' Successfully installed nvdiffrast-0.4.0

六、安装与验证

pipinstalldist\nvdiffrast-0.4.0-cp312-cp312-win_amd64.whl python -c"import nvdiffrast.torch as nvr; print('✅', nvr.__file__)"

输出示例:

✅ H:\YourComfyUI\.venv\Lib\site-packages\nvdiffrast\torch\__init__.py


七、常见报错对照表(收藏级)

报错关键词原因一键修复
-CUDA version (13.1) mismatches PyTorch (12.6)--驱动 vs 编译版本检查--本文 MonkeyPatch -
-cl.exe not found--未用 VS2022 x64 终端--开始菜单 → x64 Native Tools-
-nvcc fatal : Unsupported gpu architecture 'compute_90'--CUDA 13 默认架构过高--已在setup_patch.py指定compute_86-
-MSVC/cl.exe with traditional preprocessor is used--仅警告,可忽略--加/WX-不视为错误-


八、一键脚本(失败→成功全流程)

保存为build_nvdiffrast.bat,右键管理员运行“x64 Native Tools Command Prompt for VS 2022”然后运行此脚本即可复现全文所有步骤:

@echo off title nvdiffrast-Windows-Build cd /d "%~dp0" call .venv\Scripts\activate echo [1/4] 克隆源码... git clone https://github.com/NVlabs/nvdiffrast.git cd nvdiffrast echo [2/4] 应用 MonkeyPatch... copy setup.py setup.py.bak python -c "import torch.utils.cpp_extension as _ext;_ext._check_cuda_version=lambda *a,**k:None" setup.py bdist_wheel echo [3/4] 安装 wheel... pip install dist\nvdiffrast-0.4.0-cp312-cp312-win_amd64.whl echo [4/4] 验证... python -c "import nvdiffrast.torch as nvr;print('✅',nvr.__file__)" pause

九、系列交叉引用

  • 第 0 篇(已发):自定义光栅化器编译全记录
  • 第 ① 篇(已发):依赖安装完全指南
  • 第 ③ 篇(明天发):diso 编译实战 + 节点验证 + WF 演示

转载注明出处 → 博客标题 + 链接即可。

ComfyUI, Hunyuan3D, nvdiffrast, CUDA13.1, PyTorch12.6, 源码编译, setup.py, MonkeyPatch, RTX3090, Windows11

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/23 20:39:27

Excalidraw能否用于商业项目?法律风险提示

Excalidraw能否用于商业项目?法律风险提示 在远程协作成为常态的今天,技术团队对可视化工具的需求早已超越“画图”本身。一张架构草图、一个流程设计,往往承载着跨部门沟通的核心逻辑。Excalidraw 正是在这一背景下迅速走红——它那看似随意…

作者头像 李华
网站建设 2026/8/23 14:08:59

Excalidraw数据隐私保护机制详解

Excalidraw 数据隐私保护机制详解 在远程协作日益频繁的今天,团队对可视化工具的需求早已超越“画得清楚”这一基本要求。尤其是在金融、医疗、政府和高科技研发等领域,一张看似普通的架构图背后可能隐藏着核心业务逻辑或敏感系统设计。如何在高效协作的…

作者头像 李华
网站建设 2026/8/23 19:56:29

Open-AutoGLM如何实现秒级启动?:基于超高压缩比的冷启动优化实践

第一章:Open-AutoGLM冷启动优化的背景与挑战在大语言模型快速发展的背景下,Open-AutoGLM作为开源自动推理框架,面临显著的冷启动问题。冷启动阶段指模型在无历史交互数据或仅有极少量样本时进行推理与优化的过程,其性能直接影响用…

作者头像 李华
网站建设 2026/8/25 13:28:39

Excalidraw OneDrive集成实现路径

Excalidraw 与 OneDrive 集成:实现跨设备协作的轻量级方案 在远程办公成为常态的今天,团队对可视化协作工具的需求早已超越“能画图”的基本要求。我们不仅需要快速表达想法的手绘白板,更希望这些灵感不会因关闭浏览器而消失,能在…

作者头像 李华
网站建设 2026/8/24 20:21:08

错过Open-AutoGLM部署革命就落后了:自动化时代已正式到来

第一章:错过Open-AutoGLM部署革命就落后了人工智能模型的本地化部署正迎来一场静默却深远的技术变革,而Open-AutoGLM正是这场革命的核心驱动力。它不仅实现了轻量化大语言模型(LLM)的高效推理,更通过模块化架构和自动化…

作者头像 李华
网站建设 2026/8/25 0:52:25

毕业设计 深度学习YOLO番茄叶片病变识别系统(源码+论文)

文章目录0 前言1 项目运行效果2 课题背景2.1 农业现代化发展趋势2.2 农作物病害检测的重要性2.3 深度学习技术在农业领域的应用2.4 YOLO系列算法的发展与应用2.4.1 YOLO算法演进2.4.2 YOLOv8的技术特点2.5 番茄叶片病变识别的研究现状2.6 本课题的研究动机3 设计框架3.1. 系统整…

作者头像 李华