【ローカルLLM実装への道】第1回: CUDAToolkitのインストール手順を丁寧に解説!

はじめに

こんにちは。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回)

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

検証機のスペック

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

CUDA Toolkitについて

CUDA Toolkitとは、NVIDIA社が開発・提供しているGPU向けの開発環境のことです。CUDA Toolkitは、以下のコンポーネントで構成されています。

  • GPUアクセラレーションライブラリ:ディープラーニング向けのライブラリ(cuDNN)など
  • デバッグおよび最適化ツール:デバッグ、最適化を支援するツール
  • C/C++コンパイラ:CUDA C/C++コードをGPU上で実行可能なコードに変換するコンパイラ(nvcc)
  • ランタイムライブラリ:CUDAアプリケーションがGPUとやりとりするためのAPI

AI検証にあたり、推論時にGPUの計算能力を利用したいなどの理由から今回CUDA Toolkitを検証機にインストールします。

CUDA Toolkitのインストール

インストールするバージョンの決定

検証機に搭載されているNVIDIA A100 PCIe 40GBに対応したCUDA Toolkitのバージョンを特定し、インストールするバージョンを決定したいと思います。

NVIDIA A100 PCIe 40GBのCompute Capabilityを以下の公式サイトより調べます。

CUDA GPUs - Compute Capability | NVIDIA Developer

CUDA GPUs - Compute Capability | NVIDIA Developer

NVIDIA A100のCompute Capabilityは8.0であることがわかりました。

WikipediaにCUDA ToolkitとCompute Capabilityのわかりやすい対応表がありますので、こちらを参考にNVIDIA A100が対応しているCUDA Toolkitのバージョンを確認します。

CUDA - Wikipedia

CUDA - Wikipedia

上記表より、Compute Capabilityが8.0であるNVIDIA A100はCUDA Toolkitのバージョン11.0~12.5に対応していることがわかりました。今回は対応しているバージョンの中で最新の12.5をインストールしていきます。

インストール方法の決定

CUDA Toolkitのインストール方法とそれぞれのメリット、デメリットは以下の通りです。

1.ディストリビューション固有のパッケージ(RPMおよびDebパッケージ)を利用したインストール

  • a.メリット:ディストリビューションのネイティブパッケージ管理システム(APTやYUM)と連携するため、パッケージ管理システムを通じて、簡単にインストール、アップデート、アンインストールができる
  • b.デメリット:特定のLinuxディストリビューションにのみ対応している

2.ディストリビューションに依存しないパッケージ(runfileパッケージ)を利用したインストール

  • a.メリット:幅広いLinuxディストリビューションに対応している
  • b.デメリット:ディストリビューションのネイティブパッケージ管理システム(APTやYUM)と連携しないため、手動でのアップデートやアンインストールが必要になる場合がある

可能な限り、ディストリビューション固有のパッケージを利用したインストールが公式から推奨されているので、今回はこちらの方法でインストールを行います。

インストール手順の確認

インストール方法が決定したので、以下2つの公式サイトでインストール手順を確認します。

1. Introduction — Installation Guide for Linux 12.5 documentation

CUDA Toolkit 12.5 Downloads | NVIDIA Developer

2つの公式サイトはどちらも「CUDA Toolkit Archive」で検索して表示されるサイトをクリックし、特定のバージョンを選択することで辿り着くことができます。

インストール手順の確認01

2つ目の公式サイトではインストール対象の情報を入力すると、以下のようにインストール方法が表示されます。

インストール手順の確認02

2つの公式サイトを参照するのは、片方に載っている内容がもう片方には載っていないといったことがあるからです。
2つを参照しながらインストール作業を行うのが良いと思います。

インストール作業

以下のような手順で、NVIDIAドライバとCUDA Toolkitをインストールしていきます。

EPELリポジトリパッケージのインストール
(NVIDIAドライバがDKMSやlibvdpauなど、EPELのようなサードパーティ製のリポジトリでのみ提供されている外部パッケージに依存するため)

  [root@aitest ~]# dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm

古い署名鍵の削除

  [root@aitest ~]# rpm --erase gpg-pubkey-7fa2af80*

CUDAリポジトリパッケージのインストール

  [root@aitest ~]# wget https://developer.download.nvidia.com/compute/cuda/12.5.0/local_installers/cuda-repo-rhel8-12-5-local-12.5.0_555.42.02-1.x86_64.rpm
  [root@aitest ~]# rpm -i cuda-repo-rhel8-12-5-local-12.5.0_555.42.02-1.x86_64.rpm

パッケージ管理システムのキャッシュをクリア

  [root@aitest ~]# dnf clean all

NVIDIAドライバとCUDA Toolkitのインストール

  [root@aitest ~]# dnf module install nvidia-driver:latest-dkms
  [root@aitest ~]# dnf install cuda-toolkit-12-5

再起動してインストールしたドライバやライブラリをロード

  [root@aitest ~]# reboot

環境変数PATHを設定

  [root@aitest ~]# vi /etc/profile
  ⋮
  PATH="/usr/local/cuda-12.5/bin:${PATH}"
  export PATH

動作確認

  [root@aitest ~]# nvcc -V
  nvcc: NVIDIA (R) Cuda compiler driver
  Copyright (c) 2005-2024 NVIDIA Corporation
  Built on Wed_Apr_17_19:19:55_PDT_2024
  Cuda compilation tools, release 12.5, V12.5.40
  Build cuda_12.5.r12.5/compiler.34177558_0
  [root@aitest ~]# nvidia-smi
  Fri Aug 16 17:16:55 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 56C P0 43W / 250W | 229MiB / 40960MiB | 0% Default |
  | | | Disabled |
  +-----------------------------------------+------------------------+----------------------+
  
  +-----------------------------------------------------------------------------------------+
  | Processes: |
  | GPU GI CI PID Type Process name GPU Memory |
  | ID ID Usage |
  |=========================================================================================|
  | 0 N/A N/A 2683 G /usr/libexec/Xorg 70MiB |
  | 0 N/A N/A 2852 G /usr/bin/gnome-shell 135MiB |
  +-----------------------------------------------------------------------------------------+

NVIDIAドライバとCUDA Toolkitを問題なくインストールすることができました。

おわりに

今回は、第1回として「CUDA Toolkitのインストール」に焦点を当て、紹介しました。
インストール手順が公式サイト間で違いがあり苦労しましたが、なんとかインストールをすることができました。
CUDA Toolkitをインストールする際の手助けになれば幸いです。
次回は、検証環境の構築作業として「Dockerのインストール」をテーマに記載していきます。お楽しみに!

著者プロフィール

著者プロフィール画像

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

お問い合わせ・資料請求

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