Code Performance Advisor
将 profiling 数据和算子代码转化为可执行的优化建议。Expert Rule 匹配优先,低置信度时切换 LLM 深度探索。
快速开始
第一次使用(仅需一次)
cd skills/code-performance-advisor
bash bootstrap.sh # 构建规则索引
每次优化前
# 从 CAKE2/output/{op}/ 初始化 workspace(自动选最新 profiling CSV)
python3 scripts/analysis_engine/init_workspace.py --op <op_name>
# 重新 profiling 或代码有变化时加 --overwrite
python3 scripts/analysis_engine/init_workspace.py --op <op_name> --overwrite
初始化后结构:
workspace/inputs/{op}/
├── code/op_host/ + op_kernel/
└── profiling/op_summary.csv
启动工作流
python3 scripts/analysis_engine/workflow.py run --op <op_name> --mode interactive
# 中断后恢复
python3 scripts/analysis_engine/workflow.py resume --op <op_name>
工作流状态机
┌─────────────────────────────────────────────────────────────────────┐
│ INIT 初始化工作空间,提取 profiling 指标 │
└──────────────────────────┬──────────────────────────────────────────┘
│
┌──────────────────────────▼──────────────────────────────────────────┐
│ TAG 调用 code_tag 子技能,生成特征标签 │
└──────────────────────────┬──────────────────────────────────────────┘
│
┌──────────────────────────▼──────────────────────────────────────────┐
│ SCORE 规则打分 + 已应用模式过滤(自动) │
└──────────────────────────┬──────────────────────────────────────────┘
│
┌──────────────────────────▼──────────────────────────────────────────┐
│ ROUTE 按置信度分路 │
│ ├── Fast (≥ 0.7) → suggest │
│ ├── Moderate (0.3-0.7) → deep_research │
│ ├── Deep (< 0.3) → deep_research │
│ └── Scalar-Locked → algorithm_redesign │
└──────────────────────────┬──────────────────────────────────────────┘
│ (各路汇合)
┌──────────────────────────▼──────────────────────────────────────────┐
│ APPLY 按建议修改代码 │
└──────────────────────────┬──────────────────────────────────────────┘
│
┌──────────────────────────▼──────────────────────────────────────────┐
│ BUILD 重新编译算子 │
└──────────────────────────┬──────────────────────────────────────────┘
│
┌──────────────────────────▼──────────────────────────────────────────┐
│ EVALUATE 重新 profiling(msprof) │
└──────────────────────────┬──────────────────────────────────────────┘
│
┌──────────────────────────▼──────────────────────────────────────────┐
│ COMPARE 对比基线 vs 新指标 │
│ ├── 有提升? → UPDATE(固化规则) │
│ └── 无提升? → 可继续下一轮 APPLY 循环 │
└──────────────────────────┬──────────────────────────────────────────┘
│
┌──────────────────────────▼──────────────────────────────────────────┐
│ DONE 优化会话结束 │
└─────────────────────────────────────────────────────────────────────┘
INIT → TAG → SCORE → ROUTE → SUGGEST → APPLY → BUILD → EVALUATE → COMPARE → UPDATE → DONE
| 阶段 | 谁执行 | 说明 |
|---|---|---|
| INIT | 引擎 | 调用init_workspace.py初始化,验证输入、提取 profiling 指标 |
| TAG | Agent | 调用 code_tag 子技能生成特征标签 |
| SCORE | 引擎 | 规则打分 + 已应用模式过滤(自动) |
| ROUTE | 引擎 | Fast(≥0.7) / Moderate(0.3-0.7) / Deep(<0.3) |
| SUGGEST | Agent | 根据路径调用对应子技能(见下表) |
| APPLY→COMPARE | 引擎+Agent | 改代码 → 编译 → 评测 → 对比 |
| UPDATE | Agent | 调用 rule_update 固化有效优化 |
SUGGEST 子技能选择:
| 路径 | 子技能 | 触发条件 | 说明 |
|---|---|---|---|
| Fast | suggest |
max_score ≥ 0.7 |
读 top-1 规则,输出代码逐行修改方案 |
| Moderate | deep_research |
0.3 ≤ max_score < 0.7 |
规则匹配弱,切换 5步分析法(Bound→Memory→Pipeline→Tiling→Sync),结合规则排名辅助佐证 |
| Deep | deep_research |
max_score < 0.3 |
规则无关,从流水线结构诊断(Wait-Wait / Starvation 等模式) |
| Scalar-Locked | algorithm_redesign |
aiv_scalar_ratio > 0.35 且经历过 ≥1 次 APPLY→EVALUATE 循环后 max_score < 0.40 |
规则已穷举,瓶颈在算法本身的标量依赖链;提出等价但无分支/无 GetValue 的数学替代方案 |
- Continue to the next step in agent workflow
其他 CLI
# 查看当前 session 状态
python3 scripts/analysis_engine/workflow.py status --op <op_name>
# 列出历史 sessions
python3 scripts/analysis_engine/workflow.py sessions --op <op_name>
# 清理旧 sessions
python3 scripts/analysis_engine/session_manager.py cleanup
行为约束
- 有据才说:每条建议必须引用具体指标或代码行,无证据则报 "Insufficient Data"
- 不重复推荐:系统已过滤代码中已应用的优化模式(COUNTER_MODE / DOUBLE_BUFFER / BUFFER_FUSION / EXPLICIT_SYNC)
- 达标即停:性能目标达成后立即停止,不额外生成建议
- 验证才算完成:改动后必须有 profiling 数据证明提升
- 知识闭环:有效优化必须通过
rule_update固化为规则
子技能参考
| 子技能 | 文件 | 触发时机 |
|---|---|---|
| init_workspace | subskills/Init_workspace.md |
每次优化前 |
| code_tag | subskills/code_tag.md |
TAG 阶段 |
| suggest | subskills/suggest.md |
SUGGEST / Fast 路径(max_score ≥ 0.7) |
| deep_research | subskills/deep_research.md |
SUGGEST / Moderate 与 Deep 路径 |
| algorithm_redesign | subskills/algorithm_redesign.md |
SUGGEST / Scalar-Locked 路径:规则穷举后 aiv_scalar_ratio > 35% |
| rule_update | subskills/rule_update.md |
UPDATE 阶段 |
| rules_search | subskills/rules_search.md |
手动规则查询 |