在AlmaLinux9.4中安装CUDA

前言

这一天天的太容易崩溃了。于是就干脆从什么都没有一步步来,这样起码知道是在哪里崩了。

安装minimal AlmaLinux

可能会有人觉得我疯了。但是很不幸的是,我没疯。这么做不为别的,就为了能够不去处理各种依赖问题。

这个步骤我就不再重复了。

安装NVIDIA

minimal版本开始,我们需要从什么都没有的版本开始。

基础环境

首先就是没有安装环境,这个倒还好说:

1
2
$ sudo yum clean all
$ sudo yum install gcc git make openssh-server vim net-tools -y

也不管这些有没有用,反正以后肯定会用。

有了这些,我们就可以尝试一下安装脚本了。

内核头文件

当然,毕竟是minimal,这点东西肯定不够。如果直接执行NVIDIA安装脚本的时候肯定会报错:

ERROR: Unable to find the kernel source tree for the currently running kernel.

继续(参考这篇文章):

1
$ sudo yum install kernel-devel kernel-headers -y

NVIDIA驱动

有了gcc与内核,我们就能直接开始安装驱动了。这个驱动并不是CUDA的驱动,而是NVIDIA的驱动,也就是说,能够让你800x600的分辨率上升到显示屏能够承受的极限;能够让你的代码能够通过nvidia-smi连接到显卡设备。

我们先下载驱动:

1
$ wget https://cn.download.nvidia.cn/XFree86/Linux-x86_64/555.42.02/NVIDIA-Linux-x86_64-555.42.02.run

接下来,都需要将桌面进程(X进程)挂起或者关闭,驱动才能够正常安装。所以,如果是桌面版系统,先logout,然后按下CTRL+ALT+F2,就能够进入命令行模式,在这里,直接粗暴地关闭X进程:

1
$ sudo pkill Xorg

有些教程会让你优先处理nouveau驱动,无所谓,现在这么先进了,已经很方便了。

如果你不想操作,直接执行:

1
$ ./NVIDIA-Linux-x86_64-555.42.02.run

第一次执行的时候,NVIDIA驱动自己会生成一个禁用nouveau驱动的配置文件,并提示nouveau驱动未被禁用,询问是否停止安装。

这个时候选择停止安装,然后就重构:

1
$ sudo dracut --force # Centos、AlmaLinux等系统

nouveau驱动就会被禁用。然后,重新安装NVIDIA驱动。这个时候就会顺利成功。

而如果你希望提前做好准备,直接一步安装成功,那也可以按照网络中很常见的禁用方法执行。总之,这一步之后,NVIDIA驱动就这么结束了。

最后,检查一下:

1
$ nvidia-smi

conda

当然,怎么会忘了conda呢。但是我们不再使用Anaconda这种累赘的东西,我们直接用Miniconda,尽可能减少服务器负载:

1
2
$ wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
$ ./Miniconda3-latest-Linux-x86_64.sh

安装过程没有什么需要注意的点,一路回车加yes就完事。

安装cuda与cudnn

可能很多人都觉得这个是需要配置的。如果你的电脑能够始终稳定在这个配置下,我觉得没有任何问题。但问题就在,我这台机器相当不稳定。这一天天的经常就崩掉了。

这个步骤我就不再进行了。不安装就不安装吧。直接上conda

1
2
$ conda create -n pytorch-gpu python=3.7 -y
$ conda install -n pytorch-gpu pytorch torchvision torchaudio cudatoolkit -c pytorch

这样安装之后,在NVIDIA安装成功的前提下,你的Pytorch实际上是能够访问CUDACUDNN的。检查一下:

1
2
3
4
5
6
$ python
>>> import torch
>>> print(torch.cuda.is_available())
True
>>> print(torch.backends.cudnn.version())
8902

没毛病。

就这么用就完事儿了,管他什么配置CUDA呢。

用户界面

最后的最后,如果闲着没事的话,也可以加一个用户界面。已经有很多人说明了GNOME3GNOME2.xKDEXFCELXDE等桌面的区别与优缺点,这里就不再赘述了。我在这里选择了XFCE,其中最关键的其实是可以指定终端背景图片的高可自定义的xfce4-terminal

安装过程也比较简单(参考这篇文章):

1
2
3
4
5
6
7
$ sudo dnf clean all
$ sudo dnf install epel-release
$ sudo dnf update
$ sudo dnf groupinstall "Xfce" "base-x"
$ echo "exec /usr/bin/xfce4-session" >> ~/.xinitrc
$ sudo systemctl set-default graphical
$ reboot