本指南旨在为 Ubuntu 用户提供一个清晰、分步的流程,以正确安装 NVIDIA 显卡驱动和 CUDA Toolkit。这对于深度学习、科学计算和任何需要 GPU 加速的应用至关重要。
前期准备与环境配置
在开始安装之前,完成以下准备工作,这将避免后续安装过程中 常见错误。
1. 禁用 Secure Boot
NVIDIA 驱动是第三方内核模块,默认情况下无法在启用安全启动 (Secure Boot) 的系统上加载。
- 重启计算机。
- 进入 BIOS/UEFI 设置界面(在开机时按
F2
,F12
,DEL
或ESC
键)。 - 在
Security
或Boot
选项卡中找到 Secure Boot 选项,并将其设置为 Disabled。 - 保存更改并退出。
2. 安装编译环境 (Build Tools)
安装 CUDA 和驱动程序需要从源码编译内核模块,因此必须安装必要的编译工具。
sudo apt update
sudo apt install build-essential
3. 升级 GCC / G++ 编译器
较新版本的 NVIDIA 驱动和 CUDA Toolkit 需要较新版本的 GCC 编译器。为了确保兼容性,建议将 GCC 升级到 12 或更高版本。
# 安装 GCC 12 和 G++ 12
sudo apt install gcc-12 g++-12
# (可选) 将 gcc-12 设置为默认版本
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-12 120 --slave /usr/bin/g++ g++ /usr/bin/g++-12
安装后,验证一下默认的 GCC 版本:
gcc --version
输出应显示为 12.x.x 版本。
第 1 步:安装 NVIDIA 显卡驱动
安装驱动有两种方法:自动安装(推荐)和手动安装。
方法 A:自动安装
这是最简单、最不容易出错的方法,系统会自动为您选择最匹配的稳定版驱动。
sudo ubuntu-drivers autoinstall
安装完成后,重启电脑 sudo reboot
使驱动生效。
方法 B:手动离线安装
如果您需要一个特定版本的驱动,可以从 NVIDIA 官网下载 .run
文件进行手动安装。
注意: 手动安装前必须关闭图形用户界面 (GUI)。
- 进入 TTY 文本模式:按下
Ctrl + Alt + F3
进入纯命令行界面。 - 登录:输入您的用户名和密码。
- 关闭图形服务:
sudo systemctl isolate multi-user.target
- 运行安装程序:进入下载的
.run
文件所在目录,执行它。# 赋予文件执行权限 chmod +x NVIDIA-Linux-x86_64-xxx.xx.run # 运行安装程序 sudo ./NVIDIA-Linux-x86_64-xxx.xx.run
- 重启电脑:安装完成后,重启系统以加载驱动和图形界面。
sudo reboot
第 2 步:安装 CUDA Toolkit
1. 下载 CUDA Toolkit
访问 NVIDIA CUDA Toolkit 历史版本存档,选择需要的版本(例如 12.2),并下载对应的 .run
安装文件。
2. 运行安装程序
执行下载好的 .run
文件:
sudo ./cuda_12.2.0_535.54.03_linux.run
3. 选择安装组件 (非常重要)
在安装过程中,会出现一个组件选择界面。如果您已经在第 1 步中安装了 NVIDIA 驱动,请务必取消勾选 Driver
选项,只选择安装 CUDA Toolkit
,如下所示:
这样做可以避免使用 CUDA 自带的旧版驱动覆盖掉已经安装好的新版驱动。
第 3 步:配置环境变量
为了让系统能够在任何路径下找到 CUDA 的命令(如 nvcc
),需要将其路径添加到环境变量中。
- 编辑
.bashrc
文件:vim ~/.bashrc
- 在文件末尾添加以下两行 (请根据您安装的 CUDA 版本修改路径):
# CUDA Toolkit Environment Variables export PATH=/usr/local/cuda-12.2/bin${PATH:+:${PATH}} export LD_LIBRARY_PATH=/usr/local/cuda-12.2/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
- 保存并使其生效:
source ~/.bashrc
第 4 步:验证安装
最后,通过以下命令来验证驱动和 CUDA Toolkit 是否都已成功安装。
验证驱动:
nvidia-smi
如果成功,该命令会显示 GPU 信息、驱动版本和 CUDA 版本。
验证 CUDA Toolkit:
nvcc -V
或
nvcc --version
如果成功,会显示 CUDA 编译器的详细版本信息。