核心问题:Agent-Assisted 在五类 GPU kernel 上都胜过 Full-Agent,这证明了 harness 能让 Agent 更会优化,还是说明人工选择的参考实现、搜索方向与验收规则仍是主要优化器?
论文卡片
- 原题: Harness Engineering for LLM-Driven GPU Kernel Generation
- 作者: Yue Shui、Chenyu Ma、Hangfei Xu、Shengzhao Wen、Yanpeng Wang。
- 机构: Baidu, Inc.
- 版本: 2026-07-20,arXiv v1;cs.LG、cs.AI;24 页技术报告。
- 定位: 面向 GPU kernel 生成的 harness-centered 系统研究,以 MLSys 2026 FlashInfer AI Kernel Generation Contest 和 NVIDIA B200 为实验环境,对比人工参与的 Agent-Assisted 流程、LoongFlow PES 驱动的 Full-Agent 搜索与给定 FlashInfer baseline。
- 阅读入口: alphaXiv · arXiv · HTML 全文 · PDF · 代码与实验产物
论文要解决什么问题
语言模型可以写出 CUDA、Triton 或 CuTe kernel,但一次候选生成离“得到可提交的高性能实现”还有很远。候选必须满足接口与打包约束,在指定容器和 GPU 上编译,对全部 workload 保持数值正确,并在有噪声的测量中稳定优于基线。单个 shape 的加速、一次偶然通过或一段看似合理的 profiler 解释,都不足以决定是否保留实现。
论文因此不把重点放在新的生成模型上,而是研究包围模型的 harness:怎样把规格、参考实现、workload、性能剖析、候选历史和晋升规则组织成一个闭环,使 Agent 的提议可以被测量、拒绝、保存和继续改进。
作者强调的结论也相当克制:论文并未证明某个模型可以自主解决 kernel 优化,而是报告一个由人工设计环境和 Agent 候选搜索共同组成的系统。
Harness 怎样组织搜索
系统刻意分开两个层次。
Evaluation harness 是测量层。它负责候选打包与编译、正确性检查、与竞赛协议对齐的 B200 计时、profiler 运行、全 workload 扫描,以及代码和测量产物归档。
Optimization controller 是决策层。它把 NCU 与 Torch Profiler 结果压缩成瓶颈状态,从已有证据中选择一个有限的优化方向,监视停滞、循环和回退,并把成功与失败写入持续记忆。每轮先在少量代表 shape 上与同轮基线配对比较,再对有希望的候选做完整扫描;只有全部 workload 正确且整体延迟改善,候选才会晋升。
这套流程并非自主控制器。论文明确列出人工与 Agent 的分工:人定义平均延迟目标、设计串并行评测器和 profiler 脚本、整理 FlashInfer、DeepGEMM、TensorRT-LLM 等参考资料、选择模型与实现语言、处理平台期并作最终晋升决定;Agent 负责生成候选、解释 profile、提出路线变化和总结失败。所谓 Agent-Assisted,指的正是这种不对称协作。
搜索也不是寻找一个覆盖所有输入的通用 kernel。五类定义包含 19 个 MoE FP8、128 个 DSA top-k、23 个 DSA attention、54 个 GDN decode 和 100 个 GDN prefill workload。系统从真实 workload 轴和延迟分布中划分 shape regime,再为不同区间保留 CUDA、Triton、CuTe 或 Python dispatch 路径。
实验给出了什么证据
实验使用 CUDA 13.2、PyTorch 2.12、Triton 3.6、cupti-python 计时和隔离的 NVIDIA B200 runner。作者把保留的 Agent-Assisted 产物、LoongFlow PES 搜索得到的 Full-Agent 产物和竞赛提供的 FlashInfer baseline 放到相同的最终 workload 集与评测协议下重新比较。
| 算子定义 | Agent-Assisted 延迟 | 相对 FlashInfer | Full-Agent 相对 FlashInfer |
|---|---|---|---|
| DSA Attention | 0.011175 ms | 29.68× | 14.54× |
| DSA top-k Indexer | 0.006893 ms | 18.05× | 3.81× |
| GDN Prefill | 0.051992 ms | 13.70× | 1.03× |
| MoE FP8 | 0.28634 ms | 1.62× | 0.27× |
| GDN Decode | 0.006201 ms | 1.12× | 0.83× |
Agent-Assisted 在五项上都快于 Full-Agent,差距为 1.35–13.25 倍;Full-Agent 的 MoE FP8 与 GDN Decode 甚至慢于给定 FlashInfer baseline。具体收益并非来自同一种技巧:DSA attention 跳过大 shape 分块中的空上半区工作;DSA top-k 分离 scorer 与选择器并按区间选路;GDN prefill 改用 Blackwell chunked CuTe 主路径;GDN decode 则用多个 batch 专用路径换取较小收益。
这些数据支持“人工组织的搜索闭环产生了更好的最终产物”。但它们不能单独说明差距由哪一个因素造成。Agent-Assisted 同时获得人工参考筛选、模型与语言切换、shape dispatch 设计、平台期干预和最终晋升判断;论文没有在相同模型调用数、B200 时间、参考资料和人工介入程度下逐项消融。Full-Agent 各任务的搜索轮数也不同,从 10 到 40 次不等。因此,这不是一个只改变 harness、其余条件严格受控的因果实验。
一次低次数验证遗漏的错误
论文最重要的反例来自 DSA top-k。搜索阶段为控制 B200 成本,使用代表性 gate 和低次数完整扫描;公开 FlashInfer-Bench 配置的默认正确性预算是每个 workload 随机试验 3 次。提交后,高次数重放发现一个接近 top-k 边界的罕见数值错误。
同一可疑 workload 在官方风格的 3 次试验中得到 0/3 错误,但在两轮各 100 次的重放中出现 3/200 错误;另一早期 tag 出现 6/100。按观测到的 3/200 错误率估算,3 次验证发现至少一次错误的概率只有约 4.4%,100 次才约 77.9%。保守 fallback 在两组可疑 workload 的不同试验预算下累计 0/1206 错误。
作者没有把低次数产物改写成已经完全可靠的结果:表 3 为保持比较一致,仍报告原先的低次数产物;附录把高次数重放与保守 fallback 分开,并把可疑 DSA top-k regime 的高次数重放加入最终验证政策。这一事件说明 harness 不只是帮助 Agent 搜索,也决定“什么证据足以被当作正确”。加快内循环的验收规则可能同时提高搜索吞吐量和错误候选被晋升的概率。
证据边界
第一,论文评估的是完整 Agent-Assisted 工作流,而不是隔离的 LLM,也不是纯粹的 harness 组件。五项结果属于模型、人工知识、参考代码、评测器、硬件预算和晋升政策组成的系统。作者把这一点列为主要局限。
第二,表 3 使用“平均 FlashInfer 延迟除以平均候选延迟”的 ratio-of-means,便于横向展示,但它不是竞赛的正式得分。正式指标先对每个 workload 计算延迟比再平均,并以整项正确性作为门控;两种聚合会对 shape 权重产生不同影响,甚至可能改变方法排序。报告值也是本地、与官方协议对齐的 B200 结果,不是未公开的最终排行榜成绩。
第三,Full-Agent 的最终产物在相同 workload 和评测协议下重测,但搜索过程没有形成严格等预算对照。论文证明了两条已运行流程最终表现不同,尚未证明只要加入某一项 skill、memory 或人工反馈就会产生多少增益。
第四,五类 workload 都来自同一场竞赛。harness 中哪些原则可以跨算子、硬件和评测制度保持有效,哪些只是对 FlashInfer 与 B200 的专门适配,仍需更广泛证据。
重点读哪里
先读 §1–§3 与算法 1,辨认 evaluation harness、optimization controller、人工决策和 Agent 生成各自负责什么;再读 §4 与表 3,注意正式竞赛指标和论文 ratio-of-means 的区别。随后选读 §5.1 的五个 kernel 个案,理解性能提升为什么来自不同 shape regime;最后细读 §6、附录 A–B 与附录 E,核对 Full-Agent 搜索轨迹、人与 Agent 贡献矩阵,以及低次数正确性验证遗漏错误的证据。
思想启发
以下是由论文引出的理解角度,不是作者额外验证过的结论。
这项研究把“Agent 能力”从模型属性改写成系统属性。候选生成只是其中一环;参考资料决定可见的设计空间,profiler 摘要决定反馈语言,workload 划分决定优化对象,晋升规则决定哪些候选成为历史。一个最终 kernel 的性能,很难再被简单归因于某个模型独立拥有的优化能力。
同时,harness 不是中性的容器。它把可承受的错误概率、评测成本和搜索速度编码为政策。DSA top-k 事件尤其说明:当罕见失败只能通过更多随机试验暴露时,“正确性 gate”并非绝对判断,而是有统计功效和计算预算的抽样程序。更快的闭环与更强的正确性保证之间存在论文没有消除的张力。
三个思考问题
1. Agent-Assisted 的优势能归因于 harness 吗?
当人工同时控制参考实现、模型选择、实现语言、shape dispatch、平台期干预和最终晋升时,哪部分仍应被称为 Agent 的优化能力,哪部分其实是专家知识换了一种表达形式?
展开思考线索
最终评测对齐只能说明产物之间的性能差异,不能自动给出差异的因果来源。若要分离贡献,需要在相近搜索预算下逐步固定或移除参考资料、人工 steering、controller memory 和晋升政策;但这些组件彼此依赖,简单消融也可能破坏完整闭环。论文更有力地证明了“这个组合有效”,而不是“harness 单独造成了多少提升”。
2. 三次随机试验通过时,“正确”究竟意味着什么?
如果一个实现只在接近 top-k 边界的稀有输入上失败,正确性 gate 应保证零错误、把未发现错误的概率压到某个阈值,还是只需与搜索阶段可承受的风险相匹配?
展开思考线索
3/200 的观测说明错误稀少但不为零,也说明固定三次抽样很可能漏检。无限增加试验不可行,而且未观察到错误也不能证明错误概率为零。可以区分探索 gate 与发布 gate,并根据数值边界、算子风险和历史异常分配不同预算;但这样一来,harness 还需要解释风险阈值为何合理,以及自适应抽样是否会遗漏未知的失败模式。
3. 哪一种聚合才代表“更快”?
ratio-of-means、逐 workload 加速比的平均值,以及带整项正确性门控的正式得分,会给不同 shape 不同权重;当它们结论不一致时,应该相信哪一个?
展开思考线索
ratio-of-means 更强调绝对耗时较大的 workload,逐项比值平均则让每个 workload 拥有相近权重;正式门控又会把一个正确性失败扩散为整项零分。三者回答的不是同一个问题:总体时间、跨 shape 的典型相对收益,以及竞赛规则下的可接受提交。论文明确区分了报告指标与正式得分,但只展示一种主表,使读者仍无法判断排序对聚合方式有多敏感。