CANN/ops-transformer Ascend 950算子列表

发布时间:2026/5/20 5:01:02

CANN/ops-transformer Ascend 950算子列表 Ascend 950算子列表【免费下载链接】ops-transformer本项目是CANN提供的transformer类大模型算子库实现网络在NPU上加速计算。项目地址: https://gitcode.com/cann/ops-transformer说明算子目录目录名为算子名小写下划线形式每个目录承载该算子所有交付件包括代码实现、examples、文档等目录介绍参见项目目录。算子执行硬件单元大部分算子运行在AI Core少部分算子运行在AI CPU。默认情况下项目中提到的算子一般指AI Core算子。关于AI Core和AI CPU详细介绍参见《Ascend C算子开发》其中版本号大于等于8.5.0中对应章节为硬件实现其余版本中对应章节为概念原理和术语 硬件架构与数据处理原理。算子接口列表为方便调用算子CANN提供一套C API执行算子一般以aclnn为前缀全量接口参见aclnn列表。Ascend 950支持的算子分类和算子列表如下算子分类算子目录算子实现aclnn调用图模式调用算子执行硬件单元说明op_kernelop_hostop_apiop_graphattentionattention_update✓✓✓✗AI Core将各SP域PA算子的输出的中间结果lselocalOut两个局部变量结果更新成全局结果。attentionblock_sparse_attention✓✓✓✗AI Core训练场景下BlockSparseAttention的正向计算。attentiondense_lightning_indexer_softmax_lse✓✓✗✗AI CoreDenseLightningIndexerSoftmaxLse算子。attentionflash_attention_score✓✓✓✗AI Core使用FlashAttention算法实现self-attention自注意力的计算。attentionflash_attention_score_grad✓✓✓✗AI Core训练场景下计算注意力的反向输出即FlashAttentionScore的反向计算。attentionfused_causal_conv1d✓✓✓✓AI Core对序列执行因果一维卷积沿序列维度使用缓存数据长度为卷积核宽减1对各序列头部进行padding确保输出依赖当前及历史输入卷积完成后将当前序列尾部的数据长度为卷积核宽减1更新到缓存在因果一维卷积输出的基础上将原始输入加到输出上以实现残差连接。attentionfused_infer_attention_score✓✓✓✓AI Coredecode prefill场景的FlashAttention算子。attentiongather_pa_kv_cache✓✓✓✓AI Core根据blockTables中的blockId值、seqLens中key/value的seqLen从keyCache/valueCache中将内存不连续的token搬运、拼接成连续的key/value序列。attentionkv_quant_sparse_flash_attention✓✓✗✓AI Core在Sparse Flash Attention的基础上支持了[Per-Token-Head-Tile-128量化]输入。attentionlightning_indexer✓✓✗✓AI Core基于一系列操作得到每一个token对应的Top-k个位置。attentionmasked_causal_conv1d✓✓✓✓AI Core对hidden层的token之间进行带mask的因果一维分组卷积操作。attentionmasked_causal_conv1d_backward✓✓✓✗AI Core对hidden层的token之间进行一维分组卷积操作的反向梯度计算。attentionmla_prolog✓✓✗✗AI Core推理MlaProlog算子。attentionmla_prolog_v2✓✓✓✗AI Core推理MlaPrologV2WeightNz算子。attentionmla_prolog_v3✓✓✓✗AI Core推理MlaPrologV3WeightNz算子。attentionquant_lightning_indexer✓✓✗✓AI Core推理场景下SparseFlashAttention前处理的计算选出关键的稀疏token并对输入query和key进行量化实现存8算8。attentionrecurrent_gated_delta_rule✓✓✓✓AI Core增量推理场景的Recurrent Gated Delta Rule算子。attentionring_attention_update✓✓✓✗AI Core训练场景下更新两次FlashAttention的结果。attentionscatter_pa_cache✓✓✓✓AI Core更新KCache中指定位置的key。attentionscatter_pa_kv_cache✓✓✓✓AI Core更新KCache和VCache中指定位置的key和value。attentionsparse_flash_attention✓✓✗✓AI Core针对大序列长度推理场景的高效注意力计算模块。attentionsparse_flash_attention_grad✓✓✗✗AI CoreSparseFlashAttention的反向梯度计算。attentionsparse_lightning_indexer_grad_kl_loss✓✓✓✗AI CoreSparselightningIndexerGradKlLoss算子是LightningIndexer的反向算子再额外融合了Loss计算功能输出。gmmgrouped_matmul✓✓✓✗AI Core实现分组矩阵乘计算。gmmgrouped_matmul_add✓✓✓✗AI Core实现分组矩阵乘计算每组矩阵乘的维度大小可以不同。gmmgrouped_matmul_finalize_routing✓✓✓✗AI CoreGroupedMatmul和MoeFinalizeRouting的融合算子GroupedMatmul计算后的输出按照索引做combine动作。gmmgrouped_matmul_swiglu_quant_v2✓✓✓✗AI Core融合GroupedMatmul 、dequant、swiglu和quant新增了MXFP8量化场景仅Ascend 950PR/Ascend 950DT AI处理器支持。gmmquant_grouped_matmul_inplace_add✓✓✓✗AI Core实现分组矩阵乘计算和加法计算。mc2all_gather_matmul✓✓✓✓AI Core完成AllGather通信与MatMul计算融合。mc2all_gather_matmul_v2✓✓✓✓AI Core完成AllGather通信与MatMul计算融合。mc2allto_all_matmul✓✓✓✗AI Core完成AlltoAll通信与MatMul计算融合。mc2allto_allv_grouped_mat_mul✓✓✓✓AI Core完成路由专家AlltoAllv、Permute、GroupedMatMul融合并实现与共享专家MatMul并行融合先通信后计算。mc2allto_allv_quant_grouped_mat_mul✓✓✓✓AI Core完成路由专家AlltoAllv、Permute、QuantGroupedMatMul融合并实现与共享专家MatMul并行融合。mc2batch_mat_mul_v3✓✓✓✓AI Core实现批量矩阵乘计算。mc2distribute_barrier✓✓✓✓AI Core完成通信域内的全卡同步xRef仅用于构建Tensor依赖接口内不对xRef做任何操作。mc2distribute_barrier_extend✓✓✓✓AI Core完成通信域内的全卡同步扩展版本。mc2grouped_mat_mul_allto_allv✓✓✓✓AI Core完成路由专家GroupedMatMul、Unpermute、AlltoAllv融合并实现与共享专家MatMul并行融合先计算后通信。mc2mat_mul_v3✓✓✓✓AI Core实现矩阵乘计算。mc2matmul_all_reduce✓✓✓✓AI Core完成MatMul计算与AllReduce通信融合。mc2matmul_allto_all✓✓✓✗AI Core完成MatMul计算与AlltoAll通信融合。mc2matmul_reduce_scatter✓✓✓✓AI Core完成mm reduce_scatter_base计算。mc2matmul_reduce_scatter_v2✓✓✓✓AI Core完成mm reduce_scatter_base计算。mc2mega_moe✓✓✗✗AI Core完成dispatch group_matmul1 swiglu_quant group_matmul2 combine的端到端融合计算。mc2moe_distribute_combine✓✓✓✓AI Core当存在TP域通信时先进行ReduceScatterV通信再进行AlltoAllV通信最后将接收的数据整合乘权重再相加当不存在TP域通信时进行AlltoAllV通信最后将接收的数据整合乘权重再相加。mc2moe_distribute_combine_add_rms_norm✓✓✓✓AI Core当存在TP域通信时先进行ReduceScatterV通信再进行AlltoAllV通信最后将接收的数据整合乘权重再相加当不存在TP域通信时进行AlltoAllV通信最后将接收的数据整合乘权重再相加之后完成Add RmsNorm融合。mc2moe_distribute_combine_setup✓✓✓✓AI CoreMoeDistributeCombine的setup阶段用于初始化通信资源。mc2moe_distribute_combine_teardown✓✓✓✓AI CoreMoeDistributeCombine的teardown阶段用于释放通信资源。mc2moe_distribute_combine_v2✓✓✓✓AI Core当存在TP域通信时先进行ReduceScatterV通信再进行AlltoAllV通信最后将接收的数据整合乘权重再相加当不存在TP域通信时进行AlltoAllV通信最后将接收的数据整合乘权重再相加。mc2moe_distribute_combine_v3✓✓✓✓AI Core当存在TP域通信时先进行ReduceScatterV通信再进行AlltoAllV通信最后将接收的数据整合乘权重再相加当不存在TP域通信时进行AlltoAllV通信最后将接收的数据整合乘权重再相加。mc2moe_distribute_dispatch✓✓✓✓AI Core对Token数据进行量化可选当存在TP域通信时先进行EPExpert Parallelism域的AllToAllV通信再进行TPTensor Parallelism域的AllGatherV通信当不存在TP域通信时进行EPExpert Parallelism域的AllToAllV通信。mc2moe_distribute_dispatch_setup✓✓✓✓AI CoreMoeDistributeDispatch的setup阶段用于初始化通信资源。mc2moe_distribute_dispatch_teardown✓✓✓✓AI CoreMoeDistributeDispatch的teardown阶段用于释放通信资源。mc2moe_distribute_dispatch_v2✓✓✓✓AI Core对Token数据进行量化可选当存在TP域通信时先进行EPExpert Parallelism域的AllToAllV通信再进行TPTensor Parallelism域的AllGatherV通信当不存在TP域通信时进行EPExpert Parallelism域的AllToAllV通信。mc2moe_distribute_dispatch_v3✓✓✓✓AI Core对Token数据进行量化可选当存在TP域通信时先进行EPExpert Parallelism域的AllToAllV通信再进行TPTensor Parallelism域的AllGatherV通信当不存在TP域通信时进行EPExpert Parallelism域的AllToAllV通信。mc2moe_update_expert✓✓✓✓AI Core完成每个token的topK个专家逻辑专家号到物理卡号的映射。mc2quant_all_reduce✓✓✓✓AI Core完成量化后的AllReduce通信。mc2quant_grouped_mat_mul_allto_allv✓✓✓✓AI Core完成路由专家QuantGroupedMatMul、Unpermute、AlltoAllv融合并实现与共享专家MatMul并行融合。mc2quant_reduce_scatter✓✓✓✓AI Core完成量化后的ReduceScatter通信。mhcmhc_post✓✓✓✓AI Core基于一系列计算对mHC架构中上一层输出进行Post Mapping对上一层的输入进行Res Mapping然后对二者进行残差连接得到下一层的输入。mhcmhc_post_backward✓✓✓✓AI Coremhc_post算子的反向传播。mhcmhc_pre✓✓✓✓AI Core基于一系列计算得到MHC架构中hidden层的$H^{res}$和$H^{post}$投影矩阵以及Attention或MLP层的输入矩阵$h^{in}$。mhcmhc_pre_backward✓✓✓✗AI Coremhc_pre算子的反向传播基于一系列计算得到MHC架构中hidden层的梯度。mhcmhc_sinkhorn✓✓✓✓AI Core基于用Sinkhorn-Knopp迭代算法将超连接的混合矩阵投影到双随机矩阵流形以此稳定深度网络信号传播、解决梯度消失/爆炸问题。mhcmhc_sinkhorn_backward✓✓✓✗AI Coremhc_sinkhorn的反向算子。moemoe_compute_expert_tokens✓✓✗✓AI CoreMoE计算中通过二分查找的方式查找每个专家处理的最后一行的位置。moemoe_finalize_routing_v2✓✓✓✓AI CoreMoE计算中最后处理合并MoE FFN的输出结果。moemoe_finalize_routing_v2_grad✓✓✓✓AI CoreaclnnMoeFinalizeRoutingV2的反向传播。moemoe_gating_top_k✓✓✓✓AI CoreMoE计算中对输入x做Sigmoid计算对计算结果分组进行排序最后根据分组排序的结果选取前k个专家。moemoe_gating_top_k_softmax✓✓✗✓AI CoreMoE计算中对x的输出做Softmax计算取TopK操作。moemoe_gating_top_k_softmax_v2✓✓✓✓AI CoreMoE计算中如果renorm0先对x的输出做Softmax计算再取topk操作如果renorm1先对x的输出做topk操作再进行Softmax操作。moemoe_init_routing✓✓✓✓AI CoreMoE的routing计算根据aclnnMoeGatingTopKSoftmax的计算结果做routing处理。moemoe_init_routing_quant_v2✓✓✓✓AI CoreMoE的routing计算根据aclnnMoeGatingTopKSoftmaxV2的计算结果做routing处理。moemoe_init_routing_v2✓✓✓✓AI Core以MoeGatingTopKSoftmax算子的输出x和expert_idx作为输入并输出Routing矩阵expanded_x等结果供后续计算使用。moemoe_init_routing_v2_grad✓✓✓✓AI CoreaclnnMoeInitRoutingV2的反向传播完成tokens的加权求和。moemoe_init_routing_v3✓✓✓✓AI CoreMoE的routing计算根据aclnnMoeGatingTopKSoftmaxV2的计算结果做routing处理支持不量化和动态量化模式。moemoe_re_routing✓✓✗✓AI CoreMoE网络中进行AlltoAll操作从其他卡上拿到需要算的token后将token按照专家顺序重新排列。moemoe_token_permute_with_routing_map✓✓✓✗AI CoreMoE的permute计算根据索引indices将tokens和可选probs广播后排序并按照rangeOptional中范围切片。moemoe_token_permute_with_routing_map_grad✓✓✓✗AI CoreaclnnMoeTokenPermuteWithRoutingMap的反向传播。moemoe_token_unpermute_with_routing_map✓✓✓✗AI Core对经过aclnnMoeTokenpermuteWithRoutingMap处理的permutedTokens累加回原unpermutedTokens。根据sortedIndices存储的下标获取permutedTokens中存储的输入数据如果存在probs数据permutedTokens会与probs相乘最后进行累加求和并输出计算结果。moemoe_token_unpermute_with_routing_map_grad✓✓✗✗AI CoreaclnnMoeTokenUnpermuteWithRoutingMap的反向传播。moemoe_inplace_index_add✓✓✓✓AI CoreMoE中根据索引进行原地加法操作。moemoe_inplace_index_add_with_sorted✓✓✓✓AI CoreMoE中根据排序后的索引进行原地加法操作。moemoe_masked_scatter✓✓✓✓AI CoreMoE中根据mask进行scatter操作。posembeddingapply_rotary_pos_emb✓✓✓✓AI Core执行旋转位置编码计算推理网络为了提升性能将query和key两路算子融合成一路。posembeddingkv_rms_norm_rope_cache✓✓✓✓AI Core对输入张量(kv)的尾轴拆分出左半边用于rms_norm计算右半边用于rope计算再将计算结果分别scatter到两块cache中。posembeddingnorm_rope_concat✓✓✓✓AI Core执行RmsNorm、RoPE和Concat融合计算。posembeddingnorm_rope_concat_grad✓✓✓✓AI CoreNormRopeConcat的反向梯度计算。posembeddingrope_with_sin_cos_cache✓✓✓✓AI Core推理网络为了提升性能将sin和cos输入通过cache传入执行旋转位置编码计算。posembeddingrotary_position_embedding✓✓✓✓AI Core执行单路旋转位置编码计算。posembeddingrotary_position_embedding_grad✓✓✗✓AI Core执行单路旋转位置编码的反向计算。examplesadd_example✓✓✓✓AI Core示例算子用于演示算子开发流程。【免费下载链接】ops-transformer本项目是CANN提供的transformer类大模型算子库实现网络在NPU上加速计算。项目地址: https://gitcode.com/cann/ops-transformer创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻