温馨提示×

Linux版PyTorch与CUDA版本如何匹配

小樊
65
2025-11-22 21:44:38
栏目: 智能运维

Linux下 PyTorch 与 CUDA 的匹配指南

一、核心原则

  • 以驱动可支持的最高 CUDA 为上限:运行 nvidia-smi 右上角显示的 CUDA Version 表示驱动当前可支持的最高 CUDA 运行时版本;实际安装的 PyTorch 只需选择小于等于该版本的 CUDA 构建即可。驱动向下兼容,例如显示 11.7 即可选择 11.7/11.6/11.3/11.1/10.2 等构建。
  • 分清“系统 CUDA Toolkit”和“PyTorch 的 CUDA 构建”:多数情况下无需在系统全局安装完整的 CUDA Toolkit,直接用 conda 安装 cudatoolkit 或使用 pip 安装带 cuXXX 标签的 PyTorch 预编译包即可运行。
  • 三者需同时匹配:PyTorch 版本 ↔ CUDA 构建 ↔ Python 版本,任一不匹配都会导致安装失败或运行报错(如 cuDNN 不匹配、符号缺失等)。

二、快速匹配步骤

  1. 查看驱动与上限
  • 终端执行:
    • nvidia-smi(右上角显示可支持的最高 CUDA 运行时版本)
    • python --version(确认 Python 版本)
  1. 选定组合
  • 若无 GPU 或仅需 CPU:选择 CPU-only 构建。
  • 若有 GPU:在驱动上限内,结合项目依赖选择较新的 PyTorch 与对应的 CUDA 构建(优先选择仍有安全/维护更新的组合)。
  1. 安装
  • conda(推荐,自动携带 cudatoolkit):
    • GPU:conda install pytorch torchvision torchaudio cudatoolkit=11.8 -c pytorch
    • CPU:conda install pytorch torchvision torchaudio cpuonly -c pytorch
  • pip(带官方 CUDA 索引):
    • pip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu118
  1. 验证
  • python - <<‘PY’ import torch print(“PyTorch:”, torch.version) print(“CUDA available:”, torch.cuda.is_available()) print(“Torch CUDA:”, torch.version.cuda) PY
  • 预期:CUDA available 为 True,且 torch.version.cuda 与安装时指定的 cu118 一致。

三、常见组合示例

PyTorch 可用 CUDA 构建 典型 pip 安装命令
2.1.x cu117 / cu118 pip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu118
2.0.x cu117 / cu118 pip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu117
1.13.x cu116 / cu117 pip install torch==1.13.1 torchvision==0.14.1 torchaudio==0.13.1 --extra-index-url https://download.pytorch.org/whl/cu117
1.12.x cu116 / cu115 pip install torch==1.12.1 torchvision==0.13.1 torchaudio==0.12.1 --extra-index-url https://download.pytorch.org/whl/cu116
说明:上表为常见可用组合,具体仍受 Python 版本与官方构建矩阵约束;请以安装命令实际可用为准。

四、排错与建议

  • 驱动过低导致不可用:若 nvidia-smi 显示的 CUDA 上限较低,需先升级 NVIDIA 驱动,再安装对应 CUDA 构建的 PyTorch。
  • 版本不一致:若 torch.version.cuda 与安装命令中的 cuXXX 不一致,或 torch.cuda.is_available() 为 False,优先检查是否混用了 conda/pip 源、是否安装了 CPU 包、是否选错 Python 环境。
  • 多环境管理:建议在独立的 venv/conda 环境中安装,避免系统包冲突;如需切换 CUDA 构建,创建新环境重新安装更稳妥。
  • 国内加速:可使用 清华镜像 加速 conda 下载(conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/)。

0