Memory Profile Tool

Memory Profile を使用すると、アクセラレータのメモリ使用量の経時的な変化を可視化できます。

サポートされているプラットフォーム

TPU: サポート対象

GPU: サポート対象

メモリ プロファイル ツールを使用する

メモリ プロファイルには次のコンポーネントがあります。

  • ページ上部のメモリ ID セレクタを使用すると、プロファイリング対象のホストに接続されている可能性のあるさまざまなアクセラレータのいずれかに接続されている高帯域幅メモリ(HBM)に注目できます。また、特定のケースではホストメモリにも注目できます。
  • [メモリ タイムライン グラフ] と [メモリ プロファイルの概要] には、プロファイリング セッション中のメモリ割り当て、割り当て解除、使用量に関する概要情報がキャプチャされます。これには、スタックとヒープごとの内訳や、断片化の影響が含まれます。
  • メモリの内訳の表には、メモリ使用量に最も貢献しているフレームワーク レベルのオペレーションに関する情報が表示されます。また、シェイプやデータ型などのオペレーションごとの詳細情報も含まれます(コンパイラが XProf にこの情報を提供している場合)。この表には、メモリ不足(OOM)状況のデバッグに役立つように、プロファイリング ウィンドウ内のピーク使用量の時点での詳細が表示されます。
  • 割り当てと割り当て解除は、HBM メモリ空間全体を所有する XLA のランタイム アロケータによって管理され(プロファイルに追加されます)。
  • 通常、メモリ プロファイルは TPU ワークロードよりも GPU プロファイリングに適しています。通常、TPU 実行モデルでは、モデルのトレーニングや推論中ではなく、XLA コンパイラによって事前に大量の割り当てが行われます。そのため、割り当てグラフは平坦な水平線のように見えることがよくあります。割り当てはすべてプロファイルの最初に発生した可能性があり(実行の時点でプロファイラがアクティブだった場合)、確認しづらい場合があります。
  • メモリ プロファイルの概要とメモリ タイムライン グラフのフラグメンテーション指標(パーセンテージ)は、メモリ フラグメンテーションの問題を特定するのに役立ちます。フラグメンテーション値が高い場合、空きメモリが合計で十分にあるにもかかわらず、連続していないため、大規模な割り当てリクエストが失敗する可能性があります。

このツールとメモリ ビューア ツールの主な違いは次のとおりです。

  • メモリビューアは完全に静的で、プログラム順序に重点を置いています。メモリ プロファイルは、プロファイリング期間中の時間の経過に伴う動的ビューを提供します。
  • Memory Viewer は、XLA モジュールごとにメモリ割り当てを可視化します。複数の XLA モジュールで構成されるワークロードの場合、Memory Profile はメモリのグローバルビューを提供します。