前提
前提1: こちらの記事のように、通常のDeep Learning環境がホストマシン内に構築されている
https://qiita.com/k_ikasumipowder/items/14a7976f12c0b8c55dd3
前提2: docker, nvidia-container toolkit がインストールされていて、かつては、通常通りGPUが使えていた
前提3: ホストマシン上では、通常のDeep Learningを利用した学習 / 推論が行える
通常のCUDAバージョンや、 nvidia-driver のバージョン周り、パス周り以外で、 Failed to initialize NVML: Unknown Error
がでて対応に手間取ったので備忘録として投稿。
発生していた現象
ホストマシンでは、 nvidia-smi
が通る。
$ nvidia-smi
Fri Mar 4 23:00:31 2022
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 510.47.03 Driver Version: 510.47.03 CUDA Version: 11.6 |
|-------------------------------+----------------------+----------------------+
| 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 NVIDIA GeForce ... On | 00000000:19:00.0 Off | N/A |
| 27% 21C P8 19W / 250W | 1MiB / 11264MiB | 0% Default |
| | | N/A |
+-------------------------------+----------------------+----------------------+
| 1 NVIDIA GeForce ... On | 00000000:1A:00.0 Off | N/A |
| 27% 22C P8 19W / 250W | 1MiB / 11264MiB | 0% Default |
| | | N/A |
+-------------------------------+----------------------+----------------------+
| 2 NVIDIA GeForce ... On | 00000000:67:00.0 Off | N/A |
| 27% 23C P8 19W / 250W | 1MiB / 11264MiB | 0% Default |
| | | N/A |
+-------------------------------+----------------------+----------------------+
| 3 NVIDIA GeForce ... On | 00000000:68:00.0 On | N/A |
| 27% 28C P8 16W / 250W | 133MiB / 11264MiB | 0% Default |
| | | N/A |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=============================================================================|
| 3 N/A N/A 1699 G /usr/lib/xorg/Xorg 72MiB |
| 3 N/A N/A 2192 G /usr/bin/gnome-shell 58MiB |
+-----------------------------------------------------------------------------+
コンテナ内では、 nvidia-smi
が通らない
$ sudo docker run --rm --gpus all nvidia/cuda:11.0-base nvidia-smi
Failed to initialize NVML: Unknown Error
効果がなかったこと
- ホストマシンの再起動
- docker の再起動
- nvidia-driver-510 (その時点の最新版) に更新
- CUDA 11.5 系をインストール
結論
こちらにならって、
https://bbs.archlinux.org/viewtopic.php?id=266915
/etc/nvidia-container-runtime/config.toml
内で
no-cgroups = false
に書き換えて、 docker を 再起動したら動くようになった。
sudo systemctl restart docker
sudo docker run --rm --gpus all nvidia/cuda:11.0-base nvidia-smi
効果がなかった対応
sudo aptitude nvidia-driver-510
apt-cache madison [パッケージ名] で あるバージョンを検索
※ cuda関係 は 互換性が厳しいので注意
こちらで指定バージョンを検索
apt-cache madison cuda
apt-cache madison libcudnn8
apt-cache madison libcudnn8-dev
sudo apt-get install -y --no-install-recommends \
cuda=11.5.2-1 \
libcudnn8=8.3.2.44-1+cuda11.5 \
libcudnn8-dev=8.3.2.44-1+cuda11.5