Linux NVIDIA 显卡驱动安装全攻略:从驱动到 CUDA 一站式搞定
来源:微信公众号「学了笔记」 原文链接:https://mp.weixin.qq.com/s/W7l4BTmbEexL7sGgofq1Kg
在 Linux 上配置 NVIDIA 显卡是深度学习环境的必修课。驱动、CUDA、cuDNN、nvidia-docker2 一套下来,踩坑无数。
本文从查看显卡型号开始,到驱动安装、CUDA 配置、Docker GPU 支持,全流程实战,命令可直接复制使用。
以下内容由博主多年实践积累整理,内容扎实,建议收藏备用。

一、查看显卡型号
bash
# 方法1:通用命令
lspci | grep -i nvidia
# 方法2:显示具体型号
lshw -numeric -C display
# 方法3:NVIDIA 自带命令
nvidia-smi -L
查询型号对应关系:
如果显示 NVIDIA Corporation [10DE:1E82] 这样的十六进制代码,去百度搜索"PCI Devices"网站输入查询具体型号。
二、安装驱动
Ubuntu 自动安装(推荐)
bash
# 1. 安装驱动检测工具
apt install ubuntu-drivers-common
# 2. 查看可用驱动版本
ubuntu-drivers devices
# 3. 自动安装推荐驱动
ubuntu-drivers autoinstall
# 4. 重启系统
reboot手动安装指定版本
- 去官网下载对应驱动:https://www.nvidia.cn/drivers/lookup/
- 安装依赖:
bash
# CentOS / RHEL
yum install -y gcc gcc-c++ kernel-devel
dnf install kernel-devel-$(uname -r) kernel-headers-$(uname -r)
# Ubuntu / Debian
apt install -y build-essential dkms
apt install linux-headers-$(uname -r)- 运行安装脚本:
bash
chmod +x NVIDIA-Linux-x86_64-xxx.xx.run
sudo ./NVIDIA-Linux-x86_64-xxx.xx.run- 开启持久化:
bash
nvidia-smi -pm 1验证安装
bash
nvidia-smi
三、卸载驱动
方法一:使用 .run 文件卸载
bash
./NVIDIA-Linux-x86_64-xxx.xx.run --uninstall
# 或
nvidia-uninstall方法二:Ubuntu 包管理器卸载
bash
# Ubuntu
sudo apt remove --purge '^nvidia-.*'
sudo apt autoremove
# 清理 DKMS 模块
sudo dkms remove nvidia/xxx.xx.xx --all
sudo dkms status
# 清理配置文件
sudo rm -f /etc/X11/xorg.conf
sudo rm -f /etc/modprobe.d/nvidia*
sudo rm -f /lib/modprobe.d/nvidia*方法三:CentOS / RHEL
bash
sudo yum remove nvidia-*
sudo yum remove kmod-nvidia-*四、安装 CUDA
自动安装(推荐)
bash
# 1. 下载并安装 CUDA 密钥环
wget https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/x86_64/cuda-keyring_1.1-1_all.deb
sudo dpkg -i cuda-keyring_1.1-1_all.deb
# 2. 更新源
sudo apt update
# 3. 安装 CUDA Toolkit(不含驱动)
sudo apt install -y cuda-toolkit-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验证安装
bash
nvcc -V
nvidia-smi
手动安装
bash
chmod +x cuda_xxx_linux.run
sudo ./cuda_xxx_linux.run注意:安装时取消勾选 Driver(避免与已安装驱动冲突)。
卸载 CUDA
bash
sudo apt-get remove --purge nvidia-cuda-toolkit cuda-toolkit
sudo apt-get autoremove
sudo rm -rf /usr/local/cuda*
sudo rm -rf /usr/lib/cuda*五、安装 cuDNN
- 下载对应版本:https://developer.nvidia.com/cudnn-downloads
- 解压并复制文件:
bash
tar -xvf cudnn-linux-x86_64-xxx.tgz
# 复制到 CUDA 目录
sudo cp cuda/include/* /usr/local/cuda-12.2/include/
sudo cp cuda/lib64/libcudnn* /usr/local/cuda-12.2/lib64/
sudo chmod a+r /usr/local/cuda-12.2/include/cudnn.h
sudo chmod a+r /usr/local/cuda-12.2/lib64/libcudnn*- 验证安装:
bash
cat /usr/local/cuda-12.2/include/cudnn_version.h | grep CUDNN_MAJOR -A 2六、安装 nvidia-docker2
Ubuntu 22.04 / 24.04
方法一:apt 安装
bash
# 导入 GPG 密钥
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg
# 添加源
echo "deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://nvidia.github.io/libnvidia-container/ubuntu24.04/amd64 /" | sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
# 安装
sudo apt update
sudo apt install -y nvidia-container-toolkit nvidia-container-toolkit-base nvidia-docker2
# 配置 Docker
sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart docker方法二:离线安装
如果 apt 安装报错,可以下载 deb 包手动安装:
bash
# 按顺序安装依赖
dpkg -i libnvidia-container1_1.17.8-1_amd64.deb
dpkg -i libnvidia-container-tools_1.17.8-1_amd64.deb
dpkg -i nvidia-container-toolkit-base_1.17.8-1_amd64.deb
dpkg -i nvidia-container-toolkit_1.17.8-1_amd64.deb
dpkg -i nvidia-docker2_2.14.0-1_all.deb
# 配置 Docker
sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart dockerCentOS / RHEL
bash
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.repo | sudo tee /etc/yum.repos.d/nvidia-docker.repo
sudo yum install -y nvidia-docker2
sudo pkill -SIGHUP dockerd
sudo systemctl restart docker七、测试 GPU 可用
Docker 测试
bash
docker run --gpus all --rm nvidia/cuda:12.6.0-cudnn-runtime-ubuntu22.04 nvidia-smiPython 测试
python
import torch
# 检查 CUDA 是否可用
print(f"CUDA 可用: {torch.cuda.is_available()}")
print(f"显卡数量: {torch.cuda.device_count()}")
print(f"当前显卡: {torch.cuda.get_device_name(0)}")
# 简单计算测试
x = torch.zeros(1).cuda()
y = x + 1
print(f"GPU 计算结果: {y}")性能测试
python
import time
import torch
# GPU 计算
A = torch.ones(5000, 5000).to('cuda')
B = torch.ones(5000, 5000).to('cuda')
start = time.time()
for i in range(100):
C = torch.matmul(A, B)
end = time.time()
print(f'GPU 计算时长: {round((end - start) * 1000, 2)} ms')
# CPU 计算
A = torch.ones(5000, 5000)
B = torch.ones(5000, 5000)
start = time.time()
for i in range(100):
C = torch.matmul(A, B)
end = time.time()
print(f'CPU 计算时长: {round((end - start) * 1000, 2)} ms')八、常见问题解决
问题1:驱动安装失败 - Nouveau 冲突
症状:安装 NVIDIA 驱动时提示 Nouveau 驱动正在使用。
解决:禁用 Nouveau
bash
# 编辑配置文件
sudo nano /etc/modprobe.d/blacklist-nouveau.conf添加内容:
blacklist nouveau
options nouveau modeset=0bash
# 更新 initramfs
sudo update-initramfs -u
# 重启
reboot问题2:CUDA 版本不匹配
解决:查看系统 CUDA 版本
bash
cat /usr/local/cuda/version.txt在代码中指定 CUDA 版本:
python
import os
os.environ['CUDA_VISIBLE_DEVICES'] = '0'问题3:Docker 找不到 GPU
解决:配置默认运行时
编辑 /etc/docker/daemon.json:
json
{
"default-runtime": "nvidia",
"runtimes": {
"nvidia": {
"path": "/usr/bin/nvidia-container-runtime",
"runtimeArgs": []
}
}
}重启 Docker:
bash
systemctl restart docker总结
| 组件 | 作用 | 安装方式 |
|---|---|---|
| NVIDIA Driver | 显卡驱动 | ubuntu-drivers autoinstall |
| CUDA | GPU 计算平台 | apt install cuda-toolkit-12-8 |
| cuDNN | 深度学习加速库 | 手动复制到 CUDA 目录 |
| nvidia-docker2 | Docker GPU 支持 | apt install nvidia-docker2 |
安装顺序:驱动 → CUDA → cuDNN → nvidia-docker2