温馨提示×

Ubuntu下PyTorch与CUDA的兼容性如何

小樊
50
2025-10-21 03:19:11
栏目: 智能运维

Ubuntu下PyTorch与CUDA的兼容性说明

一、核心兼容性原则

Ubuntu系统下,PyTorch与CUDA的兼容性需满足版本匹配要求:不同PyTorch版本仅支持特定范围的CUDA版本,且需配合对应的cuDNN库(用于优化深度学习性能)。例如:

  • PyTorch 1.10.x:兼容CUDA 10.2、11.3;
  • PyTorch 1.13.x:兼容CUDA 11.6;
  • PyTorch 2.0.x及以上:兼容CUDA 11.7及以上(如2.1.0支持CUDA 11.8)。

二、常见兼容版本组合(推荐)

为确保稳定性和性能,建议选择以下主流组合:

  • 基础组合:PyTorch 1.10 + CUDA 11.3(适用于大多数深度学习任务,稳定性高);
  • 最新组合:PyTorch 2.1.0 + CUDA 11.8 + cuDNN 8.6(支持Turing、Ampere架构GPU,性能最优)。

三、安装与验证步骤

1. 前置准备:安装NVIDIA驱动

  • 通过nvidia-smi命令检查GPU型号,确认驱动版本是否符合CUDA要求(如CUDA 11.8需驱动≥520);
  • 使用sudo ubuntu-drivers autoinstall自动安装适配驱动,或手动指定版本(如sudo apt install nvidia-driver-555)。

2. 安装CUDA Toolkit

  • 从NVIDIA官网下载对应Ubuntu版本(如20.04/22.04)的CUDA Toolkit(如11.8),通过.deb包安装:
    sudo dpkg -i cuda-repo-ubuntu2004-11-8-local_11.8.0-1_amd64.deb
    sudo apt-key add /var/cuda-repo-ubuntu2004-11-8-local/7fa2af80.pub
    sudo apt-get update
    sudo apt-get install cuda
    
  • 配置环境变量(编辑~/.bashrc):
    export PATH=/usr/local/cuda-11.8/bin${PATH:+:${PATH}}
    export LD_LIBRARY_PATH=/usr/local/cuda-11.8/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
    source ~/.bashrc
    

3. 安装PyTorch(指定CUDA版本)

  • conda方式(推荐,避免依赖冲突):
    conda create -n pytorch_env python=3.8
    conda activate pytorch_env
    conda install pytorch torchvision torchaudio cudatoolkit=11.8 -c pytorch -c nvidia
    
  • pip方式(直接安装whl文件):
    pip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu118
    

4. 验证兼容性

运行以下Python代码,检查CUDA是否可用:

import torch
print(f"PyTorch版本: {torch.__version__}")
print(f"CUDA版本: {torch.version.cuda}")
print(f"CUDA是否可用: {torch.cuda.is_available()}")  # 需返回True

torch.cuda.is_available()返回True,则表示安装成功。

四、常见问题及解决方法

  • 问题1:torch.cuda.is_available()返回False
    可能原因:驱动未正确安装、CUDA版本不匹配、环境变量未配置。
    解决方法:重新安装驱动(sudo ubuntu-drivers autoinstall)、确认PyTorch与CUDA版本匹配、检查PATHLD_LIBRARY_PATH是否包含CUDA路径。

  • 问题2:gcc版本不匹配
    Ubuntu默认gcc版本可能过旧,需升级至CUDA要求的版本(如CUDA 11.8需gcc≥10):

    sudo apt install gcc-10 g++-10
    sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-10 100
    sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-10 100
    
  • 问题3:安全启动阻止驱动安装
    若使用双系统,需进入BIOS关闭安全启动(Secure Boot),否则无法加载NVIDIA驱动。

0