优化模型训推算子性能:昇腾 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 的全部潜力!

 直播预约链接:预约链接

Logo

鲲鹏昇腾开发者社区是面向全社会开放的“联接全球计算开发者,聚合华为+生态”的社区,内容涵盖鲲鹏、昇腾资源,帮助开发者快速获取所需的知识、经验、软件、工具、算力,支撑开发者易学、好用、成功,成为核心开发者。

更多推荐