サーバー用PCにGPUを挿して計算機として運用する状況を想定した備忘録です。n番煎じ。
ディスプレイ周りはよくわかんない。
NVIDIA Driverのインストール方法
NVIDIA Dockerって今どうなってるの?(20.09版)という記事が非常に参考になります。あとは公式のcudaのマニュアルとか。
基本的にはCUDA Toolkitのwebページのコマンドからインストールすることが推奨されています。
aptからインストールするのは事故の元なので自分はやらないようにしています。
これはUbuntu18.04用のコマンド。
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
sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/7fa2af80.pub
sudo add-apt-repository "deb https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/ /"
sudo apt-get update
sudo apt-get -y install cuda-drivers
サイトのスクリプトそのままだとcuda toolkitをインストールしますが、最後の行をcudaではなくcuda-driversに変更するとドライバーのみインストールすることができます。
minicondaやnvidia-docker2を使って深層学習をやるような人はcuda toolkitが必要ないので、こちらのほうが良いと思います。
再インストールする場合
1.既存のドライバーをパージします。
sudo apt purge nvidia-*
sudo apt purge cuda-*
2.CUDA Toolkitのwebページを使ってドライバをインストールします。
3.nvidia-docker2を使っている場合は巻き込まれてパージされているので再インストールします。
sudo apt install nvidia-docker2
sudo pkill -SIGHUP dokcered
本題
nvidia-smiが通らない
経験則的な対処方法です
NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver.
稀に起こるやつです。
とりあえず再起動して、再起動してもダメならドライバを再インストールしましょう。
Failed to initialize NVML: Driver/library version mismatch.
よく起こるやつです。
とりあえず再起動しましょう。九割直ります。
Dockerを仮想環境代わりに複数人でPCを強要している場合は若干注意が必要で、dokcerコンテナ側でGPUを占有しているとホスト側でこのエラーが出る場合があります。
再起動する前に誰かが使ってないか確認したほうが安全です。
nvidia-docker2を使ったコンテナが起動しない
OCI Container runtime 以下略
エラー文を読めばだいたい書いてありますが、GPUドライバ云々と出ている場合はnvidia-smiでエラーを吐く状態であることが多いです。
nvidia-smiが正常に動く状態なら立ち上がります。多分。
nvidia-docker2をそもそもインストールしていない場合も出てくるので、インストール忘れに注意。
nvidia-smiが正常かつnvidia-docker2がインストール済みでOCI Container runtime以下略
変なアップデートの仕方をして依存パッケージのバージョンが足りていない場合に出たことがあります。
関連パッケージ(libnvidia-container1, libnvidia-comtainer-toolkitなど)を適当にアップデートしたら直りました。
おわり。