⏲️
a64fx PMU profiler report tool 作った.
fapp の a64fx PMU events 結果から CPU 性能解析 report 作るツール作った.
Claude クンにぜんぶやってもらった.

簡易ボトルネック解析機能つき.
背景
一応 Excel で profile レポートするのが提供されているけど,
Excel マクロ + Password protected マクロコードというおぞましいもので, 実務ではセキュリティ上あぶなくて使えないし, Excel 持っていないと使えない.
あとは実機でプロファイルしてそのまま ASCII なりで結果を見たい
とりあえず PMU events の説明は https://github.com/fujitsu/A64FX にあるので, Claude クンに計算式とか頑張って考えてもらった.
細かいところで計算間違いあるかもだけど, 主要要素はたぶんあっていると思う!
しくみメモ
PMU で一度に取れるイベント(カウンタ)は 7 個っぽい.
そこでプログラムを最大 17 回実行して, 最大 100+ のイベントを取得する.
1 = 単体
5 = 簡易
11 = 標準
17 = 詳細
pa1(単体)で得られるイベントはこんな感じ.
pa1.csv - FP Operations & L2 Cache
| Hex | Name | Description |
|---|---|---|
0x80c0 |
FP_SCALE_OPS_SPEC | SVE FP operations (scaled) |
0x80c1 |
FP_FIXED_OPS_SPEC | SIMD FP operations (fixed) |
0x0017 |
L2D_CACHE_REFILL | L2 cache refill |
0x0018 |
L2D_CACHE_WB | L2 cache write-back |
0x0325 |
L2D_SWAP_DM | L2 swap (demand hits prefetch buffer) |
0x0326 |
L2D_CACHE_MIBMCH_PRF | L2 prefetch hits demand buffer |
0x0121 |
EFFECTIVE_INST_SPEC | Effective instructions (excl. MOVPRFX) |
0x8000 |
SIMD_INST_RETIRED | SIMD instructions retired |
あとはこれを読み込んでいい感じにレポートしてあげる.
TODO
- TOFU や CMG 間のデータ転送レポート
Discussion