目 录CONTENT

文章目录

【运维】Ubuntu 安装 NVIDIA 驱动和 CUDA 12.8 完整指南

EulerBlind
2025-10-23 / 0 评论 / 0 点赞 / 6 阅读 / 0 字

背景

在 Ubuntu 系统上进行深度学习或 GPU 计算开发时,正确安装 NVIDIA 驱动和 CUDA 工具包是第一步。本文记录了从零开始在 Ubuntu 24.04 上安装 NVIDIA 驱动 580 和 CUDA 12.8 的完整过程。

环境信息

  • 操作系统: Ubuntu 24.04 LTS (Noble)
  • 目标 NVIDIA 驱动版本: 580.95.05
  • 目标 CUDA 版本: 12.8
  • Shell: zsh

前置检查

1. 检查是否已安装驱动

nvidia-smi

如果输出 command not found,说明尚未安装 NVIDIA 驱动。

2. 确认系统有 NVIDIA GPU

lspci | grep -i nvidia

应该能看到你的 NVIDIA 显卡型号信息。

3. 查看可用的驱动版本

sudo apt search nvidia-driver

安装步骤

第一步:卸载旧版本驱动(如果存在)

如果系统之前安装过 NVIDIA 驱动,需要先完全卸载。

# 卸载所有 NVIDIA 相关包
sudo apt-get --purge remove "*nvidia*" "*cublas*" "*cufft*" "*cufile*" "*curand*" "*cusolver*" "*cusparse*" "*gds-tools*" "*npp*" "*nvjpeg*" "nsight*" "*nvvm*"

# 清理残留
sudo apt-get autoremove
sudo apt-get autoclean

# 检查是否还有残留的 NVIDIA 包
dpkg -l | grep -i nvidia

如果是全新系统没有安装过驱动,可以跳过这一步。

第二步:添加 NVIDIA 驱动 PPA 源(可选)

Ubuntu 官方源可能不包含最新的驱动版本,建议添加 NVIDIA 官方 PPA。

# 添加 graphics-drivers PPA
sudo add-apt-repository ppa:graphics-drivers/ppa -y

# 更新软件包列表
sudo apt update

注意:如果你的 Ubuntu 官方源已经有 580 驱动(如我们在 apt search 中看到的),可以跳过添加 PPA,直接使用官方源。

第三步:安装 NVIDIA 驱动

CUDA 12.8 需要驱动版本 ≥ 560.35.03,这里我们安装更新的 580 版本以获得更好的兼容性和性能。

# 安装 NVIDIA 驱动 580
sudo apt install nvidia-driver-580 -y

安装过程会自动处理依赖关系,包括:

  • nvidia-dkms: 驱动内核模块
  • nvidia-utils: NVIDIA 工具集
  • 相关的库文件

第二步:重启系统

重要提示:驱动安装后必须重启系统才能生效。这是因为:

  1. 需要加载新的内核模块
  2. 需要卸载可能存在的 nouveau 开源驱动
  3. GPU 硬件需要完整的初始化流程
sudo reboot

第三步:验证驱动安装

重启后,验证驱动是否正确安装:

nvidia-smi

正常情况下会看到类似以下输出:

+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 580.95.05              Driver Version: 580.95.05      CUDA Version: 12.8     |
|-----------------------------------------+------------------------+----------------------+
| GPU  Name                 Persistence-M | Bus-Id          Disp.A | Volatile Uncorr. ECC |
| Fan  Temp   Perf          Pwr:Usage/Cap |           Memory-Usage | GPU-Util  Compute M. |
|                                         |                        |               MIG M. |
|=========================================+========================+======================|
|   0  NVIDIA GeForce ...         Off     |   00000000:01:00.0  On |                  N/A |
|  0%   45C    P8             10W /  250W |     500MiB /  12288MiB |      0%      Default |
|                                         |                        |                  N/A |
+-----------------------------------------+------------------------+----------------------+

注意看 CUDA Version: 12.8,这表示驱动支持的最高 CUDA 版本。

第四步:添加 CUDA 官方仓库

有两种安装方法,我们使用 apt 包管理器方式(更方便管理和更新)。

添加 CUDA 仓库

# 下载并安装 CUDA 仓库密钥环
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/x86_64/cuda-keyring_1.1-1_all.deb

# 安装密钥环
sudo dpkg -i cuda-keyring_1.1-1_all.deb

# 更新软件包列表
sudo apt-get update

第五步:安装 CUDA Toolkit

# 安装 CUDA 12.8 工具包
sudo apt-get install cuda-toolkit-12-8 -y

这个包包含:

  • nvcc (NVIDIA CUDA 编译器)
  • CUDA 库 (cuBLAS, cuDNN, cuFFT 等)
  • CUDA 示例代码
  • 开发工具和文档

第六步:配置环境变量

将 CUDA 路径添加到系统环境变量中。

对于 zsh 用户:

# 添加到 ~/.zshrc
echo 'export PATH=/usr/local/cuda-12.8/bin:$PATH' >> ~/.zshrc
echo 'export LD_LIBRARY_PATH=/usr/local/cuda-12.8/lib64:$LD_LIBRARY_PATH' >> ~/.zshrc

# 使配置立即生效
source ~/.zshrc

对于 bash 用户:

# 添加到 ~/.bashrc
echo 'export PATH=/usr/local/cuda-12.8/bin:$PATH' >> ~/.bashrc
echo 'export LD_LIBRARY_PATH=/usr/local/cuda-12.8/lib64:$LD_LIBRARY_PATH' >> ~/.bashrc

# 使配置立即生效
source ~/.bashrc

第七步:验证 CUDA 安装

# 检查 CUDA 编译器版本
nvcc --version

应该看到类似输出:

nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2024 NVIDIA Corporation
Built on Wed_Oct_16_20:22:48_PDT_2024
Cuda compilation tools, release 12.8, V12.8.0
Build cuda_12.8.r12.8/compiler.34972470_0
# 再次检查 nvidia-smi
nvidia-smi

可选:编译 CUDA 示例程序

CUDA 提供了示例程序来验证安装和测试 GPU 性能。

# 复制示例到用户目录
cuda-install-samples-12.8.sh ~

# 进入 deviceQuery 示例目录
cd ~/NVIDIA_CUDA-12.8_Samples/1_Utilities/deviceQuery

# 编译
make

# 运行
./deviceQuery

成功的话会输出详细的 GPU 信息:

./deviceQuery Starting...

CUDA Device Query (Runtime API) version (CUDART static linking)

Detected 1 CUDA Capable device(s)

Device 0: "NVIDIA GeForce RTX 3080"
  CUDA Driver Version / Runtime Version          12.8 / 12.8
  CUDA Capability Major/Minor version number:    8.6
  Total amount of global memory:                 10240 MBytes
  ...
  
Result = PASS

常见问题

1. 驱动安装后 nvidia-smi 仍然不可用

原因:没有重启系统,驱动模块未加载。

解决:必须重启系统。虽然可以尝试 sudo modprobe nvidia 动态加载,但不保证稳定性,建议重启。

2. 提示 nouveau 驱动冲突

解决:禁用 nouveau 开源驱动

sudo bash -c "echo blacklist nouveau > /etc/modprobe.d/blacklist-nvidia-nouveau.conf"
sudo bash -c "echo options nouveau modeset=0 >> /etc/modprobe.d/blacklist-nvidia-nouveau.conf"
sudo update-initramfs -u
sudo reboot

3. CUDA 版本不匹配

驱动中显示的 CUDA Version 是驱动支持的最高版本,实际使用的 CUDA 版本由你安装的 toolkit 决定。例如:

  • 驱动显示 CUDA Version: 12.8
  • 但你可以安装 CUDA 12.0、11.8 等较低版本的 toolkit

4. 多版本 CUDA 共存

如果需要同时使用多个 CUDA 版本:

# 安装另一个版本,例如 CUDA 12.0
sudo apt-get install cuda-toolkit-12-0

# 通过修改环境变量切换版本
export PATH=/usr/local/cuda-12.0/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-12.0/lib64:$LD_LIBRARY_PATH

或者使用符号链接:

# 将 /usr/local/cuda 指向不同版本
sudo ln -sf /usr/local/cuda-12.8 /usr/local/cuda

版本兼容性参考

CUDA 版本最低驱动版本 (Linux)发布日期
12.8560.35.032024-10
12.6550.54.152024-08
12.4550.54.152024-03
12.0525.60.132022-12
11.8520.61.052022-11

总结

整个安装过程的核心步骤:

  1. ✅ 卸载旧版本驱动(如果存在)
  2. ✅ 添加 NVIDIA 驱动源(可选,取决于官方源版本)
  3. ✅ 安装 NVIDIA 驱动 (nvidia-driver-580)
  4. 重启系统(必须!)
  5. ✅ 验证驱动 (nvidia-smi)
  6. ✅ 添加 CUDA 官方仓库
  7. ✅ 安装 CUDA Toolkit (cuda-toolkit-12-8)
  8. ✅ 配置环境变量
  9. ✅ 验证安装 (nvcc --version)

关键点

  • 升级驱动前要完全卸载旧版本,避免冲突
  • 确保添加了正确的软件源(驱动源和 CUDA 源)
  • 驱动安装后必须重启才能生效,这不是可选步骤
  • 虽然理论上可以通过动态加载模块避免重启,但在生产环境中不推荐,容易导致驱动不稳定或 GPU 初始化失败

参考资料


最后更新:2025-10-22

0
博主关闭了所有页面的评论