NVIDIA GPU 驱动与 CUDA 安装指南
说明
服务器部署深度学习 / 推理等 GPU 业务前,需要先安装 NVIDIA 驱动与 CUDA 工具包。本文覆盖:
- 检查操作系统版本(以 Ubuntu 24.04 LTS 为例)
- 检查 GPU 硬件型号
- 安装(两种可选方法)
- 卸载(两种安装方法的卸载流程一致)
两种安装方法:
- 方法一(先装驱动,再装 CUDA):稳定可靠,驱动为 NVIDIA 认证长期支持版本;缺点是不能选最新 CUDA,只能选驱动适配的指定版本。可接受较低版本 CUDA 时选此方法。
- 方法二(直接装 CUDA,自带驱动):CUDA 可选最新版,功能最新;缺点是 CUDA 自带的驱动并非最新稳定版,属短期受限支持。必须追最新 CUDA 时选此方法。
注意
- 因部署环境复杂,本文步骤目前只能人工处理,无法完全自动化。
- 本文不覆盖联网安装方式 (如
apt、网络仓库、runfile 在线拉取等)。国内网络环境下联网安装失败率较高,故仅提供 runfile 离线安装方案。- 文中所有版本号、文件名均为真实示例,请以你实际下载的文件为准,下文仅作参考。
一、检查操作系统版本
本文以 Ubuntu 24.04 LTS(x86_64) 为例。请先确认系统版本与架构。
bash
# 查看发行版信息
cat /etc/os-release
# 查看内核版本(后续安装内核头文件会用到)
uname -r
# 查看系统架构,需为 x86_64
uname -m
确认要点:
cat /etc/os-release中VERSION=应为24.04系列(如24.04.1 LTS (Noble Numbat))。uname -m输出应为x86_64。NVIDIA 官方驱动与 CUDA 仅支持 64 位 x86 架构。uname -r记下的内核版本(如6.8.0-xx-generic)用于后续安装对应的linux-headers。
二、检查 GPU 硬件型号
在安装驱动之前 即可确认显卡型号(此时 nvidia-smi 尚不可用)。
bash
# 若 lspci 命令不存在,先安装:apt update && apt install -y pciutils
lspci -nn | grep -i nvidia
输出示例:
2D:00.0 3D controller [0302]: NVIDIA Corporation TU104GL [Quadro RTX 5000] [10de:1eb1] (rev a1)
记下 [10de:xxxx] 中的设备 ID 与型号名称(如 Quadro RTX 5000),后续到 NVIDIA 官网查驱动与 CUDA 兼容性时会用到。
驱动安装完成、重启后,再用 nvidia-smi 做二次确认(见第三章「验证」小节)。
可选辅助脚本 :仓库外另有
tv/script/check/check_GPU.sh可一键检测 GPU 信息并生成日志(如gpu_detection_*.log)。该脚本不在本文范围内,按需自取,本文以命令行自检为准。
三、安装
3.1 准备
3.1.1 下载软件
① 下载 NVIDIA 驱动
浏览器访问 https://www.nvidia.cn/drivers/lookup/,输入第一章查到的显卡型号,选择适配当前操作系统的版本下载。
- 追求长期稳定:优选官网推荐 / 认证版本。
- 追求功能最新:点击「全部」,选最新版本。


可对照 CUDA 与驱动的兼容性矩阵选取搭配版本:https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html


② 下载 CUDA
浏览器访问(已预选 Ubuntu 24.04、runfile 本地安装):
复制页面底部命令参考里的文件地址下载,例如:
https://developer.download.nvidia.com/compute/cuda/12.9.1/local_installers/cuda_12.9.1_575.57.08_linux.run
如需其他版本,访问 CUDA 历史版本归档:https://developer.nvidia.com/cuda-toolkit-archive


方法一需要的是较低版本的 CUDA (由驱动决定,见 3.2 节
nvidia-smi显示的 CUDA Version),请从归档页下载对应版本;方法二用最新版即可。
③ 下载驱动测试文件(cuda-samples)
用于验证 GPU 软硬件可用性。访问 https://github.com/NVIDIA/cuda-samples/tags,下载与所装 CUDA 版本一致的 tag 压缩包(如 cuda-samples-12.8.tar.gz)。
④ 上传并赋予执行权限
将下载的文件上传到服务器(示例目录 /opt/nvidia),并加执行权限:
bash
root@testserver1:~# cd /opt/nvidia
root@testserver1:/opt/nvidia# chmod +x cuda_12.9.1_575.57.08_linux.run NVIDIA-Linux-x86_64-570.172.08.run
root@testserver1:/opt/nvidia# ls -lh
-rwxr-xr-x 1 root root 5.9G cuda_12.9.1_575.57.08_linux.run
-rwxr-xr-x 1 root root 376M NVIDIA-Linux-x86_64-570.172.08.run
-rwxr-xr-x 1 root root 1.7K check_GPU.sh
3.1.2 安装基础软件
驱动 .run 安装时需要编译内核模块(DKMS),必须准备好编译工具与内核头文件:
bash
apt update -y && apt install -y build-essential linux-headers-$(uname -r) cmake
build-essential:包含gcc、g++、make等编译工具。linux-headers-$(uname -r):与当前内核匹配的头文件,驱动编译模块必需。cmake:后续编译cuda-samples验证程序需要。
3.2 方法一:先安装驱动,再安装 CUDA
适用于可接受较低版本 CUDA、追求驱动长期稳定的场景。
① 安装 NVIDIA 驱动
bash
root@testserver1:/opt/nvidia# ./NVIDIA-Linux-x86_64-570.172.08.run




交互界面中其余选项均选择「确认」并回车。安装完成后重启操作系统:
bash
reboot
重启后确认驱动已加载:
bash
root@testserver1:~# nvidia-smi
Fri Jul 18 03:32:14 2025
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 570.172.08 Driver Version: 570.172.08 CUDA Version: 12.8 |
|-----------------------------------------+------------------------+----------------------|
| GPU Name Persistence-M | Bus-Id Disp.A | Volatile Uncorr. ECC |
|=========================================+========================+======================|
| 0 Quadro RTX 5000 Off | 00000000:2D:00.0 Off | Off |
+-----------------------------------------+------------------------+----------------------+
关键 :记下
nvidia-smi输出中的CUDA Version: 12.8,它表示当前驱动支持的最高 CUDA 版本。下文 CUDA 必须选 12.8 系列(以你实际查询到的为准),不能选更高版本。
② 安装 CUDA(取消勾选驱动)
单独下载对应版本的 CUDA(如 cuda_12.8.1_570.124.06_linux.run),运行安装:
bash
root@testserver1:/opt/nvidia# ./cuda_12.8.1_570.124.06_linux.run


由于驱动已安装,此处务必取消勾选 Driver:


安装完成后摘要示例(注意 Driver: Not Selected):
=========== Summary ===========
Driver: Not Selected
Toolkit: Installed in /usr/local/cuda-12.8/
③ 配置环境变量
bash
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 找不到驱动的异常(随机、非必现)。建议安装结束后重启操作系统规避。
3.3 方法二:直接安装 CUDA(自带驱动)
适用于必须追最新 CUDA、可接受驱动为短期受限支持的场景。
bash
root@testserver1:/opt/nvidia# ./cuda_12.9.1_575.57.08_linux.run


默认配置如下,驱动与工具包均勾选:


注意 :此方法自带的 NVIDIA 驱动不是充分测试的稳定版,可在 NVIDIA 驱动下载页查询本机 GPU 适配的驱动清单确认。选此方法即需接受该驱动版本。


安装完成后摘要示例(Driver: Installed):
=========== Summary ===========
Driver: Installed
Toolkit: Installed in /usr/local/cuda-12.9/
配置环境变量
若曾经装过其他版本 CUDA,记得先在 ~/.bashrc 注释掉旧的路径配置,避免冲突:
bash
echo 'export PATH=/usr/local/cuda-12.9/bin:$PATH' >> ~/.bashrc
echo 'export LD_LIBRARY_PATH=/usr/local/cuda-12.9/lib64:$LD_LIBRARY_PATH' >> ~/.bashrc
source ~/.bashrc
若条件允许,务必重启操作系统,规避偶发异常。
3.4 验证
两种安装方法完成后,验证步骤完全一致。
3.4.1 基础测试
驱动:
bash
root@testserver1:~# nvidia-smi
Fri Jul 18 07:30:28 2025
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 575.57.08 Driver Version: 575.57.08 CUDA Version: 12.9 |
+-----------------------------------------------------------------------------------------+
| 0 Quadro RTX 5000 Off | 00000000:2D:00.0 Off | Off |
+-----------------------------------------------------------------------------------------+
CUDA 编译器:
bash
root@testserver1:~# nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2025 NVIDIA Corporation
Built on Fri_Feb_21_20:23:50_PST_2025
Cuda compilation tools, release 12.8, V12.8.93
能正常显示驱动版本与 nvcc 版本即为基础测试通过。
3.4.2 增量测试(可选)
如需进一步验证 CUDA 计算能力,编译并运行官方示例 deviceQuery:
bash
# 解压与所装 CUDA 版本一致的 cuda-samples
tar -xzf cuda-samples-12.8.tar.gz
cd cuda-samples-12.8/Samples/1_Utilities/deviceQuery
cmake ./
make
./deviceQuery
输出末尾 Result = PASS 表示 GPU 驱动与硬件状态检测通过:
./deviceQuery Starting...
CUDA Device Query (Runtime API) version (CUDART static linking)
Detected 1 CUDA Capable device(s)
Device 0: "Quadro RTX 5000"
CUDA Driver Version / Runtime Version 12.8 / 12.8
...
Result = PASS
四、卸载
若软件版本过低或功能异常,可参考本方法卸载。无论使用方法一 还是方法二 安装,卸载流程都一致:先卸载 CUDA Toolkit,再卸载 NVIDIA Driver,最后一次性重启。
① 确认实际安装路径
bash
ls /usr/local/ | grep cuda
# 示例输出:cuda-12.8 或 cuda-12.9(以实际为准)
② 卸载 CUDA Toolkit
将下方路径中的版本号替换为上一步查到的实际版本:
bash
/usr/local/cuda-<实际版本>/bin/cuda-uninstaller


卸载结束可见提示:
Successfully uninstalled
③ 卸载 NVIDIA Driver
bash
/usr/bin/nvidia-uninstall


④ 重启生效
若 CUDA 与驱动都要卸载,请等两者全部卸载完成后再一起重启,不要分步重启。
bash
reboot