nvidia-smiでGPU情報が出力されなくなったときの対処法

$ 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.

というエラーが出てしまった。

そんなときの解決方法を記述する。

初めは以下のサイトを参考にした。

https://blog.hysakhr.com/2019/11/12/エラーメッセージ「nvidia-smi-has-failed-because-it-couldnt-communicate-with-the-nvidia-driver-make-sure-that-the-latest-nvidia-driver/

まずはnvidiaなどの既存のドライバをアンインストール、再インストールする。

$ sudo apt-get --purge remove nvidia-*

$ sudo apt-get --purge remove cuda-*

($ ubuntu-drivers devices)

$ sudo ubuntu-drivers autoinstall

$ sudo reboot

$ nvidia-smi

この時点で出力された (参考にしたサイトではまだだった)

$ nvcc -V
も出力された

ここで$ docker run --gpus all ~

などとdockerコンテナを作ろうとすると

docker: Error response from daemon: could not select device driver "" with capabilities: gpu.

ERRO[0002] error waiting for container: context canceled 

というエラーが出た。

ここからは別のの記事

https://jskangaroo.hatenablog.com/entry/2021/08/17/150002?_ga=2.194437485.1788482488.1634360320-1604003932.1632965513

を参照して解決。

一応内容を書いておくと

$ distribution=$(. /etc/os-release;echo $ID$VERSION_ID) \
&& curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add - \
&& curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list

 

$ curl -s -L https://nvidia.github.io/nvidia-container-runtime/experimental/$distribution/nvidia-container-runtime.list | sudo tee /etc/apt/sources.list.d/nvidia-container-runtime.list

 

$ sudo apt-get update

 

$ sudo apt-get install -y nvidia-docker2

 

$ sudo systemctl restart docker

 

$ sudo docker run --rm --gpus all nvidia/cuda:11.0-base nvidia-smi

 

$ nvidia-smiの出力があれば、上手くいっている。