web-dev-qa-db-ja.com

Dockerコンテナ内のGPUを使用する - CUDAバージョン:N / AとTORCH.CUDA.IS_AVAILABLEを返します

私はDockerコンテナの中からGPUを使いようとしています。私はUbuntu 18.04でバージョン19.03でDockerを使用しています。

Dockerコンテナの外部NVIDIA-SMIを実行すると、以下の出力が得られます。

+-----------------------------------------------------------------------------+
| NVIDIA-SMI 450.51.05    Driver Version: 450.51.05    CUDA Version: 11.0     |
|-------------------------------+----------------------+----------------------+
| 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  Tesla T4            On   | 00000000:00:1E.0 Off |                    0 |
| N/A   30C    P8     9W /  70W |      0MiB / 15109MiB |      0%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        ID   ID                                                   Usage      |
|=============================================================================|
|  No running processes found                                                 |
+-----------------------------------------------------------------------------+
 _

NVIDIA/CUDA Dockerイメージから作成されたコンテナの内側のSAM ...が実行されている場合は、上記と同じ出力が得られ、すべてがスムーズに実行されています。 torch.cuda.is_available()true

ただし、他のDockerコンテナ内で同じNVIDIA-SMIコマンドを実行すると、CUDAバージョンがASとなることが確認できる、次の出力がN/Aです。コンテナ内の内側torch.cuda.is_available()も戻りますfalse

+-----------------------------------------------------------------------------+
| NVIDIA-SMI 450.51.05    Driver Version: 450.51.05    CUDA Version: N/A      |
|-------------------------------+----------------------+----------------------+
| 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  Tesla T4            On   | 00000000:00:1E.0 Off |                    0 |
| N/A   30C    P8     9W /  70W |      0MiB / 15109MiB |      0%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        ID   ID                                                   Usage      |
|=============================================================================|
|  No running processes found                                                 |
+-----------------------------------------------------------------------------+
 _

次のコマンドを使用してNVIDIA-Container-Toolkitをインストールしました。

curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | Sudo apt-key add -
curl -s -L https://nvidia.github.io/nvidia-docker/ubuntu18.04/nvidia-docker.list | Sudo tee /etc/apt/sources.list.d/nvidia-docker.list
Sudo apt-get update
Sudo apt-get install nvidia-container-toolkit
Sudo systemctl restart docker
 _

次のコマンドを使用してコンテナを起動しました

Sudo docker run --rm --gpus all nvidia/cuda nvidia-smi
Sudo docker run -it --rm --gpus all ubuntu nvidia-smi
 _
5
Sai Chander

docker run --rm --gpus all nvidia/cuda nvidia-smi [SOMECODE] _すべて(AKA NVIDIAドライバ、CUDAツールキット、およびNVIDIA-CONTAINESTOLKIT)がホストマシンに正しくインストールされている場合は、CUDA Version: N/Aを返してください。

docker run --rm --gpus all nvidia/cuda nvidia-smiが正しく返すことを考えると。私はCUDA Version: N/Aの中にも問題がありました。

私の答えを見てください https://stackoverflow.com/a/64422438/2202107 (明らかにあなたは明らかにあなたはすべてのすべてのマッチング/正しいバージョンを調整してインストールする必要があります)

1
Sida Zhou