name: frontend-pmu-analysis description: "仅做 BPU 计数器提取与批量汇总(机器可读 JSON/CSV)。配置文件只需要写原始 stats 计数器名。"
BPU 计数器分析技能(极简)
何时使用
- 你已经跑完 gem5,只想批量提取 BPU 相关原始计数器。
- 你不想在脚本里做复杂推导,只要原始值。
- 你需要机器可读结果给后续脚本/表格处理。
核心原则
- 只提取原始 counter,不做公式推导。
- 配置文件只写 counter 名称。
- 目录结构不做强约束,递归扫描
stats.txt。 - 如果发现某些分支预测错误特别高,还可以看
stats.txt同目录的topMispredictsByBranch.csv, 记录了哪些分支被错误预测很多。 - 必要时候可以使用
--enable-bp-db tage来打开tage 的trace db 分析。
入口脚本
.codex/skills/frontend-pmu-analysis/scripts/analyze_bpu_counters.py
默认配置
.codex/skills/frontend-pmu-analysis/configs/bpu_counters.txt
用法
python3 .codex/skills/frontend-pmu-analysis/scripts/analyze_bpu_counters.py \
--debug-dir /tmp/debug/tage-new8
指定自定义计数器文件:
python3 .codex/skills/frontend-pmu-analysis/scripts/analyze_bpu_counters.py \
--debug-dir /tmp/debug/tage-new8 \
--counters-file /path/to/my_counters.txt
输出
bpu_counters_summary.jsonbpu_counters_summary.csv
输出字段只包含:
- case 路径
- stats 路径
values(命中的计数器和值)missing(缺失计数器)errors(解析错误)
计数器文件格式
推荐 txt(每行一个):
system.cpu.ipc
system.cpu.commit.branchMispredicts
system.cpu.commit.branches
如果要批量分析更多计数器,也可以添加到configs 的txt 中
也支持:
yaml:counters: [ ... ]或直接列表csv:第一列或counter列为计数器名