Ubuntu 22.04 视觉开发环境搭建(四):PyTorch GPU 版安装完全指南

摘要: 本文详细讲解在 Ubuntu 22.04 上安装 PyTorch GPU 版本的完整流程,包括 pip 全局安装与 Conda 环境安装两种方案的详细步骤与对比、国内镜像源配置、GPU 加速验证方法以及常见问题排坑。特别针对视觉开发场景给出选型建议。
适用读者:已完成 NVIDIA 驱动、CUDA、cuDNN 安装的开发者 | 难度:入门 ~ 中级 | 预计阅读时间:15 分钟


一、前言

PyTorch 是当前最流行的深度学习框架之一,以其动态计算图和 Pythonic 的设计风格深受开发者喜爱。在视觉开发领域(目标检测、图像分割、姿态估计等),PyTorch 几乎是默认选择。

📝 前置条件: 本文假设你已经完成了以下步骤:

  • ✅ NVIDIA 显卡驱动安装(第一篇)
  • ✅ CUDA Toolkit 安装与环境配置(第二篇)
  • ✅ cuDNN 安装(第三篇)

如果还没有完成,请先阅读本系列前三篇文章。

本系列文章导航:

篇章 内容 状态
第一篇 NVIDIA 显卡驱动安装 ✅ 已完成
第二篇 CUDA Toolkit 安装与环境配置 ✅ 已完成
第三篇 cuDNN 安装完全指南 ✅ 已完成
第四篇(本文) PyTorch GPU 版安装与验证 📖 当前
第五篇 TensorRT 安装与推理加速 待更新

本文将涵盖以下内容:

  • pip 全局安装方案(推荐视觉开发者)
  • Conda 环境安装方案(多项目场景)
  • 国内镜像源配置(解决下载慢问题)
  • GPU 加速验证方法
  • 两种方案的全面对比与选型建议

二、方案一:pip 直接全局安装 ⭐ 最推荐

对于视觉开发来说,这是最省心、最干净的方案。视觉开发任务相对单一,不太会出现依赖冲突,所以全局安装完全够用,开箱即用,省时省力。

2.1 准备工作

确认 Python 版本

PyTorch 2.x 系列推荐 Python 3.8 及以上,最新版推荐 Python 3.10 或更高:

python3 --version

如果版本过低,建议从 Python 官网 下载安装。

升级 pip

过旧的 pip 版本可能导致安装失败:

pip3 install --upgrade pip
确认 NVIDIA 驱动状态
nvidia-smi

右上角的 CUDA Version 就是驱动支持的最高 CUDA 版本。你选的 PyTorch 版本里带的 CUDA 版本不能超过这个数。

2.2 获取安装命令

前往 PyTorch 官网 Get Started 页面,在 “Start Locally” 区域选择:

选项 选择
PyTorch Build Stable
Your OS Linux
Package Pip
Language Python
Compute Platform 选择与你驱动匹配的 CUDA 版本(如 CUDA 12.1)

页面会自动生成安装命令,直接复制使用即可。

2.3 执行安装

常见版本示例:

# CUDA 12.1 版本
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121

# CUDA 11.8 版本
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118

⚠️ 注意: cu121cu118 等版本号只是示例,请以 PyTorch 官网生成的命令为准

2.4 配置国内镜像源加速

在国内网络环境下,从官方源下载可能很慢甚至失败。推荐使用清华镜像源,下载速度可以从不足 200KB/s 提升到 5~50MB/s。

临时加速(单次生效):

pip3 install torch torchvision torchaudio -i https://pypi.tuna.tsinghua.edu.cn/simple

永久配置(推荐):

mkdir -p ~/.pip
cat > ~/.pip/pip.conf << EOF
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
trusted-host = pypi.tuna.tsinghua.edu.cn
timeout = 120
EOF

配置完成后,后续所有 pip 命令都会自动走清华源。

💡 提示: 南京大学镜像站也是一个很好的选择,实测速度可以达到几十 MB/s。可以在 NJU Mirror 查看配置方法。

备选镜像:阿里云 PyTorch Wheels

阿里云也提供了 PyTorch 的 Wheels 镜像,但需要注意使用 -f 参数而不是 -i

pip3 install torch==2.4.1 torchvision torchaudio -f https://mirrors.aliyun.com/pytorch-wheels/cu121/

2.5 验证安装

打开终端,执行以下 Python 代码:

import torch

print("PyTorch 版本:", torch.__version__)
print("CUDA 是否可用:", torch.cuda.is_available())

if torch.cuda.is_available():
    print("torch.version.cuda:", torch.version.cuda)
    print("GPU 设备名称:", torch.cuda.get_device_name(0))
    print("GPU 数量:", torch.cuda.device_count())
    # 简单的 GPU 计算测试
    x = torch.randn(3, 3).cuda()
    print("GPU 张量计算测试:\n", x @ x.T)

看到以下输出就说明安装成功:

PyTorch 版本: 2.4.1+cu121
CUDA 是否可用: True
torch.version.cuda: 12.1
GPU 设备名称: NVIDIA GeForce RTX 3080
GPU 数量: 1
GPU 张量计算测试:
 tensor([[ 2.1456, -0.3217,  1.2834],
         [-0.3217,  0.8923, -0.1567],
         [ 1.2834, -0.1567,  1.7234]], device='cuda:0')

三、方案二:Conda 安装(备选方案)

如果你习惯使用 Conda 管理环境,或者需要同时维护多个不同 PyTorch 版本的项目,Conda 也是一个可靠的选择。

3.1 安装 Miniconda(如未安装)

wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
bash Miniconda3-latest-Linux-x86_64.sh
# 按提示操作,安装完成后关闭并重新打开终端

3.2 创建独立环境

conda create -n torch_env python=3.10
conda activate torch_env

💡 提示: 为每个项目创建独立环境是 Conda 的最佳实践,可以避免不同项目之间的依赖冲突。

3.3 配置国内镜像源

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --add_channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/
conda config --set show_channel_urls yes

⚠️ 注意: 不要添加已废弃的 pkgs/free 频道,否则可能导致依赖解析缓慢或安装到过时版本。

3.4 安装 PyTorch

访问 PyTorch 官网,选择 Conda 作为 Package,页面会生成对应的安装命令:

# CUDA 12.1(Conda 官方当前最高支持版本)
conda install pytorch torchvision torchaudio pytorch-cuda=12.1 -c pytorch -c nvidia

⚠️ 重要: 截至 2025 年 6 月,Conda 官方渠道最高仅支持到 pytorch-cuda=12.1。若你需要 CUDA 12.8 等更高版本,请使用方案一(pip 安装)。

如果 Conda 在解决依赖时卡住(显示 “Solving environment” 很久),可以安装 mamba 加速:

conda install mamba -n base -c conda-forge
mamba install pytorch torchvision torchaudio pytorch-cuda=12.1 -c pytorch -c nvidia

3.5 验证安装

在激活的 Conda 环境中运行与方案一相同的验证代码即可。


四、两种方案全面对比

对比维度 方案一:pip 全局安装 方案二:Conda 安装
磁盘占用 ✅ 小(仅 PyTorch 本身) ❌ 大(额外 1-2 GB 基础环境)
CUDA 版本 ✅ 支持最新版本(如 12.8) ⚠️ 官方最高支持 12.1
环境隔离 ❌ 无(全局生效) ✅ 支持多环境隔离
上手难度 ✅ 简单,一行命令 ⚠️ 需先安装 Conda,学习基本命令
安装速度 ✅ 快 ⚠️ 依赖解析较慢
适用场景 单一视觉开发任务 多项目、多版本 PyTorch 并存
推荐度 ⭐⭐⭐⭐⭐ ⭐⭐⭐

✅ 选型建议: 对于绝大多数视觉开发者,方案一(pip 全局安装) 是最简单、最省心的选择。除非你需要同时维护多个不同 PyTorch 版本的项目,否则完全没必要引入 Conda 的复杂度。


五、常见问题与排坑指南

pip 安装常见问题

问题 可能原因 解决方案
torch.cuda.is_available() 返回 False ① 装成了 CPU 版本;② 驱动没装好或版本太低 ① 检查 torch.__version__ 是否包含 +cpu,有则重装 GPU 版。② 执行 nvidia-smi 确认驱动已加载。
pip install 报错 externally-managed-environment 系统启用了 PEP 668 外部管理环境保护 ① 使用 --break-system-packages 参数:pip3 install torch --break-system-packages。② 或使用虚拟环境。
安装速度极慢或超时 网络访问官方源受限 按照上文配置清华镜像源,可以百倍提速。
import torch 报错 Illegal instruction CPU 太老,不支持 AVX 指令集 执行 grep avx /proc/cpuinfo 检查。若不支持,需安装旧版 PyTorch。
pip install 后其他用户用不了 PyTorch 包被装到了当前用户的 .local 目录 使用 sudo -H pip3 install ... 确保包安装到系统路径。
运行时提示 libblas.so.3 等库找不到 缺少 BLAS/LAPACK 等数值库 sudo apt-get install libopenblas-base liblapack3
nvidia-smi 正常但 nvcc -V 提示找不到 CUDA Toolkit 未安装 这是正常的。pip 安装的 PyTorch 自带 CUDA 运行时,不需要单独安装 CUDA Toolkit(但我们在第二篇中已经安装了,所以不会遇到这个问题)。

Conda 安装常见问题

问题 可能原因 解决方案
conda install 提示找不到 pytorch-cuda=12.8 Conda 官方渠道最高仅支持 CUDA 12.1 改用方案一(pip 安装),或降级使用 pytorch-cuda=12.1
安装过程卡在 “Solving environment” Conda 的 SAT 求解器处理复杂依赖耗时较长 使用 mamba 替代,或改用 pip 安装。
torch.cuda.is_available() 返回 False Conda 环境未正确激活 ① 确认已执行 conda activate torch_env。② 检查:conda list | grep pytorch-cuda
清华镜像源下载失败 镜像源不稳定或配置错误 ① 检查配置:conda config --show channels。② 临时使用官方源。

六、实用技巧:快速 GPU 诊断脚本

安装完成后,建议保存以下诊断脚本,方便日后快速排查 GPU 环境问题:

#!/usr/bin/env python3
"""GPU 环境诊断脚本"""

import subprocess
import sys

def check_gpu_env():
    print("=" * 50)
    print("GPU 环境诊断报告")
    print("=" * 50)

    # 1. 检查 NVIDIA 驱动
    try:
        result = subprocess.run(["nvidia-smi", "--query-gpu=name,driver_version,memory.total",
                                 "--format=csv,noheader"], capture_output=True, text=True)
        if result.returncode == 0:
            print(f"✅ NVIDIA 驱动: {result.stdout.strip()}")
        else:
            print("❌ NVIDIA 驱动未正确安装")
    except FileNotFoundError:
        print("❌ nvidia-smi 命令不存在")

    # 2. 检查 PyTorch
    try:
        import torch
        print(f"✅ PyTorch 版本: {torch.__version__}")
        print(f"✅ CUDA 可用: {torch.cuda.is_available()}")
        if torch.cuda.is_available():
            print(f"✅ PyTorch CUDA 版本: {torch.version.cuda}")
            print(f"✅ cuDNN 版本: {torch.backends.cudnn.version()}")
            print(f"✅ GPU 设备: {torch.cuda.get_device_name(0)}")
            print(f"✅ GPU 数量: {torch.cuda.device_count()}")
            # 简单计算测试
            x = torch.randn(1000, 1000).cuda()
            _ = x @ x.T
            print("✅ GPU 计算测试通过")
        else:
            print("❌ CUDA 不可用")
    except ImportError:
        print("❌ PyTorch 未安装")
    except Exception as e:
        print(f"❌ 检查出错: {e}")

    print("=" * 50)

if __name__ == "__main__":
    check_gpu_env()

七、总结

本文要点回顾:

  1. 推荐方案: 对于视觉开发者,pip 全局安装是最简单、最省心的选择。
  2. 版本匹配: PyTorch 的 CUDA 版本不能超过 nvidia-smi 显示的驱动支持上限。
  3. 镜像加速: 国内用户务必配置清华源或南大镜像源,下载速度可提升百倍。
  4. 验证成功: torch.cuda.is_available() 返回 True 且能正确显示 GPU 型号即可。
  5. Conda 场景: 仅在需要多项目多版本隔离时才考虑 Conda 方案。

📚 系列导航:

  • 上一篇: Ubuntu 22.04 视觉开发环境搭建(三):cuDNN 安装完全指南
  • 下一篇: Ubuntu 22.04 视觉开发环境搭建(五):TensorRT 安装与推理加速
  • [[技术笔记/视觉环境搭建/Ubuntu22.04.2视觉开发环境搭建全流程]] — 原始完整笔记

参考资料

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐