計算性能のプロファイリングと最適化 - Amazon SageMaker AI

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

計算性能のプロファイリングと最適化

サイズが急速に拡大する最先端の深層学習モデルをトレーニングする場合、そのようなモデルのトレーニングジョブが大規模な GPU クラスターにスケーリングされ、勾配降下プロセスを繰り返すたびに何十億、何兆もの操作と通信が発生することによる、計算パフォーマンスの問題を特定することが課題になります。

SageMaker AI は、AWS クラウドコンピューティングリソース上でトレーニングジョブを実行することで発生するこのような複雑な計算問題を可視化して診断するためのプロファイリングツールを提供しています。SageMaker AI には、Amazon SageMaker Profiler と、Amazon SageMaker Studio Classic のリソース使用率モニターの 2 つのプロファイリングオプションがあります。次の 2 つの機能の紹介を参照してインサイトをすばやく得て、ニーズに応じてどちらを使用するかを学習します。

Amazon SageMaker Profiler

Amazon SageMaker Profiler は SageMaker AI のプロファイリング機能です。これを使用すると、深層学習モデルのトレーニング中にプロビジョニングされたコンピューティングリソースを詳細に分析し、オペレーションレベルの詳細を可視化できます。SageMaker Profiler は、PyTorch または TensorFlow のトレーニングスクリプト全体に注釈を追加し、SageMaker Profiler をアクティブ化するための Python モジュールを提供します。SageMaker Python SDK および AWS 深層学習コンテナからモジュールにアクセスできます。

SageMaker Profiler を使用すると、CPU と GPU の使用状況、GPU でのカーネル実行、CPU でのカーネル起動、同期操作、CPU と GPU 間のメモリ操作、カーネル起動と対応する実行の間のレイテンシー、CPU と GPU 間のデータ転送など、CPU と GPU のすべてのアクティビティを追跡できます。

SageMaker Profiler には、GPU と CPU 間のイベントの時間関係を追跡して把握するためのプロファイル、プロファイルされたイベントの統計サマリー、およびトレーニングジョブのタイムラインを可視化するユーザーインターフェイス (UI) も用意されています。

SageMaker Profiler の詳細については、「Amazon SageMaker Profiler」を参照してください。

Amazon SageMaker Studio Classic での AWS コンピューティングリソースのモニタリング

SageMaker AI はリソース使用率を高レベルで監視するための Studio Classic のユーザーインターフェイスも提供しますが、SageMaker AI から CloudWatch に収集されるデフォルトの使用状況メトリクスよりもきめ細かく監視できます。

SageMaker Python SDK を使用して SageMaker AI で実行するトレーニングジョブについて、SageMaker AI は CPU 使用率、GPU 使用率、GPU メモリ使用率、ネットワーク、I/O 待機時間などの基本的なリソース使用率メトリクスのプロファイリングを開始します。これらのリソース使用率のメトリクスは 500 ミリ秒ごとに収集されます。

1 秒間隔でメトリクスを収集する Amazon CloudWatch メトリクスと比較して、リソース使用状況メトリクスを SageMaker AI のモニタリング機能では 100 ミリ秒 (0.1 秒) 間隔まで細かく把握できるため、オペレーションやステップのレベルでメトリクスを詳しく調べることができます。

トレーニングジョブのリソース利用メトリクスを監視するダッシュボードにアクセスするには、「SageMaker AI Debugger UI in SageMaker Studio Experiments」を参照してください。