Ubuntu下PyTorch与CUDA的兼容性
在Ubuntu上,PyTorch与CUDA可以良好协同,但前提是两者的版本匹配、驱动正确安装,并且PyTorch使用的是带CUDA支持的构建。实际使用中常见“版本不一致”的情况:例如系统里安装了CUDA 12.3(由nvcc显示),而PyTorch是与CUDA 12.1编译的构建(由torch.version.cuda显示),这通常也能运行,因为PyTorch会随包携带对应的CUDA运行时;真正需要关注的是驱动能否支持该CUDA运行时,以及安装命令是否选对了CUDA变体。
快速自检
- 查看PyTorch与CUDA信息
python -c “import torch; print(‘torch:’, torch.version, ‘cuda:’, torch.version.cuda); print(‘cuda available:’, torch.cuda.is_available())”
- 查看系统CUDA编译器版本
nvcc --version
- 查看驱动与GPU信息(右上角显示Supported/Runtime CUDA)
nvidia-smi
说明:nvcc与nvidia-smi显示的CUDA版本可能不同,这是正常现象;关键是PyTorch构建的CUDA版本与驱动能力匹配,且torch.cuda.is_available()返回True。
安装与匹配建议
- 使用conda安装(推荐,依赖更可控)
conda create -n torch_env python=3.10
conda activate torch_env
conda install pytorch torchvision torchaudio cudatoolkit=12.1 -c pytorch
说明:这里安装的cudatoolkit由conda管理,通常与所选PyTorch构建匹配,无需单独安装完整的CUDA Toolkit。
- 使用pip安装(需明确CUDA变体)
pip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu121
说明:将cu121替换为与你需求匹配的CUDA版本标签(如cu118、cu121等)。
- 驱动先行
确保已安装与所选CUDA运行时兼容的NVIDIA驱动;可用nvidia-smi确认驱动版本与GPU状态,必要时先升级驱动再安装PyTorch。
常见不兼容场景与处理
- 安装了CPU版PyTorch
现象:torch.version.cuda为None或torch.cuda.is_available()为False。
处理:卸载后重装带CUDA的构建(pip加–extra-index-url或conda指定cudatoolkit)。
- 驱动过旧或缺失
现象:nvidia-smi报错或无法识别GPU。
处理:安装/升级驱动(如ubuntu-drivers autoinstall或指定版本),再验证nvidia-smi与torch.cuda.is_available()。
- 版本“看似不一致”
现象:nvcc为12.3,torch.version.cuda为12.1,仍能运行。
处理:一般可正常使用;若出现兼容性问题,优先对齐PyTorch的CUDA标签与驱动能力,或重装对应构建。