概要

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

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

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

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

これらのイメージのいずれかを使用しており、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 サービスが使用できるようにします。必要に応じて、このデータをローカル ファイル システムにエクスポートすることもできます。

次のステップ