--- name: frontend-pmu-analysis description: "仅做 BPU 计数器提取与批量汇总(机器可读 JSON/CSV)。配置文件只需要写原始 stats 计数器名。" --- # BPU 计数器分析技能(极简) ## 何时使用 - 你已经跑完 gem5,只想批量提取 BPU 相关原始计数器。 - 你不想在脚本里做复杂推导,只要原始值。 - 你需要机器可读结果给后续脚本/表格处理。 ## 核心原则 - 只提取原始 counter,不做公式推导。 - 配置文件只写 counter 名称。 - 目录结构不做强约束,递归扫描 `stats.txt`。 - 不解析 `topMispredictsByBranch.csv` 或 `bp.db`;需要分支级归因时改用对应分析 skill。 ## 入口脚本 - `.agents/skills/frontend-pmu-analysis/scripts/analyze_bpu_counters.py` ## 默认配置 - `.agents/skills/frontend-pmu-analysis/configs/bpu_counters.txt` ## 用法 ```bash python3 .agents/skills/frontend-pmu-analysis/scripts/analyze_bpu_counters.py \ --debug-dir /tmp/debug/tage-new8 ``` 指定自定义计数器文件: ```bash python3 .agents/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.json` - `bpu_counters_summary.csv` 输出字段只包含: - case 路径 - stats 路径 - `values`(命中的计数器和值) - `missing`(缺失计数器) - `errors`(解析错误) ## 计数器文件格式 推荐 `txt`(每行一个): ```txt system.cpu.ipc system.cpu.commit.branchMispredicts system.cpu.commit.branches ``` 如果要批量分析更多计数器,也可以添加到configs 的txt 中 也支持: - `yaml`:`counters: [ ... ]` 或直接列表 - `csv`:第一列或 `counter` 列为计数器名