很多同学在配置深度学习环境时,总在 CUDA 和 cuDNN 的安装上反复踩坑——黑屏、循环登录、驱动冲突、Secure Boot 卡住……本文基于 Ubuntu 18.04,显卡为 NVIDIA GeForce 系列,从零开始,把每一步可能遇到的坑都填平,一次性搞定 CUDA 11.3 和 cuDNN 8.5.0。
一、准备工作:确认显卡型号与驱动版本
打开终端(Ctrl+Alt+T),输入:
nvidia-smi如果出现类似输出:
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 470.63.01 Driver Version: 470.63.01 CUDA Version: 11.4 |
+-----------------------------------------------------------------------------+
| 0 NVIDIA GeForce ... Off | 00000000:01:00.0 On | N/A |
| 43% 31C P8 22W / 160W | 296MiB / 5926MiB | 22% Default |
+-----------------------------------------------------------------------------+
- Driver Version:当前驱动版本号
- CUDA Version:此驱动支持的最高 CUDA 版本
⚠️ CUDA 11.3 需要驱动版本 ≥ 465.00,若低于此版本,必须升级驱动。CUDA 11.3 依赖的驱动版本为 465.19.01 或更新版本。
如果没有 nvidia-smi 命令,说明尚未安装驱动,需按本文第二部分操作。
二、核心避坑操作:禁用 Nouveau 开源驱动
这是整个安装过程中最关键的一步! Ubuntu 默认使用开源的 nouveau 驱动,与 NVIDIA 官方驱动会直接冲突,导致黑屏或安装失败,必须先将其禁用。
步骤 1:创建黑名单文件
sudo vim /etc/modprobe.d/blacklist-nouveau.conf如果系统中没有 vim 编辑器,可以用 gedit 代替:sudo gedit /etc/modprobe.d/blacklist-nouveau.conf。
步骤 2:写入以下内容(四行都要写)
blacklist nouveau
blacklist lbm-nouveau
options nouveau modeset=0
alias nouveau off
alias lbm-nouveau off💡 推荐写入上述完整四行配置,比常见的两行更彻底地禁用 nouveau,有效避免黑屏。
步骤 3:更新内核并重启
sudo update-initramfs -u
sudo reboot步骤 4:验证禁用是否生效
重启后执行:
lsmod | grep nouveau如果没有输出任何内容,说明禁用成功。如果仍有输出,请重新检查黑名单文件是否正确。
三、卸载旧驱动(避免冲突)
无论之前是否安装过驱动,建议先彻底清理,避免残留文件干扰新驱动安装。
sudo apt-get remove --purge nvidia*
sudo apt-get autoremove如果之前是通过 .run 文件手动安装的,进入该文件目录执行:
sudo ./NVIDIA-Linux-*.run --uninstall四、进入命令行模式(关闭图形界面)
安装 NVIDIA 驱动前需要关闭图形界面,避免进程占用冲突。
sudo systemctl isolate multi-user.target执行后屏幕会切换至纯命令行模式。登录后,按 Ctrl+Alt+F2 进入 tty2 终端。也可以使用 sudo service lightdm stop(若使用 lightdm)。
五、安装 NVIDIA 驱动
5.1 下载驱动
访问 NVIDIA 驱动下载页面,选择显卡型号和 Linux 操作系统,下载对应的 .run 文件。
下载完成后,通过 scp、U 盘或直接在 tty2 中用 wget 将文件传到目标目录。
5.2 安装驱动
chmod +x NVIDIA-Linux-*.run
sudo ./NVIDIA-Linux-*.run --no-opengl-files--no-opengl-files 参数的作用:只安装驱动文件,不安装 OpenGL 文件。台式机可省略,笔记本必加,否则容易出现循环登录(loop login)。
5.3 处理 Secure Boot
如果 BIOS 中的 Secure Boot 未禁用,安装过程中会提示设置一个密码,重启后需要验证。强烈建议在安装前直接进入 BIOS 关闭 Secure Boot,避免后续麻烦。
5.4 重启并验证驱动
sudo reboot重启后执行 nvidia-smi,若显示 GPU 信息则驱动安装成功。
六、安装 CUDA 11.3
6.1 下载 CUDA 11.3
访问 NVIDIA CUDA Toolkit Archive,找到 CUDA Toolkit 11.3。
选择配置:
- Operating System: Linux
- Architecture: x86_64
- Distribution: Ubuntu
- Version: 18.04
- Installer Type: runfile (local)
🎯 为什么选 runfile? runfile 方式灵活,可选择不安装驱动(已有驱动时),避免与现有驱动冲突。deb 方式会自动安装驱动,容易出问题。
下载得到 cuda_11.3.1_465.19.01_linux.run。
6.2 安装 CUDA(再次禁用 Nouveau 和关闭图形界面)
在运行 CUDA 安装程序前,务必再次执行:
lsmod | grep nouveau # 确认无输出
sudo systemctl isolate multi-user.target # 关闭图形界面进入命令行模式后执行:
chmod +x cuda_11.3.1_465.19.01_linux.run
sudo sh cuda_11.3.1_465.19.01_linux.run

6.3 安装菜单操作
- 按
Enter滚动协议,输入accept确认。 - Driver 选项必须为
[ ]不选中(驱动已安装)。 - CUDA Toolkit 11.3 保持
[X]选中。 - CUDA Samples 11.3 可选,建议勾上便于测试。
光标移到
Install,回车。
安装完成后显示 Summary,若出现Driver: Not Selected警告属正常现象。
6.4 配置环境变量
echo 'export PATH=/usr/local/cuda-11.3/bin:$PATH' >> ~/.bashrc
echo 'export LD_LIBRARY_PATH=/usr/local/cuda-11.3/lib64:$LD_LIBRARY_PATH' >> ~/.bashrc
echo 'export CUDA_HOME=/usr/local/cuda-11.3' >> ~/.bashrc
source ~/.bashrc💡 建议将/usr/local/cuda软链接指向/usr/local/cuda-11.3,便于版本切换。
6.5 验证 CUDA
nvcc -V预期输出:
nvcc: NVIDIA (R) Cuda compiler driver
Cuda compilation tools, release 11.3, V11.3.109
七、安装 cuDNN
7.1 下载 cuDNN
访问 NVIDIA cuDNN 下载页面(需注册登录)。选择 cuDNN v8.5.0 for CUDA 11.x。
⚠️ 特别注意:下载时建议选择确定的 CUDA 版本(如 11.3),而不是笼统的 11.x,否则可能下载到不匹配的版本。
下载 Local Installer for Linux x86_64 (Tar) 文件,例如 cudnn-linux-x86_64-8.5.0.96_cuda11-archive.tar.xz。
7.2 安装 cuDNN
tar -xvf cudnn-linux-x86_64-8.5.0.96_cuda11-archive.tar.xz
cd cudnn-linux-x86_64-8.5.0.96_cuda11-archive
sudo cp include/cudnn*.h /usr/local/cuda-11.3/include/
sudo cp lib/libcudnn* /usr/local/cuda-11.3/lib64/
sudo chmod a+r /usr/local/cuda-11.3/include/cudnn*.h
sudo chmod a+r /usr/local/cuda-11.3/lib64/libcudnn*7.3 验证 cuDNN
cat /usr/local/cuda-11.3/include/cudnn_version.h | grep CUDNN_MAJOR -A 2输出:
#define CUDNN_MAJOR 8
#define CUDNN_MINOR 5
#define CUDNN_PATCHLEVEL 0表示 cuDNN 8.5.0 安装成功。
八、常见问题与解决方法
| 问题 | 原因 | 解决方案 | |
|---|---|---|---|
| 安装驱动后黑屏 | Nouveau 未彻底禁用 / OpenGL 冲突 | 重新禁用 nouveau,用 --no-opengl-files 重装驱动 | |
| 循环登录(Loop Login) | OpenGL 文件冲突 | 重装驱动时添加 --no-opengl-files 参数 | |
| Secure Boot 导致驱动加载失败 | Secure Boot 未禁用 | 进 BIOS 关闭 Secure Boot | |
| nvidia-smi 有输出但 nvcc 找不到 | 环境变量未配置 | 检查 ~/.bashrc,执行 source ~/.bashrc | |
| 安装 CUDA 时提示驱动版本不足 | 驱动版本 < 465.00 | 先升级驱动至 470 或更高版本 | |
| `lsmod \ | grep nouveau` 仍有输出 | 黑名单未生效 | 检查配置文件是否正确,重启后再次验证 |
| 安装 CUDA 时报 "nvidia-drm" 冲突 | 图形界面未关闭 | 执行 systemctl isolate multi-user.target |
九、环境检查清单(全部通过才算成功)
- [ ]
nvidia-smi显示 GPU 信息和驱动版本 ≥ 465.00 - [ ]
nvcc -V显示 CUDA 11.3 版本信息 - [ ]
lsmod | grep nouveau无输出 - [ ]
cat /usr/local/cuda-11.3/include/cudnn_version.h | grep CUDNN_MAJOR显示 8 - [ ] 重启后驱动和 CUDA 均能正常使用
十、总结
成功安装 NVIDIA 驱动 + CUDA 11.3 + cuDNN 的核心要点:
- 禁用 Nouveau —— 最关键的一步,否则必冲突
- 关闭图形界面 —— 避免进程占用,确保驱动安装成功
- 安装驱动时加
--no-opengl-files—— 笔记本用户必做,防循环登录 - 安装 CUDA 时取消勾选 Driver —— 不要重复安装驱动
- 配置好环境变量 —— 确保
nvcc能被系统找到
按照本文步骤,从零开始也能一次性成功。祝你配置顺利!