この記事はなに?
・機械学習関連ソフトは、使っているCUDAのバージョンがまちまちである
・CUDAは後方依存性が無いことが多い(NVCCというコンパイラを使う場合に顕著)
・つまり環境を作り直す機会が多くてだるい
・うろ覚えでやっていたため、せめてそろそろまとめたほうが良いと思ったので備忘録
・Bloggerではマークダウンが使えないのだけれど、使えるようにしたいなあと思いながらマークダウンで書いている
前提
・Ubuntu22.04
・NVidiaアカウントを持っていること
・へこたれない強さを持っていること
手順
1. CUDAとNVidiaドライバのアンインストール
```bashsudo 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 autoremovesudo apt autocleansudo apt updatesudo rm -rf /usr/local/cuda*```
2. グラフィックドライバを入れ直す
```bashsudo add-apt-repository ppa:graphics-drivers/ppasudo apt updateubuntu-drivers devicessudo apt install nvidia-driver-(適当なバージョン)```
3. 再起動
```bashwget 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]は消しておく。
```~/.bashrcexport 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を入れる
```bashsudo dpkg -i cudnn*.deb#キーリングになんか追加しろって言われるので、その操作(cp )をした後、もう一回sudo dpkg -i cudnn*.debsudo apt update
sudo apt install libcudnn8 libcudnn8-dev -y
sudo apt upgrade
```
6. (必要な場合) NVidiaDockerを入れ直す
参考:
https://developer.nvidia.com/blog/updating-the-cuda-linux-gpg-repository-key/
```bash
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
```
ざっくり、こんな感じでいけるはず。
まったり、お茶をのみながら、やっていこうね。