Tech カテゴリのイメージ

NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver の対処

このエラーは、NVIDIAドライバがOSのカーネルと通信できていない状態です。ドライバが入っていない、カーネルの自動更新でドライバモジュールとの整合が壊れた、モジュールがロードされていない、のどれかがほとんどで、ドライバの再インストール(またはDKMSの再構築)で解決します。

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-smiはカーネル内のNVIDIAドライバモジュールに問い合わせて情報を表示します。昨日まで動いていたのに突然出た場合は、Ubuntuの自動更新でカーネルだけが新しくなり、旧カーネル用にビルドされたドライバモジュールが読み込めなくなったパターンが最多です。

対処

  1. まず状態を確認します。モジュールがロードされているか、ドライバパッケージが入っているかを見ます。
Terminal window
lsmod | grep nvidia
dpkg -l | grep nvidia-driver
  1. カーネル更新が原因のことが多いので、まず再起動を試します。DKMSが構成されていれば、再起動時に新カーネル向けへ再ビルドされます。
Terminal window
sudo reboot
  1. 直らなければ、ドライバを入れ直します。Ubuntuなら推奨ドライバの自動選択が楽です。
Terminal window
sudo ubuntu-drivers autoinstall
sudo reboot
  1. Secure Bootが有効なマシンでは、署名されていないモジュールが拒否されることがあります。BIOSでSecure Bootを無効にするか、MOK登録の案内に従ってください。

  2. 復旧後は nvidia-smi でGPUが見えることを確認します。

Terminal window
nvidia-smi

まとめ

・原因はドライバとカーネルの不整合(自動更新後が最多)・未導入・未ロード ・まず再起動。DKMSがあれば新カーネル向けに再ビルドされる ・直らなければ ubuntu-drivers autoinstall で入れ直す ・Secure Boot有効時はモジュール署名の問題も疑う