CUDAとcuDNNの入れ方・バージョンの切り替え方(Ubuntu22.04)

CUDAとcuDNNの入れ方・バージョンの切り替え方(Ubuntu22.04)

programming

この記事はなに?

・機械学習関連ソフトは、使っているCUDAのバージョンがまちまちである

・CUDAは後方依存性が無いことが多い(NVCCというコンパイラを使う場合に顕著)

・つまり環境を作り直す機会が多くてだるい

・うろ覚えでやっていたため、せめてそろそろまとめたほうが良いと思ったので備忘録

・Bloggerではマークダウンが使えないのだけれど、使えるようにしたいなあと思いながらマークダウンで書いている

前提

・Ubuntu22.04

・NVidiaアカウントを持っていること

・へこたれない強さを持っていること

手順

1. CUDAとNVidiaドライバのアンインストール

考えるよりも全部消したほうが早い(脳筋メソッド)

sudo apt --purge remove nvidia\* sudo apt --purge remove cuda\* sudo apt --purge remove cudnn\* sudo apt --purge remove libnvidia\* sudo apt --purge remove libcuda\* sudo apt --purge remove libcudnn\* sudo apt autoremove sudo apt autoclean sudo apt update sudo rm -rf /usr/local/cuda\*

2. グラフィックドライバを入れ直す

こいつを忘れると起動しなくなる

 sudo add-apt-repository ppa:graphics-drivers/ppa sudo apt update ubuntu-drivers devices sudo apt install nvidia-driver-(適当なバージョン) 

3. 再起動

お茶の準備をしましょうね

4. CUDAを入れる

ダウンロード先:https://developer.nvidia.com/cuda-downloads

wget https://developer.download.nvidia.com/compute/cuda/12.2.1/local\_installers/cuda\*\_linux.run
sudo sh cuda\_\*\_linux.run

クソ長EULAのあとに「accept」を入力すると進む

(確認のための入力画面がたまに表示されないことがあるけれど、入力してEnterすれば進む)

オプション画面で、CUDAだけのインストールにしておく。

グラフィックドライバの[X]は消しておく。

ターミナルの標準出力に「環境変数通しとけよオラァ(意訳)」というコメントが出てくるので、そのとおりによしなにやる。

例はCUDA11.8のインストール後の環境変数 ~/.bashrc

export PATH=HOME/.local/bin:$PATH+:${PATH} export PATH=/usr/local/cuda-11.8/bin:$PATH+:${PATH} export LD\_LIBRARY\_PATH=/usr/local/cuda-11.8/lib64:$LD\_LIBRARY\_PATH+:${LD\_LIBRARY\_PATH} export LD\_LIBRARY\_PATH=/usr/local/cuda/lib64:$LD\_LIBRARY\_PATH+:${LD\_LIBRARY\_PATH} export LD\_LIBRARY\_PATH=/usr/lib/cuda/include:$LD\_LIBRARY\_PATH+:${LD\_LIBRARY\_PATH}

5. cuDNNを入れる

https://developer.nvidia.com/rdp/cudnn-download https://docs.nvidia.com/deeplearning/cudnn/install-guide/index.html

適切なバージョンの.debファイルを落としてきて、

sudo apt install libcudnn8 libcudnn8-dev -y
sudo apt upgrade

6. (必要な場合) NVidiaDockerを入れ直す

参考:

https://developer.nvidia.com/blog/updating-the-cuda-linux-gpg-repository-key/

wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86\_64/cuda-keyring\_1.0-1\_all.deb sudo dpkg -i cuda-keyring\_1.0-1\_all.deb distribution="ubuntu22.04" \       && curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \       && curl -s -L https://nvidia.github.io/libnvidia-container/experimental/$distribution/libnvidia-container.list | \          sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \          sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
#ここでエラーが起きたら、etc/apt/sources.d/にあるnvidia\* をsudoでrmする 古いリポジトリが悪さをするため
sudo apt update sudo apt install -y nvidia-docker2 #https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html#docker
sudo apt-get update sudo apt-get install -y nvidia-container-toolkit sudo nvidia-ctk runtime configure --runtime=docker sudo systemctl restart docker

ざっくり、こんな感じでいけるはず。

まったり、お茶をのみながら、やっていこうね。