AlmaLinux9環境 + GT710でNVIDIAドライバとCUDAを導入する

# NVIDIAドライバー
最近の新しめなGPUはおそらくdnfとかでインストールできますが、GT710などの古いハードウェアでインストールするときにだいぶ詰まったので備忘録を残します。

# インストール
セキュアブートは無効化しておきます。
## カーネル
必要なカーネルモジュールをインストールします。
```
$ sudo dnf install epel-release
$ sudo dnf install dkms freeglut-devel libX11-devel libXi-devel libXmu-devel make mesa-libGLU-devel freeimage-devel glfw-devel kernel-devel kernel-headers
```

## ドライバファイル
NVIDIAの公式サイトから、バージョン470くらいの古めのドライバを落とします。
今回は`470.256`です。

```
$ sudo chmod +x ./NVIDIA-Linux-x86_64-470.256.02.run
$ sudo ./NVIDIA-Linux-x86_64-470.256.02.run --dkms --disable-nouveau
```
`--disable-nouveau`オプションで自動的に`nouveau`を無効化してくれます。

`nvidia-drm`のロードに失敗しました的なメッセージが出ますが、無視してOKです。

## CUDA
今回は`CUDA12.8`ではなく`CUDA11.4`を使います。
RHEL9系のインストーラーはありませんが、RHEL8用のリポを使います。

```
$ wget https://developer.download.nvidia.com/compute/cuda/11.4.0/local_installers/cuda-repo-rhel8-11-4-local-11.4.0_470.42.01-1.x86_64.rpm
$ sudo rpm -i cuda-repo-rhel8-11-4-local-11.4.0_470.42.01-1.x86_64.rpm
$ sudo dnf -y install cuda
```

再起動すればインストール完了です。
```
$ sudo reboot now
```

# 確認
## インストール済みパッケージ
```
$ rpm -qa | grep nvidia
nvidia-container-toolkit-base-1.17.4-1.x86_64
xorg-x11-drv-nvidia-kmodsrc-550.144.03-1.el9.x86_64
nvidia-modprobe-570.86.15-1.el9.x86_64
nvidia-kmod-common-570.86.15-1.el9.noarch
kmod-nvidia-open-dkms-570.86.15-1.el9.noarch
akmod-nvidia-550.144.03-1.el9.x86_64
libnvidia-container1-1.17.4-1.x86_64
libnvidia-container-tools-1.17.4-1.x86_64
nvidia-container-toolkit-1.17.4-1.x86_64
```

## nvidia-smi
```
$ nvidia-smi
Tue Feb 18 01:37:58 2025
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 470.256.02   Driver Version: 470.256.02   CUDA Version: 11.4     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|                               |                      |               MIG M. |
|===============================+======================+======================|
|   0  NVIDIA GeForce ...  Off  | 00000000:06:10.0 N/A |                  N/A |
| 40%   35C    P0    N/A /  N/A |      0MiB /   981MiB |     N/A      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        ID   ID                                                   Usage      |
|=============================================================================|
|  No running processes found                                                 |
+-----------------------------------------------------------------------------+
```

## lsmod
```
$ lsmod | grep nvidia
nvidia_uvm           2805760  0
nvidia              35684352  1 nvidia_uvm
drm                   782336  7 drm_kms_helper,bochs,drm_vram_helper,nvidia,drm_ttm_helper,ttm
```