CUDAのインストールに失敗した場合、またバージョンを変更したい場合は多々あります。
UbuntuでCUDAの削除から再インストールまで実施しました。
自身への忘備録・覚書含めて、ブログ記事として紹介します。
UbuntuでCUDAの削除から再インストールまでのメモ
UbuntuでCUDAのバージョン変更をしたく、削除から再インストールまで実施しました。
実施した環境としては下記です。
- Ubuntu18.04
- CUDA Toolkit 11.0→11.3
CUDAはapt-getやdockerにも絡んでいたりして、綺麗に削除するのが難しいです。
色々なサイトを参考にさせていただいて、再インストールまで対応しました。
忘備録含めてブログ記事として紹介します。あくまで一例なので参考までにお願いします。
グラフィックボードはGTX1650
使用しているグラフィックボードに関してはGTX1650となります。
補助電源無しで取り付けやすく、そこそこの性能を出してくれるGPUです。
下記記事でGTX1650を搭載した内容を紹介しています。(リンク先はこちら)
CUDAを削除・アンインストール
CUDAを一度は入れてしまった場合は、削除・アンインストールします。
1 2 3 4 5 6 7 8 9 10 11 |
sudo apt-get --purge remove nvidia* sudo apt-get --purge remove cuda* sudo apt-get --purge remove cudnn* sudo apt-get --purge remove libnvidia* sudo apt-get --purge remove libcuda* sudo apt-get --purge remove libcudnn* sudo apt-get autoremove sudo apt-get autoclean sudo apt-get update sudo rm -rf /usr/local/cuda* pip uninstall tensorflow-gpu |
参考にさせていただいた記事は下記です。
https://qiita.com/harmegiddo/items/86b295ccf96eff489e02
apt-listを確認して不必要なものは外しておく
上記の削除対応しても、apt-listには古いCUDAの環境が残っているケースがあります。
リストを確認して、不必要なパッケージは/etc/apt/sources.list から外す・削除した方が良いです。
後で「apt-get update」する際に不要なものもアップデートしてしまうためです。
(筆者の場合、リストの中に古い環境の11-0が残っていました)
dockerの不要なイメージも削除しておく
dockerにもcudaのruntimeなど使っている人は古いイメージを消しておきます。
筆者の場合、11.0.3が古い環境でした。
1 2 3 4 5 6 7 8 9 |
iotengineer@iotengineer-Inspiron-3650:~$ docker images REPOSITORY TAG IMAGE ID CREATED SIZE xilinx/vitis-ai-gpu 2.5 5690e095d096 23 hours ago 33.8GB xilinx/vitis-ai-gpu 2.5.0 5690e095d096 23 hours ago 33.8GB xilinx/vitis-ai-gpu 2.5.0.1260 5690e095d096 23 hours ago 33.8GB xilinx/vitis-ai-gpu latest 5690e095d096 23 hours ago 33.8GB nvidia/cuda 11.0.3-cudnn8-runtime-ubuntu18.04 dc5221f05596 3 months ago 3.82GB nvidia/cuda 11.0.3-devel-ubuntu18.04 a557740b9093 3 months ago 3.93GB hello-world latest feb5d9fea6a5 13 months ago 13.3kB |
イメージ削除する場合は docker rmi [IMAGE ID]で削除できます
それでも削除できなかったものは、docker rmi -f [REPOSITORY ]:[TAG]で対応出来ました。
1 |
iotengineer@iotengineer-Inspiron-3650:~$ docker rmi -f nvidia/cuda:11.0.3-cudnn8-runtime-ubuntu18.04 |
参考にさせていただいた記事は下記です。
https://scribble.washo3.com/docker-cannot-image.html
新しいCUDA Toolkit をインストール
今回はCUDA Toolkit 11.3をインストールします
下記のコマンドに関しては、あくまでUbuntu18.04 + CUDA Toolkit 11.3の場合です。
上記のダウンロードのページに記載している内容です。
インストールする環境によって異なります。必ずCUDAのダウンロードページをご確認下さい。
1 2 3 4 5 6 7 |
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/cuda-ubuntu1804.pin sudo mv cuda-ubuntu1804.pin /etc/apt/preferences.d/cuda-repository-pin-600 wget https://developer.download.nvidia.com/compute/cuda/11.3.0/local_installers/cuda-repo-ubuntu1804-11-3-local_11.3.0-465.19.01-1_amd64.deb sudo dpkg -i cuda-repo-ubuntu1804-11-3-local_11.3.0-465.19.01-1_amd64.deb sudo apt-key add /var/cuda-repo-ubuntu1804-11-3-local/7fa2af80.pub sudo apt-get update sudo apt-get -y install cuda |
インストール後にはホームディレクトリで環境変数を追加しておきます。
sudo vim ~/.bashrc
1 2 |
export PATH="/usr/local/cuda/bin:$PATH" export LD_LIBRARY_PATH="/usr/local/cuda/lib64:$LD_LIBRARY_PATH" |
再起動して nvidia-smi や nvcc -V で正常にインストールされているか分かります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
iotengineer@iotengineer-Inspiron-3650:~$ nvidia-smi Sat Oct 22 19:01:57 2022 +-----------------------------------------------------------------------------+ | NVIDIA-SMI 465.19.01 Driver Version: 465.19.01 CUDA Version: 11.3 | |-------------------------------+----------------------+----------------------+ | 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 ... On | 00000000:01:00.0 Off | N/A | | 30% 32C P8 N/A / 75W | 16MiB / 3910MiB | 0% Default | | | | N/A | +-------------------------------+----------------------+----------------------+ +-----------------------------------------------------------------------------+ | Processes: | | GPU GI CI PID Type Process name GPU Memory | | ID ID Usage | |=============================================================================| | 0 N/A N/A 846 G /usr/lib/xorg/Xorg 9MiB | | 0 N/A N/A 998 G /usr/bin/gnome-shell 4MiB | +-----------------------------------------------------------------------------+ |
1 2 3 4 5 6 |
iotengineer@iotengineer-Inspiron-3650:~$ nvcc -V nvcc: NVIDIA (R) Cuda compiler driver Copyright (c) 2005-2021 NVIDIA Corporation Built on Sun_Mar_21_19:15:46_PDT_2021 Cuda compilation tools, release 11.3, V11.3.58 Build cuda_11.3.r11.3/compiler.29745058_0 |
新しいcuDNNをインストールする
NVIDIAのダウンロードサイトから新しいcuDNNもダウンロード・インストールしておきます。
https://developer.nvidia.com/rdp/cudnn-download
1 2 3 4 5 6 7 8 |
sudo apt -y install zlib1g sudo dpkg -i cudnn-local-repo-ubuntu1804-8.6.0.163_1.0-1_amd64.deb sudo cp /var/cudnn-local-repo-ubuntu1804-8.6.0.163/cudnn-local-77B32ECB-keyring.gpg /usr/share/keyrings/ cd /var/cudnn-local-repo-ubuntu1804-8.6.0.163/ ls sudo dpkg -i libcudnn8_8.6.0.163-1+cuda11.8_amd64.deb sudo dpkg -i libcudnn8-dev_8.6.0.163-1+cuda11.8_amd64.deb sudo dpkg -i libcudnn8-samples_8.6.0.163-1+cuda11.8_amd64.deb |
参考にさせていただいた記事は下記です。
https://www.kkaneko.jp/tools/ubuntu/ubuntu_cudnn.html
もしcuDNNの動作テストをする場合はMNISTを動かしてみます。
1 2 3 4 5 6 |
cp -r /usr/src/cudnn_samples_v8/ $HOME cd $HOME/cudnn_samples_v8/mnistCUDNN sudo cp cuda/include/cudnn.h /usr/local/cuda/include/ sudo apt-get install libfreeimage3 libfreeimage-dev make clean && make ./mnistCUDNN |
参考にさせていただいた記事は下記です。
https://qiita.com/tatsuya11bbs/items/3af03e704812b6c89965
NVIDIA-Container-Toolkitをインストールする
docker上でNVIDIAを使う場合は、コンテナへのToolkitもインストールします。
恐らくインストールしないと、dockerで動かすとき下記のようなエラーが出ます
docker: Error response from daemon: could not select device driver "" with capabilities: [[gpu]].
1 2 3 4 5 6 |
distribution=$(. /etc/os-release;echo $ID$VERSION_ID) curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add - curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list sudo apt-get update && sudo apt-get install -y nvidia-container-toolkit sudo systemctl restart docker |
nvidia-container-cli info で正常にインストールされたか確認できます
1 2 3 4 5 6 7 8 9 10 11 12 |
iotengineer@iotengineer-Inspiron-3650:~$ nvidia-container-cli info NVRM version: 465.19.01 CUDA version: 11.3 Device Index: 0 Device Minor: 0 Model: NVIDIA GeForce GTX 1650 Brand: GeForce GPU UUID: GPU-c0f4fe80-6a26-e299-b0d7-7115cde7755d Bus Location: 00000000:01:00.0 Architecture: 7.5 iotengineer@iotengineer-Inspiron-3650:~$ |
まとめ
Ubuntu上でのCUDAの削除・再インストールが出来ました。
インストールに失敗した場合、またバージョンを変更したい場合は多々あります。
是非皆さまも試してみて下さい。
コメント