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

最新の機械学習フレームワークでは、GPU 間の通信プリミティブに NVIDIA Collective Communications Library(NCCL)がよく使用されます。

NCCL の Google 拡張バージョンは NCCL/gIB と呼ばれ、 Google Cloudの A3 Ultra、A4、A4X VM で使用できます。NCCL/gIB は、Google インフラストラクチャ上のアップストリーム NCCL よりもパフォーマンスが優れていることがよくあります。NCCL のパフォーマンスはワークロード全体のパフォーマンスに影響する可能性があるため、NCCL/gIB を使用することをおすすめします。

NCCL/gIB には、次のような Google 固有の機能と最適化が含まれています。

  • gIB ネットワーク プラグインは、Google のネットワークでロード バランシングを改善し、集合演算中に一貫して高いスループットと低いレイテンシを実現します。
  • Google Cloud VM で最適なチューニング オプションを選択するカスタム チューナー プラグイン
  • CoMMA プロファイラ プラグインは、ワークロードの詳細なパフォーマンス指標と診断データを提供します。

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 倍のパフォーマンスを発揮します。

AllReduce タスクで NCCL/gIB がアップストリーム 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/gIB テストを実行するには、次のリストから要件に最も適したページを選択します。

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