💻

AWS G6fインスタンスのGPU・GRIDドライバーまわりでハマったポイント

に公開

AWS G6fインスタンスのGPU・GRIDドライバーまわりでハマったポイント

この記事はLivetoon Tech Advent Calendar 2025の2日目の記事です。
https://adventar.org/calendars/12157

本日はCTOのわたしが、ニッチでエッチなGPUの話をします。

はじめに

こんにちは
株式会社Livetoon CTOの長嶋です。

https://kai0.onelink.me/Hogh/AdventCalendar2025

今回のアドベントカレンダーでは、LivetoonのAIキャラクターアプリのkaiwaに関わるエンジニアが、アプリの話からLLM・合成音声・インフラ監視・GPU・OSSまで、幅広くアドベントカレンダーとして書いて行く予定です。
是非、publicationをフォローして、記事を追ってみてください。

概要

AWS EC2のG6fインスタンス(NVIDIA L4 GPU搭載)にNVIDIA GRIDドライバーをインストールする際、公式ドキュメント通りに進めても失敗するケースがあります。本記事では、実際に直面したトラブルと解決策を詳しく解説します。

G6fインスタンスとは?

https://aws.amazon.com/jp/about-aws/whats-new/2025/07/amazon-ec2-g6f-instances-fractional-gpus/
Amazon EC2 G6fインスタンスは、AWSで初めてGPUをパーティション分割できるインスタンスです。
NVIDIA L4 GPUをベースにそれぞれ1/8, 1/4, 1/2に分割したインスタンスが用意されています。

主な特徴:

  • NVIDIA L4 Tensor Core GPUを搭載
  • GPUを最小1/8に分割可能(3GB GPUメモリから利用可能)
  • 単一GPUのG6インスタンスと比較して大幅なコスト削減を実現

利用可能リージョン: 東京リージョン(ap-northeast-1)を含む複数のリージョンで利用可能

G6fインスタンスサイズ:

Instance Size GPU GPU Memory (GiB) vCPUs Memory (GiB) 価格(東京)
g6f.large 1/8 3 2 8 $0.293/hr
g6f.xlarge 1/8 3 4 16 $0.344/hr
g6f.2xlarge 1/4 6 8 32 $0.689/hr
g6f.4xlarge 1/2 12 16 64 $1.378/hr

メリット:

  • コスト最適化: 必要なGPUリソースのみを使用(1/8から選択可能)
  • 高性能: G4dnインスタンスと比較して2倍の推論性能

参考: Amazon EC2 G6インスタンスの詳細

重要な結論(先に読んでください)

G6fはGPUを1/8に分割できるコスト最適化されたインスタンスですが、ドライバーのインストールには注意が必要です:

  1. Deep Learning AMIは使わない → プレーンなUbuntu 24.04を使用
  2. latestドライバーは使わない → GRID 18.x系を明示的に指定(AWS公式:18.4以降が必要、19.0以降は非対応)
  3. CUDA Toolkitは別途インストール不要 → GRIDドライバーに含まれている

つまり: GRIDドライバー1つインストールすれば、あとはPyTorchをpipで入れるだけ!

弊社での検証結果

弊社ではTTS(Text to Speech)やSTT(Speech to Text)モデル運用するにあたってコスト最適化を目指しており、L4を分割したパーシャルGPUであるG6fが実際に使えるのかどうかの検証を行いました。

https://prtimes.jp/main/html/rd/p/000000022.000142578.html

ベンチマーク結果(短文音声合成):

  • g4dn.xlarge (T4 GPU): 0.12秒
  • g6f.xlarge (L4 GPU 1/8): 0.33秒
  • g6f.2xlarge (L4 GPU 1/4): 0.17秒

結論: 期待に反して、G6f(1/8 GPU)はT4のg4dnより大幅に遅い結果となりました。1/4 GPUでもg4dnには及ばず、コスト面でのメリットも薄いため、弊社のユースケースでは採用を見送りました。

弊社では見送りの結果となりましたが、きっと誰かの役に立つだろうと考え、本記事ではGRIDドライバーのインストール手順に焦点を当てています。G6fを検証したい方、異なるワークロードで試したい方の参考になれば幸いです。

また弊社では、T4(G4dnXlarge)以外にも、 G5gXlarge などありとあらゆるGPUインスタンスを検証しております。実際にコスト2割削減にも成功し、AWSスタートアップブログにも取り上げていただいております。

https://aws.amazon.com/jp/blogs/startup/tech-interview-livetoon-2025/

目次

  1. 手順まとめ(5分で理解)
  2. 環境情報
  3. 重要な前提知識
  4. Deep Learning AMIは使えない
  5. GRIDドライバーに含まれるもの
  6. 成功した手順
  7. 機械学習フレームワークのインストール
  8. インストール後の確認
  9. トラブルシューティング
  10. よくある質問
  11. まとめ

手順まとめ(5分で理解)

時間がない方のために、成功する最短手順を記載します:

# 1. Ubuntu 24.04でG6fインスタンスを起動
# 注意: Deep Learning AMIは使わない(GRID 19.0以降が含まれG6fと非互換)
# G6fは1/8 GPUから選べるコスト最適化インスタンス($0.293/hr〜)

# 2. 前提条件
sudo apt-get update && sudo apt-get install -y gcc make unzip
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip && sudo ./aws/install
aws configure  # 認証情報を設定(AmazonS3ReadOnlyAccessが必要)

# 3. Nouveauを無効化
cat << EOF | sudo tee --append /etc/modprobe.d/blacklist.conf
blacklist nouveau
EOF
sudo sed -i 's/GRUB_CMDLINE_LINUX=""/GRUB_CMDLINE_LINUX="rdblacklist=nouveau"/' /etc/default/grub
sudo update-grub && sudo reboot

# 4. GRIDドライバーをインストール(GRID 18.2を使用)
sudo apt-get install -y linux-headers-$(uname -r)
aws s3 cp s3://ec2-linux-nvidia-drivers/grid-18.2/NVIDIA-Linux-x86_64-570.148.08-grid-aws.run .
echo "options nvidia NVreg_EnableGpuFirmware=0" | sudo tee /etc/modprobe.d/nvidia.conf
chmod +x NVIDIA-Linux-x86_64-570.148.08-grid-aws.run
sudo /bin/sh ./NVIDIA-Linux-x86_64-570.148.08-grid-aws.run --accept-license --no-questions --ui=none --no-drm
sudo reboot

# 5. 確認(CUDAも一緒に入っている!)
nvidia-smi  # 表示されれば成功
nvcc -V     # CUDAコンパイラも使える

# 6. PyTorchをインストール
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121

# 7. 動作確認
python3 -c "import torch; print(torch.cuda.is_available())"  # True と表示されれば完璧

これだけ! 追加でCUDAやcuDNNをインストールする必要はありません。

また基本的にはこちらのドキュメントを参照すればある程度問題ないかと思います
https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/nvidia-GRID-driver.html

環境情報

OS: Ubuntu 24.04 LTS
Instance Type: g6f.xlarge (他のG6f系でも同様)
GPU: NVIDIA L4 Tensor Core GPU
NVIDIA Driver: 570.148.08 (GRID 18.2)
CUDA Version: 12.9
必須ドライバー: GRID 18.4以降、19.0未満

重要な前提知識

G6fインスタンスの制約

AWS公式ドキュメント「NVIDIA GRID ドライバーのインストール」には以下の記載があります:

⚠️ G6f と Gr6f インスタンスは GRID 19.0 以降をサポートしていません。
⚠️ G6f および Gr6f インスタンスには GRID 18.4 以降が必要です。

つまり、G6fでは GRID 18.4 ≤ version < 19.0 の範囲のドライバーのみが動作します。

よくある誤解

: latestディレクトリのドライバーを使えば最新で安全
: latestはGRID 19.0以降を含むためG6fでは動作しない

: Ubuntu標準リポジトリのNVIDIAドライバーで十分
: AWS専用のGRIDドライバーが必須

: CUDA Toolkitを直接インストールすれば使える
: GRIDドライバーにCUDAが含まれているため追加インストール不要

Deep Learning AMIは使えない

❌ なぜDeep Learning AMIを使わないのか

AWSにはDeep Learning AMIという便利なイメージがありますが、G6fインスタンスでは推奨しません

問題点1: プリインストールされたドライバーの競合

Deep Learning AMIには既にNVIDIAドライバーがインストールされています:

  • 通常、GRID 19.0以降または標準のCUDAドライバーが含まれる
  • G6fは GRID 18.x系のみ対応
  • 既存ドライバーの削除が複雑で、依存関係の解決が困難

問題点2: CUDA Toolkitの競合

# Deep Learning AMIの典型的な構成
/usr/local/cuda-11.8/
/usr/local/cuda-12.0/
/usr/local/cuda-12.1/
└── 複数のCUDAバージョンが混在

GRIDドライバーと競合し、以下のエラーが発生する可能性:

  • version 'GLIBC_X.XX' not found
  • CUDA driver version is insufficient
  • libcuda.so のシンボリックリンクエラー

問題点3: 環境変数とパスの競合

# Deep Learning AMIのデフォルト設定
export PATH=/usr/local/cuda/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH

# GRIDドライバーとの競合が発生

✅ 推奨: プレーンなUbuntu AMIを使う

最適な選択: Ubuntu Server 24.04 LTS (または22.04 LTS)

# AMI例
Ubuntu Server 24.04 LTS (HVM), SSD Volume Type
ami-0d52744d6551d851e (ap-northeast-1)

メリット:

  • クリーンな環境
  • 必要なものだけをインストール
  • GRIDドライバーとの競合なし
  • トラブルシューティングが容易

GRIDドライバーに含まれるもの

成功した手順

以下、実際に成功した手順を順を追って説明します。

ステップ1: 前提条件の準備

1.1 AWS CLIのインストール

curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
sudo apt install unzip -y
unzip awscliv2.zip
sudo ./aws/install

1.2 AWS認証情報の設定

aws configure set aws_access_key_id YOUR_ACCESS_KEY
aws configure set aws_secret_access_key YOUR_SECRET_KEY
aws configure set default.region ap-northeast-1  # 適切なリージョンに変更

重要: IAMユーザーまたはロールにAmazonS3ReadOnlyAccessポリシーが必要です。

1.3 必要なパッケージのインストール

sudo apt-get update -y
sudo apt-get install -y gcc make
sudo apt-get install -y linux-headers-$(uname -r)

ステップ2: Nouveauドライバーの無効化

Linuxの標準オープンソースドライバー(Nouveau)を無効化する必要があります。

2.1 ブラックリストファイルの作成

cat << EOF | sudo tee --append /etc/modprobe.d/blacklist.conf
blacklist vga16fb
blacklist nouveau
blacklist rivafb
blacklist nvidiafb
blacklist rivatv
EOF

2.2 GRUBブートローダーの設定変更

sudo sed -i 's/GRUB_CMDLINE_LINUX=""/GRUB_CMDLINE_LINUX="rdblacklist=nouveau"/' /etc/default/grub
sudo update-grub

2.3 再起動

sudo reboot

ステップ3: 適切なGRIDドライバーバージョンの選択

3.1 利用可能なバージョンの確認

aws s3 ls --recursive s3://ec2-linux-nvidia-drivers/ | grep grid

出力例:

2024-xx-xx  ...  grid-17.4/NVIDIA-Linux-x86_64-...
2024-xx-xx  ...  grid-18.2/NVIDIA-Linux-x86_64-570.148.08-grid-aws.run
2024-xx-xx  ...  grid-18.4/NVIDIA-Linux-x86_64-...
2024-xx-xx  ...  grid-19.0/NVIDIA-Linux-x86_64-...  # ❌ G6fでは動作しない

3.2 G6f対応バージョンの選択

G6fで動作確認済み: grid-18.2 (NVIDIA Driver 570.148.08)

# 古いファイルがある場合は削除
rm -f NVIDIA-Linux-x86_64*.run

# GRID 18.2をダウンロード
aws s3 cp s3://ec2-linux-nvidia-drivers/grid-18.2/NVIDIA-Linux-x86_64-570.148.08-grid-aws.run .

ステップ4: GPU Firmwareの無効化(重要)

この設定がないとドライバーが正常に動作しないことがあります。

sudo touch /etc/modprobe.d/nvidia.conf
echo "options nvidia NVreg_EnableGpuFirmware=0" | sudo tee --append /etc/modprobe.d/nvidia.conf

ステップ5: GRIDドライバーのインストール

5.1 既存のNVIDIAパッケージの削除(必要な場合)

既にNVIDIAドライバーをインストール試行した場合:

sudo apt-get remove --purge -y nvidia-* libnvidia-*

5.2 インストールの実行

chmod +x NVIDIA-Linux-x86_64-570.148.08-grid-aws.run

sudo /bin/sh ./NVIDIA-Linux-x86_64-570.148.08-grid-aws.run \
  --accept-license \
  --no-questions \
  --ui=none \
  --no-drm

オプション説明:

  • --accept-license: ライセンスに同意
  • --no-questions: 対話型プロンプトを無効化
  • --ui=none: GUIなしでインストール
  • --no-drm: DRMモジュールを無効化(G6fで必要)

5.3 インストール完了後の再起動

sudo reboot

ステップ6: CUDA環境変数の設定

~/.bashrcにCUDAパスを追加:

echo 'export PATH=/usr/local/cuda-12.9/bin:$PATH' >> ~/.bashrc
echo 'export LD_LIBRARY_PATH=/usr/local/cuda-12.9/lib64:$LD_LIBRARY_PATH' >> ~/.bashrc
source ~/.bashrc

機械学習フレームワークのインストール

PyTorchのインストール

pipを使用

# CUDA 12.1対応版(公式サイト: https://pytorch.org/)
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121

uvを使用

# uvのインストール
curl -LsSf https://astral.sh/uv/install.sh | sh

# PyTorchをインストール
uv add torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu121

動作確認

python3 -c "import torch; print(f'CUDA available: {torch.cuda.is_available()}'); print(f'GPU: {torch.cuda.get_device_name(0) if torch.cuda.is_available() else "N/A"}')"

期待される出力:

CUDA available: True
GPU: NVIDIA L4

インストール後の確認

# GPUの認識確認
nvidia-smi

正常な出力例:

+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 570.148.08             Driver Version: 570.148.08     CUDA Version: 12.9     |
|-----------------------------------------+------------------------+----------------------+
| GPU  Name                 Persistence-M | Bus-Id          Disp.A | Volatile Uncorr. ECC |
| Fan  Temp   Perf          Pwr:Usage/Cap |           Memory-Usage | GPU-Util  Compute M. |
|=========================================+========================+======================|
|   0  NVIDIA L4                      Off |   00000000:00:1E.0 Off |                    0 |
| N/A   34C    P8             10W /   72W |       2MiB /  24576MiB |      0%      Default |
+-----------------------------------------+------------------------+----------------------+
# CUDAコンパイラの確認
nvcc -V

# 継続的なモニタリング(オプション)
watch -n 1 nvidia-smi

トラブルシューティング

問題1: nvidia-smiが「command not found」

原因: PATHが通っていない

解決策:

echo 'export PATH=/usr/local/cuda-12.9/bin:$PATH' >> ~/.bashrc
source ~/.bashrc

問題2: nvidia-smiが「Failed to initialize NVML」エラー

原因1: Nouveauドライバーがまだ有効

解決策:

# Nouveauがロードされていないか確認
lsmod | grep -i nouveau

# ロードされている場合は設定を見直して再起動

原因2: NVIDIAカーネルモジュールがロードされていない

解決策:

# カーネルモジュールの確認
lsmod | grep nvidia

# 手動ロード試行
sudo modprobe nvidia

# エラーログ確認
sudo dmesg | grep -i nvidia | tail -20

問題3: インストールは成功したがGPUが認識されない

原因: GPU Firmwareの設定が不足

解決策:

# /etc/modprobe.d/nvidia.confの確認
cat /etc/modprobe.d/nvidia.conf

# 設定がない場合は追加
echo "options nvidia NVreg_EnableGpuFirmware=0" | sudo tee /etc/modprobe.d/nvidia.conf
sudo reboot

問題4: インストールログの確認方法

# インストールログを確認
sudo cat /var/log/nvidia-installer.log | tail -50

よくある質問

Q1: なぜlatestではなくgrid-18.2を使うのか?

A: AWS公式アナウンスによると、G6fにはGRID 18.4以降が必要ですが、19.0以降は非対応です。latestには19.0以降が含まれるため、18.x系(18.2、18.4など)を明示的に指定する必要があります。

Q2: GRID 18.4以降が必要なのに、なぜ18.2を使うのか?

A: AWS公式では「18.4以降が必要」と記載されていますが、実際には18.2で動作確認済みです。18.4や18.5も試す価値はありますが、18.2が最も安定していました。

Q3: cuDNNもインストールする必要はあるか?

A: 不要です。PyTorch/TensorFlowに含まれています。GRIDドライバーのインストール後、通常通りpipでフレームワークをインストールするだけで使えます。

Q4: G6fとG6の違いは?

A: G6fは 分割式GPU(Fractional GPU) を提供します。1つのL4 GPUを1/8、1/4、1/2に分割でき、必要なリソースのみ使用することでコスト削減を実現します。フルGPUが必要ない推論タスクに最適です。

まとめ

🎯 最重要ポイント(必読)

G6fインスタンスで成功するための3つの鉄則:

1. AMIの選択

Deep Learning AMIは使わない
プレーンなUbuntu 24.04/22.04 LTSを使用

理由: Deep Learning AMIにはGRID 19.0以降が含まれており、G6fと非互換。競合を避けるためクリーンな環境から始める。

2. ドライバーのバージョン

latestを使わない(GRID 19.0以降が含まれる)
GRID 18.x系を明示的に指定(例: grid-18.2)

理由: AWS公式によると、G6fにはGRID 18.4以降が必要だが、19.0以降は非対応。

3. CUDAのインストール

CUDA Toolkitを別途インストールしない
GRIDドライバーに含まれているのでそのまま使う

理由: GRIDドライバーにCUDA 12.9、nvcc、nvidia-smiがすべて含まれている。追加インストールは競合の原因となる。

❌ 失敗事例(同じ轍を踏まないために)

実際に試して失敗した方法を記録します。

失敗事例1: CUDA Toolkitの直接インストール

# これは失敗する
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/x86_64/cuda-keyring_1.1-1_all.deb
sudo dpkg -i cuda-keyring_1.1-1_all.deb
sudo apt-get update
sudo apt-get -y install cuda-toolkit-12-9

エラー内容: nvidia-smiが動作しない、nvcc -Vが実行できない、GPUが認識されない

失敗理由: G6fにはAWS専用のGRIDドライバーが必要。GRIDドライバーにCUDAが含まれているため、別途インストール不要。

失敗事例2: latestディレクトリからのインストール

# これも失敗する
aws s3 cp --recursive s3://ec2-linux-nvidia-drivers/latest/ .
chmod +x NVIDIA-Linux-x86_64*.run
sudo /bin/sh ./NVIDIA-Linux-x86_64*.run

エラー内容: インストールは完了するがnvidia-smiが動作しない、sudo modprobe nvidiaでエラー

失敗理由: latestにはGRID 19.0以降が含まれG6fでは非互換。G6fは18.4以降19.0未満のみ対応。

失敗事例3: Ubuntu標準リポジトリのドライバー

# これも動作しない
sudo apt-get install -y nvidia-open
sudo apt-get install -y nvidia-headless-580-server nvidia-utils-580

失敗理由: Ubuntu標準リポジトリのドライバーはAWS G6fのハードウェアに対応していない

その他の成功ポイント

GPU Firmwareを無効化 (NVreg_EnableGpuFirmware=0)
--no-drmオプション付きでインストール
Nouveauドライバーを完全に無効化

AMI作成のすすめ

セットアップ完了後はカスタムAMIを作成すると便利です:

aws ec2 create-image \
  --instance-id i-1234567890abcdef0 \
  --name "G6f-GRID18.2-PyTorch-$(date +%Y%m%d)" \
  --no-reboot

おわりに

以上いかがでしたでしょうか?
あまりにもマニアックすぎる気もしますが、おそらく世の中に数人くらいはG6f試したいけど、エラーにハマってしまった!という方が出現すると思うので、何かの参考になればと。

参考リンク

Discussion