← 最新论文
🤖 AI

Compiler-Grounded Hierarchical Diagnosis for LLM-Based Triton Kernel Optimization

本文提出了一种以编译器为基础的分层诊断框架,该框架将运行时症状与中间表示结构及编译器行为相联系,从而实现针对 Triton 核函数的、具有证据支持的源码级重写,通过超越表层优化信号,在昇腾(Ascend)NPU 上实现了显著的加速。

原作者: Dongjie Chen, Ping Zhao, Bohua Zhan, Yulong Wang, Shushu Chen, Liangjun Feng, Hao Zhou, Min Shen, Linmu Wang, Weijia Sheng, Xiangyu Wei, Weijie Ding, Jianhui Huang, Yaoqing Gao

发布于 2026-07-28
📖 1 分钟阅读☕ 轻松阅读

原作者: Dongjie Chen, Ping Zhao, Bohua Zhan, Yulong Wang, Shushu Chen, Liangjun Feng, Hao Zhou, Min Shen, Linmu Wang, Weijia Sheng, Xiangyu Wei, Weijie Ding, Jianhui Huang, Yaoqing Gao

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

想象一下你正在尝试调校一辆赛车,以追求极致的速度。在计算机科学的世界里,这些“赛车”是被称为**内核(kernels)**的微小且专门的程序,它们告诉强大的计算机芯片(比如你手机里的芯片或超级计算机)如何进行数学运算。多年来,人类一直是这些赛车的机械师,通过手工不断微调代码。但最近,我们将这项工作交给了 AI 智能体(AI agents)——即能够自主编写和重写代码的智能计算机程序。这些 AI 智能体通常表现得像一名只知道猛踩油门并盯着时速表的赛车手。如果车速慢了,AI 就会猜测一个新零件进行安装,尝试运行,然后观察是否变快了。问题在于,AI 往往不知道车为什么慢。是因为引擎?轮胎?还是因为工厂手册里有一条没人告诉过 AI 的奇怪规则?这篇论文解决了这个谜团,特别是针对一种叫做 NPU(神经网络处理器) 的计算机芯片,这种芯片非常擅长运行 AI,但编程起来却很棘手。作者认为,要真正解决程序运行缓慢的问题,你不能仅仅靠猜测;你需要像一名侦探一样,检查速度,查看引擎内部零件的工作情况,最后阅读工厂手册,以理解引擎为何表现出那样的行为。

这篇论文介绍了一个名为编译器驱动的分层诊断(Compiler-Grounded Hierarchical Diagnosis)的新系统。你可以把它想象成一位非常聪明、非常有耐心的机械师,在获得确凿证据之前拒绝盲目猜测。该系统并没有向问题投掷随机的代码变更,而是使用了一个调查的“阶梯”。它从底层的模式分诊(Pattern Triage)开始,快速检查问题是否符合已知的修复方案,就像把爆胎换成备胎一样。如果这不起作用,它会向上移动到性能分析诊断(Profiling Diagnosis),通过观察程序的运行过程,看看到底是在哪里卡顿的——就像检查引擎是否过热,或者轮子是否在空转。

如果时速表仍然无法说明完整的情况,机械师就会爬向更高的一层:IR 归因(IR Attribution)。这就像是在查看引擎的蓝图(称为中间表示或 IR),看看零件的组装方式是否过于奇特,从而导致了减速。最后,如果蓝图让人感到困惑,系统就会爬到最高一级的台阶:编译器源码升级(Compiler-Source Escalation)。在这里,它会查阅“工厂手册”(编译器的规则),以理解引擎为何被如此构建,以及哪些具体的改动才会真正奏效。系统只有在较低层级不足以解决问题时才会向上攀爬,从而节省时间和精力。

研究人员在为华为 Ascend 950 芯片设计的 **37 个不同计算机程序(内核)**上测试了这个系统。他们发现,通过使用这种循序渐进的侦探式工作,他们可以显著提升程序的运行速度。平均而言,优化后的程序比原始版本快了 4.35 倍。对于一半的程序来说,提速至少达到了 2.73 倍。有些程序甚至有了巨大的提升,运行速度提高了 5 倍或更多;而另一些程序则变化不大,这表明该系统并不是一个能瞬间修复一切的魔杖,而是一个针对正确任务的强大工具。

这个故事中最有趣的部分之一是系统的行为方式。它并不会在第一次尝试时就找到答案。事实上,对于许多程序来说,最佳结果直到第 8 轮测试时才出现,而整个组别的“最佳”轮次通常在第 10 次尝试左右。这表明该系统愿意不断深入挖掘,从简单的猜测转向复杂的调查,直到找到减速的真正原因。论文还指出,虽然该系统在寻找这些修复方案方面表现出色,但它并不声称已经解决了每一种类型的芯片或代码的问题。它是一种针对他们所测试的芯片行之有效的、特定且细致的方法,证明了有时为了跑得更快,你必须先慢下来,在改变“做什么”之前,先理解“为什么”。

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

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

试用 Digest →