インストールと展開説明書
2 サーバー環境設定(Ubuntu20.04以上 ~ 24.04)
1. Nvidiaグラフィックスカードドライバのインストール
# ドライバをダウンロード
wget https://download.nvidia.com/XFree86/Linux-x86_64/550.120/NVIDIA-Linux-x86_64-550.120.run
All versions :https://download.nvidia.com/XFree86/Linux-x86_64/
chmod +x NVIDIA-Linux-x86_64-550.120.run
# インストールには gcc のビルド環境が必要です。無い場合は build-essential をインストールしてください
sudo apt-get install build-essential -y
# インストーラを実行
sudo ./NVIDIA-Linux-x86_64-550.120.run
注:最低バージョン依存
| ドライバ | バージョン | 対応アーキテクチャ | OS |
|---|---|---|---|
| NVIDIA Linux Driver | 545.23.08 | x86_64, arm64-sbsa, POWER | Linux |
| NVIDIA Windows Driver | 546.12 | x86_64 (Windows) | Windows, WSL |
2. DockerおよびNvidiaグラフィックスカードサポートのインストール
# サーバーに docker をインストール
sudo apt update
sudo apt install docker.io
# NVIDIA コンテナサポートをインストール
# 方法 1
# 最新の公式インストールドキュメントに従って実行します:
https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html
# 方法 2
# 中国本土ではネットワークの問題によりオンラインインストールが失敗する場合があります
# ミラーサイト https://mirror.cs.uchicago.edu/nvidia-docker/ から libnvidia-container1、libnvidia-container-tools、nvidia-container-runtime、nvidia-docker2 の .deb ファイルをダウンロードします
# 必要な deb パッケージの一時ダウンロード先も用意しています:https://cdn-bukbb1.xgrids.cloud/static/nvidia/docker-nvidia-support-ubuntu.zip
# すべての deb ファイルを取得したらインストールを実行します:
sudo dpkg -i ./*.deb # ダウンロードしたすべての deb パッケージをインストール
# docker を再起動
sudo systemctl restart docker
# テストコンテナを実行して GPU が正常か確認します:
sudo docker run --rm --gpus all nvidia/cuda:11.6.2-base nvidia-smi
#docker: Error response from daemon: Get "https://registry-1.docker.io/v2/": net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers).
"registry-mirrors": ["https://docker.anyhub.us.kg","https://dockerhub.jobcher.com","https://dockerhub.icu"]
sudo systemctl daemon-reload
sudo systemctl restart docker
3. 特殊な設定(必須!)
1)Dockerのcgroupdriverをcgroupfsに変更する
NVIDIAグラフィックスカードをコンテナ内で使用する場合、既知の問題がある:コンテナが実行中に突然グラフィックスカードを見失う (Containers losing access to GPUs with error: "Failed to initialize NVML: Unknown Error")
現時点でこのISSUEの公式ステータスは未解決である。参考:
https://github.com/NVIDIA/nvidia-docker/issues/1730
https://github.com/NVIDIA/nvidia-container-toolkit/issues/48
サーバーがこのISSUEの影響を受けるかどうかを確認する方法:
$ docker info
...
Cgroup Driver: systemd # Cgroup Driver = systemd と表示される場合、この問題が発生する可能性があります
Cgroup Version: 1
NVIDIA公式が提供する解決方法:
/etc/docker/daemon.json を手動で修正し、パラメータ "exec-opts": ["native.cgroupdriver=cgroupfs"] を追加してからDockerを再起動する。
(Set the parameter "exec-opts": ["native.cgroupdriver=cgroupfs"] in the /etc/docker/daemon.json file and restart docker.)
![この画像はDocker設定ファイル`/etc/docker/daemon.json`の内容を示しており、その要点は`exec-opts`フィールドで、その値は`\["native.cgroupdriver=cgroupfs"\]`である。この画像はドキュメント内の特殊な設定部分の説明に関連し、NVIDIA公式が提供する解決方法、すなわち`/etc/docker/daemon.json`ファイルを手動で修正してこのパラメータを追加し、Dockerを再起動することで、cgroupdriverの問題によるISSUEを解決することを説明するために使用される。](https://cdn-docs.xgrids.cloud/assets/03-daemon-cgroupfs-ghFTBv1U.webp)
2)NVIDIAグラフィックスカードドライバの永続モード(常駐モード)を有効にする
永続モードを有効にします:
sudo nvidia-smi -pm 1
永続モードを有効にしない場合の影響:
- GPUはアクセスされるたびに初期化され、レイテンシが増加する
- 現象:
nvidia-smi、CUDAプログラムを実行したり、モデルをロードしたりする際に、GPUはドライバの初期化を一度経験する。nvidia-smiコマンドの実行速度が遅くなる。 - 影響: 起動時間の延長、コマンドの反応が遅くなり、さらにはアプリケーション層でのカクつきが発生する。
- 消費電力制御が頻繁に切り替わり、性能が不安定になる
- GPUはアイドル時に自動的に低消費電力状態に入り(ビデオメモリのオフ、クロックのオフなど)、再度アクティブにする際にGPUを「呼び覚ます」必要がある。
- 高頻度使用時に「性能のばらつき」が発生する原因となる。
- サーバーやクラスタ内でマルチタスクの応答効率を低下させる
- ディープラーニングのトレーニング、推論、グラフィックスレンダリングなど、GPUを高頻度で使用するシーンでは、頻繁な初期化がシステムの負担を増加させ、特にマルチユーザー/マルチプロセスの使用シーンで顕著である。
- 一部のコンテナやデーモンプロセスがGPU初期化を繰り返しトリガーする可能性がある
- 例えばDockerで設定が不適切な場合、コンテナが起動するたびにGPU初期化を一度トリガーする可能性がある。
有効にした後:
- GPUドライバは常にロード状態を維持し、アクセスするたびに再初期化する必要がない。
- 起動時間がより短くなり、CUDAプログラムやディープラーニングフレームワークのロード速度がより速くなる。
- より安定した実行性能が得られ、特にクラスタや自動化タスクにおいて顕著である。
サーバー、ディープラーニング、レンダリングなどGPUを重度に使用するシーンでは: 有効にすることを推奨する。
通常のデスクトップ使用や電源に敏感な環境(ノートパソコンなど)での使用シーンに限り、状況に応じて無効にして消費電力を節約してもよい。
4. その他の既知の問題
1) ハイエンドグラフィックスカード+マルチカードサーバーで、コンテナ内のGPUが正常に使用できない問題
複数のハイエンドNVIDIAグラフィックスカード(H100/V100/A100/A30など)を搭載したサーバーでは、対応するドライバをインストールするほか、時にはドライババージョンと完全に一致する nvidia-fabricmanager サービスもインストールしなければ、正常に再構築を行うことができない。
失敗する現象は、コンテナ内でnvidia-smiとnvccコマンドを実行すると、いずれも正常に出力される;しかし実際の再構築は失敗する;再構築エラーは以下のとおりで、複数回リトライしても失敗する:
- エラーコード:
0x34040070 - エラーログ:
Unspecified GPU Error: Update GPU drivers to the latest stable version and restart the computer.
サーバーのエラーログを確認すると、nvidia-fabricmanagerのバージョンが一致しないというエラーメッセージが見つかる可能性がある:

解決方法
NVIDIAの公式ドキュメントに従い、現在のドライババージョンと完全に一致するnvidia-fabricmanagerをインストールし、オペレーティングシステムのレベルから、その自動更新を禁止する必要がある。サーバーの技術運用担当者による対応を推奨する。