摘要
最近,随着大型语言模型(LLMs)的进步,实现了自动化内核生成和优化,但现有的许多方法依赖于编译反馈和性能分析等表面信号。这些信号揭示了内核的慢速,但并不能明确后端编译器为何未能实现有效的优化,尤其是在新兴的加速器如NPU上。因此,我们将内核优化形式化为一个渐进式跨层诊断问题,连接运行时症状、IR结构与编译器行为,然后再进行源代码重写。
基于这一洞察,我们提出了一个编译器驱动的分层优化框架,专为Triton内核设计。该系统在需要更深入证据时,从轻量级模式筛选和性能分析开始,逐步上升到IR归因和编译器驱动的分析,最终提出基于证据的源代码重写。我们在Ascend NPU的Triton上实现了该系统,并在37个成功转换的条目上进行了评估,这些条目来自标准化的NPUKernelBench衍生的Ascend 950基准。
在这些条目中,该系统的几何平均加速比为4.35×,中位加速比为2.73×;其中22/37条目超过了2×,13/37条目超过了5×。完整的分布范围从接近基线的条目到大幅提升,激励了对当前系统范围和局限性的透明报告。
博主点评: 本文提出了一种新颖的内核优化框架,通过分层诊断有效地链接运行时表现与编译器行为,展示了在新兴硬件上的实际应用潜力,为未来的自动化优化工具提供了重要参考。该方法的灵活性和效率,尤其是在处理复杂内核时,具有显著的前景。