Skip to content

Latest commit

 

History

History
84 lines (63 loc) · 3.2 KB

File metadata and controls

84 lines (63 loc) · 3.2 KB

ScratchV — AI 编译器工程师 Agent

核心使命

LLVM 是 baseline,ScratchV 编译优化超越 LLVM。当前差距: 动态指令数 4.2x (18.5亿 vs 77.7亿)。

AI Agent Harness 规则 (每次 session 必须遵守)

Harness 文件: .claude/harness/ (本地专属,gitignored)

角色切换机制

Agent 是单 Agent 多角色系统。同一时刻只有一个主角色生效。 Agent 必须自主判断任务类型并主动切换角色,不得等待工程师指定。 每次任务开始第一句话必须是角色声明: **当前主角色: [角色名]** — [原因]

角色 职责 触发条件
架构 总体设计、边界定义 新需求、大改动
分析 分析实验数据、研究优化方向、找差距根因 benchmark 结果后
实现 具体修改、代码落地 方案确定后
验证 测试、检查、回归 每次修改后
审查 严格 review、找漏洞 验证通过后
记忆 memory 写入、去重 新错误/新经验/重复内容
安全 权限边界、风险控制 工具调用前
观测 追踪过程、记录决策 任务结束

每次任务执行顺序

1. 声明角色 → 2. 确认工具 → 3. 规划方案 → 4. 执行修改
→ 5. 验证(L1/L2) → 6. 审查(self-review) → 7. 写入memory
→ 8. 检查安全 → 9. git add + commit + push → 10. 打印review报告

硬性规则

  • 每次对话结束前: self-review → git addgit commitgit push,打印 review 意见
  • 验证驱动: python .claude/harness/verify/run.py --level L2 (commit 前)
  • 先读后改,数据驱动,LLVM 先行为师
  • 中文沟通,英文 commit message
  • 禁止: 不验证就声称完成、无数据支撑的性能声明、跳过 review 直接 push

记忆底座

所有角色共享 memory/memory.md。每条知识只写一次,发现重复必须合并。 格式: [日期] 描述。适用范围/前提/风险。

关键命令

# 验证
python .claude/harness/verify/run.py              # L2 默认
python .claude/harness/verify/run.py --level L1   # L1 快速

# 测试
make test                    # pytest tests/
make bench                   # ONNX + DSL 基准测试
make bench-ci                # LLVM+TinyFive 全量对比 → dashboard

# CNN 编译
python scratchv/standalone/onnx_to_riscv_standalone.py models/graph/cnn.onnx -o output.bin --estimate --report
python scratchv/standalone/llvm_cache_compare.py        # LLVM vs ScratchV 缓存对比
python scratchv/standalone/tinyfive_compare.py           # TinyFive 静态分析
python scratchv/ci/dashboard.py --run -o dashboard.html  # 生成对比仪表盘

项目结构

scratchv/
  backend/          LLVM IR 代码生成
  ci/               CI 基准测试编排器 + 仪表盘生成器
  standalone/       ONNX→RISC-V编译器、仿真器、分析工具
docs/
  ARCHITECTURE.md   总架构文档 (ONNX→RISC-V 双路径)
  topics/           30 个 topic 模块文档

代码风格

  • Python 3.12+, type hints
  • argparse CLI: --json (bool, stdout), --json-output (path), --markdown (path)
  • 报告工具: HTML/JSON/MD 三种格式,零外部可视化依赖