機械学習とかでdockerで環境を作成して、GPU使って学習回したいことはあるあるですよね
ちょっと前までは
docker-compose.ymlで
runtime: nvidia
で設定ができてたんですけど、これがレガシーな非推奨になっているらしいので新しい書き方をメモしておく。
シンプルさに欠けるから絶対覚えられる気がしない
version: '3'
services:
name:
build: ./docker
shm_size: '16gb'
volumes:
- [host mount path]:/opt/program/
ports:
- 8080:8080
working_dir: /opt/program/
command: tail -f /dev/null
# ここがGPU使うときの新しい書き方
deploy:
resources:
reservations:
devices:
- driver: nvidia
capabilities: [gpu]
この書き方でもエラーが出ることはある
こんなやつ
docker: Error response from daemon: could not select device driver "" with capabilities: [[gpu]]
そんな時は、https://github.com/NVIDIA/nvidia-docker/issues/1243
ここにもあるけど、toolkitのインストールだったり、dockerの再インストールだったりをすると治るらしい。
僕の場合はdockerの再インストールで動くようになった
この書き方の方が任意の量のGPUを認識させたりできるらしくて自由度が高いとかなんとか。
貧乏MLエンジニアの僕は1080 tiを1枚しか使わないからあんま関係ないんだけどねw
機械学習で環境構築ってマジ大変だよねw