背景
在 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 工具集
- 相关的库文件
第二步:重启系统
重要提示:驱动安装后必须重启系统才能生效。这是因为:
- 需要加载新的内核模块
- 需要卸载可能存在的 nouveau 开源驱动
- 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.8 | 560.35.03 | 2024-10 |
| 12.6 | 550.54.15 | 2024-08 |
| 12.4 | 550.54.15 | 2024-03 |
| 12.0 | 525.60.13 | 2022-12 |
| 11.8 | 520.61.05 | 2022-11 |
总结
整个安装过程的核心步骤:
- ✅ 卸载旧版本驱动(如果存在)
- ✅ 添加 NVIDIA 驱动源(可选,取决于官方源版本)
- ✅ 安装 NVIDIA 驱动 (
nvidia-driver-580) - ✅ 重启系统(必须!)
- ✅ 验证驱动 (
nvidia-smi) - ✅ 添加 CUDA 官方仓库
- ✅ 安装 CUDA Toolkit (
cuda-toolkit-12-8) - ✅ 配置环境变量
- ✅ 验证安装 (
nvcc --version)
关键点:
- 升级驱动前要完全卸载旧版本,避免冲突
- 确保添加了正确的软件源(驱动源和 CUDA 源)
- 驱动安装后必须重启才能生效,这不是可选步骤
- 虽然理论上可以通过动态加载模块避免重启,但在生产环境中不推荐,容易导致驱动不稳定或 GPU 初始化失败
参考资料
最后更新:2025-10-22