← 最新论文
🤖 machine learning

Optimizing CUDA like a Human: Micro-Profiling Tools as Expert Surrogates for LLM-Based GPU Kernel Optimization

KernelPro 是一个闭环多智能体系统,它将大语言模型(LLM)与专家级启发式微型分析工具以及领域自适应的蒙特卡洛树搜索(MCTS)相结合,能够自动生成并迭代优化高性能、高能效的 CUDA 核函数,在多种基准测试中实现了最先进的加速效果。

原作者: Jiading Gai, Shuai Zhang, Kaj Bostrom, Jin Huang, Vihang Patil, Haoyang Fang, Bernie Wang, Huzefa Rangwala, George Karypis

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

原作者: Jiading Gai, Shuai Zhang, Kaj Bostrom, Jin Huang, Vihang Patil, Haoyang Fang, Bernie Wang, Huzefa Rangwala, George Karypis

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

想象一下,你有一位非常有天赋但缺乏经验的学徒厨师(即 AI),他想要烹饪世界上最快、最高效的一道菜(即图形卡的计算机程序)。问题在于,这位厨师听不懂厨房设备的语言。如果你直接把来自炉灶传感器的原始数字列表递给他——比如“温度:400,压力:20,火焰:闪烁”——厨师会感到困惑,甚至可能把菜做得更糟。

KernelPro 是一个全新的系统,它扮演着一位首席副厨的角色,就站在学徒身边。它不是把原始的传感器数据交给学徒,而是由副厨将这些数字翻译成通俗易懂的英语建议:“嘿,炉子太热了,因为你用的油太多了;换个小一点的锅,并且加快搅拌速度。”

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

1. “专家代理”(翻译官)

在过去,AI 系统试图去猜测这些数字的含义。KernelPro 引入了微剖析工具(Micro-Profiling Tools)。你可以把它们看作是一组专门的传感器,每个传感器都由不同的专家负责。

  • 一位专家检查厨师使用的锅是否尺寸合适(内存/Memory)。
  • 另一位专家检查厨师切菜的速度是否太慢(计算/Compute)。
  • 第三位专家检查厨师是否把食材掉在了地上(寄存器溢出/Register Spills)。

这些工具不再是给 AI 一张数字表格,而是充当了人类专家的代理。它们观察数据,找出问题,并写下一条清晰的便条:“你的内存使用情况处于临界状态;请切换到更快的存储方式。” 论文指出,给予 AI 这些清晰的便条,其效果比单纯向它倾倒原始数字要好 125%。事实上,原始数字是如此令人困惑,以至于 AI 在收到这些数字后的表现甚至比完全没有反馈时还要差!

2. “智能侦探”(搜索策略)

优化代码就像是在解迷宫。一种简单的做法(称为“贪心搜索”)就是只顾着向前走,每当撞到墙时就向左转。你可能会陷入死胡同。

KernelPro 使用了蒙特卡洛树搜索(MCTS)。想象一位侦探,他不仅仅是走一条路径。相反,他会:

  • 画出一张所有可能的转弯路径图。
  • 同时派出“侦察兵”去尝试不同的路径。
  • 如果某条路径看起来很有希望,他就会向那里派遣更多的侦察兵。
  • 如果某条路径通向死胡同,他就会在地图上标记出来,并停止在那里浪费时间。

这使得系统能够探索许多不同的代码修复方式,而不会被困在“足够好”的平庸方案中。论文显示,这种方法找到的解决方案明显比盲目向前走要快得多。

3. “记忆库”(从错误中学习)

通常情况下,当 AI 尝试修复代码时,它会忘记之前发生过什么。这就像是一个厨师烧焦了一锅菜,清理干净后,又立刻尝试再次烧焦它,因为他没记住教训。

KernelPro 拥有一个搜索记忆(Search Memory)。它记录着每一次错误、每一次成功以及每一个“恍然大悟”的时刻。

  • “上次我们尝试用了一个大锅,但它太重了。”
  • “我们发现了一个在处理这类菜肴时效果很好的库中的捷径。”

这个日志会在每一步都反馈给 AI,因此它能从自己的历史中学习,并且不会重复犯同样的错误。

4. “源代码猎人”(从零开始编写)

大多数 AI 系统尝试组装预制的部件(比如使用现成的预制食材库)。KernelPro 则不同;它可以从零开始编写食谱
它拥有一个工具,可以搜索庞大的高性能代码库(CUTLASS/CuTe),以寻找它所需的特定构建模块。然后,它将这些模块组装成一道全新的、定制化的菜肴,完美适配特定的硬件,就像一位大师级厨师所做的那样。

5. “节能器”(附加功能)

通常,人们只关心这顿饭做出来的速度有多快。KernelPro 是第一个同时也关心耗电量的系统。
在一次测试中,系统找到了一种方法,可以在保持相同烹饪速度的同时,通过选择不同的“食材”(指令),减少了 11.6% 的能耗。这就像是仅仅通过换一个更好的锅,就能在不调高火力的情况下更快地烧开水。

结果

在针对一套困难的编程挑战(KernelBench)进行测试时:

  • 第 1 级(简单): 它比之前的最佳系统快了 2.4 倍
  • 第 2 级(中等): 它快了 4.7 倍
  • 第 3 级(困难): 它快了 5.3 倍

在一次针对复杂 AI 训练任务(MoE)的真实世界测试中,它比人类专家的手工调优代码快了 1.23 倍,并从头创造出了一个从未有人编写过的高速程序。

简而言之: KernelPro 不仅仅是要求 AI 去“猜测”如何修复代码。它为 AI 提供了一支专家翻译团队来解释问题,一个智能侦探来探索方案,一个用于从错误中学习的记忆,以及从零开始编写定制代码的能力。这把一个困惑的学徒变成了一位大师级厨师。

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

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

试用 Digest →