GPUクラスタの稼働前検証に、実際の分散ワークロードを使うKubernetes制御器が加わった。NVIDIA Cluster Readiness Engineは通信や学習の負荷をかけ、測定結果と障害をノード単位で記録する。
検証カテゴリから実行ジョブまでを階層化
NVIDIAが公開したGPUクラスタ検証ソフトウェアのNVIDIA Cluster Readiness Engine(NVCRE)は、本番ワークロードを載せる前に分散ワークロードを実行するオープンソースのKubernetes制御器だ。GPUやネットワークの状態を個別に確認するだけでなく、複数ノードを使う処理の結果を検証対象にする。
検証の入口となるCertificationには、対象ノードと実行するカテゴリを指定する。CertificationはカテゴリごとにWorkflowを作り、各WorkflowがJobを起動する。Jobの結果はWorkflowを経てCertificationへ戻り、カテゴリ別の結果としてまとまる。
通信試験と学習処理を対象環境に合わせて実行
組み込みの検証項目には、GPU間通信を調べるNCCLの5種類の試験、GPU診断ツールDCGMのレベル4診断、AI学習用ソフトウェアNeMoによるNemotron 5モデルの事前学習がある。通信、診断、学習という異なる処理をカテゴリとして選択できる。
選ばれた処理を対象ノードで実行するため、NVCREはGPUアーキテクチャとクラウド環境を検出する。その情報からノード当たりのGPU数、NCCLの実行環境、環境に応じたネットワーク設定を導出する。
ログの測定値と合否条件を結び付ける
実行されたワークロードのログから、NVCREは通信帯域幅や学習処理に関する測定値を取得する。失敗したノードには理由を付けて記録するため、結果をクラスタ全体の合否だけで扱わずに済む。
測定値の合否条件には、Common Expression Language(CEL)の式を使う。指定した条件に測定値が届かなければ、ワークロード自体が完了していても検証失敗として記録する。処理が終了したかどうかと、求める測定結果を得たかどうかを分けて判定する仕組みだ。
試験規模を変えて不調なノードを探す
同じ通信試験でも、対象を単一ノード、ラック内、全ノードのどこまで広げるかで調べる経路が変わる。NVCREはノードごとの試験に加え、トポロジーで分けたラック内の試験と、全ノードをまとめた試験を構成できる。
広い範囲で失敗した場合、診断モードはノード群をトポロジーに沿って分割し、試験を繰り返す。失敗した群をさらに絞ることで、群の全ノードを同じ疑いで扱う代わりに、原因に関係する可能性のあるノードを探す。
単発の試験とノード管理の役割を分ける
組み込みの検証カテゴリを使わずに一つのワークロードを実行する場合は、WorkloadRunを入口にできる。このリソースは指定されたワークロードから直接Workflowを作り、単発の通信、学習、独自ワークロードを実行する。
NVCREが担うのは、試験の実行と測定結果・失敗理由の記録までだ。検証で問題が見つかっても、対象ノードをスケジュール対象から外すcordonや、配置を制限するtaintは設定しない。