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% 利用 / 中间 40% 平衡 / 底部 30% 探索

将优秀实现代码与性能数据作为灵感注入

输出最优内核

具体来说:

  1. 首轮纯探索:不同子 Agent 使用不同的优化提示(meta-prompt)独立实现,尽可能拉开解空间。
  2. 后续轮次分层采样:对上一轮实现按性能分层——Top 30% 用于利用(exploit),中间 40% 用于平衡,底部 30% 用于探索(explore)。
  3. 灵感注入:把优秀实现的代码与性能数据作为"灵感"注入新一轮生成,引导子 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 提供了一个值得关注的工程化路径。

Logo

作为“人工智能6S店”的官方数字引擎,为AI开发者与企业提供一个覆盖软硬件全栈、一站式门户。

更多推荐