NCCL/gIB を使用してクラスタ ネットワーキングを最適化する

最新の 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 とやり取りして、パフォーマンスを最適化し、テレメトリーを収集します。

ML ワークロードは、NVIDIA GPU と NCCL の両方に接続する ML フレームワークによって管理され、NCCL はさまざまな Google ツールとプラグインに接続します。

NCCL/gIB を使用するメリット

Google Cloud VM でアップストリームの NVIDIA Collective Communications Library を使用しても安定性の問題は発生しませんが、NCCL/gIB は Google Cloud 用に最適化されています。同じ NCCL パラメータを使用しても、特定の通信パターンではパフォーマンスの差が非常に大きくなる可能性があります。

たとえば、次のグラフは、AllReduce のパフォーマンスにおける NCCL/gIB とアップストリーム NCCL の比較を示しています。NCCL/gIB は、特定のメッセージ サイズでアップストリーム NCCL よりも最大 12 倍優れています。

NCCL/gIB が AllReduce タスクでアップストリーム NCCL を上回ることを示すグラフ。

バックグラウンド トラフィックなしで A3 Ultra(H200)を使用した 32 ノードの NCCL AllReduce のパフォーマンス。

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

NCCL/gIB が AllGather タスクでアップストリーム NCCL を上回ることを示すグラフ。

ノイズの多いバックグラウンドを持つ共有ファブリックで A3 Ultra(H200)を使用した 32 ノードの NCCL AllGather のパフォーマンス。

さらに、CoMMA プロファイラ プラグインにより、Google に提供されるカスタム テレメトリーが改善され、ワークロード レベルの問題が発生した場合に、より適切なサポートを提供できるようになります。

NCCL/gIB をインストールする

NCCL テストを実行する前に、ランタイム環境に NCCL/gIB をインストールする必要があります。

NCCL/gIB を使用する

クラスタで NCCL / gIB テストを実行するには、次のリストから要件に最適なページを選択します。

A5X を使用する GKE クラスタで NCCL/gIB を実行する方法については、 Google Cloud の担当者にお問い合わせください。

テストの実行後にクラスタの問題に対処する方法については、トラブルシューティングのために NCCL/gIB ログを収集して理解するをご覧ください。