目录

OpForge:基于 Eval Harness 剖分驱动的双算子自动生成 Agent

CCF 开源创新大赛参赛项目 · 上海海洋大学 0 队 底层依赖:MindSpore AKG · 目标平台:昇腾 910B 系列

项目简介

OpForge 面向 akg_kernels_bench_lite 算子任务,以官方 AKG Agent 的 akg-op -> kernelgen -> verifier 流程为生成底座,在其外层补充硬件能力审计、Operator Playbook、Adaptive Pass@N、真实 NPU 反馈、失败记忆、候选晋升、来源证明和可复现打包,将一次性代码生成扩展为可观察、可控制、可复核的算子优化闭环。

最终交付覆盖算子、Agent、知识、模型与配套工具,成绩和证据分别记录、分别归因:

交付 内容 当前证据
latest/ 13 个基准算子的最终提交候选及 AscendC Sidecar Agent 生成;13/13 strict;总分 1345.51,最大加速 5.88x
skills/ 27 个项目调优 Skill + 8 个 Agent 原生 Skill,共 35 个外层 SKILL.md 覆盖策略、Profiling、实现模式与算子案例
OpForge-AKG-Agent/ 自主规划、生成、验证、反馈、晋升与打包系统 完整实现 Harness 驱动的算子生成闭环
OpForge Qwen3.6 Specialist Suite Unified、Planner、Coder、Repair 四个 Qwen3.6-35B-A3B LoRA adapter ModelScope 与 Hugging Face 双平台发布
JupyterCTL/ 供 Agent 调用多台命名 JupyterLab 的终端、文件与可恢复任务工具 36 项本地回归通过
MoarkCTL/ 供 Agent 明确选择并启停模力方舟算力容器的生命周期工具 30 项本地回归通过

latest/ 收录 OpForge Agent 在多轮闭环中生成、验证并晋升的最终算子集。Agent 负责语义分析、路线规划、代码生成、真机反馈和候选迭代,Harness 负责组织评测证据与晋升条件;最终提交通过 13/13 strict correctness。按 13 题 official runner 结果与官方计分公式汇总,总分为 1345.51 分,最大加速为 5.88x

核心创新

创新点 工程实现
剖分与反馈驱动的候选规划 将 runner、Profiler、TensorMove、调用数量和延迟差距压缩为 Profile Digest,按 memory/copy/cube/dispatch 等瓶颈选择下一轮 search axis
算子感知的 Adaptive Pass@N 按算子复杂度分配 1–3 个候选,约束实现族和调度轴差异,支持 stop-on-promote 与 best-only repair,避免重复生成同类 wrapper
Hardware-aware Multi-DSL Routing 先审计 AscendC、Triton-Ascend、Torch NPU、CANN 与 Python ABI,再选择 vendor wrapper、AscendC Sidecar、Triton kernel 或结构化 layout/cache 路线
严格验证与可信晋升 串联静态检查、官方 AKG Verifier、Sidecar build/import、真实 NPU forward、二进制摘要、官方 runner、同轮性能对照和发布审计
Candidate DAG 与失败记忆 记录候选父子关系、策略、DSL、failure signature、性能差距和 do-not-repeat 规则,把失败转化为下一轮的定向修复上下文
Skill 与专有模型协同 27 个项目调优 Skill 形成可审阅的工程知识,8 个 Agent 原生 Skill 进入受控运行时;四模型 LoRA 套件承担规划、生成和修复,Harness 与 official runner 管理确定性协议和评测证据

Agent 自主闭环

题目快照与语义抽取
  -> 运行栈与硬件能力审计
  -> Operator Playbook / Candidate Plan
  -> 任务匹配的 Agent Skill 与受控机制知识
  -> 官方 akg-op / kernelgen 生成
  -> 官方 Verifier 与严格正确性门
  -> Sidecar build / import / NPU forward / .so attestation
  -> 官方 runner 与 Profile Digest
  -> Candidate DAG / failure memory / targeted repair
  -> keep-best promotion / submission audit / package

控制器按算子结构选择实现路线:原生库算子优先评估精确 vendor floor;归一化、量化和 reduction 任务探索 AscendC/Triton 组合;矩阵任务比较 layout/cache 方案;mutable state 任务重点校验状态更新与多 seed 语义。

对需要 Sidecar 的候选,构建工作由控制器统一管理,ModelNew.forward() 保持纯运行路径。生成文件可以同时提供 AscendC primary、Triton-Ascend fallback 和 Torch correctness floor;正确性与晋升结果由官方 Verifier 和 runner 确认。

Skill 资产与当前运行边界

项目研发过程中形成了 27 + 8 + 3 = 38 项 Skill 工程资产

  • 27 个项目调优 Skill:8 个通用策略、1 个 NPU Profiling、2 个实现模式、16 个 case Skill;16 个 case 文档覆盖 13 个唯一算子,另含 3 个 AscendC 变体。
  • 8 个 Agent 原生 Skill:Operator Playbook、算子族 Handbook、严格正确性、RPB 搜索、Vendor 路由、Sidecar 策略、目标机验证、AscendC direct-invoke 桥接。
  • 3 个适配 Skill:曾负责把团队策略、Profiling 与实现经验按任务选择后注入 Agent;对应设计与实现仍可从本仓库历史提交追溯。

项目研发阶段累计形成 38 项 Skill 工程资产。最终工作树在外层 skills/ 发布 35 个可直接审阅的 SKILL.md,当前 governed Agent 注册其中 8 个原生 Skill。3 个适配 Skill 的设计与实现保留在 Git 历史中,正式运行时使用机制级知识和当前 episode 的评测反馈。

项目 Skill 用于知识审阅、模型训练和机制研究。正式 Agent 运行接收机制级知识与当前 episode 的脱敏反馈,候选晋升依据当轮完整性检查和 official runner 结果。

仓库结构

.
├── latest/                         # Agent 生成的 13 个最终提交候选
│   ├── t1/                         # 6 个基础算子
│   ├── t2/                         # 4 个复合算子及 Sidecar
│   └── t3/                         # 3 个高难算子及 Sidecar
├── skills/                         # 35 个外层 SKILL.md
│   ├── ascend-bench-strategy/      # 8 个团队通用策略 Skill
│   ├── ascend-npu-profiling/       # 1 个团队 Profiling Skill
│   ├── specific-implementation/    # 18 个团队模式/case Skill
│   └── opforge-agent/              # 8 个 Agent 原生 Skill
├── OpForge-AKG-Agent/              # 自包含 Agent 工程
│   ├── opforge/                    # 规划、控制、验证、反馈、打包
│   ├── akg_op_overlay/             # 当前受控运行时的 8 个 Agent Skill
│   ├── scripts/                    # setup/self-check/run_case/run_suite
│   ├── tests/                      # 控制器回归测试
│   └── third_party/akg-br-agents/  # 固定的官方 AKG Agent 快照
├── JupyterCTL/                     # Agent 远程终端、文件与可恢复任务
├── MoarkCTL/                       # 算力容器生命周期与计费边界控制
└── README.md

微调模型体积较大,不重复提交到 Git 仓库;完整四模型 LoRA 套件发布在 ModelScopeHugging Face

Agent 工程验证

  • 当前 OpForge 控制层 657/657 项本地回归通过MANIFEST.sha256 全量校验通过。
  • 外层发布 35 个可审阅 SKILL.md;当前 Agent overlay 注册 8 个原生 Skill,模型可见面与历史实现隔离。
  • 官方 AKG 快照采用逐文件摘要校验;任务、prompt、runner、候选源码、结果与最终 package 均绑定摘要。
  • latest/ 最终算子集由 Agent 生成并通过 official runner:13/13 strict;总分 1345.51,最大加速 5.88x
  • 专有 V16 Coder 的历史同环境对照为 13/13、1183.92 分,相较 DeepSeek 路线 +118.03 分;non-cache token 降低 **99.4%**,Agent/API 主流程耗时降低 **93.7%**。详细实验边界与数据见模型仓库。
  • JupyterCTL 36/36、MoarkCTL 30/30 本地回归通过。

本地回归用于校验控制逻辑;算子正确性和性能由 Ascend 环境中的 run_case.shrun_agent_suite.sh 与 official runner 验证。

最终算子成绩

latest/ 是 OpForge Agent 经多轮生成、真机验证和候选晋升得到的最终提交。下表记录 13 个算子的参考延迟、最终加速比与加权分;加权分采用 official runner 的 T1/T2/T3 权重 1/1.5/2 计算。

算子 梯队 参考延迟 (ms) 最终加速比 加权分
fused_silu_and_mul T1 0.0666 1.07x 60.70
gelu T1 0.0438 1.00x 60.00
matmul_basic T1 0.0641 1.12x 61.20
matmul_biasadd T1 0.4824 0.92x 55.20
sigmoid_scale_sum T1 0.0732 1.35x 63.50
softmax T1 0.4562 1.01x 60.10
add_rmsnorm_cast T2 2.2932 4.42x 141.23
add_rmsnorm_quant T2 4.1772 2.24x 108.60
moe_topk_softmax T2 0.0264 4.77x 146.55
rope T2 0.3652 1.00x 90.00
causal_conv1d T3 0.0631 2.83x 156.63
decode_mla T3 15.3513 5.88x 200.00
layernorm_gated T3 0.5229 2.09x 141.80

13 题加权分合计 1345.51;其中 decode_mla 超过 5x,按官方规则计满 200.00 分。

快速开始

运行 Agent

cd OpForge-AKG-Agent
bash scripts/setup.sh --ascend
cp .env.example .env
bash scripts/self_check.sh --runtime
bash scripts/run_case.sh t1/sigmoid_scale_sum

完整题集:

cd OpForge-AKG-Agent
bash scripts/run_agent_suite.sh

每次运行默认写入 OpForge-AKG-Agent/artifacts/runs/<run-id>/,包含 runtime audit、Pass@N 候选、progress events、Verifier/runner 证据、Candidate Memory、promotion decision 和 submission audit。

使用配套工具

pipx install ./JupyterCTL
pipx install ./MoarkCTL

jc --help
mc --help

JupyterCTL 负责机器内部的终端、文件与可恢复任务;MoarkCTL 负责算力容器的发现、启停、重启与状态等待。两者都只从本地私有配置读取凭据,示例文件不包含真实 Token。

检查团队候选

import torch
from latest.t1.gelu import Model, ModelNew, get_inputs, get_init_inputs

args = get_inputs()
init_args = get_init_inputs()
reference = Model(*init_args)(*args)
candidate = ModelNew(*init_args)(*args)
assert torch.allclose(reference, candidate, atol=1e-2, rtol=1e-2)

该片段只用于快速语义检查,正式结论必须使用赛事官方 runner 的输入、预热、计时和评分流程。

环境与评测入口

  • 目标环境:Linux aarch64、Python 3.10+、Ascend 910B 系列、CANN、torchtorch_npu
  • 可选后端:Triton-Ascend、AscendC toolchain、CMake/Ninja。
  • Agent 单题入口:OpForge-AKG-Agent/scripts/run_case.sh
  • Agent 全题入口:OpForge-AKG-Agent/scripts/run_agent_suite.sh
  • 控制层自检:OpForge-AKG-Agent/scripts/self_check.sh --with-tests
  • 官方评分入口:固定快照中的 akg_kernels_bench_lite/tools/run_bench.py
  • Suite 分析与审计:OpForge-AKG-Agent/scripts/analyze_akg_agent_suite.py
  • 远端执行与文件:JupyterCTL/;算力生命周期:MoarkCTL/

评测与交付规范

  • 赛事题目、官方 Verifier、runner、容差和评分逻辑保持原样。
  • 每个候选记录生成来源、源码摘要、验证结果、性能数据和晋升结论。
  • fallback 负责运行兼容,正式晋升同时满足 strict correctness 与性能条件。
  • 候选运行保持离线,Sidecar 构建与 benchmark 生命周期由控制器统一管理。
  • Skill 更新经过 fresh runner 和项目复核;Candidate DAG 与失败记忆为下一轮规划提供结构化经验。

文档与参考文献

项目设计与算子优化参考:

关于
14.1 MB
邀请码
    Gitlink(确实开源)
  • 加入我们
  • 官网邮箱:gitlink@ccf.org.cn
  • QQ群
  • QQ群
  • 公众号
  • 公众号

版权所有:中国计算机学会技术支持:开源发展技术委员会
京ICP备13000930号-9 京公网安备 11010802047560号