LoginSignup
97
53

More than 1 year has passed since last update.

nvidia-smi で Failed to initialize NVML: Driver/library version mismatch と言われたとき【GPU】

Last updated at Posted at 2020-06-23

はじめに

機械学習でGPUを使いたいときにタイトルのエラーで詰まったので、解決までの道のりを書き残します。
OS は Ubuntu 18.04 または 16.04 です。

症状

$ nvidia-smi

を行うと、

Failed to initialize NVML: Driver/library version mismatch

と言われたときの話です。

$ sudo reboot

で再起動するのが一番手っ取り早いようなのですが、できれば再起動したくなかったり、それでも直らなかったりした時のための記事です。

ドライバーのアンロード

エラーを解決するためにLinuxカーネルのnvidia関連のドライバーを一度アンロードします。まずは、

$ lsmod | grep nvidia

で現在使用されているドライバーを確認します。おそらく、

nvidia_uvm            634880  8
nvidia_drm             53248  0
nvidia_modeset        790528  1 nvidia_drm
nvidia              12312576  86 nvidia_modeset,nvidia_uvm

のように表示されるはずです。
最終的にnvidiaをアンロードするために、それぞれを順番にアンロードしていきます。

$ sudo rmmod nvidia_drm
$ sudo rmmod nvidia_modeset
$ sudo rmmod nvidia_uvm

ここで、nvidia_drmがアンロードできなかった方はDisplay Manegerをkillする必要があるため次の章を見てください。特に何も言われなかった方は飛ばしてください。

nvidia_drmのアンロード

nvidia_drmをアンロードするために、Display Managerをkillします。
具体的には以下のコマンドを順番に実行します。途中で選択肢が出てきたら適当に選択してください。

$ systemctl stop gdm
$ systemctl isolate multi-user.target
$ systemctl stop systemd-logind
$ killall gdm-x-session

ここまでできたらもう一度

$ sudo rmmod nvidia_drm
$ sudo rmmod nvidia_modeset
$ sudo rmmod nvidia_uvm

を実行してみましょう。

ndiviaのアンロード

最後にnvidiaをアンロードします。

$ sudo rmmod nvidia

成功したように思えたら、もう一度ドライバーを確認しましょう。

$ lsmod | grep nvidia

これで何も表示されなければ成功です。最後にnvidia-smiでGPUが認識できているか確認してみましょう。

$ nvidia-smi
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 450.36.06    Driver Version: 450.36.06    CUDA Version: 11.0     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|                               |                      |               MIG M. |
|===============================+======================+======================|
|   0  TITAN Xp            Off  | 00000000:09:00.0 Off |                  N/A |
| 25%   41C    P0    57W / 250W |      0MiB / 12196MiB |      2%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        ID   ID                                                   Usage      |
|=============================================================================|
|  No running processes found                                                 |
+-----------------------------------------------------------------------------+

GPUが認識されていることが確認できます。

おわりに

読んでいただきありがとうございました。ご意見等ございましたらコメントお願いします。

97
53
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
97
53