Rocky Linux 9でCUDAの環境を準備する

Last update: 2024/12/15


Rocky Linux9にCUDA Tool kitをインストールする

以前Windows 11にCUDA Tool kitをインストールしたが、今回は以下のLinux環境にCUDA Tool kit 12.8をインストールした。

基本的にはNVIDIAの1. Introduction — Installation Guide for Linux 12.8 documentationに沿ってインストールを進める。

なお、使用しているPCのアーキテクチャやLinuxのDistributionによってサポートの有無が異なるので、インストール前に上のページをよく確認する必要がある。例えば上のページを読むと、Rocky Linuxはサポートされているが、Alma Linuxはサポートされていなかったりする。(インストールすれば動きそうな気もするが)

使用しているPCのアーキテクチャやLinuxのDistributionのversionは以下のコマンドで確認できる。

$ uname -m && cat /etc/*release

使用しているGPUがCUDAに対応しているか確認する

Windowsの時にも書いたが、GPUがCUDAに対応しているかはCUDA GPUs - Compute Capability | NVIDIA Developerで確認することができる。

今回のPCで使っているGeForce GTX 750 Tiは古めのGPUなのでCompute Capabilityは5.0だが、CUDAには対応している。また、以下のコマンドで現在の環境でGPUが認識されているか確認することができる。

$ lspci | grep -i nvidia
10:00.0 VGA compatible controller: NVIDIA Corporation GM107 [GeForce GTX 750 Ti] (rev a2)
10:00.1 Audio device: NVIDIA Corporation GM107 High Definition Audio Controller [GeForce 940MX] (rev a1)

GCCのインストール

Windowsの時と同様、ホストコンパイラが必要なので今回はGCCを使う。こちらについては以前Alma Linux 9でやった手順と同じ方法でインストールしたので、以下を参照。

C/C++/Fortran:Alma Linux9でC/C++/FORTRANのコンパイラをインストールする

CUDA Toolkitをインストール

CUDA Toolkitのインストール方法はいろいろあるが、基本的にはディストリビューションのパッケージマネージャーでインストールするのがおすすめと書いてあるので、以下のRocky Linuxのインストール方法を読みながらインストールを進める。

https://docs.nvidia.com/cuda/cuda-installation-guide-linux/#rhel-rocky-installation

私の環境はRocky Linuxなので上の手順の1、2は飛ばす。3については古いキーはそもそも登録されてなかったので、これも飛ばす。ローカルレポジトリを使う or ネットワークレポジトリを使うインストール方法があるが、今回は以下のネットワークレポジトリを使う方法でインストールした。

https://docs.nvidia.com/cuda/cuda-installation-guide-linux/#network-repo-installation-for-rhel-rocky

あとは手順通り実行していく。私の環境ではarchはx86_64、distroはrhel9に置き換えて実行した。なお、nvidia-gdsもインストールするように書かれているが、ここはerrorが発生したためskipした。

$ sudo dnf config-manager --add-repo https://developer.download.nvidia.com/compute/cuda/repos/rhel9/x86_64/cuda-rhel9.repo
$ sudo dnf clean all
$ sudo dnf install cuda-toolkit
$ sudo dnf install nvidia-gds

なお、上記のページではGPGのインストールについて書かれているが、dnf installを実行したらkeyをインポートするか聞かれるので、yを押せばOK。特に問題なくインストールできたので、いったん再起動する。

$ sudo reboot

Driverをインストールする

以下を読みながらDriverをインストールする。

https://docs.nvidia.com/datacenter/tesla/driver-installation-guide/#rhel-installation

上記のページは色々と場合分けしてあるが、私はRocky Linux9の手順に従って以下のコマンドを打ってインストールした。

# dnf config-manager --set-enabled crb
# dnf install epel-release
# dnf module install nvidia-driver:latest-dkms
# reboot

なお、インストールについてはTuring以降のGPUを使っていればnvidia-driver:open-dkmsをインストールするが、私が使っているGPU(Maxwell)のように、Turingより古いGPUではlatest-dkmsをインストールする必要があると書いてあるので注意。

Driverが正しくインストールできたか確認するためにnvidia-smiコマンドを打ってみたが、以下のようにエラーが出てしまった。

$ nvidia-smi
NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver. Make sure that the latest NVIDIA driver is installed and running.

これについては本筋からそれるので以下のページに対策を書いたが、Secure boot&Nouveauを無効化することで無事に認識するようになった。

$ nvidia-smi
Sat Feb  1 10:14:41 2025
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 570.86.15              Driver Version: 570.86.15      CUDA Version: 12.8     |
|-----------------------------------------+------------------------+----------------------+
| 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 GTX 750 Ti      Off |   00000000:10:00.0  On |                  N/A |
| 32%   21C    P8              1W /   38W |      10MiB /   2048MiB |      0%      Default |
|                                         |                        |                  N/A |
+-----------------------------------------+------------------------+----------------------+
Linux:Rocky Linux 9でNvidiaのDriverが有効にならない - 計算機の箱庭

nvidia-smiも無事に実行できるようになった。

$ nvidia-smi
Sat Feb  1 10:14:41 2025
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 570.86.15              Driver Version: 570.86.15      CUDA Version: 12.8     |
|-----------------------------------------+------------------------+----------------------+
| 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 GTX 750 Ti      Off |   00000000:10:00.0  On |                  N/A |
| 32%   21C    P8              1W /   38W |      10MiB /   2048MiB |      0%      Default |
|                                         |                        |                  N/A |
+-----------------------------------------+------------------------+----------------------+

PATHを通す

初期状態だとPATHが通っておらずnvccなどが実行できないので、以下のコマンドでPATHを通す。

$ export PATH=/usr/local/cuda-12.8/bin${PATH:+:${PATH}}

試しにnvccのバージョン表示を実行してみたところ、無事にバージョンが表示された。

$ nvcc -V
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2025 NVIDIA Corporation
Built on Wed_Jan_15_19:20:09_PST_2025
Cuda compilation tools, release 12.8, V12.8.61
Build cuda_12.8.r12.8/compiler.35404655_0

ただ、このままだとシェルを閉じるとPATHが消えてしまうので、上の一文を~/.bashrcの最後に追加するなどしておくと、自動的にPATHが設定される。

$ echo 'export PATH=/usr/local/cuda-12.8/bin${PATH:+:${PATH}}' >> ~/.bashrc

Copyright (c) 2024 kd