昇腾社区首页
中文
注册

融合算子接口列表

融合算子简介

融合算子由多个独立的小算子融合而成,其功能与多个小算子功能等价,性能方面通常优于独立的小算子。用户可根据实际业务场景诉求,按具体算法自由融合向量(Vector)、矩阵(Cube)算子以达到性能上的收益。

例如大语言模型(Large Language Model, LLM)核心计算Scaled dot product attention(基于矩阵乘法的注意力机制),其核心实现如下图,图中Matmul算子(Cube)、Scale算子(Vector)、Mask算子(Vector)、SoftMax算子(Vector)融合为一个大算子。

融合算子通常有如下优势:

  • 减少计算量:可以将多个算子合并为一个,简化计算过程,减少计算量,提高计算效率。
  • 减少内存占用:可以将多个算子的中间结果合并为一个,减少内存占用,提高内存利用率。
  • 优化数据流:可以减少数据在不同算子之间的传输,优化数据流,提高数据处理效率。
  • 简化代码实现:可以简化代码实现,减少代码量,提高代码可读性和可维护性。

融合算子归属领域

算子接口可被归属为如下领域,您可根据业务需要安装对应领域的算子二进制文件(Ascend-cann-kernels),无需全量安装,以提高应用开发效率,库文件安装指导请参见undefined中“附录A:参考信息 > 参数说明 > --feature”。

  • aclnn_ops_infer:NN网络算子推理库
  • aclnn_ops_train:NN网络算子训练库
  • aclnn_math:数学算子库
  • aclnn_rand:随机数算子库

其中推理库依赖数学库,训练库依赖推理库、数学库与随机库。每个算子接口所属领域如下所示。

注意1:表中标注的“代码开放”表示该算子接口已在Gitee cann-ops-adv仓提供了源码,您可以单击undefined获取接口实现详情和样例。

注意2:表中aclnnInit和aclnnFinalize接口属于框架公共接口,不区分归属领域。

aclnn api aclnn_ops_infer aclnn_ops_train aclnn_math aclnn_rand
undefined 不涉及 不涉及 不涉及 不涉及
undefined 不涉及 不涉及 不涉及 不涉及
undefined
undefined
undefined
undefined
undefined
undefined
undefined
undefined
undefined
undefined
undefined(代码开放)
undefined
undefined
undefined
undefined
undefined
undefined
undefined
undefined
undefined
undefined
undefined
undefined(代码开放)
undefined(代码开放)
undefined(代码开放)
undefined(代码开放)
undefined(代码开放)
undefined(代码开放)
undefined(代码开放)
undefined(代码开放)
undefined(代码开放)
undefined
undefined(代码开放)
undefined(代码开放)
undefined
undefined(代码开放)
undefined(代码开放)
undefined
undefined
undefined(代码开放)
undefined(代码开放)
undefined(代码开放)
undefined(代码开放)
undefined
undefined
undefined
undefined
undefined
undefined
undefined
undefined
undefined
undefined(代码开放)
undefined(代码开放)
undefined(代码开放)
undefined(代码开放)
undefined
undefined
undefined
undefined
undefined
undefined
undefined
undefined
undefined
undefined(代码开放)
undefined
undefined
undefined
undefined
undefined
undefined
undefined
undefined(代码开放)
undefined(代码开放)
undefined(代码开放)
undefined(代码开放)
undefined
undefined(代码开放)
undefined(代码开放)
undefined(代码开放)
undefined(代码开放)
undefined(代码开放)
undefined
undefined(代码开放)
undefined(代码开放)
undefined(代码开放)
undefined
undefined(代码开放)
undefined
undefined(代码开放)
undefined
undefined(代码开放)
undefined
undefined
undefined
undefined
undefined
undefined
undefined
undefined
undefined
undefined
undefined
undefined
undefined
undefined
undefined
undefined
undefined(代码开放)
undefined(代码开放)
undefined(代码开放)
undefined
undefined
undefined
undefined
undefined
undefined
undefined(代码开放)
undefined
undefined
undefined(代码开放)
undefined(代码开放)
undefined(代码开放)
undefined
undefined
undefined
undefined
undefined
undefined

废弃接口

废弃接口 说明
undefined 此接口后续版本会废弃,请勿使用该接口 。