KForge: LLM-Driven Cross-Platform Kernel Generation for AI Accelerators
KForge 是一个跨平台框架,它利用两个协作的 LLM 智能体来迭代生成并优化高性能内核,从而在 NVIDIA B200 和 Intel Arc B580 硬件上,相比现有的手工调优和编译器优化基准,实现了显著的吞吐量提升。
原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明
想象一下,你正在经营着一家规模宏大、高速运转的快递服务公司。你的车队并非只有一种车型,而是由穿梭于城市街道的小型踏板车、驰骋在高速公路上的重型半挂卡车,以及用于生态区的电动货车组成的混合车队。每种车辆都完美契合特定的任务,但它们使用的语言各异,引擎规则也各不相同。
在人工智能(AI)的世界里,情况正是如此。AI 系统正在变得“具有代理性”(agentic),这意味着它们不仅是回答一个问题,而是将任务分解为多个步骤,使用工具,并与其他 AI 智能体进行协作。其中某些步骤需要繁重的数学计算(就像一辆半挂卡车),而另一些步骤则需要快速、轻量级的思考(就像一辆踏板车)。为了让整个系统保持高效,你需要将每个步骤运行在最适合它的特定计算机芯片(加速器)上。
问题所在:翻译噩梦
难点在于,为这些不同的芯片编写“引擎代码”(称为内核/kernels)极其困难。这就像是试图同时为法拉利、拖拉机和摩托车编写使用手册,但这些手册是用不同的语言(如 CUDA、Metal、SYCL 等)编写的。
- 旧方式: 人类专家花费数年时间手工编写并微调这些代码。这种方式速度慢、成本高,且难以扩展。
- 新问题: 即便我们尝试利用 AI 来编写这些代码,它也经常失败。AI 可能会写出看起来正确但会导致引擎崩溃的代码,或者它写的代码能在 NVIDIA 芯片上运行,但在 Intel 芯片上却完全失效。
解决方案:KForge(AI 机械师团队)
这篇论文介绍了 KForge,这是一个全新的系统,它扮演着一支由两名专门的 AI 机械师组成的团队,通过协作来自动修复并优化这些引擎。
KForge 并没有让一个 AI 尝试完成所有工作,而是将任务进行了拆分:
- 生成器(构建者): 这个 AI 负责编写代码。如果代码崩溃或无法编译,它会收到“红灯”信号并尝试重新编写,同时修复错误。
- 分析器(调优者): 一旦代码可以运行,这个 AI 就会观察“仪表盘”(性能剖析数据)。它能发现诸如“这个引擎正在浪费燃料”或“轮子转速过快”之类的问题。它会向“构建者”提供具体的指令,指导其如何微调代码以实现更快的速度。
它们在一个循环中工作:构建 → 测试 → 分析 → 微调 → 重复。 这个过程会一直持续,直到代码不仅运行正确,而且速度极快。
结果:两场不同的比赛
作者在两种截然不同的场景下测试了 KForge,以观察其表现如何:
比赛 1:重量级冠军(NVIDIA B200)
在这里,KForge 必须与一套经过 NVIDIA 工程师多年打磨的成熟代码库(TensorRT-LLM)竞争。这就像是一个新手机械师试图击败一支一级方程式赛车(F1)的顶级维修团队。- 结果: KForge 成功榨出了 2.12% 的速度提升。在高性能计算领域,哪怕仅仅超越冠军 1% 也是一件了不起的事情。这就像是在打破世界纪录的圈速中又缩短了零点几秒。
比赛 2:新赛道(Intel Arc B580)
在这里,并没有所谓的“冠军”可以去挑战。硬件是全新的,也没有现成的、高性能的代码可以借鉴。KForge 必须从零开始构建引擎。- 结果: KForge 生成的代码比目前该芯片上现有的标准、未优化代码快了 5.13 倍。它本质上是在原本只有一个缓慢、基础引擎的地方,赋予了一个强大且全新的引擎生命。
为什么这很重要
论文指出,随着 AI 变得越来越复杂,我们不能依赖人类为每一个新芯片手动编写代码。KForge 展示了 AI 团队可以做到:
- 在不同的硬件品牌(NVIDIA、Intel、Apple、AMD)之间进行代码转换。
- 修复自身的错误。
- 从性能数据中学习,并随着时间的推移变得更快。
简而言之,KForge 是一个帮助 AI 系统在任何计算机芯片上高效运行的工具——无论这个芯片是一个训练有素的老将,还是一个全新的型号——它通过自动化处理编写底层引擎代码这一艰巨任务,实现了这一目标。
您所在领域的论文太多了?
获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。