3. YOLOv8 环境搭建:GPU驱动与CUDA安装、PyTorch环境配置、YOLOv8源码下载与依赖安装

环境搭建这件事,说白了就是给模型训练和推理铺好路。很多同学一上来就急着跑代码,结果卡在驱动版本不对、CUDA 不兼容这些坑里。我这些年部署过的工业现场,少说有几十条产线了,每次换新设备第一件事就是捋一遍环境。今天咱们就把这套流程拆开揉碎了讲清楚。

本章核心目标:在一台裸机(Ubuntu 20.04/22.04)上,从零搭建一套能跑 YOLOv8 训练和推理的完整环境。包括 GPU 驱动、CUDA 工具包、PyTorch 以及 YOLOv8 源码。

3.1 硬件与系统准备

先看看你手头的设备。工业场景里最常见的是 NVIDIA 的显卡,从 GTX 1060 到 RTX 4090,甚至 A100 我都见过。我个人习惯先确认显卡型号,再决定装哪个版本的驱动。

用这条命令查显卡信息:

lspci | grep -i nvidia

或者更直观的:

nvidia-smi          # 如果已经装了驱动

系统我推荐 Ubuntu 20.04 或 22.04 LTS。为什么?因为工业现场追求稳定,LTS 版本生命周期长,驱动和 CUDA 的支持也最全。我曾经在 CentOS 7 上折腾过三天,最后还是切回 Ubuntu 了——有些依赖在 CentOS 上就是缺包,浪费时间。

组件 推荐版本 备注
操作系统 Ubuntu 20.04 / 22.04 LTS 64位,桌面版或服务器版均可
GPU NVIDIA 显卡(计算能力 ≥ 6.0) GTX 10系列及以上
内存 ≥ 16 GB 训练时显存不够会爆
磁盘 ≥ 50 GB 空闲 SSD 优先,数据集大了很占空间

3.2 GPU 驱动安装

驱动是地基。地基没打好,后面全是白搭。

我推荐用 NVIDIA 官方 runfile 或者 Ubuntu 的 apt 源。两种方式我都用过,说下区别:

  • apt 安装:简单,但版本可能不是最新的。适合不想折腾的同学。
  • runfile 安装:可控性高,可以指定版本。适合有特殊需求的场景。

我个人习惯用 apt,因为工业现场不需要追新,稳定第一。

先卸载旧驱动(如果有的话):

sudo apt purge nvidia-*
sudo apt autoremove

然后添加官方 PPA 源:

sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt update

查看可用驱动版本:

ubuntu-drivers devices

你会看到类似这样的输出:

driver   : nvidia-driver-535 - distro non-free
driver   : nvidia-driver-545 - distro non-free
driver   : nvidia-driver-550 - third-party non-free

选一个推荐版本安装:

sudo apt install nvidia-driver-535

装完重启:

sudo reboot

重启后验证:

nvidia-smi

小技巧:如果 nvidia-smi 报错说找不到命令,大概率是驱动没装成功。检查一下是否禁用了 Secure Boot,有些主板开了 Secure Boot 会导致驱动模块加载失败。

3.3 CUDA 工具包安装

驱动装好了,接下来是 CUDA。注意:驱动和 CUDA 是两个东西。驱动是让系统认识显卡,CUDA 是让程序能用显卡算东西。

YOLOv8 官方推荐 CUDA 11.8 或 12.1。我建议装 CUDA 11.8,因为 PyTorch 对它的支持最成熟。我在项目里踩过 CUDA 12.x 的坑——有些第三方库还没适配,编译报错能让你怀疑人生。

去 NVIDIA 官网下载 runfile:

wget https://developer.download.nvidia.com/compute/cuda/11.8.0/local_installers/cuda_11.8.0_520.61.05_linux.run
sudo sh cuda_11.8.0_520.61.05_linux.run

安装时注意:

  • 不要勾选 Driver(因为我们已经装过了)
  • 只选 CUDA Toolkit 和 CUDA Samples

装完后配置环境变量:

echo 'export PATH=/usr/local/cuda-11.8/bin:$PATH' >> ~/.bashrc
echo 'export LD_LIBRARY_PATH=/usr/local/cuda-11.8/lib64:$LD_LIBRARY_PATH' >> ~/.bashrc
source ~/.bashrc

验证:

nvcc --version

注意:nvidia-smi 显示的 CUDA 版本是驱动支持的最高版本,不代表你实际安装的 CUDA 版本。用 nvcc --version 看到的才是真正的 CUDA 工具包版本。我曾经被这个坑过,查了半天才发现两个版本不一致。

3.4 cuDNN 安装(可选但推荐)

cuDNN 是 NVIDIA 针对深度学习优化的加速库。YOLOv8 不强制要求,但装上能提速 10%-20%。

去 NVIDIA 官网下载 cuDNN for CUDA 11.x,然后:

tar -xzvf cudnn-linux-x86_64-8.9.7.29_cuda11-archive.tar.xz
sudo cp cudnn-*-archive/include/cudnn*.h /usr/local/cuda-11.8/include
sudo cp -P cudnn-*-archive/lib/libcudnn* /usr/local/cuda-11.8/lib64
sudo chmod a+r /usr/local/cuda-11.8/include/cudnn*.h /usr/local/cuda-11.8/lib64/libcudnn*

验证:

cat /usr/local/cuda-11.8/include/cudnn_version.h | grep CUDNN_MAJOR -A 2

3.5 PyTorch 环境配置

我建议用 conda 管理环境。为什么?因为工业项目往往需要多个环境,不同项目依赖不同版本的 PyTorch,用 conda 隔离最省心。

先装 Miniconda:

wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
bash Miniconda3-latest-Linux-x86_64.sh

创建 YOLOv8 专用环境:

conda create -n yolov8 python=3.10 -y
conda activate yolov8

安装 PyTorch。去 PyTorch 官网找对应 CUDA 11.8 的命令:

pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118

验证 PyTorch 能否调用 GPU:

python -c "import torch; print(torch.cuda.is_available())"

如果输出 True,恭喜你,环境通了。

常见问题:输出 False 怎么办?先检查 CUDA 版本是否匹配,再检查 PyTorch 版本。我曾经遇到一次,是因为 pip 默认装了 CPU 版的 PyTorch,重新指定 cu118 索引就好了。

3.6 YOLOv8 源码下载与依赖安装

环境搭好了,终于可以拉代码了。

YOLOv8 官方仓库在 GitHub 上,直接用 git 克隆:

git clone https://github.com/ultralytics/ultralytics.git
cd ultralytics

安装依赖:

pip install -r requirements.txt

看一眼 requirements.txt 里都有什么:

依赖包 作用 备注
torch 深度学习框架 前面已装
torchvision 图像处理工具 前面已装
numpy 数值计算 基础库
opencv-python 图像读写与预处理 工业场景必备
matplotlib 可视化 调试时用
pyyaml 配置文件解析 YOLOv8 用 yaml 配置
tqdm 进度条 训练时看进度
seaborn 统计图表 画混淆矩阵用

安装完成后,跑个简单的推理测试:

yolo predict model=yolov8n.pt source='https://ultralytics.com/images/bus.jpg'

如果能看到检测结果,说明整个环境搭建成功了。

我的习惯:每次搭完环境,我都会跑一遍这个测试命令。不是为了看结果,而是为了确认整个链路——驱动、CUDA、PyTorch、YOLOv8——全部通顺。这一步省不了,否则后面训练到一半报错,排查起来更痛苦。

3.7 环境验证与常见问题

最后,我把整个环境搭建的流程画成一张图,方便你对照检查:

YOLOv8 环境搭建完整流程 1. 硬件与系统准备 2. GPU 驱动安装 3. CUDA 工具包安装 4. cuDNN 安装(可选) 5. PyTorch 环境配置 6. YOLOv8 源码与依赖 7. 环境验证测试 ⚠️ 常见问题 • nvidia-smi 找不到 → 驱动未装 • nvcc 找不到 → CUDA 未装或 PATH 未配 • torch.cuda.is_available()=False → PyTorch 版本与 CUDA 不匹配 💡 验证命令 nvidia-smi nvcc --version python -c "import torch; print(torch.cuda.is_available())"

这张图把整个流程串起来了。你按步骤走,每一步做完都验证一下,基本不会出大问题。

最后提醒一句:工业现场的环境往往比开发机复杂。我遇到过客户服务器上同时装了多个 CUDA 版本,导致 PyTorch 加载错库的情况。建议用 conda 环境隔离,每个项目一个环境,互不干扰。这是最稳妥的做法。