确定 Bebian 系统识别了 NVIDIA 显卡
1lspci | grep -i nvidia
如果 Debian 12 安装了图形用户界面,默认会安装 nouveau 驱动兼容 NVIDIA 显卡。nouveau 驱动与 NVIDIA 官方驱动并不兼容,因此需要先卸载掉。
首先查看 nouveau 驱动工作状态
1$ lsmod | grep nouveau
此时应该会存在很多运行时信息,说明 nouveau 驱动正在工作。
查看 nouveau 内核文件
1# 查看 nouveau 内核文件
2$ modinfo -F filename nouveau
查询 nouveau 对应的软件包# 需要安装 apt-file 并 update 软件包列表
$ apt-file search nouveau.ko
可以看出,由于 nouveau 驱动捆绑在 Linux 内核包内,无法直接删除,只能通过黑名单禁用。
1# 将 nouveau 驱动加入黑名单
2$ vim /etc/modprobe.d/nvidia-installer-disable-nouveau.conf
确认包含以下内容
1# generated by nvidia-installer
2blacklist nouveau
3options nouveau modeset=0
应用到内核
1$ update-initramfs -u
此时如果系统处于图形用户界面,则需要先关闭图形界面。我们将系统运行等级降为多用户模式,即纯命令行界面。
1# 查看当前系统默认运行等级
2$ systemctl get-default
3 graphical.target
4
5# 设置系统默认运行等级为多用户模式
6$ systemctl set-default multi-user.target
7
8# 立即切换当前系统为多用户模式
9$ init 3
设置好启动时的运行等级后,重启。
此时查看 nouveau 驱动工作状态
1$ lsmod | grep nouveau
如果没有信息,说明 nouveau 驱动已经被禁用了。
在安装 NVIDIA 显卡驱动之前,还需要下载编译 Linux 源码。
1# 下载 c++ 编译工具
2sudo apt install gcc make
3
4# 下载 linux 源码
5sudo apt install linux-source-$(uname -r)
6
7# 下载 linux 源码头文件
8sudo apt install linux-headers-$(uname -r)
默认源码文件会放在 /usr/src
目录下。
首先建议去 NVIDIA 官网,根据显卡型号、CPU架构和操作系统,选择合适的驱动下载。
NVIDIA 驱动官方下载:https://www.nvidia.cn/geforce/drivers/
到这一步就很简单了,从 NVIDIA 官网下载好合适的驱动后,直接使用 bash 运行安装。
1# 直接运行安装程序
2$ bash NVIDIA-Linux-x86_64-535.146.02.run
安装完之后重启。
利用 envycontrol 这个工具可以方便的管理 NVIDIA 官方驱动,切换显卡工作模式。
envycontrol 工具下载地址:https://github.com/bayasdev/envycontrol/releases
1# 下载 envycontrol
2$ wget https://github.com/bayasdev/envycontrol/releases/download/v3.3.1/python3-envycontrol_3.3.1-1_all.deb
3
4# 安装
5$ dpkg -i python3-envycontrol_3.3.1-1_all.deb
6
7# 查询当前工作模式
8$ envycontrol --query
9
10# 设置工作显卡为 nvidia 显卡
11$ sudo envycontrol -s nvidia
在Linux上,您可以将GPU设置为持久模式,以使NVIDIA驱动程序加载,即使没有应用程序在访问这些卡也是如此。
当您要运行一系列短期作业时,此功能特别有用。 持久模式每个闲置的GPU使用更多的功率,但是可以防止每次启动GPU应用程序时出现相当长的延迟。
如果您已为GPU分配了特定的时钟速度或功率限制,则也很有必要。(因为在卸载NVIDIA驱动程序时这些更改会丢失)
通过运行以下命令在所有GPU上启用持久性模式:
1$ nvidia-smi -pm 1
同理,也是建议去 NVIDIA 官网,根据显卡型号、CPU架构和操作系统,选择合适的驱动下载。
首先查看当前 NVIDIA 驱动所能对应的 CUDA 版本
1$ nvidia-smi
CUDA 版本选择的原则,一般只要保持大版本号一致,小版本不超过支持范围即可。CUDA 官方下载:https://developer.nvidia.com/cuda-downloads
CUDA 旧版档案列表:https://developer.nvidia.com/cuda-toolkit-archive
根据官网提示,可以直接使用以下命令安装。
1$ wget https://developer.download.nvidia.com/compute/cuda/12.3.2/local_installers/cuda-repo-debian12-12-3-local_12.3.2-545.23.08-1_amd64.deb
2$ sudo dpkg -i cuda-repo-debian12-12-3-local_12.3.2-545.23.08-1_amd64.deb
3$ sudo cp /var/cuda-repo-debian12-12-3-local/cuda-*-keyring.gpg /usr/share/keyrings/
4$ sudo add-apt-repository contrib
5$ sudo apt-get update
6$ sudo apt-get -y install cuda-toolkit-12-3
CUDNN 选择与 CUDA 的大版本对应即可,细微的版本区别差异不大。同样建议去 NVIDIA 官网,根据显卡型号、CPU架构和操作系统,选择合适的驱动下载。
CUDNN 官方下载:https://developer.nvidia.com/rdp/cudnn-download
注意:下载 CUDNN 需要登陆 NVIDIA 账户后,才能查看下载链接。
这里有 Debian 11 的安装包,不过没有 12 的,所以还是直接下载通用解压包吧。
bash下载完成之后解压包;
1$ tar -xJf cudnn-linux-x86_64-8.9.7.29_cuda12-archive.tar.xz
进入解压后的 CUDNN,将 include 和 lib 两个文件夹内容复制到 CUDA 安装目录
1$ sudo mv include/ /usr/local/cuda/include/
2$ sudo mv lib/ /usr/local/cuda/lib/
3
4# 授予 cudnn 文件权限
5$ sudo chmod a+r /usr/local/cuda/include /usr/local/cuda/lib
好了,至此 CUDA 计算工具包就安装完成了。后续可以继续安装 PyTorch
或者 Tensorflow
等计算框架应用了