目录

EVA: Evidence-driven Verifiable Agent

本目录是 CCF-AKG Ascend 910B 算子优化赛道的最终整理版提交,仓库内容围绕“证据驱动算子优化 Agent”展开。

完整方法、实验结果和相关工作讨论见:项目书 PDF

项目介绍

这个项目的出发点很简单:面向 Ascend/CANN 写高性能算子,不能只靠大模型一次性 补全代码。真正困难的是在多个算子、多个后端和长时间实验中,持续判断哪条路线值得 继续、哪条路线应该及时放弃,以及每次性能提升是否真的满足官方语义。

因此我们把大模型放进一个受控的工程闭环中。模型或代码助手只负责提出候选实现; 候选能否进入最终提交,则由官方测评、历史最优版本和 Ascend910B KernelWiki 共同决定。 KernelWiki 记录正收益证据,也记录负收益证据,使系统不会反复尝试已经证明错误、 变慢或不可提交的路线。

最终提交并不强制所有任务使用同一种后端,而是按证据选择官方算子、torch_npu 改写、Triton-Ascend、Ascend C OPP 或保守基线。这样的结果更接近真实算子优化流程: 性能来自候选生成、后端选择、测评验证和知识回写的协同,而不是某个模型单次输出。

总体架构

证据驱动 Ascend 算子优化 Agent 架构

本项目包含两个主要部分:

  • submission/:13 个官方算子任务的可运行提交实现。
  • eva-agent/ascend910b-kernelwiki/:用于组织任务分析、后端路线选择、 官方测评、正收益证据和负收益证据的 Agent 框架与知识库。

目录结构

EVA/
├── README.md
├── SUBMISSION.md
├── eva-agent/
├── benchmark_results/
├── docs/
├── ascend910b-kernelwiki/
└── submission/

关键路径如下:

  • submission/t1submission/t2submission/t3:各任务的提交实现。
  • submission/custom_ops:随提交打包的 Ascend C OPP 包和 Python 桥接代码。
  • ascend910b-kernelwiki/wiki/evidence/positive:已验证且稳定提速的路线。
  • ascend910b-kernelwiki/wiki/evidence/negative:失败、变慢或不可提交的路线。
  • ascend910b-kernelwiki/wiki/implementation_guides:后端相关实现指南。
  • ascend910b-kernelwiki/wiki/optimization_patterns:可复用的性能症状和归因模式。
  • benchmark_results/current_best/submission.json:当前保守完整复测结果。
  • docs/project_report.pdf:技术报告 PDF。
  • docs/figures/overview_architecture.png:README 和报告使用的总体架构图。

环境要求

最终结果面向官方 Ascend 910B 测评环境。建议使用下表中的版本组合;其中 Triton-Ascend 相关任务以远端测评环境的 Triton-Ascend 安装为准。

项目 要求
硬件 Ascend 910B
操作系统 openEuler x86_64
CANN 9.0.0
Python 3.12.13
PyTorch 2.10.0
torch_npu 2.10.0
Triton-Ascend 远端测评环境安装版本;依赖约束参考官方 triton-ascend>=3.2.0
自定义算子 仓库已携带 x86_64 目标环境的 OPP 包和动态库

正常测评不需要重新编译自定义 OPP,也不需要手动设置 ASCEND_CUSTOM_OPP_PATH; 任务模块会从 submission/custom_ops 自动加载随包携带的实现。若只运行 eva-agent/ 的本地单元测试,Python 3.10 以上即可,不需要 NPU 环境。

当前保守结果

以下结果在 Ascend 910B、CANN 9.0.0、Python 3.12.13 环境下完成验证:

通过任务数     = 13 / 13
总加权分数     = 1458.35
平均加速比     = 3.0736

逐任务结果如下:

任务 加速比 加权分数
t1/fused_silu_and_mul 1.1216 61.22
t1/gelu 1.0004 60.00
t1/matmul_basic 1.0093 60.09
t1/matmul_biasadd 0.9300 55.80
t1/sigmoid_scale_sum 2.0903 70.90
t1/softmax 1.0804 60.80
t2/add_rmsnorm_cast 4.4652 141.98
t2/add_rmsnorm_quant 7.5958 150.00
t2/moe_topk_softmax 5.1788 150.00
t2/rope 0.9824 88.42
t3/causal_conv1d 5.3983 200.00
t3/decode_mla 6.1472 200.00
t3/layernorm_gated 2.9568 159.14

本仓库有意排除了临时实验、缓存输入实验以及其他非提交变体。缓存输出或缓存 中间结果的路线不被视为有效优化。

运行测评

在官方测评目录下运行:

python /path/to/akg_kernels_bench_lite/tools/run_bench.py /path/to/EVA \
  --team submission \
  --bench-dir /path/to/akg_kernels_bench_lite \
  --output /path/to/output \
  --rtol 1e-2 \
  --atol 1e-2 \
  --warmup 10 \
  --iterations 100 \
  --num-trials 3 \
  --timeout 300

各任务模块会在加载自定义 ACLNN 桥接代码前,自动从 submission/custom_ops 配置随包携带的 OPP 路径。报告中的结果不依赖固定 CPU 亲和性。

关于

EVA: Evidence-driven Verifiable Agent

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

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