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