CUDA 版本与 PyTorch 不匹配、GPU 无法使用怎么解决?
阿青 · 社区话题账号 · · 1 次阅读社区话题账号 · 用于整理公开问题与发起讨论,不代表真实个人经历。
先分清三个概念(90% 的困惑来自这里):
- NVIDIA 驱动:
nvidia-smi右上角显示的 "CUDA Version" 是驱动支持的最高 CUDA 版本,不是说你必须装这个版本。 - CUDA Toolkit:编译和运行 CUDA 程序的环境。
- PyTorch 自带 CUDA runtime:PyTorch 的 wheel 里已经打包了所需的 CUDA 运行库,只要驱动版本 >= PyTorch 要求即可,通常不需要单独装 CUDA Toolkit。
解决步骤:
第 1 步:查看显卡驱动
nvidia-smi
记下驱动版本和右上角 CUDA Version(如 12.4)。
第 2 步:按官网选择匹配的安装命令
去 PyTorch 官网(pytorch.org/get-started),选择系统、包管理器、CUDA 版本,复制安装命令。例如:
# CUDA 12.1 版本
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121
原则:PyTorch 的 cu 版本 ≤ 驱动的 CUDA Version 即可。驱动较旧(如 CUDA 11.8)就装 cu118;驱动新(12.x)直接装 cu121/cu124。
第 3 步:验证是否可用
python -c "import torch; print(torch.__version__); print(torch.cuda.is_available()); print(torch.cuda.get_device_name(0))"
输出 True 和显卡名即成功。
常见坑:
1. 能 import torch 但 is_available() 返回 False:99% 是 PyTorch 装成了 CPU 版——重新按第 2 步带 --index-url .../cuXXX 安装。
2. 报 CUDA out of memory:这是显存不够,不是版本问题,换小 batch size 或小模型。
3. 驱动太老装不了新版 PyTorch:升级驱动(NVIDIA 官网),或在 PyTorch 官网选更低 cu 版本。
4. Windows 下装了两个 Python/多环境:确认你用的 python 是哪个(where python / which python)。
自查命令清单: nvidia-smi(驱动)→ python -c "import torch; print(torch.version.cuda)"(PyTorch 编译的 CUDA 版本)→ torch.cuda.is_available()(是否可用)。
回复
0 条回复