# MLプロファイリング
## 定義
MLプロファイリング(ML Performance Profiling)は、機械学習ワークロードの実行性能を計測・可視化し、最適化の手がかりを提供する手法・ツール群の総称である。ホスト(CPU)側とデバイス(GPU/TPU 等アクセラレーター)側の両方を対象とし、フレームワーク層からコンパイラ中間表現(MLIR/HLO)・ハードウェアカウンターに至るまでの多段抽象を横断的に観測する。([[@2026__MLSys2026__XProf - An Open, Scalable and Extensible Profiling System for the Modern ML Stack]])
現代の ML スタック(数千のアクセラレーター・CPU・ネットワークファブリックを含む AI ハイパーコンピュータ)向けのプロファイリングシステムは、一般的な分散システム観測とは異なる 4 つの固有要件を満たす必要がある(XProf 論文 §2.2):
1. **Relevance and Collection**: 分散環境全体で主要業績評価指標(KPI)と利用率メトリクスを定義・収集する
2. **Data Strategy**: データ量(トレース・テレメトリ)と処理コストのバランスを取り、収集データすべてが有用であるようにする
3. **Scalability and Sourcing**: 本質的にスケーラブルかつ低オーバーヘッドであり、異種データソースをワークロードに干渉せず一貫したビューへ集約する
4. **Insight Generation**: モデル研究者・コンパイラ/フレームワークエンジニア・ハードウェアアーキテクトなど多様なユーザーロールの必要に応じてインサイトを調整する
([[@2026__MLSys2026__XProf - An Open, Scalable and Extensible Profiling System for the Modern ML Stack]] §2.2)
## 主要ツール・手法
### ホスト(CPU)側ツール
- **入力パイプライン分析**: データ前処理のボトルネック特定
- **高レベルオペレーショントレーシング**: フレームワーク API 呼び出しの可視化
- **TraceMe 計装**: 開発者定義のロックフリー・アトミック計装点
### デバイス(アクセラレーター)側ツール
- **[[Rooflineモデル]]**: ハードウェアの演算上限と帯域幅上限を比較し、計算バウンドか帯域幅バウンドかを判定
- **HLO Op プロファイル**: XLA コンパイル済みオペレーション単位の性能計測
- **メモリビューアー**: 動的メモリ使用量と最大メモリ消費の可視化
- **パフォーマンスカウンター**: ハードウェアイベントカウンターの直接計測
### クロスレイヤーツール
- **トレースビューアー**: ホスト・デバイス・デバイス間通信を時系列タイムラインで表示
- **グラフビューアー**: XLA HLO グラフ構造の可視化
## オーバーヘッドと観測者効果
ML プロファイリングの核心課題は観測者効果(Observer Effect)の最小化にある。XProf の TraceMe は以下の設計でホスト側計装オーバーヘッドを抑える:
- **遅延相関(Deferred Correlation / "connect-the-dots later")**: 実行中はスレッド/コンポーネントのペアに固有な小さなローカル識別子だけを生成・伝播し、リクエスト単位のエンドツーエンドトレースは後処理フェーズで再構築する
- **ロックフリー・アトミック設計**: compare-and-swap によるアクティベーションチェック、スレッドローカルストレージ、固定スロットへのアトミックな書き込みで計装点の競合を排除
- **キロバイトオーダーのトレース量**: 開発者定義の関心領域のみを注釈し、1 秒あたり数キロバイト(KB/s)程度に抑制
ただし、この低オーバーヘッド性はハードウェアによって非対称である。論文の実測(TPU V5p/Ironwood と NVIDIA H100 上での Llama 3.1・Mixtral 学習、Gemma3・Gemini 2.5 Prefill/Decode 推論)によれば、**TPU では 0.3% 未満**(3e-06%〜0.28%)のオーバーヘッドを一貫して達成する一方、**GPU(H100)では 0.13%〜2.30%** と TPU より一桁近く高い。これは GPU プロファイラが TPU プロファイラと異なりバイナリへコールバックを計装して `ACTIVITY`・`CONCURRENT_KERNEL`・`MEMCPY`・`MEMSET`・`OVERHEAD` の全カテゴリを監視する方式を取るためで、数百マイクロ秒〜数ミリ秒という短い間隔で実行されるカーネルに対する高頻度のコールバックが CPU アクティビティを押し上げる。論文の Abstract は "minimal workload overhead (<1%)" と要約するが、GPU 側の複数ワークロードはこの 1% を上回っており、要約的な主張と実測値の間には温度差がある。
([[@2026__MLSys2026__XProf - An Open, Scalable and Extensible Profiling System for the Modern ML Stack]] §4.1, §6.1)
## 横断的知見
- (単一ソース。2 番目のソース ingest 後に横断的知見を追記予定)
## 未解決の問い
- ML プロファイリングと一般的な分散システム観測(Dapper/OpenTelemetry 系トレーシング)はどこまで統合できるか。ML トレーニングのステップ単位イベントとリクエスト単位のマイクロサービストレースを同一パイプラインで扱う試みはあるか。
- Roofline Model はフラッシュメモリ・HBM(High Bandwidth Memory)など新世代メモリアーキテクチャにどう適応するか。アテンション計算の IO バウンドな特性がモデルの適用範囲を変えているか。
- LLM 学習・推論特有のプロファイリング課題は何か。バッチ処理・動的シェイプ・KV キャッシュのようなパターンが Roofline モデルの静的解析前提をどう崩すか。
- PJRT C API(Profiler C API 拡張)を採用したサードパーティアクセラレーター(Amazon Trainium・Intel GPU・AMD GPU)は、TPU/NVIDIA GPU と同水準の低オーバーヘッド(0.3% 未満)を達成できているか。論文はプラグインの存在は述べるが、これらデバイス上でのオーバーヘッド実測値は報告していない。
- 電力・熱の計測を ML プロファイリングに統合する取り組みはどこまで進んでいるか。XProf のケーススタディ(熱変動 10°C 削減)のような最適化事例は再現可能か。
## 関連
- ソース: [[@2026__MLSys2026__XProf - An Open, Scalable and Extensible Profiling System for the Modern ML Stack]]
- 概念: [[Rooflineモデル]] / [[分散トレーシング]] / [[テレメトリ]] / [[GPU観測性]]
- エンティティ: [[OpenXLA]] / [[Robert Hundt]] / [[Google]]
- 関連 MOC: [[Systems for ML - MOC]]
## 出典
- [[@2026__MLSys2026__XProf - An Open, Scalable and Extensible Profiling System for the Modern ML Stack]](論文 §2 背景・スケーリング要件、§3 プロファイリング・ツール設計、§4 システムアーキテクチャ・TraceMe・GTC、§5 拡張可能アーキテクチャ、§6 オーバーヘッド評価・ケーススタディ)