摘要
本发明公开了一种基于NPU的稀疏注意力算子加速方法,所述方法方法将Linformer与Ascend C编程语言结合起来,基于NPU实现了一个计算Linformer的Ascend C算子;将Linformer结合Flash‑Attention2的加速计算方式,让整个算子可以分块进行计算;根据昇腾NPU的硬件特性进行了向量计算的优化,减少了计算safe softmax的向量减法、逐行求和、逐行求max等多个向量计算的所用指令数,减少耗时;针对前后数据依赖多无法并行的问题,用提前发射Cube的构造并行计算的算法,提高了稀疏近似注意力算子的计算效率;对矩阵乘法进行基本块切分,减少矩阵乘法的搬运时间。
技术关键词
分块
矩阵乘法运算
注意力
内存
数据依赖关系
元素
指数
切块
流水
算法
指令