# Rooflineモデル
## 定義
Roofline モデル(屋根線モデル)は、ハードウェアの性能限界を可視化する性能分析フレームワークである。縦軸に演算性能(FLOP/s)、横軸に演算強度(Arithmetic Intensity; FLOP/Byte)を取ったグラフ上に、ピーク演算性能と帯域幅上限という 2 つの「屋根線」を引く。プログラムの実測点がこのグラフのどこに位置するかで、「演算バウンド(compute-bound)」か「帯域幅バウンド(memory-bound)」かを判定し、最適化の方向性を示す。
XProf では高レベルの [[MLプロファイリング]] ツールとして Roofline 分析を提供し、プログラムがハードウェアの性能限界のどの部分に当たっているかを可視化する。([[@2026__MLSys2026__XProf - An Open, Scalable and Extensible Profiling System for the Modern ML Stack]])
## 演算強度と屋根線
演算強度(Arithmetic Intensity, AI) = 演算量(FLOP) / メモリアクセス量(Byte)
2 つの屋根線:
- **演算の屋根(Compute Roof)**: ピーク演算性能 P_peak [FLOP/s]
- **帯域幅の屋根(Memory Bandwidth Roof)**: ピーク帯域幅 B_peak × AI [FLOP/s]
実測性能は必ずこの 2 線の最小値を上回れない。演算強度が低いとメモリ帯域幅に律速され、高いと演算器が律速される。
## MLワークロードへの適用
現代の ML モデルでは:
- **演算バウンド**: 大きな行列積(GEMMなど)。演算強度が高く、計算器の利用率を上げることが最適化の鍵。
- **帯域幅バウンド**: 活性化関数・要素積演算・アテンション機構など。メモリアクセスを減らす(フュージョン等)ことが効果的。
- **LLM の注意機構**: シーケンス長に対して IO コストが二乗で増加し、典型的に帯域幅バウンドになりやすい。
## 横断的知見
- (単一ソース。2 番目のソース ingest 後に横断的知見を追記予定)
## 未解決の問い
- HBM(High Bandwidth Memory)や HBM3/HBM4 など次世代メモリの登場で帯域幅の屋根が大幅に上昇した結果、従来は帯域幅バウンドだったオペレーションが演算バウンドに変わるケースは増えているか。
- フラッシュアテンション(FlashAttention)は IO 効率を改善することで Roofline 上の実測点を帯域幅の屋根に近づけるが、その効果は Roofline 分析ツールでどう可視化されるか。
- マルチチップ・マルチノード環境での Roofline 分析は、通信コストをどう組み込むか。演算強度の分母にネットワーク転送バイト数を含める拡張 Roofline は標準化されているか。
- XProf の Roofline 分析はリアルタイムで更新されるか、それとも事後解析のみか。オンライン最適化ループへの組み込みは可能か。
## 関連
- ソース: [[@2026__MLSys2026__XProf - An Open, Scalable and Extensible Profiling System for the Modern ML Stack]]
- 概念: [[MLプロファイリング]] / [[GPU観測性]]
- エンティティ: [[OpenXLA]] / [[Google]]
- 関連 MOC: [[Systems for ML - MOC]]
## 出典
- [[@2026__MLSys2026__XProf - An Open, Scalable and Extensible Profiling System for the Modern ML Stack]](slides §6 多段可視化表の高レベル行に Roofline Model が記載。MLSys 2026 発表ページのアブストラクト要約にも言及)