機械学習のための GPU 関連ライブラリの設定 (docker 利用)
機械学習のための GPU 関連ライブラリの設定 (venv 利用) が設定されているものとする.
Docker の設定
$ sudo apt install docker.io
テストを行うために管理者を docker グループに入れる.
$ sudo usermod -aG docker sugiyama $ sudo usermod -aG docker admin01
NVIDIA Container Toolkit
$ sudo apt-get update $ sudo apt-get install nvidia-container-toolkit $ sudo systemctl restart docker
テスト
docker が含まれていることを groups コマンドで確認する.もし含まれていなければ,usermod で追加してログインし直す.
インストールされていないコンテナ (以下の例では nvidia/cuda:12.1.1-runtime-ubuntu22.04) を指定すると, 自動的にコンテナイメージがダウンロードされる.
$ docker run --gpus all nvidia/cuda:12.1.1-runtime-ubuntu22.04 nvidia-smi -L Unable to find image 'nvidia/cuda:12.1.1-runtime-ubuntu22.04' locally <=== 注目! 12.1.1-runtime-ubuntu22.04: Pulling from nvidia/cuda <=== 注目! aece8493d397: Pull complete dd4939a04761: Pull complete .... GPU 0: NVIDIA A100 80GB PCIe (UUID: GPU-f93bcfaf-8668-bf96-32af-d366fd13c746) GPU 1: NVIDIA A100 80GB PCIe (UUID: GPU-e4a7c3aa-06b3-fc2a-acd2-fea39b81b653) GPU 2: NVIDIA A100 80GB PCIe (UUID: GPU-6e8145c7-ae6c-040e-d958-2a1336caf70f)
NVIDIA Container Toolkit のバージョン情報は以下で確認できる
$ nvidia-container-cli info NVRM version: 565.57.01 CUDA version: 12.7 Device Index: 0 Device Minor: 0 Model: NVIDIA A100 80GB PCIe Brand: Nvidia GPU UUID: GPU-f93bcfaf-8668-bf96-32af-d366fd13c746 Bus Location: 00000000:3b:00.0 Architecture: 8.0 ...(以下, 略)...
docker version のバージョン情報は以下で確認できる
$ docker version
現時点でインストールされている docker イメージは以下のコマンドで取得できる.
$ docker images # docker images REPOSITORY TAG IMAGE ID CREATED SIZE nvidia/cuda 12.1.1-runtime-ubuntu22.04 0495908f9381 13 months ago 2.24GB
利用する GPU を指定する.
docker の --gpus オプションで GPU 番号を指定する.
adm01@ncsv2:~$ docker run --gpus 'device=0' --rm nvidia/cuda:12.1.1-runtime-ubuntu22.04 nvidia-smi -L GPU 0: NVIDIA A100 80GB PCIe (UUID: GPU-f93bcfaf-8668-bf96-32af-d366fd13c746) adm01@ncsv2:~$ docker run --gpus 'device=1' --rm nvidia/cuda:12.1.1-runtime-ubuntu22.04 nvidia-smi -L GPU 0: NVIDIA A100 80GB PCIe (UUID: GPU-e4a7c3aa-06b3-fc2a-acd2-fea39b81b653) adm01@ncsv2:~$ docker run --gpus 'device=2' --rm nvidia/cuda:12.1.1-runtime-ubuntu22.04 nvidia-smi -L GPU 0: NVIDIA A100 80GB PCIe (UUID: GPU-6e8145c7-ae6c-040e-d958-2a1336caf70f)