デバッガープロファイリングレポートのチュートリアル - Amazon SageMaker

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

デバッガープロファイリングレポートのチュートリアル

このセクションでは、デバッガープロファイリングレポートをセクション別に具体的に説明します。プロファイリングレポートは、モニタリングおよびプロファイリングのための組み込みルールに基づいて生成されます。レポートには、問題を見つけたルールについてのみ結果プロットが表示されます。

重要

レポートでは、プロットや推奨事項は情報提供を目的として提供されており、決定的なものではありません。お客様は情報を独自に評価する責任を負うものとします。

トレーニングジョブの要約

レポートの冒頭に、デバッガーはトレーニングジョブの要約を記載します。このセクションには、さまざまなトレーニングフェーズの期間とタイムスタンプの概要が記載されています。

デバッガープロファイリングレポートの例

要約テーブルには次の情報が含まれます。

  • start_time - トレーニングジョブが開始された正確な時刻。

  • end_time - トレーニングジョブが終了した正確な時刻。

  • job_duration_in_seconds - start_time から end_time までの合計トレーニング時間。

  • training_loop_start - 最初のエポックの最初のステップが開始された正確な時刻。

  • training_loop_end - 最後のエポックの最後のステップが終了した正確な時刻。

  • training_loop_duration_in_seconds - トレーニングループの開始時刻とトレーニングループの終了時刻の間の合計時間。

  • initialization_in_seconds - トレーニングジョブの初期化に費やされた時間。初期化フェーズは、start_time から training_loop_start までの期間をカバーします。初期化時間は、トレーニングスクリプトのコンパイル、トレーニングスクリプトの開始、モデルの作成と初期化、EC2インスタンスの開始、トレーニングデータのダウンロードに費やされます。

  • finalization_in_seconds – モデルトレーニングの終了、モデルアーティファクトの更新、EC2インスタンスの終了など、トレーニングジョブの最終処理に費やされた時間。ファイナライズフェーズは、training_loop_end から end_time までの時間をカバーします。

  • initialization (%) - 合計の job_duration_in_seconds に対する初期化に費やされた時間の割合。

  • training loop (%) - 合計の job_duration_in_seconds に対するトレーニングループに費やされた時間の割合。

  • finalization (%) - 合計の job_duration_in_seconds に対するファイナライズに費やされた時間の割合。

システム使用統計

このセクションでは、システム使用率統計の概要を確認できます。

デバッガープロファイリングレポートの例

デバッガープロファイリングレポートには次の情報が含まれます。

  • node - ノードの名前をリストします。マルチノード (複数のEC2インスタンス) で分散トレーニングを使用する場合、ノード名は の形式になりますalgo-n

  • metric – デバッガーによって収集されたシステムメトリクス: CPU、GPU、CPUメモリ、GPUメモリ、I/O、およびネットワークメトリクス。

  • unit – システムメトリクスの単位。

  • max - 各システムメトリクスの最大値。

  • p99 - 各システム使用率の 99 番目のパーセンタイル。

  • p95 - 各システム使用率の 95 番目のパーセンタイル。

  • p50 - 各システム使用率の 50 番目のパーセンタイル (中央値)。

  • 最小 - 各システムメトリクスの最小値。

フレームワークメトリクスの要約

このセクションでは、次の円グラフに、 CPUsおよび のフレームワークオペレーションの内訳を示しますGPUs。

デバッガープロファイリングレポートの例

各円グラフは、収集されたフレームワークメトリクスを次のようにさまざまな側面で分析します。

  • TRAIN/EVAL フェーズとその他の比率 — さまざまなトレーニングフェーズに費やされた時間の比率を示します。

  • フォワードパスとバックパスの比率 - トレーニングループでフォワードパスとバックパスに費やされた時間の比率を示します。

  • CPU/GPU 演算子の比率 – 畳み込み演算子などGPU、 CPUまたは で実行されている演算子に費やされた時間の比率を示します。

  • フレームワークで記録された一般的なメトリクス - データロード、フォワードパス、バックワードパスなど、主要なフレームワークメトリクスに費やされた時間の比率を示します。

概要: CPU オペレーター

このセクションでは、CPU演算子の詳細について説明します。この表は、最も頻繁に呼び出されるCPU演算子に費やされた時間の割合と絶対累積時間を示しています。

デバッガープロファイリングレポートの例

概要: GPU演算子

このセクションでは、GPU演算子の詳細について説明します。この表は、最も頻繁に呼び出されるGPU演算子に費やされた時間の割合と絶対累積時間を示しています。

デバッガープロファイリングレポートの例

ルールの概要

このセクションにはデバッガーが、ルールの評価結果、分析、ルールの説明、提案のすべてをまとめます。

デバッガープロファイリングレポートの例

トレーニングループの分析 - ステップ期間

このセクションでは、各ノードの各GPUコアのステップ期間の詳細な統計情報を確認できます。デバッガーは、ステップ期間の平均値、最大値、p99、p95、p50、最小値を評価し、ステップの外れ値を評価します。次のヒストグラムは、さまざまなワーカーノードと でキャプチャされたステップ期間を示していますGPUs。右側の凡例を選択すると、各ワーカーのヒストグラムを有効または無効にできます。ステップ期間外れの原因GPUとなっている特定の があるかどうかを確認できます。

デバッガープロファイリングレポートの例

GPU 使用率分析

このセクションでは、L owGPUUtilization ルールに基づくGPUコア使用率に関する詳細な統計を示します。また、GPU使用率統計、平均値、p95、p5 を要約して、トレーニングジョブが を十分活用していないかどうかを判断しますGPUs。

バッチサイズ

このセクションでは、総CPU使用率、個々のGPU使用率、GPUメモリフットプリントの詳細な統計を示します。 BatchSize ルールは、 をより有効に活用するためにバッチサイズを変更する必要があるかどうかを決定しますGPUs。バッチサイズが小さすぎて使用率が低くなったり、大きすぎて使用率が過大になりメモリ不足に陥ったりしていないかどうかをチェックできます。プロットにおきボックスは、中央値 (p50) から p25 および p75 までのパーセンタイル範囲 (それぞれ濃い紫と明るい黄色で塗りつぶされている) を示し、エラーバーは下限の 5 パーセンタイルと上限の 95 パーセンタイルを示します。

デバッガープロファイリングレポートの例

CPU ボトルネック

このセクションでは、CPUBottleneckルールがトレーニングジョブから検出したCPUボトルネックをドリルダウンできます。このルールは、CPU使用率が cpu_threshold (デフォルトでは 90%) を超えているかどうか、およびGPU使用率が gpu_threshold (デフォルトでは 10%) を下回るかどうかを確認します。

デバッガープロファイリングレポートの例

円グラフには次の情報が表示されます。

  • CPU ボトルネックによるGPU使用量の低さ — GPU使用率がしきい値を上回っているものと下回っているものとCPU、ボトルネック基準に一致するものの間のデータポイントの比率を示します。

  • TRAIN/EVAL フェーズとその他の比率 — さまざまなトレーニングフェーズに費やされた時間の比率を示します。

  • フォワードパスとバックパスの比率 - トレーニングループでフォワードパスとバックパスに費やされた時間の比率を示します。

  • CPU/GPU 演算子の比率 – データローダープロセスやフォワードパス演算子GPUsやバックワードパス演算子など、Python 演算子で費やCPUsされた時間の割合を表示します。

  • フレームワークに記録された一般的なメトリクス - 主要なフレームワークメトリクスと、メトリクスに費やされた時間の比率を示します。

I/O のボトルネック

このセクションには、I/O のボトルネックの要約が示されます。このルールは、I/O 待機時間とGPU使用率を評価し、I/O リクエストに費やされた時間が合計トレーニング時間のしきい値の割合を超えているかどうかをモニタリングします。これは、 GPUsがストレージからデータを受信するのを待っている I/O ボトルネックを示している可能性があります。

マルチGPUトレーニングでのロードバランシング

このセクションでは、 全体のワークロードバランスの問題を特定できますGPUs。

デバッガープロファイリングレポートの例

GPU メモリ分析

このセクションでは、GPUMemoryIncreaseルールによって収集されたGPUメモリ使用率を分析できます。プロットにおきボックスは、中央値 (p50) から p25 および p75 までのパーセンタイル範囲 (それぞれ濃い紫と明るい黄色で塗りつぶされている) を示し、エラーバーは下限の 5 パーセンタイルと上限の 95 パーセンタイルを示します。

デバッガープロファイリングレポートの例