🍣

GPUを使ってgpt2で遊ぶための環境をdockerで作る

2022/05/28に公開

専門にやってるわけじゃないので参考程度にお願いします。

概要

色々探していて、GPU使うためには色々入れなきゃいけないみたいで「こんな面倒くさいもんなの?」と思い、極力dockerのみで完結できるよう構成組みました

環境

windowsにdockerデスクトップ。
wsl2で稼働するよう設定済み

結論

Dockerfile
FROM nvcr.io/nvidia/pytorch:22.04-py3
RUN pip install transformers && pip install sentencepiece
docker-compose.yml
version: "3"
services:
  gpt2:
    build:
      context: .
      dockerfile: Dockerfile
    volumes:
      - ./work:/workspace/work
    tty: true
    stdin_open: true
    ipc: host
    deploy:
      resources:
        reservations:
          devices:
            - capabilities: [gpu]
    environment:
      - NVIDIA_VISIBLE_DEVICES=all
      - NVIDIA_DRIVER_CAPABILITIES=all
    command: /bin/bash

基本的には
https://www.technicalife.net/using-gpu-in-dockerdesktop-windows/
こちらの記事をdocker-composeで再現した感じです。
この場を借りて感謝を!

詰まったところ

docker-composeのcommandを指定しなかった所
/opt/nvidia/nvidia_entrypoint.sh: line 49: exec: --: invalid option
というエラーが出ていました

おそらくcommandを引数に取るような処理になっており、そこが空欄だと無効なオプションとしてエラーになってしまうようでした。そのためcommandに/bin/bashを取り急ぎ指定して運用しました。

Discussion