Dockerトラブルシューティング
提供: Eospedia
rootユーザーだとGPU使えるけどノーマルユーザーだとGPU使えない
症状
rootユーザー
(host)$ docker exec -it relion-docker bash (container)[root@relion-docker softwares]# nvidia-smi Sat May 18 09:35:06 2019 +-----------------------------------------------------------------------------+ | NVIDIA-SMI 418.74 Driver Version: 418.74 CUDA Version: 10.1 | |-------------------------------+----------------------+----------------------+ | GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC | | Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. | |===============================+======================+======================| | 0 GeForce GTX 1080 Off | 00000000:05:00.0 On | N/A | | 29% 44C P8 7W / 180W | 72MiB / 8119MiB | 0% Default | +-------------------------------+----------------------+----------------------+ | 1 GeForce GTX 1080 Off | 00000000:06:00.0 Off | N/A | | 27% 41C P8 6W / 180W | 2MiB / 8119MiB | 0% Default | +-------------------------------+----------------------+----------------------+ | 2 GeForce GTX 1080 Off | 00000000:09:00.0 Off | N/A | | 27% 37C P8 6W / 180W | 2MiB / 8119MiB | 0% Default | +-------------------------------+----------------------+----------------------+ | 3 GeForce GTX 1080 Off | 00000000:0A:00.0 Off | N/A | | 27% 37C P8 6W / 180W | 2MiB / 8119MiB | 0% Default | +-------------------------------+----------------------+----------------------+
ノーマルユーザー(Dockerイメージビルド時に作成済みのユーザー)
(host)$ docker exec -u kttn -it relion-docker bash (container)[kttn@relion-docker ~]$ nvidia-smi Failed to initialize NVML: Insufficient Permissions
全くわからん
Ubuntu14.04でDocker動かしてた頃は特に問題起きなかったんだが、てことはホスト側の問題?
対処
まさかのVirtualGLのせいだった。GPUデバイスの所有者グループがvglusersに書き換えられる問題。→ NVIDIA Dockerのインストール の下の方。問題児か。(アップグレード前のホストマシンUbuntu 14.04時代はまだVirtualGL入れてなかったので、それで問題が起きなかった)
対処策
(contianer) $ sudo groupadd -g <ホストマシンにおけるvglusersのGID> vglusers (contianer) $ sudo usermod -aG vglusers <non-rootユーザーのユーザー名>
vgl厄介だな。。