日記

日本語の勉強のためのブログ

NVIDIA関係のドライバを入れる(バージョン11.8指定)

バージョンを上げたかったが、意外とバージョン指定でインストールする方法がなかったのでまとめる。

環境

  • OS: Ubuntu 22.04.1 LTS
  • kernel: 6.8.0-50-generic

nvidia-driverとCUDAを入れる(バージョンを11.8に指定)

以下の2ページを見比べて実行するのが一番いいと思う

# nvidia関係のパッケージを全消去
sudo apt --purge remove -y *nvidia-*
sudo apt --purge remove -y cuda-*
sudo apt purge cuda-keyring # なぜか上では消えないので
sudo apt --purge remove -y libcudnn*
sudo apt --purge remove -y cudnn-*
sudo apt autoremove -y

# ちゃんと消せてれば左端がすべて rc になってるはず(もしくはそもそも何も表示されない)
dpkg -l | grep cuda
dpkg -l | grep nvidia

# ヘッダファイルがなければ入れる
sudo apt -y update
sudo apt -y install linux-headers-$(uname -r)

# 各種パッケージのアップグレード
sudo apt -y update
sudo apt -y upgrade
sudo apt dist-upgrade

# keyringを入れる
## aptにnvidiaのリポジトリを登録することで、nvidia関係のパッケージをaptでインストールできるようにする
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

# nvidia-driverをインストール
ubuntu-drivers devices # 使用可能なdriverの確認。ここでrecommendedされてるdriverを次で入れる
sudo apt install nvidia-driver-565 # 今回はnvidia-driver-565がrecommendされてたのでこれで
sudo update-initramfs -u
sudo reboot # 再起動

# nvidia-smiが使えることを確認
nvidia-smi
# nvidia cuda toolkitをインストール
## ここでnvccやcuda-toolkit(nvidia-cuda-toolkitではない)などもインストールされる
apt-cache search cuda-11-8 # インストール可否の調査
sudo apt update
sudo apt install cuda-11-8
sudo update-initramfs -u
sudo reboot # 再起動

# nvidia cuda toolkitにパスを通す
## 今回は/etc/profile.d/cuda_env.shを用いる
cd /etc/profile.d
cat <<EOF > ./cuda_env.sh
#!/bin/bash
export CUDA_PATH=$CUDA_PATH
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:\${LD_LIBRARY_PATH}
export PATH=$PATH_APPEND:\${PATH}
EOF

# nvidia cuda toolkitがインストールされたことを確認
cat /usr/local/cuda-11.8/version.json
nvcc -V

nvidia container toolkitのインストール

container周りに関してはインストール方法の変更が頻繁に行われる1ため、公式ドキュメントを参考にした。 https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html

# リポジトリを追加してからインストール
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/stable/deb/nvidia-container-toolkit.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
    
sudo apt update
sudo apt install nvidia-container-toolkit

# Dockerの設定
sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart docker

# Docker上でnvidia-smiが使えるか確認
sudo docker run --rm --runtime=nvidia --gpus all ubuntu nvidia-smi

  1. たとえば、nvidia-container-runtimeはもう入れなくてよいらしい