概要
以前では,docker-composeを使用してGPUを割り当てるコンテナを作るときには
- nvidia-container-runtimeのインストール
- /etc/docker/deamon.jsonの設定
など,いくつかの手順を踏み,docker-compose.ymlでruntimeオプションを設定する必要がありました
この手法ではruntimeオプションは割り当てるGPUの個数などを指定できません。
(通常のdocker runではgpusオプションで割り当てるGPUの数やidを指定できる)
しかし,docker-compose v.1.28にて簡単に,しかも割り当てるGPUの詳細な指定が可能となりました。
参考資料
docker docs - Compose における GPU アクセスの有効化
設定の方法
簡単2ステップ(Linux)
- docker-composeのアップデート(v1.28以降)
- docker-compose.ymlの設定
docker-composeのアップデート
docker-composeのインストールはサイトのコマンドをコピペするのですがバージョンを必ずv1.28.0以上にしてください。リリースノート
# バージョンを1.28.0以上にする
sudo curl -L https://github.com/docker/compose/releases/download/1.28.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
docker-compose.ymlの設定
deployオプションを新しく追加します
services:
test:
image: nvidia/cuda:10.2-base
command: nvidia-smi
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: 1
capabilities: [gpu, utility]
countオプションかdevice-idsオプションのどちらかが指定できます
countオプション → 使用するGPUの個数を指定したいとき
device-idsオプション → 使用するGPUを直接指定したいとき
と使い分けます
おわり。
普段困ったときはqiitaを見るのですが紹介されてないものもあるんですね。公式ドキュメント様様
(調査不足の可能性あり)
Ubuntu16.04&20.04で確認したのですが割とどのような環境でも動くような気がしてます