Nvidia Docker:nvidia-smi:コマンドが見つかりません。

Nvidia Docker:nvidia-smi:コマンドが見つかりません。

インストールのためにDockerfileにコンテナを作成しましたdockerFROM nvidia/cuda:8.0-devel-ubuntu16.04CUDA Toolkit

私のアーキテクチャは正式に説明されたアーキテクチャです。Nvidia-docker買戻契約

Nvidia - ドッカーレイヤー

ビルドして実行した後

$ nvidia-smi
bash: nvidia-smi: command not found

DOCKER_HOST次のように実行されているDocker Nvidiaコンテナ(GPUシステム)へのポインタがあります。

export DOCKER_HOST=tcp://x.x.x.x:2376
export DOCKER_TLS_VERIFY=1
set NVIDIA_VER=367.57

マシンにトンネリングするときにポートにバインドされたDockerインスタンスに接続します。

$ ssh -i "$DOCKER_CERT" docker@$IP -g -R 10250:localhost:10250 -L 0.0.0.0:3000:127.0.0.1:3000  -L 0.0.0.0:8181:127.0.0.1:8181 -L 5858:127.0.0.1:5858 -L 4567:127.0.0.1:4567

私のドッカーインスタンスはいつものように起動します。

$ docker run --rm -it --name $CONTAINER_NAME -p 3000:3000 $CONTAINER_IMG:$CONTAINER_VERSION $CMD

Docker ホストから Docker Nvidia インスタンスに接続できます。

loreto@nvidia-docker:~$ sudo nvidia-docker run --rm nvidia/cuda nvidia-smi
Fri Mar 17 09:08:03 2017       
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 367.57                 Driver Version: 367.57                    |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  GRID K520           Off  | 0000:00:03.0     Off |                  N/A |
| N/A   35C    P8    17W / 125W |      0MiB /  4036MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+

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

そしてさらに

loreto@nvidia-docker:~$ nvidia-smi
Fri Mar 17 09:12:59 2017       
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 367.57                 Driver Version: 367.57                    |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  GRID K520           Off  | 0000:00:03.0     Off |                  N/A |
| N/A   35C    P8    17W / 125W |      0MiB /  4036MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+

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

そして私のコンテナで$CONTAINER_NAME実行しているときは見ることができません。

$ docker exec -it $CONTAINER_NAME bash
$ nvidia-smi
nvidia-smi: command not found

$CONTAINER_NAME建設 FROM nvidia/cuda:8.0-devel-ubuntu16.04

この問題をnvidia-docker github repoに提起しました。ここ

[アップデート] 実行時にデバイスを接続し、コンテナにドライバを次のように設定して問題を解決しました。

docker run --rm -it --device=/dev/nvidiactl --device=/dev/nvidia-uvm --device=/dev/nvidia0 -v nvidia_driver_367.57:/usr/local/nvidia:ro --name $CONTAINER_NAME -p 3000:3000 $CONTAINER_IMG:$CONTAINER_VERSION $CMD

もちろんDOCKER_HOST、設定されていてトンネルが開いている必要があります。

ベストアンサー1

nvidia-docker通常はインストールされているバージョンにインストールしますdocker

コマンドは次のとおりです。

カールhttps://get.docker.com| sh
&& sudo systemctl - ドッカーを有効にします。

それから

distribution=$(./etc/os-release;echo $ID$VERSION_ID)
&& curl -fsSLhttps://nvidia.github.io/libnvidia-container/gpgkeysudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg
&&curl -s -Lhttps://nvidia.github.io/libnvidia-container/$distribution/libnvidia-container.list|
sed 's#deb https://#deb [署名者=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g'
| list.d/nvidia-container-toolkit.list

それから

sudo apt-get アップデート

それから

sudo apt-get インストール -y nvidia-docker2

これでインストールが完了したら、nvidia-docker2まず groups コマンドを使用してユーザー ID が属するグループを確認します。

グループ

dockerリストされたグループが表示されない場合は、まずこのコマンドを実行してください。

sudoグループドッカーを追加

sudo usermod -aG docker $USER

これでログアウトしてから再度ログインする必要があります(リモートSSHサーバーのためにこれが可能でない場合は、同じサーバーに対してSSHを使用して新しい端末を開きます)。

走る

sudo systemctl 再起動ドッカー

もう一度確認してくださいgroups。ユーザーIDにdockerグループが含まれていることを確認する必要があります。そうでない場合は、まずこの問題を解決してください。次に、次を実行します。

sudo docker run --rm --gpus nvidia/cuda:11.0.3-base-ubuntu20.04 nvidia-smi

nvidia-smi今は次の場所にいるはずです。docker

このリンクから、アプリケーションに使用する適切なDockerバージョンと正しいnvidia-driverバージョンとubuntuバージョンを選択してください。https://hub.docker.com/r/nvidia/cuda/tags

おすすめ記事