プログラムを中心とした個人的なメモ用のブログです。 タイトルは迷走中。
内容の保証はできませんのであしからずご了承ください。

2022/03/31

nvidia-docker2 (nvidia-container-toolkit) のインストール

event_note2022/03/31 1:37

Docker コンテナ内で GPU を使うためには NVIDIA Container Toolkit をインストールする必要があります。

公式ドキュメントは以下です。

インストール方法

上記のページにインストール手順も書いてあります。
(以下は見やすくするためにコマンドを分割しています。)

$ distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
$ curl -s -L https://nvidia.github.io/libnvidia-container/gpgkey | sudo apt-key add -
$ curl -s -L https://nvidia.github.io/libnvidia-container/$distribution/libnvidia-container.list | sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
$ sudo apt update
$ sudo apt install -y nvidia-docker2

nvidia-docker2 がトップレベルのパッケージらしいので、インストールするときは nvidia-container-toolkit ではなく nvidia-docker2 を指定するようです。
ここらへん以下のページが参考になりました。

まぁ公式ドキュメントが nvidia-docker2 をインストールするようになっていますし、それに従えばよいかと。

また、古い記事では nvidia-docker と書いてあったりしますが、ここらへんの変遷は以下が参考になりました。

動作確認

nvidia-container-cli で確認できます。

$ nvidia-container-cli --version
cli-version: 1.8.1
lib-version: 1.8.1
build date: 2022-02-14T12:02+00:00
build revision: abd4e14d8cb923e2a70b7dcfee55fbc16bffa353
build compiler: x86_64-linux-gnu-gcc-7 7.5.0
build platform: x86_64
build flags: -D_GNU_SOURCE -D_FORTIFY_SOURCE=2 -DNDEBUG -std=gnu11 -O2 -g -fdata-sections -ffunction-sections -fplan9-extensions -fstack-protector -fno-strict-aliasing -fvisibility=hidden -Wall -Wextra -Wcast-align -Wpointer-arith -Wmissing-prototypes -Wnonnull -Wwrite-strings -Wlogical-op -Wformat=2 -Wmissing-format-attribute -Winit-self -Wshadow -Wstrict-prototypes -Wunreachable-code -Wconversion -Wsign-conversion -Wno-unknown-warning-option -Wno-format-extra-args -Wno-gnu-alignof-expression -Wl,-zrelro -Wl,-znow -Wl,-zdefs -Wl,--gc-sections
$ nvidia-container-cli info
NVRM version:   470.103.01
CUDA version:   11.4

Device Index:   0
Device Minor:   0
Model:          NVIDIA GeForce RTX 3080
Brand:          GeForce
GPU UUID:       GPU-565ac97c-fe71-f49b-1ac0-7ac93c7dab8d
Bus Location:   00000000:01:00.0
Architecture:   8.6