ytooyamaのブログ

サーバ構築とか、仕事で発見したこととか、趣味のこととかを書いています。

CUDAのインストールに失敗したら

たとえばこんなことが Oh..No...

]# 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.

モジュールがインストールされていないのがわかります。

]# dkms status
nvidia/520.61.05: added

理由はドキュメント冒頭にあるように、要件を満たしていないためです。カーネルのバージョンがここで示されたバージョンより新しいもしくは古くありませんか?

docs.nvidia.com

対処方法

あなたが使っているのがRocky Linux 8.xであれば、 Rocky Linux 8.xに動作保証されている8.6のKernelをインストールして再起動をまず行います。

]# dnf install https://dl.rockylinux.org/vault/rocky/8.6/BaseOS/x86_64/os/Packages/k/kernel-4.18.0-372.32.1.el8_6.x86_64.rpm
]# dnf install  https://dl.rockylinux.org/vault/rocky/8.6/BaseOS/x86_64/os/Packages/k/kernel-core-4.18.0-372.32.1.el8_6.x86_64.rpm
]# reboot

AlmaLinux 8の場合は、rpmパッケージのURLをRocky Linux 8向けのものに変えれば対応可能です。 Oracle Linux 8の場合は同じカーネルバージョンのkernel-coreパッケージを入れて再起動すると良いと思います。Miracle Linux 8の場合は、Rocky Linux 8やAlmaLinux 8のような感じで対応可能です。

次にRocky Linux 8.6のKernel-develとheadersパッケージを追加します。

]# dnf install kernel-devel-$(uname -r) kernel-headers-$(uname -r)

さらに、ドライバーを再インストールします。

]# dnf remove cuda-driver
]# dnf install nvidia-driver nvidia-settings cuda-driver

これをすることでdkmsが発動します。

]# dkms status
nvidia/520.61.05, 4.18.0-372.32.1.el8_6.x86_64, x86_64: installed

だめな場合はdkms autoinstallをダメ元で試してみます。

適切なドライバーが入ったら、nvidia-smiコマンドを実行してエラーにならなければ、対応完了です。

]# nvidia-smi 
Wed Jan 25 21:05:48 2023       
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 520.61.05    Driver Version: 520.61.05    CUDA Version: 11.8     |
|-------------------------------+----------------------+----------------------+
...

最後に、新しいCUDAが対象のバージョンのカーネルに対応するまで、カーネルをアップデート対象から除外しておきます。これを忘れるとdnf updateで雑にメンテするとまたGPUドライバ周りでハマります。

]# vi /etc/dnf/dnf.conf

[main]
gpgcheck=1
installonly_limit=3
clean_requirements_on_remove=True
best=True
skip_if_unavailable=False
excludepkgs=kernel,kernel-core,kernel-headers,kernel-modules,kernel-devel    //こんな感じで追記

お疲れ様でした。

このブログサイトはJavaScriptを使っていますが、読み込んでいるJavaScriptは全てはてなが提供しているものであり、筆者が設置しているものではありません。