很多同学在配置深度学习环境时,总在 CUDA 和 cuDNN 的安装上反复踩坑——黑屏、循环登录、驱动冲突、Secure Boot 卡住……本文基于 Ubuntu 18.04,显卡为 NVIDIA GeForce 系列,从零开始,把每一步可能遇到的坑都填平,一次性搞定 CUDA 11.3cuDNN 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 |
+-----------------------------------------------------------------------------+

image.png

  • 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

image.png
image.png

6.3 安装菜单操作

  1. Enter 滚动协议,输入 accept 确认。
  2. Driver 选项必须为 [ ] 不选中(驱动已安装)。
  3. CUDA Toolkit 11.3 保持 [X] 选中。
  4. CUDA Samples 11.3 可选,建议勾上便于测试。
  5. 光标移到 Install,回车。
    image.png
    安装完成后显示 Summary,若出现 Driver: Not Selected 警告属正常现象。
    image.png

    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

image 5.png

七、安装 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 的核心要点:

  1. 禁用 Nouveau —— 最关键的一步,否则必冲突
  2. 关闭图形界面 —— 避免进程占用,确保驱动安装成功
  3. 安装驱动时加 --no-opengl-files —— 笔记本用户必做,防循环登录
  4. 安装 CUDA 时取消勾选 Driver —— 不要重复安装驱动
  5. 配置好环境变量 —— 确保 nvcc 能被系统找到

按照本文步骤,从零开始也能一次性成功。祝你配置顺利!

最后修改:2026 年 04 月 12 日
如果觉得我的文章对你有用,请随意赞赏