下载
中文
注册

接口列表

融合算子简介

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

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

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

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

融合算子归属领域

说明:当前版本中部分融合算子在Gitee cann-ops-adv仓提供了源码,您可以单击Link获取代码开放的算子详情介绍。

根据算子归属领域可快速查看算子接口的用途,您可以根据实际场景需要安装对应领域的算子二进制包(Ascend-cann-kernels),无需安装全量算子二进制包,提高应用开发的效率,安装指导参见CANN软件安装

算子归属领域如下:

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

其中推理库依赖数学库,训练库依赖推理库、数学库与随机库。

每个算子接口所属领域如下所示。

aclnn api aclnn_ops_infer aclnn_ops_train aclnn_math aclnn_rand
aclnnAddLayerNorm
aclnnAddLayerNormGrad
aclnnAddRmsNorm
aclnnAllGatherMatmul
aclnnAlltoAllAllGatherBatchMatMul
aclnnApplyRotaryPosEmb
aclnnBatchMatMulReduceScatterAlltoAll
aclnnBidirectionLSTM
aclnnBidirectionLSTMV2
aclnnDeepNorm
aclnnDeepNormGrad
aclnnDynamicQuant
aclnnDynamicQuantV2
aclnnEinsum
aclnnFFN(代码开放)
aclnnFFNV2(代码开放)
aclnnFFNV3(代码开放)
aclnnFlashAttentionScore(代码开放)
aclnnFlashAttentionScoreGrad(代码开放)
aclnnFlashAttentionScoreGradV2(代码开放)
aclnnFlashAttentionScoreV2(代码开放)
aclnnFlashAttentionUnpaddingScoreGrad(代码开放)
aclnnFlashAttentionUnpaddingScoreGradV2(代码开放)
aclnnFlashAttentionVarLenScore(代码开放)
aclnnFlashAttentionVarLenScoreV2(代码开放)
aclnnFusedInferAttentionScore(代码开放)
aclnnFusedInferAttentionScoreV2(代码开放)
aclnnGroupedMatmul
aclnnGroupedMatmulV2
aclnnGroupedMatmulV3
aclnnGroupedMatmulV4
aclnnGroupedMatMulAllReduce
aclnnIncreFlashAttention(代码开放)
aclnnIncreFlashAttentionV2(代码开放)
aclnnIncreFlashAttentionV3(代码开放)
aclnnIncreFlashAttentionV4(代码开放)
aclnnInplaceMatmulAllReduceAddRmsNorm
aclnnInplaceQuantMatmulAllReduceAddRmsNorm
aclnnInplaceQuantScatter
aclnnInplaceWeightQuantMatmulAllReduceAddRmsNorm
aclnnInstanceNorm
aclnnMatmulAllReduce
aclnnMatmulAllReduceV2
aclnnMatmulAllReduceAddRmsNorm
aclnnMatmulReduceScatter
aclnnMoeComputeExpertTokens
aclnnMoeFinalizeRouting
aclnnMoeFinalizeRoutingV2
aclnnMoeFinalizeRoutingV2Grad
aclnnMoeGatingTopKSoftmax
aclnnMoeGatingTopKSoftmaxV2
aclnnMoeInitRouting
aclnnMoeInitRoutingV2
aclnnMoeInitRoutingV2Grad
aclnnMoeInitRoutingQuant
aclnnMoeInitRoutingQuantV2
aclnnMoeTokenPermute
aclnnMoeTokenPermuteGrad
aclnnMoeTokenUnpermute
aclnnMoeTokenUnpermuteGrad
aclnnMrgbaCustom
aclnnMultiScaleDeformableAttentionGrad
aclnnMultiScaleDeformableAttnFunction
aclnnPromptFlashAttention(代码开放)
aclnnPromptFlashAttentionV2(代码开放)
aclnnPromptFlashAttentionV3(代码开放)
aclnnQuantMatmulAllReduce
aclnnQuantMatmulAllReduceV2
aclnnQuantMatmulAllReduceV3
aclnnQuantMatmulAllReduceAddRmsNorm
aclnnRingAttentionUpdate
aclnnRmsNorm
aclnnRmsNormGrad
aclnnSwinAttentionScoreQuant
aclnnSwinTransformerLnQkvQuant
aclnnWeightQuantBatchMatmulV2
aclnnWeightQuantBatchMatmulV3
aclnnWeightQuantMatmulAllReduce
aclnnWeightQuantMatmulAllReduceAddRmsNorm
aclRfft1D
aclStft