NVLink
NVLink について
NVLink は、8× NVIDIA H100 または H200 GPU を搭載した instance flavor でのみサポートされます。この構成では、NVLink が高帯域・低レイテンシの GPU 間通信を提供し、次を実現します。
- モデルのトレーニング高速化: 特に GPU 間で頻繁にデータ交換が必要な大規模モデルで効果的です
- スケーリング効率の向上: 分散トレーニングフレームワーク(Megatron-LM、DeepSpeed、PyTorch FSDP など)で有効です
- 通信ボトルネックの削減: PCIe のみで GPU を接続する場合と比較して改善します
- 総合的な計算スループットの向上: マルチ GPU の同期に依存するワークロードで効果を発揮します
GPU が 8 基未満の instance は NVLink をサポートしません。
8x GPU flavor で NVLink を有効化する
注記
FPT 提供の image では、NVLink は既定で有効になっていません。必要な場合は手動で有効化してください。
NVLink のサポートを有効にするには、次の手順を実行します。
- 次のファイルを開きます:
/etc/default/grub.d/00-fci-grub.cfg - 次の行を探し、削除またはコメントアウトします。
GRUB_CMDLINE_LINUX_DEFAULT="nvidia.NVreg_NvLinkDisable=1"
- GRUB の構成を更新します。
sudo update-grub
- 変更を反映するため instance を reboot します。
確認
NVLink が正しく有効化されたことを確認するには、次のコマンドを実行します。
1. NVLink の状態を確認する
nvidia-smi nvlink --status
出力には、アクティブな NVLink 接続とそのリンク速度(例: 1 レーンあたり 25 GB/s)が表示されます。
2. GPU のトポロジーを確認する
nvidia-smi topo -m
出力には、すべての GPU 間の NVLink (NV##) 接続が次のように表示されます。
GPU0 GPU1 GPU2 GPU3 GPU4 GPU5 GPU6 GPU7 CPU Affinity NUMA Affinity
GPU0 X NV18 NV18 NV18 NV18 NV18 NV18 NV18 0-127 0-1
GPU1 NV18 X NV18 NV18 NV18 NV18 NV18 NV18 0-127 0-1
GPU2 NV18 NV18 X NV18 NV18 NV18 NV18 NV18 0-127 0-1
GPU3 NV18 NV18 NV18 X NV18 NV18 NV18 NV18 0-127 0-1
GPU4 NV18 NV18 NV18 NV18 X NV18 NV18 NV18 0-127 0-1
GPU5 NV18 NV18 NV18 NV18 NV18 X NV18 NV18 0-127 0-1
GPU6 NV18 NV18 NV18 NV18 NV18 NV18 X NV18 0-127 0-1
GPU7 NV18 NV18 NV18 NV18 NV18 NV18 NV18 X 0-127 0-1
凡例:
| 記号 | 意味 |
|---|---|
| X | 同一 GPU |
| SYS | PCIe + NUMA 間インターコネクト |
| NODE | PCIe + 単一 NUMA ノード内のインターコネクト |
| PHB | PCIe ホストブリッジ |
| PXB | 複数の PCIe ブリッジ |
| PIX | 単一の PCIe ブリッジ |
| NV# | # 本のリンクを束ねた NVLink 接続 |
トラブルシューティング
次のようなエラーが発生した場合:
system not yet initializedtorch.cuda.device_count()やtorch.cuda.get_device_name(i)の呼び出し時の問題
NVIDIA Fabric Manager を再起動してください。
sudo systemctl restart nvidia-fabricmanager
その後、アプリケーションまたは確認手順を再実行します。