目次
概要
この記事では、Docker と Nvidia Container Toolkit を使用して、コンテナ内で GPU を利用する方法について解説します。
前提条件
以下の前提条件を満たしていることを確認してください。
- Docker がインストールされていること
- Nvidia ドライバがインストールされていること ()
Nvidia ドライバのインストール方法は、Pytorch – GPU と対応するドライバー、CUDA、CuDNN のバージョン | pystyle を参照してください。
インストール手順
1. Nvidia Container Toolkit のインストール
Installing the NVIDIA Container Toolkit — NVIDIA Container Toolkit のページを参考に、Nvidia Container Toolkit をインストールしてください。 Ubuntu の場合、以下のコマンドになります。
# GPG キーおよびレポジトリの追加
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg
curl -sL https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \
sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
# インストール
sudo apt-get update
sudo apt-get install -y nvidia-container-toolkit
2. Docker を設定する
sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart docker
コンテナで GPU を使用する
docker run
コマンドでコンテナを作成する場合
Docker コンテナで GPU を使用する場合、--gpus all
オプションを付けて docker run
します。
使用するイメージは nvidia/cuda – Docker Image | Docker Hub から検索してください。
docker run -it --gpus all nvidia/cuda:12.4.1-cudnn-devel-ubuntu22.04 /bin/bash
上記コマンドを実行すると、コンテナ内で GPU が認識された状態になります。
docker compose
コマンドでコンテナを作成する場合
docker compose
コマンドでコンテナを作成する場合、docker-compose.yml
に以下の記述を追加します。
services:
mycontainer:
image: image_name
container_name: container_name
deploy:
resources:
reservations:
devices:
- capabilities: [gpu]
tty: true
コンテナ起動時にエラーが出る場合
以下の項目を確認してください。
- Nvidia ドライバがホストマシンにインストールされている (Pytorch – GPU と対応するドライバー、CUDA、CuDNN のバージョン | pystyle を参照)
- ホストマシンを再起動する (
apt
の自動更新によりドライバがアップデートされた場合、再起動するまで GPU が使えなくなる場合がある)
コメント