EvoKernel:AI算子生成准确率飞跃,国产芯片不再冷启动

上海交大EvoKernel框架,无需重新训练,显著提升大模型在国产NPU算子开发中的效率,正确率从4%升至83%,提速高达42倍,并成功适配DeepSeek新架构。

原文标题:AI写CUDA算子准确率92%,到国产芯片只剩4%?上交方法直线拉升,DeepSeek也适用

原文作者:机器之心

冷月清谈:

上海交大团队提出了一种名为EvoKernel的价值驱动记忆框架,旨在解决大模型在新硬件冷启动时面临的数据稀缺问题。该框架不依赖于重新训练模型或标注新数据,而是通过让大模型像资深工程师一样,积累每次编写算子的经验,记住哪些方法有效、哪些无效,并优先调用最有价值的历史经验。实验结果表明,使用EvoKernel后,GPT-5.2在华为Ascend NPU上的算子正确率从4%提升至83%,部分算子性能提升高达42倍。该方法也适用于DeepSeek的最新架构。EvoKernel的核心在于其价值驱动记忆机制,系统不仅检索相似的历史样本,还学习哪些历史经验在当前阶段更有用。通过多层验证机制,EvoKernel能够围绕真实执行反馈不断调整检索策略、补充历史经验,从而在数据稀缺的NPU算子开发场景中表现出更强的稳定性和成功率。此外,EvoKernel还能对已生成的正确算子进行持续优化,显著提升算子的性能。该研究不仅在KernelBench基准测试中表现出色,还在更真实的Attention算子测试集和DeepSeek mHC架构上取得了显著成果,表明其具有良好的跨任务、跨场景泛化能力。

怜星夜思:

1、EvoKernel方法的核心在于“价值驱动记忆”,那么这种记忆方式与传统的相似度检索相比,优势体现在哪些方面?在实际应用中,如何确保记忆的有效性和准确性,避免模型陷入局部最优解?
2、文章提到EvoKernel在Attention算子和DeepSeek mHC架构上取得了不错的成果,这些成果对于当前大模型的发展有哪些实际意义?是否意味着EvoKernel方法可以推广到其他类型的算子和硬件平台上?
3、EvoKernel的核心思想是让模型像“老工程师”一样积累经验,那么这种“经验”具体指的是什么?在算子开发过程中,大模型如何区分和利用这些“经验”,避免被无效或错误的经验误导?

原文内容


GPT-5.2 写 CUDA 算子,正确率 92%。同样的模型,给华为 Ascend NPU 写算子,正确率只有 4%。不是模型变笨了,是它压根没见过这类代码。公开数据几乎为零,专家寥寥无几,编译报错你还看不懂 —— 这就是 "新硬件冷启动" 的真实处境。


上海交大团队的 EvoKernel 不训新模型、不标新数据,而是让大模型像老工程师一样积累经验:每写一次算子,记住什么管用、什么不管用,下次优先调用最有价值的历史经验。结果:同一个 GPT-5.2,正确率从 4% 拉到 83%,最快的算子比 PyTorch 基线快了 42 倍。不仅如此,团队还将方法拓展到 DeepSeek 最新 mHC 架构的算子上,同样取得了显著效果。


该方案的早期实践已在昇腾 AI 创新大赛 2025 全国总决赛中斩获初创赛道金奖 🏆,项目获华为计算·梦想起航种子计划支持。相关团队成员亦在第十九届"挑战杯"全国揭榜挂帅擂台赛中获得擂主(特等奖第一名)🏆。


算子(Kernel)是大模型直接运行在加速芯片上的底层计算程序 —— 矩阵乘法、卷积、Softmax 等每一个基础运算,都需要一段精细适配硬件的算子代码才能高效执行,它的调优和硬件适配,长期以来一直是需要专家参与的 “手艺活”。在 CUDA 生态里,算子开发有海量开源代码和成熟工具链做支撑,近期以来,大模型也能写出不错的 GPU 算子。但昇腾等国产 NPU 有自己的编程语言(如 Ascend C)和硬件架构,公开代码几乎为零、开发者社区尚在起步,大模型在这些新生态上近乎 "裸考"。


论文中的实验把这种落差量化得非常直接。以 GPT-5.2 为例,在 CUDA Level 1 任务上正确率可达 92%,迁移到 Ascend C 后只剩 14%;更难的 Level 2 任务,正确率从 90% 直接跌到 2%。公开数据少、专家经验稀缺、编译反馈不透明、性能调优高度依赖真实硬件 —— 这些因素共同构成了一堵典型的 "数据墙",现有模型并没有真正学会为新硬件编程,更多是在复用预训练中见过的 CUDA 模式。



  • 论文标题:Towards Cold-Start Drafting and Continual Refining: A Value-Driven Memory Approach with Application to NPU Kernel Synthesis

  • 作者单位:上海交通大学、上海人工智能实验室 等

  • 项目主页:https://evokernel.zhuo.li

  • arXiv 论文:https://arxiv.org/abs/2603.10846


EvoKernel 想做的

不是再训一个模型


围绕这一冷启动难题,EvoKernel 给出的答案不是继续堆标注数据,也不是重新训练一个专门模型,而是设计了一套从初稿生成到持续优化的自演化智能体框架。系统分成两个连续阶段:


  • 冷启动生成(Cold-Start Drafting):先找到一个能编译、能运行、结果正确的初始算子。

  • 持续改善(Continual Refining):在有了第一个可行版本之后,再持续做延迟优化和性能改进。


图 1:EvoKernel 的整体框架。系统先在冷启动阶段生成可行初稿,再在共享记忆与验证反馈的帮助下持续做性能精炼。


这套框架最关键的设计,是论文提出的价值驱动记忆(Value-Driven Memory)。和常见的相似度检索不同,EvoKernel 不只是问 "哪些历史样本看起来更像当前任务",而是进一步学习 "哪些历史经验在当前阶段真正更有用"。为此,团队引入了阶段感知的 Q 值机制:在生成阶段,系统优先检索更可能帮助模型通过编译和正确性验证的经验;在精炼阶段,则优先保留更可能带来性能收益的优化轨迹、候选起点和上下文信息。


换句话说,EvoKernel 不是简单地 "给模型喂更多例子",而是在让模型逐渐学会:面对不同阶段的目标,应该参考哪类记忆,忽略哪类噪声。


为什么它不像传统智能体一样 "试一试运气"?


为了让这套记忆真正可用,团队还构建了多层验证机制。每一次生成的结果,都会经历 reward hacking 检查、编译验证、正确性校验和延迟测量四个环节:既要避免模型通过 Python 绑定层绕过算子实现,又要检查代码能否在真实 Ascend C 工具链中成功编译,并验证输出是否与 PyTorch 参考实现一致;只有通过这些检查,候选结果才会进入下一轮性能优化。具体而言,团队针对语义绕过、常量伪造、高层 API 替代等多类 reward hacking 模式,设计了规则筛查与智能体筛查两级反作弊机制,从源头降低无效结果进入记忆库的可能性。


也正因为验证器足够严格,EvoKernel 的迭代过程并不是提示词工程式的 "多试几次",而是围绕真实执行反馈不断调整检索策略、补充历史经验、扩大可用优化起点。


从方法上看,EvoKernel 的关键并不只是 "有记忆",而是它能够逐步学会哪些记忆在当前阶段最值得取用。这也是它和一般基于静态相似度检索的方法最主要的区别。


主结果:从 4% 正确率一路拉到 83%


团队基于 KernelBench 构建了 NPU 版本评测环境,经过 30 轮的迭代后,EvoKernel 在 GPT-5.2 上把整体结果显著拉升:


  • 整体编译率从 11.0% 提升到 98.5%

  • 整体正确率从 4.0% 提升到 83.0%

  • 在更难的 Level 2 任务上,实现了 100% 编译率和 76% 正确率


图 2:论文中的主实验结果。表中同时给出了 Level 1、Level 2 和 Overall 三组结果,也展示了首轮到最终轮的变化幅度。对 GPT-5.2 而言,EvoKernel 在整体编译率和正确率上都显著优于 Pass@k、Refinement 和 Codex。


作为对比,在相同 30 次预算下,Codex 智能体的整体结果为 83.0% 编译率和 46.0% 正确率,传统精炼基线则只有 71.5% 编译率和 22.0% 正确率。也就是说,即便 Codex 拥有更强的自主工具调用能力,EvoKernel 依然在这个数据稀缺的 NPU 算子开发场景里,表现出了更强的稳定性和成功率。


做对还不够

EvoKernel 还在继续把它做快


论文里另一个很值得关注的点,是 EvoKernel 不只停留在 "生成一个能跑的算子",而是在正确版本出现之后,继续做持续优化。


图 3:EvoKernel 的优化结果。左侧展示不同类别算子在正确率和加速比上的分布,右侧展示同一算子从首个正确版本到最佳版本的持续优化收益。


实验显示,在已经找到首个正确版本的前提下,系统进一步通过持续精炼,把算子的中位数速度提升做到 3.60 倍,四分位区间为 1.38 倍到 10.05 倍。更重要的是,这并不是少数偶然样本带来的假象。论文统计了 159 个至少出现过 "正确且可继续优化" 候选的算子,发现其中不少都能随着迭代持续获得稳定收益,部分算子相对首个正确版本的加速甚至超过 200 倍。


这意味着 EvoKernel 并不只是一个代码修复工具,而是开始展现出更接近算子工程师的优化能力。


记忆为什么有用

因为它真的能跨任务迁移


如果说主结果回答的是 "EvoKernel 能不能把一个任务做出来",那么这部分结果回答的则是 "它能不能把经验留下来,下次继续用"。


图 4:EvoKernel 在跨难度、跨模型设置下的迁移能力。


团队发现,当系统先在更简单的 L1 任务上积累经验,再迁移到更难的 L2 任务时,正确率上升明显快于从零开始。在第 17 次迭代时,L1 → L2 的迁移设置已经达到 64% 的 L2 正确率,显著超过混合训练和从零开始两种方式。


更进一步,论文还验证了跨模型迁移。用 GPT-5.2 构建出的记忆库,能够把 DeepSeek-V3.2 在保留测试集上的编译率从 26% 提升到 80%,正确率从 6% 提升到 58%;对 Qwen3-Coder-30B,同样可以把编译率从 14% 提升到 84%,正确率从 4% 提升到 32%。这些结果说明,这种记忆更像是一种可复用的 "任务经验资产",而不只是一次性上下文拼接。


不止 KernelBench

它还开始走向更真实的工程场景


如果一套方法只在基准测试上好看,意义其实有限 —— 已有研究表明,在 KernelBench 上表现优异的模型,面对新出现的算子或真实硬件需求时,正确率可能直线下降。EvoKernel 的另一个亮点,是团队把它继续扩展到了主实验分布之外的任务。


团队额外构建了一组包含 70 个 Attention 类算子的测试集(Attention Set)。这些算子从 FlashAttention、xformers 等主流开源社区仓库中手动筛选而来,覆盖了当前大模型推理与训练中需求最迫切、迭代最快的 Attention 算子变体 —— 这恰恰是芯片厂商在实际落地中优先需要解决的算子类别。


在这组更贴近真实工程需求的任务上,EvoKernel 在 CUDA 平台上达到了 100% 编译率和 97.1% 正确率;在昇腾平台上,也取得了 100% 编译率和 78.6% 正确率。更进一步,在面向 DeepSeek 今年 1 月份发布的流形约束超连接(Manifold-Constrained Hyper-Connections, mHC)新架构的 15 个相关算子上,EvoKernel 成功得到 10 个正确实现,其中 6 个超过 PyTorch 基线,代表性结果包括 SinkhornKnopp 的 41.96 倍加速。


图 5:在 DeepSeek mHC 算子上的扩展结果。EvoKernel 不只在原始 KernelBench 分布上有效,也开始展现出对新算子族和新架构模式的适配能力。


换句话说,这项工作展示出的并不只是对某个基准测试的适配能力,而是在向更真实的跨任务、跨场景泛化迈出一步。


这项工作的意义

可能不止于 NPU 算子开发


从更大的视角看,EvoKernel 的意义可能不止于 NPU 算子开发。本质上,它回答的是这样一个问题:当目标领域几乎没有现成训练数据、只有严格可验证反馈时,通用大模型还有没有办法通过非参数化、可积累的方式逐渐掌握新技能?


这篇工作给出了一个积极信号。随着硬件生态越来越分化,真正稀缺的也许不只是算力,而是能够快速适应新架构、新领域专用语言(DSL)、新工具链的工程能力。EvoKernel 试图把这部分能力,从 "依赖少数专家" 变成 "可以被记忆、检索和持续放大的系统能力"。


一句话总结


EvoKernel 提出了一种面向数据稀缺 NPU 编程场景的价值驱动记忆框架,不依赖昂贵微调,仅通过可验证反馈和跨任务经验积累,就把 GPT-5.2 在 Ascend C 算子开发任务上的整体正确率从 4.0% 提升到 83.0%,并在正确初稿基础上实现了 3.60 倍的中位数性能优化。


如果你对 NPU 算子开发、跨硬件代码生成或 LLM agent 在系统软件领域的应用感兴趣,欢迎访问项目主页(https://evokernel.zhuo.li)获取更多细节。本工作由上海交通大学人工智能学院郑雨杰、李卓主导完成,王翰竟(上海人工智能实验室)参与合作,温睦宁(助理研究员,通讯作者)和温颖(副教授)担任指导,也欢迎通过论文联系方式与团队交流合作。



© THE END 

转载请联系本公众号获得授权

投稿或寻求报道:liyazhou@jiqizhixin.com

楼上说的都有道理,我再补充一点:EvoKernel 的成功,也说明了“开源”的重要性。

EvoKernel 的团队把他们的研究成果开源出来,让更多的人可以学习和使用。这不仅促进了技术的传播,也加速了国产芯片生态的建设。

开源可以带来很多好处:

* 降低开发成本: 开发者可以免费使用开源代码,避免重复造轮子。
* 提高代码质量: 开源代码可以被更多的人审查,更容易发现和修复 bug。
* 促进技术创新: 开源社区可以汇聚全球的智慧,共同推动技术的发展。

因此,我希望更多的国产芯片厂商和算法开发者能够加入到开源的行列中来,共同打造一个繁荣的国产 AI 生态。

这个问题很有意思!EvoKernel 的核心在于,让模型在数据稀缺的情况下,通过不断试错和学习,积累经验并指导后续行为。这种思路在机器人控制和自动驾驶领域确实有很大的借鉴意义。

机器人控制: 想象一下,让机器人学习抓取不同形状的物体。如果一开始就给它大量标注数据,成本太高。但如果让它自己去尝试,每次成功或失败都记录下来,并分析哪些动作序列更有效,就能逐步提升抓取成功率。比如,记录“尝试用大力气抓取易碎品会导致失败”这样的经验,下次就避免。

自动驾驶: 自动驾驶系统需要处理各种复杂的交通场景。除了依赖大量模拟数据外,也可以让系统在实际路测中不断学习。每次遇到新的情况(比如,突然出现的行人、恶劣天气),都记录下当时的决策过程和结果,并评估哪些决策是正确的、哪些是错误的。这样,系统就能逐渐适应各种复杂场景,提升驾驶安全性。

关键在于,要设计合理的“价值函数”,让模型知道什么是“好的”行为。同时,要有有效的“记忆机制”,让模型能够存储和检索历史经验。当然,安全性永远是第一位的,实际应用中需要谨慎评估和测试。

EvoKernel 的成功,让我看到了国产芯片和大模型结合的希望!之前大家都在吐槽国产芯片生态不行,但 EvoKernel 证明,即使在生态不完善的情况下,我们也能做出有竞争力的东西。

我认为,EvoKernel 最大的启示在于,要找到国产芯片的“差异化优势”。比如,昇腾 NPU 在某些方面可能比 GPU 更适合运行 Attention 算子。如果我们能够充分挖掘这些优势,并针对性地进行优化,就能实现更好的性能。

此外,EvoKernel 还提醒我们,要重视对开发者的支持。国产芯片生态的建设,离不开广大开发者的参与。我们需要提供更好的开发工具、文档和社区支持,吸引更多的开发者加入到国产芯片的生态中来。

希望未来能看到更多像 EvoKernel 这样的创新成果,推动国产大模型在各行各业落地开花!

这说明 EvoKernel 学习到的不仅仅是针对特定任务的代码,而是一种更通用的编程“sense”。就像一个熟练的程序员,即使换了新的编程语言或框架,也能很快上手。对于国产芯片生态来说,这种可迁移的经验意味着可以更快地开发出各种高性能的算子,加速生态建设。

我从工程实践的角度补充一点。在实际应用中,可以建立一个验证集,专门用于评估迁移的效果。每次进行迁移之前,先在验证集上进行测试,只有当迁移的效果达到一定的阈值时,才正式进行迁移。另外,还可以采用 A/B 测试的方法,将迁移后的模型与原始模型进行对比,观察哪种模型的效果更好。总之,要通过多种手段来保证迁移的有效性和可靠性。

这个意义太大了!Attention 算子的优化直接关系到大模型的效率,EvoKernel 能在这方面取得突破,无疑是给大模型的发展打了一针强心剂。而且,它还能适配 DeepSeek 的新架构,说明咱们国内的 AI 技术也在不断进步。我觉得 EvoKernel 的方法很有潜力推广到其他算子和硬件平台上,只要能建立起有效的反馈机制,就能让 AI 模型不断学习和进化。这就像是给 AI 模型装上了一个“自适应”的引擎,让它能更好地适应各种不同的环境。

这里的“经验”指的是历史成功或失败的算子代码、编译信息、性能数据等。大模型通过价值驱动记忆来区分和利用这些经验,优先检索更有可能帮助模型通过编译和正确性验证的经验。为了避免被误导,EvoKernel 设计了严格的验证机制,对每一次生成的结果进行检查,确保其有效性和正确性。

实际意义当然是降本增效!Attention 算子是 Transformer 模型里的大头,优化它能直接提升模型性能,降低计算资源消耗。适配 DeepSeek 新架构则说明这套方法有潜力助力国产 AI 芯片的发展,打破国外技术垄断。推广性方面,我认为 EvoKernel 的核心思想——价值驱动的经验学习——具有普适性。只要目标领域有明确的验证标准和可积累的经验,就有可能应用 EvoKernel 的思路,但具体的实施细节还需要根据实际情况进行调整。期待未来能看到更多基于 EvoKernel 或者类似思路的创新出现!

Attention 算子是当前大模型的核心组件,EvoKernel 在这方面的突破意味着它有可能加速大模型的推理和训练过程,降低成本。DeepSeek mHC 架构是国产芯片的新尝试,EvoKernel 的成功适配表明它可以帮助国产芯片更好地支持大模型。至于推广性,理论上只要有可验证的反馈,EvoKernel 就能发挥作用,但具体效果可能需要根据不同算子和硬件平台的特点进行调整。

我认为这里的“经验”不仅仅是代码本身,更重要的是隐藏在代码背后的设计思路、调试技巧和优化策略。大模型需要理解为什么某些代码能够通过编译,为什么某些优化能够提升性能。EvoKernel 通过价值驱动记忆来建模这些经验,它会根据历史数据的统计信息,学习哪些经验在当前场景下最有价值。为了避免被无效或错误的经验误导,EvoKernel 的验证机制会像一位严格的“代码审查员”一样,对每次生成的代码进行全面的检查,确保其符合规范和质量标准。这种机制可以有效地防止模型陷入“经验主义”的陷阱,从而保证代码的正确性和可靠性。

价值驱动记忆,顾名思义,更注重历史经验的实际效果。传统的相似度检索可能找到很多“看起来像”的样本,但并不保证这些样本对当前任务真的有帮助。EvoKernel 通过阶段感知的 Q 值机制,学习哪些经验在编译、正确性和性能优化等不同阶段更有价值,避免了盲目套用历史代码。避免局部最优,需要验证器的严格性,reward hacking检查、编译验证、正确性校验和延迟测量四个环节缺一不可。