Cloud Native Application Performance Optimizer (CNP) は、クラウドネイティブアプリケーションのパフォーマンスを評価、分析、および最適化するために使用されるオールインワンプラットフォームです。 CNPは、クラウドアプリケーションのパフォーマンスを向上させ、Lingjunクラスターのトレーニングパフォーマンスを自動的かつ効率的に評価し、パフォーマンスの最適化に関する提案を提供することを目的としています。 このトピックでは、CNPを使用してパフォーマンス評価を実行する方法について説明します。
CNPプラットフォームに移動
Intelligent Computing Lingjunコンソールにログインします。
左側のナビゲーションウィンドウで、[パフォーマンス評価]> [CNPパフォーマンス評価] を選択します。
CNPプラットフォームで、パフォーマンス評価を開始し、評価結果を表示します。
ページの左下隅にある [Return to the Lingjun] コンソールをクリックして、Intelligent Computing Lingjunコンソールに戻ります。
パフォーマンス評価の開始
手順1: クラスターの選択
ようこそページで [評価の開始] をクリックするか、パフォーマンス評価ページで [評価の開始] をクリックして、[クラスターの選択] ステップに進みます。
パフォーマンスを評価するクラスターを選択します。
CNPは, DLCに接続する. 必要なパラメーターを設定したら、[権限付与とテスト接続] をクリックします。 接続テストに合格すると、接続が成功したことを通知するメッセージが返されます。 それ以外の場合、接続失敗の原因が返されます。 次の表に、一般的な障害の原因と解決策を示します。
失敗の原因 | 推奨ソリューション |
接続がタイムアウトします。 | CNPにアクセスするためのホワイトリストを有効にして、もう一度お試しください。 |
指定された情報は無効です。 | AccessID、AccessKey、Workspace、およびEndpointパラメーターに指定した値を確認します。 無効な値を変更して、もう一度お試しください。 |
セキュリティトークンサービス (STS) トークンの取得に失敗したことを示すD3001エラーコードが返されます。 | |
D3002エラーコードが返されます。これは、CNPのサービスにリンクされたロールの作成に失敗したことを示します。 | |
D3003エラーコードが返されます。これは、Application Real-Time Monitoring Service (ARMS) インスタンスの作成に失敗したことを示します。 | |
ARMSがアクティブ化されていないことを示すD3004エラーコードが返されます。 | ARMSを有効にします。 |
D3005エラーコードが返されます。これは、ARMS情報の取得に失敗したことを示します。 | |
D3006エラーコードが返されます。これは、現在のアカウントにCNPのサービスにリンクされたロールを作成する権限がないことを示しています。 | CNPのサービスにリンクされたロールを作成する権限をアカウントに付与します。 |
接続テストに合格したら、[次のステップ] をクリックして [テスト計画の選択] に進みます。
ステップ2: テスト計画の選択
テスト計画テンプレートの選択
デフォルトでは、システムは2つのテスト計画テンプレートを提供します。 ビジネスシナリオに基づいて、いずれかのテスト計画テンプレートを選択できます。
LLMベースのシナリオのテスト計画 | 画像認識シナリオのテスト計画 | |
テスト内容 | シングルGPUテスト: MatMul (行列演算子) 単一のマシンテスト: Bert-base AIモデルテスト: LLaMA-7B | シングルGPUテスト: MatMul (行列演算子) 単一のマシンテスト: Bert-base AIモデルテスト: Swinの変圧器および安定した拡散 |
テスト対象クラスターのスケール | シングルGPUテスト: デフォルトでは、テストはクラスターの最大スケールに基づいて実行されます。 シングルマシンテスト: デフォルトでは、テストはクラスターの最大スケールに基づいて実行されます。 AIモデルテスト: デフォルトでは、クラスターの最大スケールに基づいて、8 GPU、16 GPU、32 GPU、64 GPU、128 GPU、256 GPU、512 GPUの評価タスクが作成されます。 クラスターの最大スケールが100 GPUの場合、システムは8 GPU、16 GPU、32 GPU、および64 GPUに対してのみ評価タスクを作成します。 | シングルGPUテスト: デフォルトでは、テストはクラスターの最大スケールに基づいて実行されます。 シングルマシンテスト: デフォルトでは、テストはクラスターの最大スケールに基づいて実行されます。 AIモデルテスト: デフォルトでは、クラスターの最大スケールに基づいて、8 GPU、16 GPU、32 GPU、および64 GPUの評価タスクが作成されます。 クラスターの最大スケールが16 GPUの場合、システムは8 GPUと16 GPUに対してのみ評価タスクを作成します。 |
カスタムテスト計画の作成
システムが提供するテスト計画テンプレートがテスト要件を満たさない場合は、カスタムテスト計画を作成できます。
シングルGPUテスト: ノード数をカスタマイズできます。 デフォルトでは、このテストケースではMatMulが使用されます。
シングルマシンテスト: ノードの数をカスタマイズできます。 デフォルトでは、このテストケースではBert-baseが使用されます。
AIモデルテスト: クラスターに対して評価するAIモデルとGPUの数をカスタマイズできます。
次のAIモデルがサポートされています: LLaMA-7B、安定した拡散、Swin Transformer、Bertベース、およびUNet。
デフォルトでは、基本パラメータ設定が使用されます。 パラメーター設定は、テストの詳細ページで確認できます。
評価期間の見積もり
テスト計画を選択すると、テスト計画に含まれるテストコンテンツに基づいて、評価期間が自動的に推定されます。 評価期間は、ステップ1で選択したクラスターの最大スケールに基づいて推定されます。 クラスターの使用可能なスケールが最大スケールに達していない場合、実際の評価期間は推定期間よりも長くなります。
評価を開始する
ステップ1とステップ2が完了したら、[評価の開始] をクリックして評価を開始し、評価結果を待ちます。
評価の進行状況と結果の表示
テスト計画の作成後、[計画] タブでテスト計画のステータスと進行状況をリアルタイムで表示できます。 テスト計画を見つけ、[操作] 列の [詳細] をクリックして、テスト計画の詳細ページに移動し、各テストの進行状況を表示します。
単一GPUテスト
テストに合格しました。
テストされたGPUの中に疑わしい障害GPUまたは警告GPUが検出されない場合、単一のGPUテストに合格します。
障害の疑いのあるGPU: GPUをテストするタスクが失敗し、GPUに障害がある可能性があります。
GPUの警告: GPUのTFLOPSは、反復回数の5% を超えて通常のしきい値の範囲を超えています。
正常閾値範囲を計算するためのロジック: 各反復における全てのGPUの中央値TFLOPSをベースラインとして取り、ベースラインの103% 及び97% を4倍シグマ (4倍標準偏差) と比較する。 より大きい値は、正常閾値範囲の最大及び最小閾値として使用される。
テスト結果は異常です。
テスト対象のGPUの中に少なくとも1つの欠陥の疑いのあるGPUまたは警告GPUが検出された場合、単一GPUテストは異常な結果を返します。
評価タスクリストで、プラス (+) アイコンをクリックして、障害の疑いのあるGPUまたは警告GPUの詳細を表示できます。 検出された異常ノードをO&Mチームに報告して、さらにトラブルシューティングを行うことができます。 [操作] 列の [評価の詳細] をクリックして、評価タスクの結果を表示します。
単一の機械テスト
テストに合格しました。
テストされたノードの中に疑わしい故障ノードまたは警告ノードが検出されない場合、単一マシンテストに合格する。
障害の疑いのあるノード: ノード上のDLCジョブが失敗し、ノードに障害がある可能性があります。
警告ノード: ノードのスループットが、反復回数の5% を超える間、通常のしきい値の範囲を超えています。
正常閾値範囲を計算するためのロジック: 各反復における全てのノードのスループット中央値をベースラインとし、ベースラインの103% 及び97% を4倍シグマ (4倍標準偏差) と比較する。 より大きい値は、正常閾値範囲の最大及び最小閾値として使用される。
テスト結果は異常です。
テストされたノードの中に少なくとも1つの障害の疑いのあるノードまたは警告ノードが検出された場合、シングルマシンテストは異常結果を返します。
評価タスクリストで、プラス (+) アイコンをクリックして、障害の疑いのあるノードまたは警告ノードの詳細を表示できます。 検出された異常ノードをO&Mチームに報告して、さらにトラブルシューティングを行うことができます。 [操作] 列の [評価の詳細] をクリックして、評価タスクの結果を表示します。
AIモデルテスト
テストの進行状況
保留中: すべてのタスクを実行する準備が整いました。
完了: すべてのタスクが正常に実行、失敗、または停止しました。
Stopped: すべてのタスクが停止しました。
実行中: 一部のタスクは完了しており、一部のタスクは実行可能または実行中です。
評価タスク
現在のテスト計画のAIモデルテストに含まれているすべてのタスクを表示できます。 進行中のタスクを停止する場合は、[停止] をクリックします。 すべてのタスクを削除できます。
削除または失敗したタスクのデータは、パフォーマンスダッシュボードに収集されません。 タスクを削除するときは注意が必要です。
パフォーマンスダッシュボードでの評価結果の表示
テスト計画のパフォーマンスダッシュボードに移動
テスト計画が [完了] 状態の場合、[操作] 列の [パフォーマンスレポート] をクリックして、テスト計画の結果をパフォーマンスダッシュボードに表示できます。 パフォーマンスダッシュボードには、テスト計画のAIモデルテストで正常に実行された評価タスクが表示されます。
パフォーマンスダッシュボードに表示されるコンテンツ
テストモデルのスケーラビリティ
パフォーマンスダッシュボードには、各モデルの現在のテスト計画でテストされたGPUの数に基づくスループットの傾向が表示されます。これは、クラスター内のモデルのパフォーマンススケーラビリティを示しています。 結果は異なるモデル間で比較されません。
数式: スケーラビリティスコア=log2 (モデルスループット /最も低い仕様のモデルのスループット)
この例では、GPT3-175Bモデルは説明のためにのみ使用され、モックデータが処理される。
GPUの数 | スループット | スケーラビリティスコア | 理論的スケーラビリティスコア |
64 | 10 | ||
128 | 18 | log ː (18/10) | log.2 |
256 | 35 | log ː (35/10) | log4 |
512 | 69 | log ː (69/10) | log8 |
1,024 | 137 | log ː (137/10) | log16 |
注: パフォーマンススケーラビリティは、スケーラビリティスコアが理論上のスケーラビリティスコアに近い場合に優れています。
評価結果の詳細
評価結果の詳細では、現在のテスト計画でテストされているGPUの数に基づいて、各モデルのスループット、MFU、反復レイテンシなどのメトリックを表示できます。 y軸はGPUの数を示し、x軸はメトリック値を示します。