公式のPyTorch Docker image は nvidia/cuda
に基づいており、GPUなしでDockerCEで実行できます。 nvidia-docker でも実行できます。CUDAサポートが有効になっていると思います。 GPUなしでx86CPU上でnvidia-docker自体を実行することは可能ですか?利用可能な場合(たとえば、nvidia-docker
内で実行している場合)にCUDAサポートを利用し、それ以外の場合はCPUを使用する単一のDockerイメージを構築する方法はありますか? DockerCE内からtorch.cuda
を使用するとどうなりますか? Docker CEの違いと、DockerCEにnvidia-docker
をマージできない理由は何ですか?
nvidia-docker
はdocker --runtime nvidia
のショートカットです。彼らがいつかそれをマージすることを願っていますが、今のところそれはサードパーティのランタイムです。彼らはそれが何であるか、そしてそれが彼らの GitHubページ で何をするかを説明します。
Runcの修正バージョンで、すべてのコンテナーにカスタムの事前開始フックが追加されています。環境変数NVIDIA_VISIBLE_DEVICESがOCI仕様で設定されている場合、フックはプロジェクトlibnvidia-containerのnvidia-container-cliを利用して、コンテナーのGPUアクセスを構成します。
nvidia-docker
向けのイメージを通常のdocker
で実行することを妨げるものは何もありません。それらは問題なく動作しますが、GPUを必要とする何かを実行すると、失敗します。
GPUのないマシンでnvidia-docker
を実行できるとは思いません。探しているCUDAファイルを見つけることができず、エラーが発生します。
docker
とnvidia-docker
の両方で実行できるイメージを作成するには、その中のプログラムが、実行されている場所を認識できる必要があります。公式の方法があるかどうかはわかりませんが、次のいずれかを試すことができます。
nvidia-smi
が利用可能かどうかを確認します$CUDA_LIB_PATH
で指定したディレクトリが存在するか確認してください