nvidia-smi右上角显示的CUDA版本是驱动支持的最高CUDA Toolkit版本,而非已安装版本;需据此匹配PyTorch官方提供的pytorch-cuda=X.X标识版本,再通过conda install pytorch-cuda=X.X -c pytorch显式安装,最后用torch.cuda.is_available()验证GPU可用性。

查清显卡驱动支持的最高CUDA版本
不看官网文档、不运行 nvidia-smi 就直接装 PyTorch,90% 会遇到 cuda runtime error (30) 或 torch.cuda.is_available() == False。关键不是“有没有 GPU”,而是驱动能不能撑住你要装的 CUDA Toolkit 版本。
nvidia-smi 输出右上角显示的是「CUDA Version: 12.4」——注意:这只是驱动**向后兼容**的最高 CUDA 版本,不是你当前系统装了 CUDA 12.4;它只代表你最多能装 CUDA ≤12.4 的 Toolkit。
- 打开命令行(Anaconda Prompt 或终端),执行
nvidia-smi - 忽略 Driver Version 行,盯住右上角那行「CUDA Version: X.X」
- 去 NVIDIA 官方 CUDA Toolkit 支持矩阵 查该版本对应的
cudatoolkit最高可安装版本(例如 CUDA 12.4 驱动可支持cudatoolkit=12.1,但不支持=12.4) - 别信 PyTorch 官网下拉菜单里“CUDA 12.1”就等于你一定能用——先匹配驱动,再选 Toolkit
用 conda 安装时必须同时锁死 cudatoolkit 版本
只运行 conda install pytorch -c pytorch 是最常见踩坑操作。conda 会自动选一个 cudatoolkit,但它可能高于你的驱动支持上限,导致 torch.cuda.is_available() 返回 False,且无任何报错提示。
正确做法是显式指定 cudatoolkit,让 conda 安装与驱动兼容的组合:
- 确认驱动支持的最高
cudatoolkit后(比如是 11.8),执行:conda install pytorch torchvision torchaudio pytorch-cuda=11.8 -c pytorch -c nvidia - 注意参数名是
pytorch-cuda=11.8,不是cudatoolkit=11.8——后者是旧写法,新 PyTorch conda 包已改用pytorch-cuda作为 feature channel 标识 - 如果提示找不到包,说明该
pytorch-cuda组合未发布,需降级(如试 11.7)或换用 pip 方式 - 不要混用
-c pytorch和-c conda-forge,channel 冲突会导致依赖解析失败
验证是否真能用 CUDA,别只看 import 不报错
import torch 成功 ≠ GPU 可用。很多用户卡在「代码跑得慢、GPU 利用率 0%」,问题就出在这步没验。
进 Python 后必须跑这三行:
import torch print(torch.__version__) print(torch.cuda.is_available()) print(torch.cuda.device_count())
- 如果
torch.cuda.is_available()是False,立刻停——不是代码问题,是环境没配对 -
torch.cuda.device_count()返回 0 也意味着驱动/Toolkit 不匹配,哪怕nvidia-smi能看到 GPU - 进一步确认设备名:
print(torch.cuda.get_device_name(0)),若报错或返回空字符串,说明 CUDA 初始化失败 - 此时不要调代码,回退检查
nvidia-smi+conda list | grep cuda输出的cudatoolkit版本是否真在驱动支持范围内
pip 安装是 conda 失败时的备用路径,但要注意 wheel 名称规则
conda 找不到对应 pytorch-cuda=X.X 时,pip 是更灵活的选择,但 wheel 名称容易看错。
去 PyTorch 官方 wheel 页面 下载时,重点看文件名中的三个字段:
-
cu118表示 CUDA 11.8;cu121是 12.1;cpu是纯 CPU 版——别下错 -
cp38/cp39等代表 Python 版本,必须和你当前 conda 环境的python --version一致 - Windows 用户注意区分
win_amd64和win_arm64(M系列芯片笔记本极少,基本都是前者) - 下载后用
pip install xxx.whl安装,不要用pip install torch——它默认装 CPU 版
最易被忽略的一点:pip 安装的 PyTorch 不会自动带 torchvision 和 torchaudio,它们的 wheel 也要手动匹配 CUDA 后缀(如 torchvision-0.19.0+cu118),否则 import torchvision 时可能因 CUDA 运行时不一致而崩溃。


















