PyTorch 的 CUDA 运行时 vs 完整 CUDA Toolkit

项目:https://github.com/Ruyi-Zha/r2_gaussian
提问:
pip install torch==2.1.2+cu118 torchvision==0.16.2+cu118 –extra-index-url https://download.pytorch.org/whl/cu118,这个不是已经在conda虚拟环境中安装好了cuda11.8吗?为什么还会有问题
pip install torch==2.1.2+cu118 安装的是PyTorch 内置的 CUDA 运行时,而非完整的 CUDA Toolkit(含nvcc编译器)—— 这是核心误解!

关键区别:PyTorch 的 CUDA 运行时 vs 完整 CUDA Toolkit

内容 PyTorch 内置的 CUDA(cu118 包) 完整 CUDA Toolkit(系统 /conda 安装)
包含内容 仅 CUDA 运行时库(供 PyTorch 调用 GPU) 运行时库 + nvcc编译器 + 头文件 + 开发工具
用途 支持 PyTorch 代码运行(如torch.cuda 编译 CUDA 扩展(如simple-knnrasterize
是否有nvcc ❌ 无编译器 ✅ 有nvcc编译器

为什么仍有问题?

你通过 pip 安装的 PyTorchcu118包,只是让 PyTorch 自身能调用 CUDA 11.8 运行,但编译自定义 CUDA 扩展(如项目中的simple-knn)时,需要:
  1. nvcc编译器(PyTorch 包不含);
  2. nvcc版本需与 PyTorch 绑定的 CUDA 版本(11.8)匹配。
而你的系统 / 环境中,nvcc实际是 12.x(来自系统或 conda 的其他 CUDA),导致版本校验失败,编译被拦截。

总结

  • PyTorch 的cu118不提供nvcc,仅解决 “运行时” 的 CUDA 依赖;
  • 编译 CUDA 扩展必须依赖完整的 CUDA Toolkit(含nvcc),且版本需与 PyTorch 的 CUDA 版本一致;
  • 之前的问题本质是:缺 11.8 版本的nvcc,而非缺 CUDA 运行时。

作者: 高志远

高志远,24岁,男生

发表评论

邮箱地址不会被公开。