最新の ML フレームワークでは多くの場合、GPU 間通信プリミティブに NVIDIA Collective Communications Library(NCCL)を使用しています。
Google の拡張バージョンの NCCL は NCCL/gIB と呼ばれ、Google Cloudの A5X、A4X Max、A4X、A4、A3 Ultra インスタンスで使用できます。NCCL/gIB は、Google インフラストラクチャ上のアップストリーム NCCL よりもパフォーマンスが高いことがよくあります。NCCL のパフォーマンスはワークロード全体のパフォーマンスに影響する可能性があるため、NCCL/gIB を使用することをおすすめします。
NCCL/gIB には、次のような Google 固有の機能と最適化が含まれています。
- gIB ネットワーク プラグインは、Google のネットワークでロード バランシングを改善し、集団オペレーション中に高スループットと低レイテンシをより一貫して実現します。
- カスタム チューナー プラグイン。 Google Cloud VM で最適なチューニング オプションを選択します。
- CoMMA プロファイラ プラグインは、ワークロードの詳細なパフォーマンス指標と診断データを提供します。
- env プラグインは、 Google Cloud VM 全体でプラットフォーム固有の変数構成を提供します。
NCCL / gIB アーキテクチャ
NCCL/gIB は、次の図に示すように、ML フレームワークとクラスタ上の NVIDIA GPU とやり取りして、パフォーマンスを最適化し、テレメトリーを収集します。

NCCL/gIB を使用するメリット
Google Cloud VM でアップストリームの NVIDIA Collective Communications Library を使用しても安定性の問題は発生しませんが、NCCL/gIB は Google Cloud 用に最適化されています。同じ NCCL パラメータを使用しても、特定の通信パターンではパフォーマンスの差が非常に大きくなる可能性があります。
たとえば、次のグラフは、AllReduce のパフォーマンスにおける NCCL/gIB とアップストリーム NCCL の比較を示しています。NCCL/gIB は、特定のメッセージ サイズでアップストリーム NCCL よりも最大 12 倍優れています。

バックグラウンド トラフィックなしで A3 Ultra(H200)を使用した 32 ノードの NCCL AllReduce のパフォーマンス。
同様に、バックグラウンド トラフィックがある場合の AllGather のパフォーマンスについて NCCL/gIB とアップストリーム NCCL を比較すると、このグラフに示すように、メッセージ サイズが大きい場合、NCCL/gIB はアップストリーム NCCL を約 50% 上回っています。

ノイズの多いバックグラウンドを持つ共有ファブリックで A3 Ultra(H200)を使用した 32 ノードの NCCL AllGather のパフォーマンス。
さらに、CoMMA プロファイラ プラグインにより、Google に提供されるカスタム テレメトリーが改善され、ワークロード レベルの問題が発生した場合に、より適切なサポートを提供できるようになります。
NCCL/gIB をインストールする
NCCL テストを実行する前に、ランタイム環境に NCCL/gIB をインストールする必要があります。
NCCL/gIB を使用する
クラスタで NCCL / gIB テストを実行するには、次のリストから要件に最適なページを選択します。
- NVIDIA NGC コンテナで gIB NCCL プラグインを使用する
- Compute Engine インスタンスで NCCL テストを実行する
- Cluster Toolkit を使用する GKE クラスタで NCCL を実行する
- A4X Max を使用する GKE クラスタで NCCL を実行する
- A4X を使用する GKE クラスタで NCCL を実行する
- A4 または A3 Ultra を使用する GKE クラスタで NCCL を実行する
- Slurm クラスタで NCCL テストを実行する
- Cluster Director で NCCL テストを実行する
A5X を使用する GKE クラスタで NCCL/gIB を実行する方法については、 Google Cloud の担当者にお問い合わせください。
テストの実行後にクラスタの問題に対処する方法については、トラブルシューティングのために NCCL/gIB ログを収集して理解するをご覧ください。