RSS
菜单

CUDA 版本与 PyTorch 不匹配、GPU 无法使用怎么解决?

先分清三个概念(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()(是否可用)。

下载推广海报

圈内讨论推广海报

《CUDA 版本与 PyTorch 不匹配、GPU 无法使用怎么解决?》完整推广海报
一起交流

全部回复 0

分享经验,让问题更进一步

讨论,从你的观点开始

还没有回复,欢迎补充经验或分享不同的思路。