Collaborative Agentic Kernel Evolution:面向昇腾 NPU 的算子开发 Agent 框架
1. 引言:当算子开发遇上 Agent
在深度学习框架的底层,算子(Kernel)是性能的最终决定因素。一个高效的算子实现,往往需要工程师对硬件架构、内存层次、指令流水线有极深的理解。长期以来,昇腾(Ascend)NPU 上的算子开发高度依赖专家经验,自动化程度偏低。
与此同时,AI Agent 在 GPU 内核基准上已经展现出接近专家水平的能力,但面向昇腾 AscendC 的内核生成能力却明显不足——一个重要原因是相关训练数据稀缺。
Collaborative Agentic Kernel Evolution(协作式智能体内核进化,简称 CAKE) 正是为填补这一空白而提出的系统,其完整实现被称为 CANNBot-CAKE。它面向华为昇腾 NPU,目标是提供一个"原生"的、可部署的自定义算子生成系统。
需要特别说明的是:这里的 CAKE 与 NVIDIA 的 CAKE(Compiler-Agent Co-Design)是两套完全不同的系统,虽然缩写相同,但硬件平台与技术路径截然不同,后文会专门做区分。
2. 论文与时间背景
CAKE 是围绕昇腾生态算子自动化生成的一篇系统性工作,其核心贡献在于把"多 Agent 协作"与"进化式搜索"引入到 AscendC 算子开发流程中,并在 CANN-Bench 系列基准上给出了完整的评测结果。
从工程落地角度看,CAKE 并非停留在论文里的原型,而是配套了开源仓库,提供了可直接运行的 Agent 流程,这也是它区别于许多纯学术方案的地方。
3. 核心设计思想:协作 + 进化
CAKE 的方法论可以拆解为两个关键词:协作(Collaborative) 与 进化(Evolution)。
3.1 协作:多 Agent 分工
系统内置了多个职责不同的 Agent,根据开源仓库信息,至少包含三个核心角色:
cake:标准主流程 Agent。从算子描述出发,依次生成 PyTorch 参考实现、DSL 基线,再 lowering 到 AscendC,并完成编译与评估。cake-evo:进化模式的主控 Agent,负责调度并行的变体探索。cake-partial:被cake-evo调用的子 Agent,执行半程生成任务。
这种分工让"生成一个能跑的内核"和"生成一个跑得快的内核"成为两个可以分别优化的阶段。
3.2 进化:并行变体与分层采样
进化是 cake-evo 模式的核心机制。它不满足于生成一个能跑通的内核,而是并行生成多个变体,通过多轮迭代"进化"出性能更优的版本。
整体流程大致如下:
具体来说:
- 首轮纯探索:不同子 Agent 使用不同的优化提示(meta-prompt)独立实现,尽可能拉开解空间。
- 后续轮次分层采样:对上一轮实现按性能分层——Top 30% 用于利用(exploit),中间 40% 用于平衡,底部 30% 用于探索(explore)。
- 灵感注入:把优秀实现的代码与性能数据作为"灵感"注入新一轮生成,引导子 Agent 在借鉴的基础上继续探索新路径。
这种"探索—评估—借鉴—再探索"的循环,本质上是在算子这个离散、约束极强的搜索空间里做一种带引导的进化搜索。
4. 具体成绩:CANN-Bench 上的表现
根据论文在昇腾 950PR 上的评测数据,在 53 个 CANN-Bench v1.1 算子上,CAKE 取得了如下结果:
| 指标 | 结果 |
|---|---|
| 标准集通过率 | 100%(1,060 / 1,060) |
| 隐藏集通过率 | 98.28%(4,167 / 4,240) |
| 平均性能加速比 | 1.334× |
标准集全部通过,说明系统在已知算子上具备稳定的正确性;隐藏集 98.28% 的通过率,则更能体现其泛化能力——面对未在训练/调优中出现过的算子,依然能生成可编译、可运行且结果正确的 AscendC 实现。
进化模式的效果也有具体案例:EngramGateFusion 算子经过 20 轮进化后,聚合设备时间减少了 46.6%,平均 roofline 差距大致减半。这说明进化机制不只是"多试几次",而是能实打实地把性能推向硬件 roofline 附近。
5. 与 NVIDIA CAKE 的区别
两者虽然都叫 CAKE,但硬件平台和技术路径完全不同:
- NVIDIA CAKE(Compiler-Agent Co-Design):走的是"编译器—智能体协同设计"路线,智能体编写的是专门设计的 CAKE IR,编译器自身会进化。
- 昇腾 CAKE(Collaborative Agentic Kernel Evolution):核心是"多 Agent 并行变体进化 + CANN 原生工具链集成",智能体直接面向 AscendC 的生成与优化。
可以理解为,这是不同团队在相似的"进化"思路下做出的两项独立工作,不应混为一谈。
6. 小结
CAKE 的价值在于,它把 Agent 从"单次生成"推进到了"协作 + 进化"的范式:多个 Agent 分工负责不同阶段,进化机制负责在性能维度上持续搜索。在昇腾 NPU 这个训练数据相对稀缺的生态里,这种设计既绕开了数据不足的短板,又通过并行探索与分层采样把性能压榨出来。
从 CANN-Bench v1.1 的评测结果看,100% 的标准集通过率、98.28% 的隐藏集通过率以及 1.334× 的平均加速比,已经足以说明这套方法论在昇腾算子开发场景下的实用价值。对于希望在昇腾上快速产出高性能自定义算子的团队来说,CAKE 提供了一个值得关注的工程化路径。
更多推荐


所有评论(0)