PyTorch GPU 版安装完全指南
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
⚠️ 注意:
cu121、cu118等版本号只是示例,请以 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()
七、总结
本文要点回顾:
- 推荐方案: 对于视觉开发者,pip 全局安装是最简单、最省心的选择。
- 版本匹配: PyTorch 的 CUDA 版本不能超过
nvidia-smi显示的驱动支持上限。 - 镜像加速: 国内用户务必配置清华源或南大镜像源,下载速度可提升百倍。
- 验证成功:
torch.cuda.is_available()返回True且能正确显示 GPU 型号即可。 - Conda 场景: 仅在需要多项目多版本隔离时才考虑 Conda 方案。
📚 系列导航:
- 上一篇: Ubuntu 22.04 视觉开发环境搭建(三):cuDNN 安装完全指南
- 下一篇: Ubuntu 22.04 视觉开发环境搭建(五):TensorRT 安装与推理加速
- [[技术笔记/视觉环境搭建/Ubuntu22.04.2视觉开发环境搭建全流程]] — 原始完整笔记
参考资料
更多推荐


所有评论(0)