优化模型训推算子性能:昇腾 AutoFuse 算子自动融合技术直播来袭
直播预约链接:预约链接
当下生成式大模型、推荐模型和多模态模型等各类AI模型迭代速度持续加快,在线下训练、线上推理全场景中,普遍存在共通的性能短板,主要分为三点:
1.算子数量庞大:计算图中分布着大量算子,单次开销不一定很大,累积起来却不容忽视;
2.算子组合多变:同一模型不同版本的数据流链路、算子排布持续变化,依靠固化规则的传统融合方案难以全覆盖;
3.适配场景广泛:各类网络结构、动态张量尺寸、多精度计算场景均存在融合优化需求。
面对以上行业痛点,人工手写算子、固定规则融合等传统优化方式,既无法从根源消除性能损耗,也跟不上模型快速迭代的节奏,行业亟需一套有效的自动化优化方案。昇腾 CANN AutoFuse 自动融合技术应运而生,精准解决这一核心难题!
🔥算力浪费的底层根源拆解
模型训推链路中,Add、Mul、Relu和Cast 等大量计算算子紧密串联。若每个算子单独调度、独立完成数据搬运,会衍生出两类显著性能损耗:
1.内存搬运开销巨大:每个算子都要经历「全局内存加载→片上运算→结果 写回 GM」的完整流程;
2.调度开销持续累积:NPU 在频繁的算子切换中浪费了大量硬件周期。
想象一条生产线:产品经过第一道工序后,如果每次都要先入库,再从仓库取出交给下一道工序,工序之间就会增加大量不必要的搬运。更高效的方式是让产品沿生产线直接流转,在相邻工序之间连续加工。
这就是算子融合的核心思想——让多个算子在一次计算流程中连续执行,减少中间结果反复写回和读取全局内存的搬运。融合前后对比:
💡 AutoFuse:让 NPU 减少不必要的调度和内存搬运
如上图所示,融合前,每个算子独立调度,中间结果需要反复写回并重新读取全局内存;融合后,多个算子合并为一个融合算子,中间结果在片上流转,仅在首尾进行数据搬运,从而减少调度与访存开销。以单输入和单输出算子为例展现优化数据:
| 优化维度 | 融合前 | 融合后 |
| 算子数量 | N 个 | 1 个 |
| MTE 搬运次数 | 2N次(每个算子有一次[搬入+搬出]) | 2 次(一次[搬入+搬出]) |
| 调度开销 | N 次 | 1 次 |
| 中间数据 | N-1 处中间结果写回并重读 GM | 片上直传 |
🚀 现在就开始
·仓库地址:graph-autofusion:基于昇腾芯片的自动融合加速组件项目 - AtomGit
·官方文档:CANN AutoFuse 官方文档
来直播间,一起解锁 AutoFuse 的全部潜力!graph-autofusion:基于昇腾芯片的自动融合加速组件项目 - AtomGit来直播间,一起解锁 AutoFuse 的全部潜力!
直播预约链接:预约链接