Ubuntu 22.04 + RTX 3090 双卡环境部署 Ultralytics(YOLO11)完整指南
一、前言
Ultralytics 是一个统一的深度学习框架,支持 YOLOv5、YOLOv8、YOLO11 等多个版本的模型权重。本文将基于 Ubuntu 22.04 和 双 NVIDIA RTX 3090 显卡,记录从系统准备到成功运行 YOLO11 推理的全过程。每一步都配有验证命令,确保你能一次通过。
环境概览:
-
操作系统:Ubuntu 22.04.5 LTS
-
显卡:NVIDIA GeForce RTX 3090 × 2(24GB 显存/卡)
-
驱动版本:595.84
-
CUDA 版本:13.2(驱动支持)/ 12.4(PyTorch 自带)
-
Python 版本:3.10.12
-
PyTorch 版本:2.6.0+cu124
-
Ultralytics 版本:8.4.123
二、系统准备
2.1 更新系统与安装基础工具
打开终端,执行:
bash
sudo apt update && sudo apt upgrade -y sudo apt install build-essential dkms linux-headers-$(uname -r) -y
2.2 禁用开源 Nouveau 驱动
Nouveau 驱动可能与 NVIDIA 官方驱动冲突,必须禁用。
bash
sudo bash -c "echo -e 'blacklist nouveau\noptions nouveau modeset=0' > /etc/modprobe.d/blacklist-nouveau.conf" sudo update-initramfs -u sudo reboot
重启后,运行以下命令确认 Nouveau 已被禁用(应无输出):
bash
lsmod | grep nouveau
三、安装 NVIDIA 驱动
3.1 查看推荐驱动版本
bash
ubuntu-drivers devices
根据输出选择推荐版本(本文使用 595),直接安装:
bash
sudo apt install nvidia-driver-595 -y sudo reboot
3.2 验证驱动
bash
nvidia-smi
预期输出:
text
+-----------------------------------------------------------------------------------------+ | NVIDIA-SMI 595.84 Driver Version: 595.84 CUDA Version: 13.2 | +-----------------------------------------+------------------------+----------------------+ | 0 NVIDIA GeForce RTX 3090 Off | 00000000:5E:00.0 Off | N/A | | 1 NVIDIA GeForce RTX 3090 Off | 00000000:D8:00.0 Off | N/A | +-----------------------------------------+------------------------+----------------------+
看到两张显卡和 CUDA 版本即代表成功。
四、安装 CUDA Toolkit(可选但推荐)
虽然 PyTorch 自带了 CUDA 运行时,但完整的 CUDA Toolkit 有助于编译第三方扩展,避免头文件缺失。
4.1 添加 CUDA 软件源
bash
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-ubuntu2204.pin sudo mv cuda-ubuntu2204.pin /etc/apt/preferences.d/cuda-repository-pin-600 wget https://developer.download.nvidia.com/compute/cuda/13.2.0/local_installers/cuda-repo-ubuntu2204-13-2-local_13.2.0-595.45.04-1_amd64.deb sudo dpkg -i cuda-repo-ubuntu2204-13-2-local_13.2.0-595.45.04-1_amd64.deb sudo cp /var/cuda-repo-ubuntu2204-13-2-local/cuda-*-keyring.gpg /usr/share/keyrings/ sudo apt-get update
4.2 安装 CUDA Toolkit
bash
sudo apt-get install cuda-toolkit-13-2 -y
4.3 配置环境变量
将以下内容添加到 ~/.bashrc:
bash
export PATH=/usr/local/cuda-13/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-13/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
使配置生效:
bash
source ~/.bashrc
验证:
bash
nvcc --version
应显示 CUDA 13.2 版本信息。
五、创建 Python 虚拟环境
为避免包冲突,推荐使用 Python 自带的 venv。
5.1 安装 venv 支持
如果系统提示 ensurepip 不可用,需安装对应包:
bash
sudo apt install python3.10-venv -y
5.2 创建并激活环境
bash
python3 -m venv ~/ultralytics_env source ~/ultralytics_env/bin/activate
激活后,终端前缀变为 (ultralytics_env)。
验证 Python 路径是否正确:
bash
which python # 应输出 /home/username/ultralytics_env/bin/python
六、安装 PyTorch(GPU 版)
6.1 升级 pip
bash
pip install --upgrade pip
6.2 安装 CUDA 12.4 版本的 PyTorch
bash
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu124
选择 12.4 是因为它是 PyTorch 官方长期支持的稳定版,且与驱动 595 完全兼容。
6.3 验证 PyTorch 与 GPU
bash
python -c "import torch; print(f'PyTorch: {torch.__version__}'); print(f'CUDA可用: {torch.cuda.is_available()}'); print(f'GPU数量: {torch.cuda.device_count()}'); print(f'第一张卡: {torch.cuda.get_device_name(0)}')"
预期输出:
text
PyTorch: 2.6.0+cu124 CUDA可用: True GPU数量: 2 第一张卡: NVIDIA GeForce RTX 3090
七、安装 Ultralytics 框架并验证
7.1 安装 Ultralytics
bash
pip install ultralytics
7.2 综合验证(自动下载 YOLO11n 权重)
bash
python -c "
import torch
from ultralytics import YOLO
print('='*50)
print('环境验证报告')
print('='*50)
print(f'Python版本: {__import__(\"sys\").version}')
print(f'PyTorch版本: {torch.__version__}')
print(f'CUDA可用: {torch.cuda.is_available()}')
print(f'GPU数量: {torch.cuda.device_count()}')
for i in range(torch.cuda.device_count()):
print(f' GPU {i}: {torch.cuda.get_device_name(i)}')
model = YOLO('yolo11n.pt')
print('✅ Ultralytics 框架与 YOLO11n 模型加载成功!')
print('='*50)
print('✅ 所有组件验证通过!')
"
该命令会自动从官方源下载 yolo11n.pt 权重文件(约 6MB)并加载,验证整个流程。
八、快速推理测试
bash
yolo predict model=yolo11n.pt source='https://ultralytics.com/images/bus.jpg'
首次运行会自动下载示例图片并执行推理,输出类似:
text
Ultralytics 8.4.123 🚀 Python-3.10.12 torch-2.6.0+cu124 CUDA:0 (NVIDIA GeForce RTX 3090, 24126MiB) YOLO11n summary (fused): 100 layers, 2,616,248 parameters, 0 gradients, 6.5 GFLOPs image 1/1 /home/username/bus.jpg: 640x480 4 persons, 1 bus, 11.2ms Speed: 32.4ms preprocess, 11.2ms inference, 23.1ms postprocess per image Results saved to /home/username/runs/detect/predict
恭喜!你的 Ultralytics 环境已完全就绪 🎉
九、常见问题与排障
| 问题现象 | 解决办法 |
|---|---|
conda: command not found | 系统未安装 Conda,改用 Python 自带的 venv 即可(见第五章) |
ensurepip not available | 执行 sudo apt install python3.10-venv -y 安装 venv 支持 |
| 模型下载速度慢或超时 | 由于网络原因(如防火墙限制),可手动下载权重文件放入 ~/.cache/ultralytics/ 目录 |
附:PyTorch & Ultralytics 安装依赖解析
一、PyTorch 依赖结构与清单
安装命令:
bash
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu124
共安装 27 个包,总下载量约 2.9 GB,分类如下:
| 类别 | 包名 | 版本 | 说明 |
|---|---|---|---|
| PyTorch 核心 | torch | 2.6.0+cu124 | 主框架(768 MB) |
torchvision | 0.21.0+cu124 | 视觉工具库(7.3 MB) | |
torchaudio | 2.6.0+cu124 | 音频工具库(3.4 MB) | |
| NVIDIA CUDA 运行时库 | nvidia-cuda-nvrtc-cu12 | 12.4.127 | 运行时编译库(24.6 MB) |
nvidia-cuda-runtime-cu12 | 12.4.127 | CUDA 运行时 API(883 KB) | |
nvidia-cuda-cupti-cu12 | 12.4.127 | 性能分析工具(13.8 MB) | |
nvidia-nvtx-cu12 | 12.4.127 | 工具扩展库(99 KB) | |
nvidia-nvjitlink-cu12 | 12.4.127 | JIT 链接器(21.1 MB) | |
| NVIDIA 数学与加速库 | nvidia-cudnn-cu12 | 9.1.0.70 | 深度神经网络加速(664.8 MB) |
nvidia-cublas-cu12 | 12.4.5.8 | 基础线性代数(363.4 MB) | |
nvidia-cufft-cu12 | 11.2.1.3 | 快速傅里叶变换(211.5 MB) | |
nvidia-curand-cu12 | 10.3.5.147 | 随机数生成(56.3 MB) | |
nvidia-cusolver-cu12 | 11.6.1.9 | 线性求解器(127.9 MB) | |
nvidia-cusparse-cu12 | 12.3.1.170 | 稀疏矩阵运算(207.5 MB) | |
nvidia-cusparselt-cu12 | 0.6.2 | 稀疏张量加速(150.1 MB) | |
| 多卡通信库 | nvidia-nccl-cu12 | 2.21.5 | 多 GPU 通信(188.7 MB) |
| GPU 编译器 | triton | 3.2.0 | GPU 内核编译器(166.6 MB) |
| Python 依赖 | numpy | 2.2.6 | 科学计算(16.8 MB) |
pillow | 12.3.0 | 图像处理(6.9 MB) | |
networkx | 3.4.2 | 图计算(1.7 MB) | |
sympy | 1.13.1 | 符号计算(6.2 MB) | |
mpmath | 1.3.0 | 高精度数学(536 KB) | |
jinja2 | 3.1.6 | 模板引擎(134 KB) | |
MarkupSafe | 3.0.3 | 安全字符串处理(20 KB) | |
typing-extensions | 4.16.0 | 类型扩展(45 KB) | |
filelock | 3.32.3 | 文件锁(98 KB) | |
fsspec | 2026.7.0 | 文件系统接口(206 KB) |
核心依赖:PyTorch 的核心依赖是
nvidia-*系列 CUDA 库和triton,它们共同构成了 GPU 加速的完整底层链路。
二、Ultralytics 依赖结构与清单
安装命令:
bash
pip install ultralytics
| 依赖包 | 版本要求 | 说明 |
|---|---|---|
| 核心计算 | ||
torch | >=1.8.0 | 深度学习引擎(检测到已安装则自动跳过) |
torchvision | >=0.9.0 | 视觉数据处理 |
numpy | >=1.22.0 | 数值计算 |
| 图像处理 | ||
opencv-python | >=4.6.0 | 图像/视频读写与处理 |
pillow | >=7.1.2 | 图像基础处理(PIL) |
| 数据可视化 | ||
matplotlib | >=3.2.2 | 结果绘图 |
seaborn | >=0.11.0 | 统计图表(可选) |
| 配置与工具 | ||
pyyaml | >=5.3.1 | YAML 配置文件解析 |
tqdm | >=4.64.0 | 进度条显示 |
psutil | 系统资源监控 | |
ipython | 交互式环境支持(可选) |
核心依赖:
torch+torchvision是 Ultralytics 的核心运行依赖,其他均为辅助工具库。
三、为何必须独立安装 PyTorch?
1 问题根源:PyPI 文件大小限制
| 平台 | 文件大小限制 | 能否上传 GPU 版 PyTorch? |
|---|---|---|
| PyPI(Python 官方仓库) | ≈ 100 MB | ❌ 否(GPU 版达 700 MB ~ 2 GB) |
| PyTorch 官方索引源 | 无限制 | ✅ 是 |
-
PyPI 上默认的
torch版本是 仅支持 CPU 的版本(约 200 MB)。 -
支持 CUDA 的 GPU 版本必须通过
--index-url从 PyTorch 专属仓库获取。
2 两种安装路径的结果对比
| 安装方式 | 过程 | GPU 是否可用 |
|---|---|---|
直接 pip install ultralytics | pip 从 PyPI 拉取 CPU 版 PyTorch | ❌ torch.cuda.is_available() = False |
| 先装 GPU PyTorch,再装 Ultralytics | 从官方索引安装 GPU 版;pip 检测已存在,跳过安装 | ✅ torch.cuda.is_available() = True |
3 Pip 的依赖跳过机制
当环境中已安装 torch 时,pip install ultralytics 的内部逻辑:
-
解析
ultralytics的依赖声明,识别需要torch>=1.8.0。 -
检查当前环境中是否已安装
torch且版本符合要求。 -
若满足条件:完全跳过
torch和torchvision的下载与安装,直接使用已有版本。 -
仅安装 Ultralytics 自身及其他未满足的轻量级依赖。
4 标准正确安装流程
bash
# 第一步:安装 GPU 版 PyTorch(必须单独执行) pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu124 # 第二步:安装 Ultralytics(自动复用已安装的 PyTorch) pip install ultralytics
总结:独立安装 PyTorch 并非冗余步骤,而是由于 PyPI 的大小限制导致 GPU 版必须从专属源获取。理解这一背景,是正确配置 YOLO 开发环境的关键前提。
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐

所有评论(0)