KernelEvolve: Scaling Agentic Kernel Coding for Heterogeneous AI Accelerators at Meta
KernelEvolve 是一个智能体框架,它能够自动化地为各类异构 AI 加速器上的多样化深度学习推荐模型生成并优化高性能算子,在显著减少开发时间的同时,确保正确性并提供优于现有基准的实质性性能提升。
原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明
以下是关于 KernelEvolve 论文的解释,已将其翻译为中文,保留了原有的简单语言风格与创意类比。
核心问题: “翻译”噩梦
想象一下,Meta 正在运行一个庞大的全球广告系统。为了向你展示最完美的广告,这个系统每天必须进行数十亿次的复杂数学运算。这些数学运算是由被称为 AI 加速器(如 NVIDIA GPU、AMD GPU 以及 Meta 自研的 MTIA 芯片)的专用计算机芯片完成的。
然而,存在一个巨大的问题:这些芯片使用的“语言”各不相同。
- NVIDIA 芯片说的是 “CUDA”。
- AMD 芯片说的是 “ROCm”。
- Meta 的定制芯片说的是一种独特的 “Triton” 方言。
此外,广告所需的“词汇”(数学运算)极其多样化。有些是标准数学(如乘法),但也有许多是针对广告业务的、奇特的定制任务,比如对用户历史记录进行排序或进行哈希处理。
旧的方法:
为了让广告运行得更快,人类工程师必须为每一种数学任务在每一种类型的芯片上,手动编写特定的“翻译”(即 Kernel/算子)。
- 类比: 想象你是一名厨师,正试图为 1,000 名宾客提供餐点,但每位宾客都说着不同的语言,且有着不同的饮食习惯。你必须为每一位宾客手动编写一份独特的食谱,并将其翻译成不同的语言。如果你漏掉了一个翻译,那位宾客就吃不到饭。如果你想更换菜单(更新 AI 模型),你就必须从头开始重写所有 1,000 份食谱。这需要耗费数周时间,不仅容易出错,而且成本极高。
解决方案:KernelEvolve(“超级翻译官”机器人)
这篇论文介绍了一种名为 KernelEvolve 的 AI Agent 系统,它实现了这一过程的全自动化。KernelEvolve 不再依赖人类编写代码,而是像一个不知疲倦、聪明绝顶的机器人厨师,能够瞬间学会任何语言,并为任何宾客准备出完美的食谱。
以下是它的工作原理,分步骤详解:
1. “树搜索”(尝试多种路径)
当 KernelEvolve 需要解决一个数学问题时,它不会只尝试一次。它使用 树搜索 (Tree Search) 技术。
- 类比: 想象你正在尝试寻找穿越巨大迷宫的最快路径。人类可能会尝试一条路径,撞墙后就放弃了。而 KernelEvolve 就像一群蚂蚁。它同时派出成千上万个“探险者”。有些向左走,有些向右走。如果某个探险者撞到了墙(代码报错),它就会停止;如果某个探险者找到了捷径(更快的计算方式),它就会标记这条路径为“优选”,并引导更多蚂蚁沿着这条路前进。
- 它通过不断重复这个过程,从每一个死胡同和每一次成功中学习,直到找到绝对最优的路径。
2. “记忆库”(从过去中学习)
KernelEvolve 拥有一个庞大且有序的笔记库,称为 持久知识库 (Persistent Knowledge Base)。
- 类比: 如果你要修理漏水的水龙头,你不会瞎猜,而是会查阅说明书。KernelEvolve 也是如此,只不过它的说明书非常宏大。其中包含了针对每种芯片(NVIDIA、AMD、MTIA)的具体指令。
- 神奇之处: 即使对于 Meta 的定制芯片 MTIA(由于太新,此前从未被任何 AI 见过),KernelEvolve 也拥有一套注入到其库中的特殊“说明书”。它通过阅读这些笔记,学习该芯片独特的特性,从而编写出专门针对该芯片的代码。这使得它能够在那些在公开互联网数据中并不存在的硬件上运行。
3. “自我修正循环”(自我调试)
一旦机器人写好了一段代码,它并不会盲目信任。它会运行一个 自我修正循环 (Self-Correction Loop)。
- 类比: 机器人写好了一份食谱,烹饪了菜肴,然后进行了品尝。
- 口味测试(正确性): 味道和原版一样吗?(数学计算结果是否符合预期?)
- 速度测试(性能): 烹饪速度比旧方法快吗?
- 修复: 如果菜肴太咸了(运行太慢)或者味道不对(数学错误),机器人会分析“为什么”。它会查看“厨房日志”(性能分析数据/Profiling Data),看看是火候太大了,还是食材混合错了。然后,它会重写食谱并再次尝试。
- 它针对单个任务会重复这个循环数百次,不断精炼代码,直到达到完美。
4. “远程厨房” (FaaS)
为了测试这些食谱,机器人需要使用真实的、昂贵的芯片。
- 类比: 机器人(大脑)住在标准的办公电脑里。而芯片(烤箱)则在另外一个高科技厨房里。机器人不需要亲自走到厨房,等待烤箱空闲后再走回来,它只需将食谱发送给 远程厨房服务 (FaaS)。远程厨房负责烹饪菜肴,并将结果瞬间传回。这使得机器人可以同时测试成千上万个食谱,而不会因为等待烤箱而停滞不前。
结果:为什么它很重要
论文声称 KernelEvolve 是一个游戏规则的改变者,原因有三:
- 速度: 它将创建这些专门化代码的时间从 数周缩短到了数小时。
- 性能: 它生成的代码极其高效。在测试中,它让 AI 的运行速度提升了 1.2 到 17 倍。
- 示例: 对于特定的数据排序任务,它的速度提升了 9.8 倍。对于 Meta 定制芯片上的特定数学运算,速度提升了 17 倍。
- 可靠性: 它通过了 100% 的正确性测试。它不仅让运行变快,还确保了数学逻辑在每一次都完全正确。
总结
KernelEvolve 是一个 AI 系统,它自动化了为不同 AI 芯片编写、翻译计算机代码这一枯燥、困难且昂贵的工作。通过使用“尝试并学习”策略(树搜索)、庞大的硬件规则库(知识库)以及自我修正循环,它能在短短几小时内生成用于 Meta 广告系统的极速代码,而不是耗费数周。这使得整个系统的运行更加快速且成本更低。
您所在领域的论文太多了?
获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。