智能体循环自学陌生NPU:12天把Gemma-4-12B三个解码核提速9.293倍
核心概要
前沿大模型能为成熟平台写出正确的CUDA核,但面对架构和编程语言都很少见的加速器时准确率骤降。一个多智能体循环在FuriosaAI RNGD NPU上先自行建立目标知识——校验过的DSL文档摘要、微基准测得的芯片事实和编译器给出的合法性规则——再在每核设计树上搜索整核设计与小改动。12天后三个Gemma-4-12B解码核相对官方基线取得9.293的几何平均加速,每个核的周期数不超过搬运其权重所需最少周期的1.25倍。
深度剖析
一个由大模型智能体组成的循环,在几乎没有现成知识的加速器上完成了内核优化:目标芯片是FuriosaAI RNGD NPU,编程语言是文档稀疏的Rust DSL furiosa-opt,循环在12天里优化了Gemma-4-12B的三个解码核。 此前的LLM内核优化器要么从提示中人工写好的目标知识出发,要么跨大量任务学习;新目标没有这类知识,而单个模型只提供少数几个任务。 三个最终内核相对官方基线分别加速3.75、11.17和19.16倍,几何平均9.293,在公开榜上位列79支队伍第7;每个内核的周期数为其峰值的1.11至1.25倍,峰值指仅搬运权重所需的最少周期。
循环把目标知识当作要先建起来的东西:智能体写出带引用的furiosa-opt手册摘要并用脚本和两轮智能体检查核对,用微基准在设备上测量芯片行为,把编译失败和设备发现整理成合法性规则。 工具链和评分器在赛程中途换成furiosa-opt 0.8.1,循环暂停并把内核迁移到新版本后重做了一遍入门流程。 手册摘要的716条引用中683条完全支持其陈述、没有一条与手册矛盾;重做后规则表保留141条合法性规则,其中78条重新验证、16条重写、2条退役、45条因新工具链无法确认或否定而原样保留。
搜索以每个内核的设计树为单位,节点是整核设计或其变体,每个内核只保留一个累积已通过验收测试改动的头部版本,而不是一束备选。 早期循环用束搜索并要求至少3%的增益才接受改动,但多数单次改动增益更小,在ffn上只有1.5%至3%,很少能通过。 循环在设备运行前用廉价检查筛选新设计,变体在设备上竞速;337个由生成器渲染的变体中4个赢得竞速,其中1个通过验收测试。
由于设备共享且读数有噪声,循环用重复比较的验收测试判断候选:候选与头部成对提交,每对间隔一秒并交替顺序,按配对差的统计量决定是否接受。 成对提交原本想抵消共享噪声,但在Arena上同一对两次读数并不相关,因此测试实际起的是平衡顺序下的重复比较作用。 在种子评分器上,头部读数在验收测试内的变异系数中位数为qkv 0.70%、attn_out 0.64%、ffn 0.24%;5至11对的单次测试在无真实增益时约有7%至9%的概率误通过。
启示与展望
结果覆盖一块芯片、一个竞赛和一次运行,涉及三个解码核与两个模型家族;最终内核只在组织方生成的输入上测试,未使用真实模型权重。作者提出的下一步是把“更慢”作为验收结果之一,并设计稳定隔离的测量环境与输入多样的评分器。
作者明确说明未做消融,无法判断循环哪一部分带来了增益,循环也从未在没有知识库的情况下运行,因此入门阶段贡献多少未知。测量噪声究竟来自共享的Arena服务器还是芯片及其软件无法区分;验收测试在无真实增益时误通过率高于名义5%,且实际中没有“更慢”这一结果。峰值只是规划参考而非已证明的界,公开榜排名也不是官方排名。
