UbuntuでCUDAの削除から再インストールまでのメモ

本サイトはアフィリエイト広告を利用しています。
エンジニア

CUDAのインストールに失敗した場合、またバージョンを変更したい場合は多々あります。

UbuntuでCUDAの削除から再インストールまで実施しました。

自身への忘備録・覚書含めて、ブログ記事として紹介します。

 

スポンサーリンク

UbuntuでCUDAの削除から再インストールまでのメモ

UbuntuでCUDAのバージョン変更をしたく、削除から再インストールまで実施しました。

実施した環境としては下記です。

  • Ubuntu18.04
  • CUDA Toolkit 11.0→11.3

 

CUDAはapt-getやdockerにも絡んでいたりして、綺麗に削除するのが難しいです。

色々なサイトを参考にさせていただいて、再インストールまで対応しました。

忘備録含めてブログ記事として紹介します。あくまで一例なので参考までにお願いします。

 

グラフィックボードはGTX1650

使用しているグラフィックボードに関してはGTX1650となります。

補助電源無しで取り付けやすく、そこそこの性能を出してくれるGPUです。

下記記事でGTX1650を搭載した内容を紹介しています。(リンク先はこちら)

グラボの補助電源なしのメリット!玄人志向のGTX1650編

グラボの補助電源なしのメリット!玄人志向のGTX1650編
玄人志向のGTX1650を購入して、市販のデスクトップPCに取り付けてみました。 補助電源無しのタイプですので、グラフィックボードを挿し込むだけで動作可能です。 購入から取り付け、ドライバのインストールまでの流れを紹介します。

 

CUDAを削除・アンインストール

CUDAを一度は入れてしまった場合は、削除・アンインストールします。

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が古い環境でした。

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]で対応出来ました。

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をインストールします

CUDA Toolkit 11.3 Downloads
Get CUDA Toolkit 11.3 for Linux and Windows.

 

下記のコマンドに関しては、あくまでUbuntu18.04 + CUDA Toolkit 11.3の場合です。

上記のダウンロードのページに記載している内容です。

インストールする環境によって異なります。必ずCUDAのダウンロードページをご確認下さい。

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

export PATH="/usr/local/cuda/bin:$PATH"
export LD_LIBRARY_PATH="/usr/local/cuda/lib64:$LD_LIBRARY_PATH"

 

再起動して nvidia-smi や nvcc -V で正常にインストールされているか分かります。

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 |
+-----------------------------------------------------------------------------+

 

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もダウンロード・インストールしておきます。

cuDNN 9.10.0 Downloads
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を動かしてみます。

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

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 で正常にインストールされたか確認できます

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の削除・再インストールが出来ました。

インストールに失敗した場合、またバージョンを変更したい場合は多々あります。

是非皆さまも試してみて下さい。

 

コメント