这条推文背后的故事比它说的更疯狂
几天前,NVIDIA 的 Terry Chen 在推特上发了一段话,大意是:
"这可能是软件领域超人类智能的第一个真实信号。在一些已经被极限优化的 attention 工作负载上,Agent 现在可以通过连续搜索 7 天,在优化循环中完全无需人类干预,超越几乎所有的人类 GPU 专家。"
他还提到一个概念叫 "blind coding"(盲编码) ——他和同事 Bing Xu 一年半前开始在 NVIDIA 做 Agent 编码时,两人都不懂 GPU 编程,所以从第一天起就被迫走向完全自动化、人类不介入的系统设计。从第二代 Agent 系统开始,系统就已经在自我进化了。每个 Agent 的代码量大约 10 万行非空代码。
配合的论文叫 AVO: Agentic Variation Operators for Autonomous Evolutionary Search,来自 NVIDIA,3 月 25 日刚挂上 arXiv。
我读完全文后的感受是——这篇论文的意义不在于那几个百分点的性能提升。它的意义在于:AI 第一次在软件工程的"最后一公里"——已经被世界顶级专家反复手工打磨过的代码——上,通过完全自主的迭代优化,超越了人类的极限。
这篇文章是我的完整拆解。
第一部分:理解这件事为什么困难到令人窒息
Attention 内核:GPU 编程的"最后一公里"
要理解 AVO 为什么令人震惊,你必须先理解它选择挑战的对象有多难。
Attention 是 Transformer 架构的核心运算——每一个 LLM 的每一次推理都在跑它。因为它太重要了,全世界最顶尖的 GPU 工程师已经花了好几年在极限优化这个东西。
FlashAttention 从 v1 到 v4,四代迭代,每一代都是顶级论文。NVIDIA 自己的 cuDNN 库里的 attention 实现,是由他们内部最资深的 kernel 工程师手工打磨出来的闭源代码。FlashAttention-4 和 cuDNN 在最新的 Blackwell 架构上的优化各花了数月时间。
这不是"从零写一个能跑的程序"——那个 AI 早就能做了。这是"在全世界最好的工程师已经把性能挤到接近硬件物理极限的代码上,再往上挤出几个百分点"。
要做到这件事,你需要:研读硬件文档理解 Blackwell 的微架构、分析 profiler 输出找到瓶颈、设计优化策略、实现修改、编译测试、诊断正确性问题、根据结果调整方案——整个过程需要反复迭代,每一步都需要深厚的硬件工程专业知识。
这就是 AVO 做的事情。自主运行 7 天,没有任何人类干预。
第二部分:AVO 的核心思想——从"候选生成器"到"变异算子"
先理解前辈们做了什么
在 AVO 之前,已经有一些用 LLM 加速进化搜索的工作——最有名的是 Google 的 FunSearch 和 AlphaEvolve。
这些系统的工作方式是这样的:维护一个"种群"(一组候选方案),然后反复执行"选择→生成→评估"的循环。LLM 参与的环节是生成——从选出的"父代"方案出发,让 LLM 生成一个新的候选方案。
但关键限制在于:LLM 在这些系统里只是一个"候选生成器" 。它被局限在一个固定的流水线里——每次调用只能做一次性的输入输出,不能主动查阅参考资料,不能测试自己的改动,不能解读反馈,不能修正方案。选择策略、评估协议、种群管理、操作顺序——全部由框架预先决定,LLM 没有发言权。
用论文的话说:这就像把一个极其聪明的顾问关在一个小隔间里,每次只能看到你递进来的一张纸,写一个回答就交回去,完全不知道上下文也不能追问。
AVO 的范式转变
AVO 做了一件在概念上极其简单但意义深远的事——把 LLM 从"候选生成器"提升为"变异算子"本身。
以前的公式是:
Vary(P) = Generate(Sample(P))
LLM 只参与 Generate。Sample 是固定算法。
AVO 的公式是:
Vary(P) = Agent(P, K, f)
整个变异过程由一个自主 Agent 执行。Agent 可以访问所有历史方案 P、领域知识库 K(CUDA 编程指南、PTX 指令集文档、Blackwell 架构规格、FlashAttention-4 源码)、以及评估函数 f。
Agent 自己决定什么时候查资料、什么时候改代码、什么时候测试。 它不是在一个固定流水线里做单次生成,而是运行一个完整的 Agent 循环:规划→实现→测试→调试→重新规划——直到产出一个通过正确性检查且提升性能的新版本。
一次变异步骤可能涉及几十次内部动作——比较多个历史实现的 profiling 特征、查阅文档理解硬件约束、实现候选优化、测试结果、诊断失败原因、修正方案。这种迭代深度是单次 LLM 调用完全做不到的。
第三部分:7 天 40 个版本——进化轨迹里看到了什么
数字本身
在 NVIDIA Blackwell B200 GPU 上,AVO 从一个种子程序出发,连续自主进化 7 天,产生了 40 个提交版本。期间内部探索了超过 500 个候选优化方向——大部分因为正确性检查失败或性能没有提升而被丢弃。
最终的多头注意力(MHA)内核达到了 1668 TFLOPS(BF16 精度),在因果注意力的所有测试配置上超越 cuDNN 最高 3.5%,超越 FlashAttention-4 最高 10.5%。
而且这些优化可以迁移——把 MHA 内核适配到分组查询注意力(GQA)只需要额外 30 分钟的自主调整,性能提升最高 7.0%(vs cuDNN)和 9.3%(vs FA4)。
进化轨迹的三个模式
论文展示了完整的 40 个版本的性能进化曲线,观察到了三个有趣的模式:
模式一:探索规模远超人类。 40 个提交版本只是冰山一角。背后是 500+ 个被探索但未成功的优化方向。每一个方向都需要阅读文档、实现修改、编译、测试、分析 profiler 输出。这个工作量远超一个人类工程师在同样时间内能完成的。
模式二:离散跳跃而非渐进改善。 性能不是匀速提升的——它呈现出"跳跃-平台-跳跃"的阶梯状模式。五个最大的跳跃对应五个架构级的拐点(后面会详细分析)。平台期的版本在做细粒度的微调,虽然不改变可测量的性能,但在为下一次跳跃积累结构性改进。
模式三:收益递减。 前 20 个版本带来了最大的绝对增益,后 20 个版本的增益更小但仍在累积。这和 kernel 优化的普遍规律一致——早期捕获粗粒度收益,后期在周期级调度和资源分配上挤出最后的空间。
自我监督:解决 Agent 卡住的问题
7 天不间断运行,Agent 不可避免地会遇到瓶颈——当前的优化路线走不通了,或者陷入了反复失败的循环。
AVO 设计了一个 **Supervisor Agent(监督者 Agent)**来处理这种情况。它监控主 Agent 的进展,当检测到停滞时,回顾整个进化轨迹,然后引导主 Agent 转向新的候选优化方向。
这种"Agent 监督 Agent"的双层设计确保了 7 天内的持续前进,而不是在某个局部最优解上耗尽时间。
第四部分:Agent 发现的优化——这不是表面的代码变换
这是整篇论文最让我信服的部分。作者详细分析了三个代表性优化,每一个都需要同时推理多个硬件子系统——同步与内存序、流水线调度、寄存器分配——而不是孤立地调一个参数。
优化一:无分支累加器缩放(版本 20)
瓶颈:在 online softmax 算法中,处理每个新的 key 块时,行最大值可能变化。如果变了,输出累加器需要重新缩放。v19 用了条件分支——先检查是否需要缩放,不需要就跳过。但这个分支在 key 块循环的每次迭代中都引入了 warp 同步开销,而且阻止了使用更轻量的内存屏障。
Agent 的做法:v20 中,Agent 用无分支的推测路径替换了条件分支。缩放因子总是被计算出来,当不需要缩放时用一个 predicated select 替换为 1.0。乘以 1.0 的代价可以忽略,但它消除了分支带来的同步开销。更关键的是——消除分支后,Agent 还能用更轻量的非阻塞内存屏障替换原来的阻塞屏障。
效果:非因果注意力 +8.1% ,因果注意力 +1.6%。这是整个 7 天进化中最大的单次优化。
优化二:校正/MMA 流水线重叠(版本 30)
瓶颈:注意力流水线并行处理两个 Q-tile(双 Q 阶段设计),每个都需要 PV GEMM 后跟校正 warp 的输出归一化。v29 中,校正 warp 必须等两个 PV GEMM 都完成才能开始归一化任何一个阶段的输出——第二个 GEMM 期间校正 warp 在空转。
Agent 的做法:v30 中,Agent 重构了流水线——让校正 warp 在第一个阶段的 PV GEMM 一完成就开始归一化,与第二个阶段的 PV GEMM 重叠执行。顺序依赖变成了流水线执行。
效果:非因果 +1.1%,因果 +0.4%。
优化三:跨 warp 组的寄存器再平衡(版本 33)
瓶颈:Blackwell 每个 SM 有 2048 个 warp 寄存器的固定预算。v32 沿用了 FA4 的分配方案:192 给 softmax warps,80 给校正 warps,48 给其余 warps。Profiling 发现校正 warp 组因为只有 80 个寄存器而在向慢速本地内存溢出,而 softmax 组有大量余量。
Agent 的做法:v33 中,Agent 把 softmax 组的 8 个寄存器分别转移给另外两组,变成 184/88/56 的分配。这个再分配是可行的,因为 AVO 的 softmax 实现用了小片段和打包算术,峰值寄存器使用量低,184 个寄存器仍然绰绰有余。校正 warp 组拿到 88 个寄存器后,溢出到本地内存的值更少,stall 减少。
效果:非因果 +2.1%,因果约 0%。
为什么这些优化意义重大
这三个优化不是"让 AI 改改变量名"或者"调调循环顺序"的表面变换。它们每一个都需要:
- 通过 profiling 识别出性能瓶颈在哪里
- 理解底层硬件的具体行为(warp 同步机制、内存屏障语义、寄存器溢出代价)
- 设计一个同时改变多个子系统交互方式的优化方案
- 实现修改并验证正确性
这是真正的硬件级工程推理,不是模式匹配。
第五部分:从 AVO 到"盲编码"——更大的叙事
VibeTensor:前传
AVO 不是凭空出现的。Terry Chen 推文中提到的"1.5 年、4 代 Agent 系统"有一个重要的公开节点——2026 年 1 月发布的 VibeTensor。
VibeTensor 是一个完全由 AI Agent 生成的深度学习系统软件栈——不是一个小工具,而是一个包含 C++20 核心、Python 绑定、autograd 引擎、CUDA 运行时、流式缓存分配器的完整运行时。类似 PyTorch 的功能,但每一行代码都是 Agent 写的。
Terry Chen 在 LinkedIn 上说了一句很有意思的话:"自从 2025 年夏天以来,我没有自己写过一行代码。"
VibeTensor 展示了一个他称之为"弗兰肯斯坦效应"的现象——系统是正确的,但一些关键路径的设计方式低效,性能无法与 PyTorch 相比。这说明当时的 Agent 能写出"正确但不优雅"的代码。
而 AVO 的意义在于——它证明了 Agent 不仅能写正确的代码,还能把代码优化到超越人类专家的水平。从"能写"到"写得比人好",这是一个质的跨越。
"盲编码"的含义
Terry Chen 提出的"blind coding"概念很重要。它不是"vibe coding"(让 AI 帮你写代码)——它是完全不看代码的软件工程。
在 AVO 的 7 天进化中,没有人类审查过 Agent 生成的任何一行 CUDA 或 PTX 代码。人类甚至不需要理解 Agent 做了什么——系统通过自动化的正确性检查和性能测试来验证一切。
这和当前 vibe coding 的主流实践——"AI 生成代码但人类审查"——有根本区别。blind coding 的主张是:人类认知才是瓶颈,完全自动化是未来的方向。
这是一个大胆的判断。在大多数场景下,这个判断可能还为时过早。但在 AVO 的特定场景中——高度结构化的优化任务,有明确的正确性标准和性能指标——它确实成立了。
第六部分:能力边界和冷静的思考
AVO 没有公开太多信息
论文有几个重要的信息缺失:
Agent 本身的细节。 论文只说"使用了内部开发的通用编码 Agent,由前沿 LLM 驱动",没有透露用了哪个 LLM、Agent 的具体架构、工具集配置。这意味着外部很难复现。
计算成本。 7 天连续运行一个前沿 LLM Agent,加上反复编译和在 B200 GPU 上测试——这个成本是多少?论文没有说。对于大多数组织来说,这可能是一个不可忽视的数字。
只在 attention 上验证。 Attention 是一个有明确性能指标(TFLOPS)、明确正确性标准(数值匹配)、丰富参考实现(FA4 源码)的理想场景。在更模糊的工程任务上——比如设计 API、做架构决策、写业务逻辑——AVO 的方法是否适用,还完全未知。
和 AlphaEvolve 的关系
论文把自己定位为 FunSearch 和 AlphaEvolve 的下一步。核心区别已经说清楚了——从"LLM 做候选生成"到"Agent 做完整变异"。但有几个值得注意的对比:
AlphaEvolve 是 Google 的工作,用的是种群进化(MAP-Elites 岛模型),维护多条进化分支。AVO 在本文中只研究了单谱系(single-lineage)设置——一条进化链,没有并行分支和归档管理。论文明确说种群级的分支和归档管理留待未来工作。
这意味着 AVO 的潜力可能还没有被完全释放——加入多谱系进化之后,搜索效率可能进一步提升。
对行业的真实影响
短期影响有限但方向清晰。 AVO 的具体实现是 NVIDIA 内部的,不开源。但它展示的范式——用自主 Agent 做持续优化——会被整个行业消化吸收。
对 kernel 工程师的影响是渐进的。 不会一夜之间取代人类。但 AVO 证明了一件事:在有清晰评估标准的优化任务上,Agent 可以在7天内做到人类几个月才能做到的事。这意味着 kernel 工程师的角色会从"手动优化"转向"设计 Agent 的搜索空间和评估标准"。
对 AI 基础设施成本的影响是深远的。 如果 attention 内核的性能提升 3-10%,意味着同样的硬件可以做更多推理,或者同样的推理量需要更少的硬件。在 AI 基础设施投资数以百亿美元计的今天,这个百分比翻译成金钱是一个很大的数字。
第七部分:更宏观的判断——我们正在见证什么
读完这篇论文和 Terry Chen 的推文,我形成了三个判断。
第一个判断:AI 在"最后一公里"优化上达到超人类水平是可验证的事实了。 不是在合成基准上,不是在模糊的"创造力"评估上——而是在真实硬件上的 TFLOPS 数字上。cuDNN 是 NVIDIA 自己最好的工程师写的闭源优化代码,AVO 超越了它。这不是"AI 可能在某些情况下匹配人类"——这是"AI 在最极限的优化竞技场上,在人类最强选手已经尽力之后,又往上推了一步"。
第二个判断:"blind coding"在特定条件下是成立的,但条件很苛刻。 AVO 成功的场景有三个关键特征:(1)有客观、自动化的评估标准(正确性+TFLOPS),(2)有丰富的领域知识可供 Agent 查阅(PTX 文档、FA4 源码),(3)优化空间虽然巨大但有明确边界(CUDA kernel 的可能修改方式是受限的)。在缺乏这些条件的场景——比如产品设计、架构决策、跨团队沟通——blind coding 还远远不成立。
第三个判断:进化搜索 + 自主 Agent 的组合会成为"难以手动优化的复杂系统"的标准工具。 不只是 GPU 内核——编译器优化、数据库查询计划、网络协议参数调优、芯片布局设计——任何有明确评估函数且搜索空间太大以至于人类无法穷举的领域,都可能受益于这种范式。AVO 论文最后一段也暗示了这一点:它指向了"超越 attention 内核的自主优化之路"。
最后的话
写完这篇文章,我脑子里一直在转一个画面:一个 AI Agent 在凌晨 3 点独自看着 profiler 输出,发现了一个人类工程师可能要再花三周才能意识到的寄存器溢出瓶颈,然后悄悄改了 8 个寄存器的分配,提交了一个性能提升 2.1% 的版本。
没有人看到它做这件事。没有人审查它的代码。没有人告诉它该怎么做。
而它的下一步,是继续找下一个百分点。
这就是 blind coding。
评论区见。特别好奇做 CUDA 开发的同学怎么看这件事——你们觉得 Agent 什么时候能完全接管 kernel 优化的工作?
论文与资源
- AVO 论文:arxiv.org/abs/2603.24517(2026 年 3 月 25 日)
- VibeTensor 论文:arxiv.org/abs/2601.16238(2026 年 1 月)
- VibeTensor 代码:github.com/NVlabs/vibetensor
- FlashAttention-4 论文:arxiv.org/abs/2603.05451
- AlphaEvolve(对比参照) :arxiv.org/abs/2506.13131