OpenMythosをGPUを利用できるDocker環境で構築しました

1.概要

前回までは、LinuxMint 22.3のオンプレミスでGPUを利用してOpenMythosを動かしました。しかし、OS更新で構築環境の整合性が取れずに動作しなくなる場合があり、Docker環境で動かすことにチャレンジしました。その内容を記述します。

2.詳細

LinuxMint 22.3が導入され、nvidiaのGPUがHWとして認識されている状態を想定します。
利用した機器は、amd 3200G, nvidia-1660 superです。

Docker環境を利用することでContainer内部に必要なPython3環境を準備できてpython3-venvも不要となり、操作も楽になります。利用したubuntu-24.04ベースのContainerはUser:Ubuntuが存在し、ContainerとLocal間のデータを楽にできるようにLocal上のUserとuid:gidが同じにしています。
オンプレ構築部分は参考資料(OpenMythosをLinuxMint 22.3に環境構築してみました)を参照願います。

(1) nouveauの無効化
/etc/modprobe.d/blacklist-nouveau.conf作成
# nvidia(nouveau)
blacklist nouveau
options nouveau modeset=0
適用します
$ sudo update-initramfs -u

(2) nvidia driver設定
$ ubuntu-drivers devices
$ sudo apt -y install nvidia-driver-595-open

(3) nvidia Container Toolkit導入
参考資料(Installing the NVIDIA Container Toolkit)を参照願います
$ curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \
  && curl -s -L 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
$ export NVIDIA_CONTAINER_TOOLKIT_VERSION=1.19.1-1
  sudo apt-get install -y \
      nvidia-container-toolkit=${NVIDIA_CONTAINER_TOOLKIT_VERSION} \
      nvidia-container-toolkit-base=${NVIDIA_CONTAINER_TOOLKIT_VERSION} \
      libnvidia-container-tools=${NVIDIA_CONTAINER_TOOLKIT_VERSION} \
      libnvidia-container1=${NVIDIA_CONTAINER_TOOLKIT_VERSION}

(4) 再起動して確認します
$ nvidia-smi
$ nvidia-container-cli info

(5) dockerとdocker compose導入
$ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu noble stable"
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/docker.gpg
$ sudo apt update
$ sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
$ sudo gpasswd -a $USER docker
$ docker --version
$ docker compose version

(6) Dockerfile作成
FROM nvidia/cuda:12.6.0-devel-ubuntu24.04
ENV PYTHONUNBUFFERED=1 \
    DEBIAN_FRONTEND=noninteractive
RUN apt-get update && apt-get install -y \
    python3 \
    python3-pip \
    git \
    && rm -rf /var/lib/apt/lists/*
RUN pip3 install --no-cache-dir --break-system-packages \
    torch \
    torchvision \
    torchaudio \
    open-mythos \
    swarms
WORKDIR /home/ubuntu
RUN chown ubuntu:ubuntu /home/ubuntu
USER ubuntu
CMD ["sleep", "infinity"]

(7) docker-compose.yml作成
services:
  openmythos:
    container_name: openmythos
    build:
      context: .
    deploy:
      resources:
        reservations:
          devices:
            - driver: nvidia
              count: all
              capabilities: [gpu]
    volumes:
      - .:/home/ubuntu
    tty: true
    stdin_open: true

(8) 起動
$ docker compose up -d

(9) login
$ docker compose exec --user ubuntu openmythos bash

(10) Usage実行
参考資料(OpenMythosのサンプルプログラムを動かしました)を参照願います。
$ python3 openmythos_usage.py

参考
[本ブログ内参照]

コメント

このブログの人気の投稿

miniPCのBMAXでWindows11のsecure boot設定漏れでトラブル発生

LinuxMint-22.3にWine 11.6をサクッと入れてみました

LinuxMint 21.3にWinBoat導入を試してみました