概要

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

NCCL バージョン 2.23 以降では、NVIDIA は NCCL プロファイラ プラグイン API を導入しました。 これにより、デベロッパーは関数コールバックを登録して、 NCCL コレクティブ オペレーション中にテレメトリーを収集できます。Google は、NVIDIA の NCCL プロファイラ プラグイン API を使用して サービス用の NCCL テレメトリーを収集するライブラリである Collective Communication Analyzer(CoMMA)を提供しています。 Google Cloud 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) トレーニングなど)に最適です。

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

CoMMA の仕組みを理解する

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

次のステップ