LoginSignup
0
1

Docker +NVIDIA countainer toolkit 環境でCUDA tool kit nbody によるGPUストレステスト

Last updated at Posted at 2023-01-19

概要

今流行りのdocker + nvidia container toolkit を用いてGPUの負荷テストが手軽にできないか検証しました。

ハードウェア構成

  • Geforce

ソフトウェア構成

  • OS : Ubuntu22.04.1LTS
  • Nvidia Driver:525.85.05インストール済

dockerインストール

公式ドキュメントに従ってインストールします。
https://docs.docker.com/engine/install/ubuntu/

#repository追加
sudo apt-get update
sudo apt-get install \
    ca-certificates \
    curl \
    gnupg \
    lsb-release

#鍵追加(と思われる)
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

#追加したリポジトリからインストール
sudo apt-get update -y
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin -y

インストールが終了したら、この時点で正常にdockerが起動できるか確認しておくと良いです。

#hello world
sudo docker run hello-world

NVIDIA-container-toolkit インストール

これも公式ドキュメントを参考にインストールします。
https://catalog.ngc.nvidia.com/orgs/nvidia/teams/k8s/containers/cuda-sample
https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html#installing-with-apt

#鍵追加
distribution=$(. /etc/os-release;echo $ID$VERSION_ID) \
      && 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/$distribution/libnvidia-container.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

dockerでnbody実行

sudoで実行します。-numbodies=XXXXXXXX部分でメモリ使用量を調整します。

sudo docker run --rm -it nvcr.io/nvidia/k8s/cuda-sample:nbody nbody  -benchmark -numbodies=65536000

参考

https://www.idnet.co.jp/column/page_158.html
https://qiita.com/tkusumi/items/f275f0737fb5b261a868

複数GPUを搭載している場合のGPU指定方法(割と悩んだ)

https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/docker-specialized.html
https://cocoinit23.com/docker-run-multi-gpu/

検証の経緯

GPUサーバに負荷を掛けて動作するかテストする際にCUDA toolkitのnbody(https://developer.nvidia.com/cuda-toolkit) を使っています。毎回環境を構築するのがめんどくさいので一度作った環境を色々なマシンに使いまわしていたのですが、しかし当然ながらテストするハードウェアの移り変わりや相性問題などは起こります。その都度、OSやドライバやらCUDAのバージョンを管理・更新するメンテナンスが発生していました。この方法であれば気軽に試せていまのところいい感じです。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1