Docker 19.03 のアップグレードと nvidia-container-toolkit の使用
Docker を 19.03 にアップグレードすると、nvidia はネイティブの GPU サポートを提供します。nvidia-container-toolkit パッケージをインストールするだけで、nvidia-docker/2 のような複雑な設定は不要です。また、docker-compose はサポートされていません。
インストール手順:
- ホストマシンに nvidia ドライバが正しくインストールされていること、cuda と cudnn の設定が正常であることを確認します。公式ドキュメントによれば、ホストで cuda を設定する必要はありません。
- Docker をインストールします。以下のリンクを参考にしてください。特に 19.03 以降のバージョンをインストールしてください。https://docs.docker.com/engine/install/ubuntu/
- nvidia-docker のリポジトリを追加します。
curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | \
sudo apt-key add -
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | \
sudo tee /etc/apt/sources.list.d/nvidia-docker.list
sudo apt-get update
- 以下のコマンドを使用して nvidia-container-toolkit をインストールし、Docker を再起動します。
sudo apt-get install -y nvidia-container-toolkit
Docker を再起動#
sudo systemctl restart docker
- もし既に nvidia-docker2 がインストールされている場合、nvidia-container-toolkit を個別にインストールすることができます。両方を同時に使用することも可能です。公式では nvidia-docker2 は非推奨となっていますが、引き続き使用することは問題ありません。
使用方法の主な違い:
nvidia-container-toolkit の使用
nvidia-container-toolkit の使用#
docker run --gpus "device=1,2"
nvidia-docker2 の使用
nvidia-docker2 の使用(非推奨ですが、引き続き使用可能)#
docker run --runtime=nvidia
nvidia-docker の使用
nvidia-docker の使用#
nvidia-docker run
注意点:
- nvidia-container-toolkit と nvidia-docker2 のコンテナイメージの場所は異なり、互換性がありません。混在させる場合は、必要に応じて異なるバージョンのコンテナを選択する必要があります。
- 現時点では、nvidia-container-toolkit のマルチ GPU サポートはテストされておらず、コンテナを単一の GPU で実行することが最適です。ホストの設定に関連する可能性があります。
参考:
https://docs.nvidia.com/deeplearning/frameworks/user-guide/index.html
https://docs.nvidia.com/ngc/ngc-aws-setup-guide/running-containers.html#preparing-to-run-containers
https://github.com/NVIDIA/nvidia-docker
https://nvidia.github.io/nvidia-docker/