news 2026/4/15 18:22:31

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/4/15 4:03:56

别再重复训练了!Open-AutoGLM进度保存的7个关键实践点

第一章:Open-AutoGLM任务进度保存的核心价值在构建基于大语言模型的自动化系统时,任务进度的持久化管理是保障系统稳定性和可恢复性的关键环节。Open-AutoGLM 作为一个面向复杂推理与生成任务的框架,其运行过程往往涉及多阶段、长周期的计算流…

作者头像 李华
网站建设 2026/4/16 6:15:13

22、网络技术与Windows XP系统综合指南

网络技术与Windows XP系统综合指南 在当今数字化时代,网络技术和操作系统的应用至关重要。本文将深入介绍网络相关的各类知识以及Windows XP系统的使用、配置和管理要点,帮助你更好地理解和运用这些技术。 1. 网络类型与标准 无线网络 :涵盖802.11、802.11a、802.11b、8…

作者头像 李华
网站建设 2026/4/13 22:12:46

基于大数据技术的电影电视剧视作品排行榜数据分析与可视化设计 爬虫

文章目录系统截图项目简介大数据系统开发流程主要运用技术介绍爬虫核心代码展示结论源码文档获取定制开发/同行可拿货,招校园代理 :文章底部获取博主联系方式!系统截图 基于大数据技术的电影电视剧视作品排行榜数据分析与可视化设计 爬虫 项目简…

作者头像 李华
网站建设 2026/4/13 8:36:01

基于数据挖掘技术的线上招聘信息分析_xy2q3122--论文-爬虫 可视化600条

文章目录系统截图项目简介大数据系统开发流程主要运用技术介绍爬虫核心代码展示结论源码文档获取定制开发/同行可拿货,招校园代理 :文章底部获取博主联系方式!系统截图 基于数据挖掘技术的线上招聘信息分析_xy2q3122–论文-爬虫 可视化600条 项目…

作者头像 李华
网站建设 2026/4/15 22:28:10

AtCoder Beginner Contest竞赛题解 | 洛谷 AT_abc435_a Triangular Number

​欢迎大家订阅我的专栏:算法题解:C与Python实现! 本专栏旨在帮助大家从基础到进阶 ,逐步提升编程能力,助力信息学竞赛备战! 专栏特色 1.经典算法练习:根据信息学竞赛大纲,精心挑选…

作者头像 李华