← 最新论文
🤖 AI

AI-PROPELLER: Warehouse-Scale Interprocedural Code Layout Optimization with AlphaEvolve

AI-PROPELLER 引入了一种名为 Magellan 的智能体工作流,该工作流通过演进 Propeller 链接后优化器,实现了针对大规模仓库级应用的首次成功的细粒度过程间代码布局优化,通过利用真实的硬件执行来获取精确的奖励信号,从而实现了 0.23% 到 1.6% 的性能提升。

原作者: Chaitanya Mamatha Ananda, Rajiv Gupta, Mircea Trofin, Aiden Grossman, Sriraman Tallam, Xinliang David Li, Amir Yazdanbakhsh

发布于 2026-06-02
📖 1 分钟阅读☕ 轻松阅读

原作者: Chaitanya Mamatha Ananda, Rajiv Gupta, Mircea Trofin, Aiden Grossman, Sriraman Tallam, Xinliang David Li, Amir Yazdanbakhsh

原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明

想象一下,你拥有一个规模宏大、极其复杂的图书馆(一个计算机程序),里面有数百万本书(函数)和数十亿页内容(代码指令)。多年来,图书管理员(优化器)一直试图重新排列书架上的书籍,以便更容易查找。

过去的方法就像是每次只整理一个书架。如果一本书有 100 个章节,管理员就会重新排列这些章节,让最受欢迎的章节紧挨在一起。这被称为**过程内(intraprocedural)**优化。这确实有所帮助,但它错失了一个巨大的机会:如果“书 A”中最受欢迎的章节紧接着就是“书 B”中最受欢迎的章节,而这两本书却在图书馆的两端,读者(计算机处理器)就不得不跑遍整个房间去翻页,从而浪费时间和精力。

AI-PROPELLER 是一个新的、超级聪明的图书管理员系统,它通过一次性重新排列整个图书馆来解决这个问题,而不是一次只处理一个书架。

以下是它的工作原理,通过简单的概念进行分解:

1. 问题所在:“组合”噩梦

重新排列一本书很难。但要重新排列数百万本书,使得每一个热门页面都紧挨着它之后的那个页面(即使那个页面在另一本书里),这是一个如此庞大的数学问题,以至于人类大脑和传统计算机都无法解决。这就像是在为一个拥有 10 万人的体育场寻找完美的座位安排,每个人都想坐在最好的朋友旁边,但这些朋友却散落在不同的区域。

此外,旧有的图书管理员使用“猜测”(静态模型)来决定放置位置。他们并没有实际测试这种排列方式,只是计算了“应该”如何运作。

2. 解决方案:AI 智能体(Magellan)

研究人员使用了一个名为 Magellan 的系统,它扮演着一个不知疲倦、具有实验性质的机器人团队。这个团队有两个主要成员:

  • 架构师 (AlphaEvolve): 一个 AI,负责编写并重写排列书籍的规则。它会尝试新的想法,比如“如果我们把书 A 分成三部分,并将中间部分放在书 B 旁边会怎样?”
  • 调优器 (Vizier): 一个用于微调规则中具体数值的工具(例如“书与书之间可以隔多远?”)。

3. 秘诀:实测验证(拒绝猜测)

这是最重要的部分。AI 不仅仅是猜测一种排列方式是否好,它实际上构建了这个图书馆并对其进行了测试。

  • AI 创建了一种新的代码排列方式。
  • 它将程序编译成一个真实的、可运行的二进制文件(就像构建软件的新版本一样)。
  • 它在真实的计算机硬件上运行这个新版本。
  • 它使用真实的性能计数器(就像秒表和油表一样)精确测量运行速度。

这给了 AI 一个“奖励信号”。如果新的排列方式更快,AI 就会获得一颗金星并学习更多此类操作;如果变慢了,它就会学习避免这个错误。因为它们是在受控环境下在真实硬件上进行的测试,所以结果极其精确,而不仅仅是理论上的。

4. 结果:微小的增益,巨大的影响

论文在大型、现实世界的软件上测试了该系统,包括 LLVM Clang 编译器(一种用于构建其他软件的工具)和一个巨大的 Google 搜索服务。

  • Clang 编译器: 新系统使其速度提升了 1.6%
  • Google 搜索服务: 它使搜索服务速度提升了 0.23%

你可能会想:“0.23% 算不了什么!”但在大规模数据中心的世界里,这就像是发现了一座隐藏的金矿。如果每天在数十亿次搜索中节省 0.23% 的时间,就能节省数百万美元的电力和服务器成本。这就像是跑步者完成比赛的时间从 9.58 秒缩短到 9.56 秒——这微小的差距就是世界纪录与亚军之间的距离。

5. 它的实际运作方式(“拆分”技巧)

论文强调了 AI 发现的一个特定技巧。

  • 旧方法: 如果一个函数(一段代码)有一个“热点”(频繁使用)部分和一个“冷点”(很少使用)部分,旧系统会将该函数分成两部分:热点部分放在一个书架,冷点部分放在另一个书架。
  • AI-PROPELLER 方式: AI 意识到,有时一个函数需要被拆分成三个或更多部分。它发现,即使是在不同的文件中,函数 A 的一个特定“热点”块也应该紧挨着函数 B 的一个“热点”块。它本质上是将代码切割成微小、精确的拼图碎片,然后重新组装,使得最常使用的部分无论原本属于哪本书,都能始终紧密相连。

总结

AI-PROPELLER 是第一个成功利用 AI 在跨越函数边界的情况下,重新排列大规模工业级软件内部代码的系统。它不只是在猜测;它构建、测试并从真实硬件中学习。通过这样做,它从那些已被认为“完美优化”的软件中榨取出了额外的性能(0.23% 到 1.6%),证明了即使在成熟的系统中,只要你不再只看局部而是观察全局,依然能找到隐藏的速度潜力。

您所在领域的论文太多了?

获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。

试用 Digest →