NVIDIAのGPUドライバーがプロプライエタリからオープンソースに移行したことに伴い、過去にプロプライエタリドライバを使っていた方がアップデートがうまくいかずトラブル場合が多々あります。
その時の対処法を以下に示します。
1.1. 過去の cuda のプロテクト解除
人によってはCUDAのバージョンを固定していた場合があるかもしれません。
- ターミナルから以下のようにタイプします。
apt-mark showhold
- これで何も表示されなければ次に進みます。もし、cuda 関連が表示されたら、次のように対応します。もし、cuda-11-8 が表示されていたら
sudo apt-mark unhold cuda-11-8
- 「cuda-11-8 の保留を解除しました。」となれば大丈夫です。
1.2. cuda-11-8のアンインストール
-
過去の cuda-11-8 をアンインストールします。
sudo apt remove cuda-11-8
- この後はメッセージに従って 続行しますか? [Y/n] と出たらEnterをタイプします。
2.1. cuda のアンインストール
-
cuda-11-8 だけでなく、cuda もアンインストールします。
sudo apt remove cuda
2.2. 関連ファイルの削除
- 以下で関連ファイルで不要になったものが削除できます。
sudo apt autoremove
2.3. nvidiaのライブラリ・ドライバを削除
- nvidiaのライブラリ・ドライバを一度全部削除します。下のコマンドのシングルクォートとあるのは、 ‘ に置き換えてください。ソースコードがうまく表示できないためです。
sudo apt remove シングルクォート*nvidia*シングルクォート
3. PCの再起動
- PCを再起動します。
reboot
4. リポジトリのアップデート
- リポジトリをアップデートします。
sudo apt update
5.1. cuda-keyring のダウンロード
- Ubuntuのバージョンにあわせたファイルをダウンロードします。アドレスが 2004 か 2204 か 2404 で変えてください。以下は、2204のものです。
cd ~/Downloads rm cuda-keyring*.deb wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-keyring_1.1-1_all.deb
5.2. cuda-keyring のインストール
- 以下でcuda-keyringをインストールします。
sudo apt install ./cuda-keyring_1.1-1_all.deb
5.3. nvidia-driver-560-open のインストール
- nvidia-driver をインストールします。2024年12月時点では 565 が最新なのですが、後ほど cuda-12-6 を入れると 560にダウングレードされるので、それを入れます。
sudo apt install nvidia-driver-560-open
5.4. cuda および nvidia-cuda-toolkit のインストール
- 本丸のcudaのインストールに入ります。ここで 無印のcuda を入れようとするとエラーになるので、バージョン指定で最新の cuda-12-6 をインストールします。不要なものもたくさん入らないように –no-install-recommends をつけます。
sudo apt install --no-install-recommends cuda-12-6 sudo apt install --no-install-recommends nvidia-cuda-toolkit
6. 再起動
- 改めて再起動します。
reboot
7. 確認
- nvidia-smi および nvcc でCUDAを確認します。
nvidia-smi
- 以下のような表示がされれば大丈夫です。
$ nvidia-smi Sun Dec 29 00:25:21 2024 +-----------------------------------------------------------------------------------------+ | NVIDIA-SMI 560.35.05 Driver Version: 560.35.05 CUDA Version: 12.6 | |-----------------------------------------+------------------------+----------------------+ | 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 RTX 3070 Ti Off | 00000000:01:00.0 On | N/A | | 0% 47C P5 28W / 290W | 826MiB / 8192MiB | 23% Default | | | | N/A | +-----------------------------------------+------------------------+----------------------+
- 次に現在使われているcudaのドライバーを確認します。
nvcc -V
- 次のように表示されればOKです。
$ nvcc -V nvcc: NVIDIA (R) Cuda compiler driver Copyright (c) 2005-2024 NVIDIA Corporation Built on Tue_Oct_29_23:50:19_PDT_2024 Cuda compilation tools, release 12.6, V12.6.85 Build cuda_12.6.r12.6/compiler.35059454_0
ちなみに、FSLでGPUを使う場合、CUDAのバージョンを心配しなくてよくなりました。また、PyTorchも試してみたのですが、CUDA12.4版を使えば、普通に使えます。
したがって、しばらくこれでいけそうです。