【ローカルLLM実装への道】第3回:NVIDIA Container Toolkit -コンテナでGPUを利用するために-

はじめに

こんにちは。SCSKの松谷です。SCSKに新卒で入社し、今年で2年目になります。

本連載では、ローカルLLM実装に向けた検証過程の具体的な作業内容や得られた知見を共有していきます。
第0回で記載したローカルLLM実装の手順は以下の通りでした。

  • 1. CUDA Toolkit, NVIDIAドライバのインストール(第1回)
  • 2. Dockerのインストール(第2回)
  • 3. NVIDIA Container Toolkitのインストール(第3回) ←今回はここ!
  • 4. OllamaによるローカルLLMの実行(第4回)
  • 5. Ollama + Open WebUIによるローカルLLMの実行(第5回)

第3回の今回は、検証環境の構築作業の一環として、検証機にNVIDIA Container Toolkitを導入した際の内容などについて記載しています。

検証機のスペック

項目 説明
1 OS Rocky Linux 8.10(Green Obsidian)
2 CPUコア数 8
3 メモリ容量 32GB
4 ディスク容量 300GB
5 GPU NVIDIA A100 PCIe 40GB

NVIDIA Container Toolkitについて

NVIDIA Container Toolkitとは、GPUを利用するコンテナを実行するためのソフトウェアです。公式サイトでは以下のように説明されています。

The NVIDIA Container Toolkit enables users to build and run GPU-accelerated containers. The toolkit includes a container runtime library and utilities to automatically configure containers to leverage NVIDIA GPUs.

(出典)Overview — NVIDIA Container Toolkit 1.16.2 documentation

コンテナでGPUを利用するため、検証機にNVIDIA Container Toolkitをインストールします。

NVIDIA Container Toolkitのインストール

インストール手順の確認

公式のドキュメントでインストール手順を確認します。検証機のOSはRocky Linuxなので「Installing with Yum or Dnf」のセクションを参照します。

Installing the NVIDIA Container Toolkit — NVIDIA Container Toolkit 1.17.0 documentation

インストール作業

以下のような手順で、NVIDIA Container Toolkitをインストールしていきます。(第1回第2回の作業が完了していることを前提としています。)

リポジトリの設定

  [root@aitest ~]# curl -s -L https://nvidia.github.io/libnvidia-container/stable/rpm/nvidia-
  container-toolkit.repo | tee /etc/yum.repos.d/nvidia-container-toolkit.repo

NVIDIA Container Toolkitのインストール

  [root@aitest ~]# yum install nvidia-container-toolkit

インストール後の設定

DockerがNVIDIA Container Runtimeを使用できるようにする(nvidia-ctkコマンドで/etc/docker/daemonJsonファイルを変更する)

  [root@aitest ~]# nvidia-ctk runtime configure --runtime=docker

Dockerデーモンを再起動して設定を反映

  [root@aitest ~]# systemctl restart docker

コンテナでGPUが利用できるようになったか確認

  [root@aitest ~]# docker run --rm --runtime=nvidia --gpus all ubuntu nvidia-smi
  Unable to find image 'ubuntu:latest' locally
  latest: Pulling from library/ubuntu
  31e907dcc94a: Pull complete
  Digest: sha256:8a37d68f4f73ebf3d4efafbcf66379bf3728902a8038616808f04e34a9ab63ee
  Status: Downloaded newer image for ubuntu:latest
  Mon Sep 9 08:05:14 2024
  +-----------------------------------------------------------------------------------------+
  | NVIDIA-SMI 555.42.02             Driver Version: 555.42.02         CUDA Version: 12.5   |
  |-----------------------------------------+-----------------------—+---------------------—+
  | GPU Name                  Persistence-M | Bus-Id          Disp.A | Volatile Uncorr. ECC |
  | Fan Temp Perf             Pwr:Usage/Cap |           Memory-Usage |  GPU-Util Compute M. |
  |                                         |                        |               MIG M. |
  |=========================================+========================+======================|
  | 0 NVIDIA A100-PCIE-40GB             Off |   00000000:07:00.0 Off |                    0 |
  | N/A 58C P0                   44W / 250W |      250MiB / 40960MiB |           0% Default |
  |                                         |                        |             Disabled |
  +-----------------------------------------+------------------------+----------------------+

  +-----------------------------------------------------------------------------------------+
  | Processes:                                                                              |
  | GPU GI CI       PID Type Process name                                        GPU Memory |
  | ID ID                                                                        Usage      |
  |=========================================================================================|

これで無事にNVIDIA Container Toolkitをインストール、セットアップが完了しました!!

おわりに

今回は、第3回として「NVIDIA Container Toolkitのインストール」に焦点を当て、紹介しました。
NVIDIA Container Toolkitをインストールする際の手助けになれば幸いです。

今回で、ローカルLLMの検証環境の構築作業が完了しました。次回からはいよいよローカルLLMの実行に取り組んでいきます!お楽しみに!

著者プロフィール

著者プロフィール画像

松谷 康平(まつたに こうへい)
SCSK株式会社 インフラエンジニア
2023年に新卒で入社。現在はお客様のインフラ環境の構築を担当。
所属組織では、AI検証活動を積極的に行っている。

お問い合わせ・資料請求

お問い合わせ、資料のダウンロード、PoCお申し込みはこちらから