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
参考
[本ブログ内参照]
コメント
コメントを投稿