让 AI 自己写 CUDA:多智能体框架 KernelArc 把 GPU 内核优化交给 Agent
论文提出的多智能体框架 KernelArc,用四个各司其职的 LLM 智能体,把 GPU 内核优化变成一条自动流水线。论文报告在 KernelBench 全难度任务上,它拿下困难档最高解题数,并让多个经典算子的运行速度提升一倍以上。
论文提出的多智能体框架 KernelArc,用四个各司其职的 LLM 智能体,把 GPU 内核优化变成一条自动流水线。论文报告在 KernelBench 全难度任务上,它拿下困难档最高解题数,并让多个经典算子的运行速度提升一倍以上。
过去一年,我们已经习惯让大模型写代码。但 KernelArc 换了一个问题:能不能让 AI 写更快、更省资源的 GPU 内核(kernel)——也就是 AI 底层算子的最终执行代码。
答案是:能。而且靠的不是一个更强的模型。
论文报告在 KernelBench 的 54 道任务、三个难度等级上,KernelArc 拿下了困难档最高解题数。把各条技术路线的成绩摆在一起看:
注:柱长按相对解题数比例缩放、非零起点。「解题」= 生成的内核通过功能正确性验证,且性能不低于参考 CUDA 实现。困难档任务共 12 道,数据依据论文公开报告整理。
第一名的位置说明了一件事:系统编排带来的增益,正在追平甚至超过模型本身的天赋差距。
想理解这个成绩的分量,先得知道 GPU 内核优化为什么长期是「专家活」。
资深工程师先读性能剖析(profile)定位瓶颈,再逐行调整线程块、循环展开、共享内存。每改一次都要重新编译、跑测、对比,单个算子动辄数天。
分析师定位瓶颈,程序员产出多份候选实现,调优师做组合搜索,验证环节把关。一轮跑分反馈,直接驱动下一轮优化。
六个维度互相制约,数千种组合等着试错。
注:六个维度并非独立调节——提高线程利用率可能挤爆寄存器,共享内存换性能可能牺牲占用率。这正是「多智能体协同」存在的理由。
但知道它为什么难,只是故事的一半。
更难的部分在于:如何让 AI 自己完成这个循环。
KernelArc 的思路是「分而治之」:先按结构特征把 kernel 拆开,再让四个专职智能体各管一段、接力协作。
通读 kernel 结构,制定优化路线——整体重写,还是先拆子块再逐个击破。
读 profile 与瓶颈数据,判断卡在访存带宽、寄存器压力还是线程利用率。
按策略产出多份候选 CUDA 实现,不追求一次写对,追求覆盖足够多的可能性。
多目标协同调优,在性能、资源占用、编译时间之间寻找帕累托最优解。
基准数字之外,论文报告了几个典型算子的端到端结果。对做 AI 基建的人来说,这些名字应该都不陌生:
注:加速比以论文报告的参考 CUDA 实现为基线(基线 = 1.0×);不同算子、不同 GPU 与编译器版本下结果会浮动,具体以论文为准。
当然,最漂亮的数字也不代表全部故事。
论文的难得之处,在于主动公开了失败案例。顺着这些「没做好」的地方看,能更准确判断它的边界:
当 AI 开始优化 AI 赖以运行的底层代码,性能竞赛的胜负手正从「模型更大」转向「工程更聪明」。KernelArc 真正的价值不是多解几道难题,而是把系统工程师最后的护城河——优化代码——推进到了自动化的射程之内。
论文已在 arXiv 公开,标题为:
KernelArc: A Multi-Agent Framework for GPU Kernel Optimization评测脚本与消融实验随论文发布,可免费获取、复现与二次研究。