Docker – Nvidia Container Toolkit を使用してコンテナで GPU を使用する方法を解説

概要

この記事では、Docker と Nvidia Container Toolkit を使用して、コンテナ内で GPU を利用する方法について解説します。

前提条件

以下の前提条件を満たしていることを確認してください。

  1. Docker がインストールされていること
  2. 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
Bash

2. Docker を設定する

sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart docker
Bash

コンテナで 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
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
YAML

コンテナ起動時にエラーが出る場合

以下の項目を確認してください。

コメント

コメントする