LoginSignup
11
3

More than 1 year has passed since last update.

Docker 内 で GPUが使えない (Failed to initialize NVML: Unknown Error) 場合の対応

Posted at

前提

前提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
11
3
0

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
11
3