ForgeKernel:在 B200 和昇腾上双登顶的算子生成 Agent
1. 引言:当 Agent 开始写 GPU 算子
大模型推理的性能天花板,很大程度上由底层算子决定。FlashAttention、FlashMLA 这类手写 kernel,是顶尖团队投入大量人力、反复打磨的产物,通常被视为"人类专家经验"的结晶。
而 ForgeKernel 做的事情有点不一样:它是面壁智能智能进化实验室与 OpenBMB 社区开源的算子生成 Agent。它最引人注目的地方在于——完全从零开始、不参考人类源码,在 NVIDIA B200 上生成了一个比 DeepSeek 人类手写 FlashMLA Prefill 快 9.8% 的算子;同时还在华为昇腾的 CANNBench 三个硬件榜单上登顶。
本文会先介绍它背后的论文,再拆解它的核心设计思想,最后用具体的 benchmark 数据说明它到底取得了什么成绩,以及一个值得留意的前提条件。
2. 论文信息
ForgeKernel 对应的论文是《ForgeKernel: Self-Evolving Kernels Catching and Surpassing Experts and Agents》。据仓库说明,该论文目前正在 ICLR 2027 审稿中。
代码已在 GitHub 开源,采用 Apache-2.0 协议,可以直接查看实现与复现实验。
3. 核心设计思想:架构优先 + 自进化
ForgeKernel 的机制核心,可以概括为两句话:
- 把"定架构"和"写代码"拆开;
- 让每一次被接受的 kernel 成为下一次的起点。
根据论文和仓库说明,一次运行包含两个嵌套循环。
3.1 外层:架构 Agent(Teacher)
外层 Agent 负责制定"课程"。它不写具体实现,而是把算子优化拆解成一条条里程碑决策,例如:
- tile 形状怎么选;
- warp 之间如何分工;
- 内存搬运采用什么策略。
同时,它还会对不同优化杠杆的收益进行定价,决定先做哪一步、后做哪一步。
3.2 内层:编码 Agent(Student)
内层 Agent 按照课程执行,一次只实现一个决策。每次提交后,GPU 任务会判定正确性、测速并做 profile,失败则回滚。
这种"小步提交 + 即时验证"的方式,让整个搜索过程始终处在可控、可回退的状态。
3.3 自进化:封存上一版作为新基准
一旦某个 kernel 被接受,它就可以被"封存",成为下一轮运行的新参考基准。
这意味着优化不会停在人类已知的最佳实现上,而是可以继续往上爬——每一代都在自己的上一代基础上继续进化。
3.4 关键约束:源码不泄露
这套机制有一个很关键的约束:参考实现的源码不会泄露给编码 Agent。
Teacher 通过运行和 profiling 一个"黑盒"来理解硬件行为,再蒸馏出里程碑;Student 看到的只有决策和参数,看不到原始代码。这正是它能在直播中做到"零源码参考"的原因。
4. 核心战绩:两条硬件路线同时登顶
ForgeKernel 的验证覆盖了差异巨大的两套软硬件栈,这成了它"跨平台通用性"最直接的证据。
4.1 NVIDIA B200 上的公开直播
任务是为 DeepSeek-V4.1 的 FlashMLA Prefill 算子做优化。ForgeKernel 只拿到数学定义和硬件约束,从零开始迭代。
| 指标 | 数据 |
|---|---|
| 全程历时 | 22.5 小时 |
| 资源消耗 | 1 张 B200、22 个 GPU 小时 |
| 迭代轮数 | 42 轮 |
| 产出版本 | 32 个 |
| 最终版本耗时 | 472 微秒 |
| FlashMLA 耗时 | 518 微秒 |
| 性能提升 | 9.8% |
4.2 华为昇腾 CANNBench 霸榜
在 10 月 27 日的榜单中,ForgeKernel 同时位列 950DT、950PR、A3(910C) 三个硬件赛道第一。
| 赛道 | 得分 | 基准加速比 | 领先情况 |
|---|---|---|---|
| 950DT | 4010.75 | 1.533× | 领先第二名 27.8% |
| 950PR | — | 1.638× | 赛道第一 |
| A3(910C) | — | 1.898× | 赛道第一 |
值得注意的是,昇腾使用独立的 Ascend C 架构和工具链,ForgeKernel 用同一套系统在两套生态中都拿出了榜首成绩。
5. 不止于个案:更广的对比数据
ForgeKernel 的 GitHub 仓库公开了它在多个算子上的对比结果。在注意力类算子上,它展现出了超越人类专家库和同类 Agent 系统的能力。
5.1 对 FlashAttention-4
在 H100 上:
- 因果 GQA 前向(gen 2)比 FlashAttention-4 快 15%;
- 因果 MHA 反向快 5.1%。
5.2 对其他 Agent 系统
同样在 H100 上:
- GQA paged decode 比 K-Search 快 24.5%;
- MLA paged decode 的领先幅度达到 170.6%。
5.3 自我进化效果
同一个 GQA 前向算子:
- gen 1 比 gen 0(自己的上一版)快 9.9%;
- gen 2 又比 gen 1 快 4.2%。
这说明"封存上一版作为新基准"的机制确实在持续产生增益,而不是一次性的偶然结果。
6. 一个需要留意的细节
ForgeKernel 的"零帧起手"有一个容易被忽略的前提。
根据技术社区的分析,如果没有一个已经跑通的参考内核(哪怕是只提供硬件行为、不提供源码的黑盒),而只给纯数学定义或 PyTorch 逻辑,消融测试中所有任务都会直接卡死。
也就是说,它超越 FlashMLA 的前提,是能够通过运行和 profiling 来"感知"一个足够优秀的现有实现。它并非在完全没有任何参考物的情况下凭空发明算子,而是在一个高质量的起点上,通过自进化机制实现了反超。
理解这一点,才能更准确地评估 ForgeKernel 的能力边界:它的强项是在优秀基线上继续向上搜索,而不是从零发明一个全新的算法范式。
7. 小结
ForgeKernel 给出的信号是清晰的:
- 架构与实现分离,让优化过程变得可解释、可回退;
- 自进化机制,让每一代 kernel 都能站在上一代的肩膀上;
- 跨平台通用性,同一套系统在 NVIDIA 与昇腾两套生态中都拿到榜首;
- 可复现,代码以 Apache-2.0 开源,论文正在 ICLR 2027 审稿中。
对于关注推理性能优化、Agent 自动编程、以及国产硬件生态的读者来说,ForgeKernel 都是一个值得持续跟踪的项目。
更多推荐




所有评论(0)