このドキュメントでは、クラスタ ヘルス スキャナ(CHS)ツールを使用して GPU クラスタの問題をテストする方法について説明します。Cluster Director で作成したクラスタをテストする場合は、代わりにクラスタの健全性をモニタリングするをご覧ください。
CHS ツールは GPU クラスタの健全性をチェックし、テストを実行して、クラスタでワークロードを実行する準備ができていることを確認します。CHS は、事前対応型のヘルスチェックを実行するために使用することも、ワークロードで問題が発生したときに診断ツールとして使用することもできます。クラスタの構成を確認するだけでなく、次のテストを実施することもできます。
- NCCL チェック: NVIDIA Collective Communications Library(NCCL)を使用して、GPU 間のネットワーク通信を検証します。
- GPU チェック: NVIDIA の Data Center GPU Manager(DCGM)ツールを使用して、個々の GPU の健全性をチェックします。
- Neper チェック: Neper ツールを使用して、クラスタ内のネットワーク パフォーマンスを評価します。
- Straggler 検出: LLM トレーニング ワークロード パイプラインの並列処理中に見られるパターンに酷似したノード間のネットワーク トラフィック パターンを実行します。詳しくは、ストラグラー検出をご覧ください。
- Tinymax チェック: オープンソースの LLM フレームワークである Maxtext を使用して、クラスタ内の ML トレーニングを評価します。
CHS チェックとテストは、ジョブやワークロードを実行していないノードでのみ実行できます。ビジー状態のノードでチェックまたはテストを実行しようとすると、チェックまたはテストは失敗します。
CHS ツールは、クラスタの作成に使用したプロビジョニング モデルに関係なく、Google Kubernetes Engine(GKE)または Slurm によってオーケストレートされる GPU クラスタで使用できます。ただし、CHS は次のマシンタイプでのみ使用できます。
- A4
- A3 Ultra
- A3 Mega
- A3 High
以降のセクションでは、CHS をインストールする方法と、CHS を使用してヘルスチェックを実行し、構成を確認する方法について説明します。
CHS を取り付ける
CHS をインストールするには、次の手順を行います。
[Compute Engine] > [VM インスタンス] ページに移動します。
ログインノードを見つけます。パターン
DEPLOYMENT_NAME+login-001の名前が付いている場合があります。ログインノードの [接続] 列で、[SSH] をクリックします。
次のコマンドを使用して、リポジトリのクローンを作成し、リポジトリのルート ディレクトリに移動します。
git clone https://github.com/GoogleCloudPlatform/cluster-health-scanner && cd cluster-health-scanner
次のコマンドを使用して、Google Cloud CLI の依存関係をインストールします。
pip3 install -r cli/requirements.txt
省略可:
configcheckコマンドで、マシンごとに再認証することなくクラスタから構成値を取得できるようにするには、次のコマンドを使用して、Google Cloud CLI SSH 認証鍵をローカル SSH エージェントに追加します。ssh-add ~/.ssh/google_compute_engine
次のコマンドを使用して、
cluster_diag.pyのエイリアスcluster_diagを追加します。alias cluster_diag="python3 cli/cluster_diag.py"
ヘルスチェックを実行する
CHS をインストールしたら、次の手順で GPU クラスタの健全性を確認します。
[Compute Engine] > [VM インスタンス] ページに移動します。
ログインノードを見つけます。パターン
DEPLOYMENT_NAME+login-001の名前が付いている場合があります。ログインノードの [接続] 列で、[SSH] をクリックします。
リポジトリのルート ディレクトリにいることを確認します。
次のコマンドを使用して、クラスタの現在のステータスを確認します。
cluster_diag -o ORCHESTRATOR healthscan GPU_TYPE status
次のように置き換えます。
ORCHESTRATOR: 使用しているオーケストレーターに応じて、gkeまたはslurm。GPU_TYPE: 使用している GPU マシンタイプ。次のいずれかの値になります。a4-highgpu-8ga3-ultragpu-8ga3-megagpu-8ga3-highgpu-8ga3-highgpu-4ga3-highgpu-2ga3-highgpu-1g
次のコマンドを使用して、クラスタ内の個々の GPU の状態を確認します。
cluster_diag -o ORCHESTRATOR healthscan GPU_TYPE gpu
次のように置き換えます。
ORCHESTRATOR: 使用しているオーケストレーターに応じて、gkeまたはslurm。GPU_TYPE: 使用している GPU マシンタイプ。次のいずれかの値になります。a4-highgpu-8ga3-ultragpu-8ga3-megagpu-8ga3-highgpu-8ga3-highgpu-4ga3-highgpu-2ga3-highgpu-1g
省略可: 次のテンプレート コマンドを使用して、追加のチェックを実行します。利用できないノードをスキップするには、
--run_only_on_available_nodesフラグを追加することを検討してください。cluster_diag -o ORCHESTRATOR healthscan GPU_TYPE CHECK
次のように置き換えます。
ORCHESTRATOR: 使用しているオーケストレーターに応じて、gkeまたはslurm。GPU_TYPE: 使用している GPU マシンタイプ。次のいずれかの値になります。a4-highgpu-8ga3-ultragpu-8ga3-megagpu-8ga3-highgpu-8ga3-highgpu-4ga3-highgpu-2ga3-highgpu-1g
CHECK: 実行するチェック。次のいずれかを使用します。- ステータス
- nccl
- GPU
- straggler
- ネーパ
- tinymax
構成を確認する
CHS をインストールしたら、次の手順でクラスタの構成を確認します。
- リポジトリのルート ディレクトリにいることを確認します。
次のコマンドを使用して、クラスタの構成を確認します。デフォルトでは、このコマンドは差分を生成します。差分をスキップして構成のみを出力するには、
--no-diffフラグを追加します。cluster_diag -o ORCHESTRATOR configcheck GPU_TYPE
次のように置き換えます。
ORCHESTRATOR: 使用しているオーケストレーターに応じて、gkeまたはslurm。GPU_TYPE: 使用している GPU マシンタイプ。次のいずれかの値になります。a4-highgpu-8ga3-ultragpu-8ga3-megagpu-8ga3-highgpu-8ga3-highgpu-4ga3-highgpu-2ga3-highgpu-1g
次のスクリーンショットは、構成チェックが成功した結果を示しています。