GPU Forecasters: Language Models as Selective Surrogates for Kernel Runtime Optimization
本文提出将语言模型作为选择性的、经强化学习增强的代理模型来预测 GPU 核函数性能,从而减少昂贵的设备端评估,并在有限的测量预算内实现更快速核函数的发现。
原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明
想象一下,你正试图在一个巨大的、复杂的迷宫中寻找最快的路径。在图形处理器(GPU)的世界里,这个“迷宫”就是一段被称为 核函数(kernel) 的代码,它告诉芯片如何进行数学运算。寻找这段代码的最快版本至关重要,因为这能让 AI 运行得更快,但寻找的过程极其昂贵。
问题所在:“现实世界”测试太慢了
目前,要测试一段新代码是否快速,你必须:
- 编写代码。
- 编译它(将其翻译成机器语言)。
- 在真实的、昂贵的显卡(GPU)上运行它。
- 测量它花费了多长时间。
这个过程就像是通过实际制造一辆车、把它开上赛道并计时,来测试一种新的汽车设计。这既耗时又费钱。如果你想测试 1,000 种不同的设计,你就必须制造并驾驶 1,000 辆车。这减慢了寻找最佳设计的速度。
解决方案:“虚拟”测试驾驶员
本文的作者提议使用一种智能 AI(大语言模型或 LLM)来充当预测器或代理模型。与其构建并驾驶每一辆车,不如问 AI:“根据这辆新车的蓝图,你觉得它会比旧款快多少?”
AI 查看代码并尝试猜测速度。
- 难点: AI 并不完美。有时它会猜错。
- 解决方法: 本文教导 AI 要对其不确定性保持诚实。这就像一位天气预报员说:“我有 90% 的把握会下雨”,而不是说:“我不知道,但我猜会下。”
它是如何运作的:“选择性”策略
研究人员创建了一个系统,让 AI 充当一个过滤器:
- 自信的猜测: 如果 AI 对其预测非常有信心(例如,“这段新代码肯定会快 2 倍”),系统就会接受这个猜测,并跳过昂贵的现实世界测试。
- 不确定的猜测: 如果 AI 拿不定主意(例如,“它可能会变快,也可能会变慢”),系统就会说:“好吧,我们现在还不能信任这个猜测”,然后将代码发送到真实的 GPU 进行物理测试。
这被称为选择性代理(Selective Surrogate)。这就像一位招聘经理面试 100 名候选人:对于那些显而易见的顶尖或底层候选人,经理会根据简历快速做出决定;但对于那些“可能”的候选人,他会安排一次完整的、昂贵的面对面面试。
训练:教 AI 成为更好的教练
论文展示了他们如何利用强化学习(一种通过让 AI 在猜对时得分、在过度自信且猜错时扣分的训练方式)来让这个 AI 预测器变得更好。
- 他们不仅教 AI 猜测速度,还教它如何正确地分布其“不确定性”。
- 结果: AI 学会了在实际不确定时更多地表达“我不确定”,并在正确时表现得更有信心。这使得系统更加可靠。
结果:更快地找到更快的核函数
当他们将这套系统投入使用时:
- 效率: 使用相同的时间和资金,他们可以查看四倍数量的代码候选方案。与其在真实 GPU 上测试 100 个设计,他们可以在 AI 上测试 100 个,然后只将其中最好的 25 个发送给真实 GPU。
- 性能: 因为他们可以查看更多的选项,所以他们找到了比仅使用真实 GPU 系统更快的代码。
- 发现能力: AI 在捕捉“突破性时刻”方面表现得非常出色——即代码的微小变化带来了巨大速度提升的时刻。
总结
本文介绍了一个用于计算机芯片的“虚拟测试驾驶员”。通过使用 AI 来预测哪些代码设计可能很快,并且只对 AI 不确定的部分进行物理测试,我们可以更快、更便宜地搜索更好的软件。AI 并不是取代了真实的测试,它扮演的是一个聪明的守门员角色,将昂贵的现实世界测试留给那些最重要的时刻。
您所在领域的论文太多了?
获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。