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 不匹配、符号缺失等)。
二、快速匹配步骤
- 查看驱动与上限
- 终端执行:
- nvidia-smi(右上角显示可支持的最高 CUDA 运行时版本)
- python --version(确认 Python 版本)
- 选定组合
- 若无 GPU 或仅需 CPU:选择 CPU-only 构建。
- 若有 GPU:在驱动上限内,结合项目依赖选择较新的 PyTorch 与对应的 CUDA 构建(优先选择仍有安全/维护更新的组合)。
- 安装
- 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
- 验证
- 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/)。