概要

このドキュメントでは、 Google Cloud サービスの NCCL テレメトリーを収集するためのライブラリである Collective Communication Analyzer(CoMMA)について説明します。NCCL テレメトリーは、NCCL が実行中に生成するパフォーマンス指標と運用イベントを収集します。NVIDIA Collective Communication Library(NCCL)は、並列分散コンピューティング システムで実行されている GPU 間のハイ パフォーマンス通信を高速化します。この高パフォーマンス通信は、ディープ ラーニングとハイ パフォーマンス コンピューティング(HPC)に特に役立ちます。

NCCL バージョン 2.23 以降では、NVIDIA は NCCL プロファイラ プラグイン API を導入しました。これにより、デベロッパーは関数コールバックを登録して、NCCL 集合オペレーション中にテレメトリーを収集できます。Google は、Collective Communication Analyzer(CoMMA)を提供しています。これは、NVIDIA の NCCL プロファイラ プラグイン API を使用して Google Cloud サービスの NCCL テレメトリーを収集するライブラリです。CoMMA は、一部のイメージに対して自動的にインストールされ、有効になります。また、CoMMA を無効にしたり、再度有効にしたり、手動でインストールして有効にしたりして、データの収集を制御することもできます。

CoMMA が有効になっている画像

A5X、A4X Max、A4X、A4、A3 Ultra、A3 Mega、A3 High(8 GPU)のマシンタイプでは、gIB NCCL プラグインをパッケージ化するイメージを使用すると、CoMMA がインストールされ、自動的に有効になります。次のイメージには、gIB NCCL プラグインが含まれています。

これらのイメージを使用しているときに、CoMMA による NCCL テレメトリーの収集を無効にする場合は、CoMMA を無効にするをご覧ください。ただし、ストラグラー検出や応答しないワークロードの検出などの機能を使用するには、CoMMA を有効にする必要があります。これらのイメージを使用せず、CoMMA を有効にして NCCL テレメトリーを収集する場合は、CoMMA をインストールするをご覧ください。

利点

CoMMA が収集する NCCL テレメトリーは、GPU 通信のパフォーマンス ボトルネック(特にストラグラー)を特定するのに役立ちます。CoMMA は、集団通信オペレーションのレイテンシ ヒストグラムなど、きめ細かいデータを収集します。診断サービスは、このデータを処理して使用し、ストラグラーを特定できます。

CoMMA を使用してテレメトリーを収集すると、次のメリットがあります。

  • ストラグラー検出と応答しないワークロードの検出に必要: CoMMA は、きめ細かい NCCL テレメトリーを収集して、GPU 間の通信におけるパフォーマンスのボトルネックやストラグラーを特定します。CoMMA は、大規模な AI / ML トレーニング ワークロードの問題を特定して解決するのに役立つ詳細な NCCL テレメトリーを提供します。

    たとえば、CoMMA は NCCL オペレーションで使用されるアルゴリズムをキャプチャします。ワークロードとシステム構成によって、アルゴリズムごとにパフォーマンス特性が大きく異なる可能性があるため、この情報はパフォーマンスの分析とチューニングに役立ちます。

    CoMMA は、パフォーマンスの低下やエラーのトラブルシューティングにも役立ちます。TCP、RDMA、スイッチ ファブリックなどの下位レベルのトランスポート層で発生したエラーを、特定の NCCL コレクティブと開始ノードまでトレースします。ハートビート テレメトリー信号が応答を停止したことを認識し、応答しないワークロードの潜在的な原因を追跡できます。

  • 低オーバーヘッドのトレース: CoMMA は、アクティブな NCCL テレメトリー収集時に最小限のコンピューティング リソースを使用するため、大規模言語モデル(LLM)のトレーニングなど、パフォーマンスに敏感で長時間実行される機械学習(ML)ワークロードに最適です。

  • NCCL テレメトリーのスコープを拡大する: CoMMA は NCCL プロファイラ プラグイン API を使用します。この API は、トランスポート ベースのプラグインと比較して、より広範な NCCL テレメトリーを収集します。トランスポート ベースのプラグインは、主に、ネットワーク ハードウェアやネットワーク プロトコルを介したデータ転送など、基盤となるネットワーク トランスポートに関するテレメトリーを収集します。プロファイラ プラグインは、集合通信、プロキシ オペレーション、データ転送のタイミングなど、NCCL の通信オペレーションのテレメトリーを収集します。

CoMMA の仕組みを理解する

アプリケーションの実行時に、NCCL は LD_LIBRARY_PATH 環境変数で指定された場所にインストールされている CoMMA ライブラリを自動的に読み込みます。CoMMA は NCCL テレメトリーを収集し、他の Google サービスで使用できるようにします。必要に応じて、このデータをローカル ファイル システムにエクスポートすることもできます。

次のステップ