木须柄的时光工坊

探索技术与游戏乐趣的奇妙之旅

目录
在 Debian12 上安装 CUDA
/        

在 Debian12 上安装 CUDA

安装 NVIDIA 显卡驱动

1. 禁用 nouveau 驱动

确定 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

image-20240107195855809.png 查询 nouveau 对应的软件包# 需要安装 apt-file 并 update 软件包列表

$ apt-file search nouveau.ko

image-20240107195945124.png

可以看出,由于 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 驱动已经被禁用了。

2. 编译 Linux 源码

在安装 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 目录下。

3. 安装 NVIDIA 驱动

首先建议去 NVIDIA 官网,根据显卡型号、CPU架构和操作系统,选择合适的驱动下载。

NVIDIA 驱动官方下载:https://www.nvidia.cn/geforce/drivers/

到这一步就很简单了,从 NVIDIA 官网下载好合适的驱动后,直接使用 bash 运行安装。

1# 直接运行安装程序
2$ bash NVIDIA-Linux-x86_64-535.146.02.run

安装完之后重启。

4. 管理 NVIDIA 驱动(可选)

利用 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

5. 持续模式

在Linux上,您可以将GPU设置为持久模式,以使NVIDIA驱动程序加载,即使没有应用程序在访问这些卡也是如此。

当您要运行一系列短期作业时,此功能特别有用。 持久模式每个闲置的GPU使用更多的功率,但是可以防止每次启动GPU应用程序时出现相当长的延迟。

如果您已为GPU分配了特定的时钟速度或功率限制,则也很有必要。(因为在卸载NVIDIA驱动程序时这些更改会丢失)

通过运行以下命令在所有GPU上启用持久性模式:

1$ nvidia-smi -pm 1

安装 CUDA

同理,也是建议去 NVIDIA 官网,根据显卡型号、CPU架构和操作系统,选择合适的驱动下载。

首先查看当前 NVIDIA 驱动所能对应的 CUDA 版本

1$ nvidia-smi

image-20240108124256275.png

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

CUDNN 选择与 CUDA 的大版本对应即可,细微的版本区别差异不大。同样建议去 NVIDIA 官网,根据显卡型号、CPU架构和操作系统,选择合适的驱动下载。

CUDNN 官方下载:https://developer.nvidia.com/rdp/cudnn-download

注意:下载 CUDNN 需要登陆 NVIDIA 账户后,才能查看下载链接。

这里有 Debian 11 的安装包,不过没有 12 的,所以还是直接下载通用解压包吧。

image-20240107210424583.png

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 等计算框架应用了

评论
取消