论文

AscendOptimizer:用于 Ascend NPU 算子优化的情景代理

AscendOptimizer: Episodic Agent for Ascend NPU Operator Optimization

智能体系统Agent 架构与控制循环

摘要

为 Ascend NPU 优化 AscendC (Ascend C) 算子很困难,原因有两个。首先,与 CUDA 不同,该生态系统提供的公共内核很少可供学习。其次,性能取决于耦合的两部分实现:控制数据移动的主机端平铺程序和调度和管道计算的内核程序。我们推出了 AscendOptimizer,这是一种情景代理,可以从执行本身构建缺失的优化知识。对于内核优化,AscendOptimizer 通过以受控方式删除优化来倒回强大的实现,然后保留删除会明显损害性能的更改,作为以后重写的可重用体验。对于主机端优化,它运行循环分析进化搜索,直接从硬件反馈中找到有效、快速的平铺和数据移动配置。这种组合让代理可以一起改进内核结构和主机端调度。在 101 个真实 AscendC 算子的基准测试中,AscendOptimizer 比开源基准实现了 1.21 倍的几何平均加速,并且 53.47% 的算子运行速度比参考值更快。在每个算子的评估预算相同的情况下,AscendOptimizer 在几何平均加速比、fast_p 尾部加速比以及不同预算下的整体优化进度方面始终优于 Best-of-N 采样和 OpenEvolve。