应使用conda install安装cudatoolkit和cudnn,而非NVIDIA官网安装包,因后者会全局安装、破坏环境隔离,导致cuDNN加载失败;conda提供的cudatoolkit含PyTorch必需的运行时库,且cudnn版本自动对齐,无需手动配置。

直接用 conda install 装 cudatoolkit 和 cudnn,别碰 NVIDIA 官网下载包 —— 这是唯一靠谱、可复现、不污染系统的做法。
为什么不能用 NVIDIA 官网安装 CUDA 到 conda 环境里
官网下载的 CUDA 安装器(run 或 exe)默认装进系统全局路径(如 /usr/local/cuda 或 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\vXX.X),它会覆盖或干扰其他环境;而 conda 虚拟环境要求所有依赖隔离在 envs/your_env/ 下。一旦混用,torch.cuda.is_available() 可能返回 True,但实际调用 cuDNN 时崩溃,错误信息常为 libcudnn.so: cannot open shared object file 或 Windows 下的 DLL load failed。
关键点:
- conda 提供的
cudatoolkit不是完整 CUDA 开发套件(不含nvcc),但它包含 PyTorch/TensorFlow 运行时必需的动态库(libcudart.so,libcublas.so,libcudnn.so) -
cudnn包在 conda 中已与cudatoolkit版本对齐,无需手动解压复制include/lib目录 - 你不需要、也不应该运行
nvidia-smi显示的 CUDA Version 去匹配cudatoolkit版本 —— 那只是驱动支持的上限,真正要对齐的是 PyTorch/TensorFlow 的编译依赖版本
怎么选对 cudatoolkit 和 cudnn 版本
打开 PyTorch 官网安装页 或 TensorFlow GPU 支持表,找到你目标框架版本对应的 CUDA 编译版本(例如 PyTorch 2.4.1 → cu121 表示 CUDA 12.1)。然后执行:
conda activate your_env<br>conda install cudatoolkit=12.1 cudnn=8.9.7 -c conda-forge
注意:
Anaconda 2024.10-1 官方 Windows x86_64 安装包下载,来自 Anaconda 官方归档目录,适合需要安装旧版 Anaconda Distribution 的用户。
- 不要写
cudatoolkit=12.1.0—— conda 对补丁号敏感,12.1才能命中最新兼容小版本 -
cudnn版本必须和 PyTorch 构建时链接的版本一致,查法:安装后运行python -c "import torch; print(torch.backends.cudnn.version())" - 优先用
-c conda-forge,它比defaults或anaconda渠道更新更快、版本更全;pytorch渠道只提供cudatoolkit,不提供独立cudnn包
验证是否真装进了当前环境
很多人卡在这步:运行 nvcc --version 报错,或返回系统级旧版本 —— 这完全正常。nvcc 不在 conda 的 cudatoolkit 里,也根本不需要。验证只需三行 Python:
python -c "import torch<br>print('CUDA available:', torch.cuda.is_available())<br>print('CUDA version:', torch.version.cuda)<br>print('cuDNN version:', torch.backends.cudnn.version())"
输出应类似:
CUDA available: True<br>CUDA version: 12.1<br>cuDNN version: 8907
若 is_available() 为 False,常见原因:
- 没激活环境就运行了
conda install(检查which python是否指向envs/your_env/bin/python) - 装了
cudatoolkit但漏了cudnn(PyTorch 1.12+ 要求显式加载 cuDNN,否则降级为纯 CUDA 模式,性能差且部分算子不可用) - Linux 下缺少
LD_LIBRARY_PATH:临时加一句export LD_LIBRARY_PATH=$CONDA_PREFIX/lib:$LD_LIBRARY_PATH再试
pip install torch 时要不要再装 cudatoolkit
不用。用 pip 安装 PyTorch 的 CUDA 版本(如 pip install torch torchvision --index-url https://download.pytorch.org/whl/cu121)时,whl 包已静态链接对应版本的 CUDA 和 cuDNN 运行时,cudatoolkit 和 cudnn conda 包是冗余的,甚至可能引发 ABI 冲突(比如 conda 装了 cudnn 8.9.7,pip 包里却是 8.9.2)。此时应跳过 conda 安装步骤,只靠 pip 一条命令搞定。
真正容易被忽略的是:pip 安装后,torch.version.cuda 显示的是 PyTorch 编译用的 CUDA 版本,不是你系统驱动支持的最高版本;它和你的 GPU 兼容性由 NVIDIA 驱动决定 —— 只要 nvidia-smi 显示的 CUDA Version ≥ PyTorch 的 torch.version.cuda,就没问题。

















