研究室にある深層学習マシンのNVIDIAドライバがおかしくなったので再インストールしたんですが、その時にどハマりしたので書いておきます。
先に結論
結論から言うとインストールCDで入るカーネルが古すぎることが原因でしたので、カーネルを4.13.0に上げることでうまく動きました
ハマった時の状況
まず、ハマった時の構成を以下に記しておきます
この状態で
sudo add-apt-repository ppa:graphics-drivers/ppa
をして現時点(2018/06/26)のLatest Long Lived Branchである nvidia-390
をインストールします
sudo apt update # 今回はサーバ用途として使用するのでGUI環境はいらない sudo apt install -y nvidia-390 --no-install-recommends
そうすると nvidia-smi
コマンドが使えるはずですが以下のようなメッセージが出て使えません
$ nvidia-smi NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver. Make sure that the latest NVIDIA driver is installed and running.
インストールできたーと思ったらこれです。悲しいですね…
ちなみに nvidia-384
にしてみても変わらなかったので何が正解なのかこの時点ではわかりませんでした
解決までの道のり
今回のケースではカーネルが古すぎてドライバがうまく動いていない感じだったのでカーネルを16.04.4の最新にしてあげましょう
sudo apt install linux-generic-hwe-16.04
を実行してあげて、再起動すると
$ uname -a Linux host 4.13.0-45-generic #50~16.04.1-Ubuntu SMP Wed May 30 11:18:27 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
のように16.04.4のサポートカーネルである4.13にアップデートされるので、すでにドライバをインストールしてしまったのであれば一度アンインストールします
sudo apt-get --purge remove nvidia-* sudo apt-get --purge remove cuda-*
そしてもう一度ドライバをインストールします
sudo apt install -y nvidia-390 --no-install-recommends
その後再起動してあげてから nvidia-smi
コマンドを実行すると今度はちゃんと実行できるはずです。
$ nvidia-smi Tue Jun 26 10:34:39 2018 +-----------------------------------------------------------------------------+ | NVIDIA-SMI 390.67 Driver Version: 390.67 | |-------------------------------+----------------------+----------------------+ | GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC | | Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. | |===============================+======================+======================| | 0 Quadro K420 Off | 00000000:02:00.0 Off | N/A | | 25% 50C P0 N/A / N/A | 0MiB / 1994MiB | 0% Default | +-------------------------------+----------------------+----------------------+ | 1 GeForce GTX 1080 Off | 00000000:03:00.0 Off | N/A | | 28% 43C P0 44W / 180W | 0MiB / 8119MiB | 0% Default | +-------------------------------+----------------------+----------------------+ | 2 GeForce GTX 1080 Off | 00000000:81:00.0 Off | N/A | | 27% 41C P0 42W / 180W | 0MiB / 8119MiB | 0% Default | +-------------------------------+----------------------+----------------------+ +-----------------------------------------------------------------------------+ | Processes: GPU Memory | | GPU PID Type Process name Usage | |=============================================================================| | No running processes found | +-----------------------------------------------------------------------------+
NVIDIAのドライバはカーネルと強く依存しているので、何らかの拍子に apt upgrade
をしてカーネルをアップデートして再起動すると死にます。なので、dpkg –set-selections
を使ってカーネルを勝手にアップグレードしないようにします。
echo "linux-generic-hwe-16.04 hold" | dpkg –set-selections
とすることでカーネルアップデートによる突然の死を回避することができます。