算子列表
说明:
- 算子目录:目录名为算子名小写下划线形式,每个目录承载该算子所有交付件,包括代码实现、examples、文档等,目录介绍参见项目目录。
- 算子执行硬件单元:大部分算子运行在AI Core,少部分算子运行在AI CPU。默认情况下,项目中提到的算子一般指AI Core算子。关于AI Core和AI CPU详细介绍参见《Ascend C算子开发》中“概念原理和术语 > 硬件架构与数据处理原理”。
- 算子接口列表:为方便调用算子,CANN提供一套C API执行算子,一般以aclnn为前缀,全量接口参见aclnn列表。
项目提供的所有算子分类和算子列表如下:
| 算子分类 | 算子目录 | 算子实现 | aclnn调用 | 图模式调用 | 算子执行硬件单元 | 说明 | |
|---|---|---|---|---|---|---|---|
| op_kernel | op_host | op_api | op_graph | ||||
| activation | celu_v2 | ✗ | ✓ | ✓ | ✗ | AI Core | 该算子暂无Ascend C代码实现,欢迎开发者补充贡献,贡献方式参考贡献指南。 |
| activation | elu | ✓ | ✓ | ✓ | ✓ | AI Core | 对输入张量self中的每个元素x调用指数线性单元激活函数ELU,并将得到的结果存入输出张量out中。 |
| activation | elu_grad | ✓ | ✓ | ✗ | ✓ | AI Core | 对应Elu操作的反向传播梯度。 |
| activation | elu_grad_v2 | ✓ | ✓ | ✓ | ✓ | AI Core | 激活函数的反向计算,输出ELU激活函数正向输入的梯度。 |
| activation | erfinv | ✗ | ✓ | ✓ | ✗ | AI Core | 该算子暂无Ascend C代码实现,欢迎开发者补充贡献,贡献方式参考贡献指南。 |
| activation | fast_gelu | ✓ | ✓ | ✓ | ✓ | AI Core | 快速高斯误差线性单元激活函数。 |
| activation | fast_gelu_grad | ✓ | ✓ | ✓ | ✓ | AI Core | FastGelu反向传播。 |
| activation | fatrelu_mul | ✓ | ✓ | ✓ | ✓ | AI Core | 将输入Tensor按照最后一个维度分为左右两个Tensor:x1和x2,对左边的x1进行Threshold计算,将计算结果与x2相乘。 |
| activation | ge_glu_grad_v2 | ✓ | ✓ | ✓ | ✓ | AI Core | 完成aclnnGeGlu和aclnnGeGluV3的反向。 |
| activation | ge_glu_v2 | ✓ | ✓ | ✓ | ✓ | AI Core | 高斯误差线性单元激活门函数,针对aclnnGeGlu,扩充了设置激活函数操作数据块方向的功能。 |
| activation | gelu | ✓ | ✓ | ✓ | ✓ | AI Core | 高斯误差线性单元激活函数。 |
| activation | gelu_grad | ✓ | ✓ | ✓ | ✓ | AI Core | 激活函数的反向传播算子,用于计算Gelu激活函数的梯度。 |
| activation | gelu_grad_v2 | ✗ | ✓ | ✓ | ✗ | AI Core | 该算子暂无Ascend C代码实现,欢迎开发者补充贡献,贡献方式参考贡献指南。 |
| activation | gelu_mul | ✓ | ✓ | ✓ | ✓ | AI Core | 将输入Tensor按照最后一个维度分为左右两个Tensor:x1和x2,对左边的x1进行GELU计算,将计算结果与x2相乘。 |
| activation | gelu_quant | ✓ | ✓ | ✗ | ✓ | AI Core | 将GeluV2与DynamicQuant/AscendQuantV2进行融合,对输入的数据self进行GELU激活后,对激活的结果进行量化,输出量化后的结果。 |
| activation | gelu_v2 | ✗ | ✓ | ✓ | ✗ | AI Core | 该算子暂无Ascend C代码实现,欢迎开发者补充贡献,贡献方式参考贡献指南。 |
| activation | hard_shrink | ✗ | ✓ | ✓ | ✗ | AI Core | 该算子暂无Ascend C代码实现,欢迎开发者补充贡献,贡献方式参考贡献指南。 |
| activation | hard_shrink_grad | ✗ | ✓ | ✓ | ✗ | AI Core | 该算子暂无Ascend C代码实现,欢迎开发者补充贡献,贡献方式参考贡献指南。 |
| activation | hard_sigmoid | ✗ | ✓ | ✓ | ✗ | AI Core | 该算子暂无Ascend C代码实现,欢迎开发者补充贡献,贡献方式参考贡献指南。 |
| activation | hard_sigmoid_grad | ✗ | ✓ | ✓ | ✗ | AI Core | 该算子暂无Ascend C代码实现,欢迎开发者补充贡献,贡献方式参考贡献指南。 |
| activation | hard_swish | ✗ | ✓ | ✓ | ✗ | AI Core | 该算子暂无Ascend C代码实现,欢迎开发者补充贡献,贡献方式参考贡献指南。 |
| activation | hard_swish_grad | ✗ | ✓ | ✓ | ✗ | AI Core | 该算子暂无Ascend C代码实现,欢迎开发者补充贡献,贡献方式参考贡献指南。 |
| activation | hardtanh_grad | ✓ | ✓ | ✓ | ✓ | AI Core | 激活函数aclnnHardtanh的反向。 |
| activation | heaviside | ✓ | ✓ | ✓ | ✓ | AI Core | 计算输入input中每个元素的Heaviside阶跃函数,作为模型的激活函数。 |
| activation | leaky_relu | ✗ | ✓ | ✓ | ✗ | AI Core | 该算子暂无Ascend C代码实现,欢迎开发者补充贡献,贡献方式参考贡献指南。 |
| activation | leaky_relu_grad | ✗ | ✓ | ✓ | ✗ | AI Core | 该算子暂无Ascend C代码实现,欢迎开发者补充贡献,贡献方式参考贡献指南。 |
| activation | logsigmoid | ✗ | ✓ | ✓ | ✗ | AI Core | 该算子暂无Ascend C代码实现,欢迎开发者补充贡献,贡献方式参考贡献指南。 |
| activation | logsigmoid_grad | ✗ | ✓ | ✓ | ✗ | AI Core | 该算子暂无Ascend C代码实现,欢迎开发者补充贡献,贡献方式参考贡献指南。 |
| activation | logsoftmax_grad | ✗ | ✓ | ✓ | ✗ | AI Core | 该算子暂无Ascend C代码实现,欢迎开发者补充贡献,贡献方式参考贡献指南。 |
| activation | logsoftmax_v2 | ✗ | ✓ | ✓ | ✗ | AI Core | 该算子暂无Ascend C代码实现,欢迎开发者补充贡献,贡献方式参考贡献指南。 |
| activation | mish | ✗ | ✓ | ✓ | ✗ | AI Core | 该算子暂无Ascend C代码实现,欢迎开发者补充贡献,贡献方式参考贡献指南。 |
| activation | mish_grad | ✗ | ✓ | ✓ | ✗ | AI Core | 该算子暂无Ascend C代码实现,欢迎开发者补充贡献,贡献方式参考贡献指南。 |
| activation | prelu | ✗ | ✓ | ✓ | ✗ | AI Core | 该算子暂无Ascend C代码实现,欢迎开发者补充贡献,贡献方式参考贡献指南。 |
| activation | p_relu_grad_reduce | ✓ | ✓ | ✓ | ✓ | AI Core | 对应PRelu的的反向传播梯度实现的vector计算部分。 |
| activation | p_relu_grad_update | ✓ | ✓ | ✓ | ✓ | AI Core | 对应PRelu的的反向传播梯度实现的reduce计算部分。 |
| activation | relu | ✗ | ✓ | ✓ | ✗ | AI Core | 该算子暂无Ascend C代码实现,欢迎开发者补充贡献,贡献方式参考贡献指南。 |
| activation | relu_grad | ✓ | ✓ | ✗ | ✓ | AI Core | 对应Relu操作的反向传播梯度。 |
| activation | relu_grad_v2 | ✓ | ✓ | ✗ | ✓ | AI Core | 对应ReluV2操作的反向传播梯度。 |
| activation | relu_v2 | ✓ | ✓ | ✗ | ✓ | AI Core | 激活函数,返回与输入tensor shape相同的tensor,tensor中value大于等于0时,取该value,小于0,取0。 |
| activation | selu | ✗ | ✓ | ✓ | ✗ | AI Core | 该算子暂无Ascend C代码实现,欢迎开发者补充贡献,贡献方式参考贡献指南。 |
| activation | selu_grad | ✗ | ✓ | ✓ | ✗ | AI Core | 该算子暂无Ascend C代码实现,欢迎开发者补充贡献,贡献方式参考贡献指南。 |
| activation | shrink | ✗ | ✓ | ✓ | ✗ | AI Core | 该算子暂无Ascend C代码实现,欢迎开发者补充贡献,贡献方式参考贡献指南。 |
| activation | sigmoid | ✗ | ✓ | ✓ | ✗ | AI Core | 该算子暂无Ascend C代码实现,欢迎开发者补充贡献,贡献方式参考贡献指南。 |
| activation | sigmoid_grad | ✗ | ✓ | ✓ | ✗ | AI Core | 该算子暂无Ascend C代码实现,欢迎开发者补充贡献,贡献方式参考贡献指南。 |
| activation | silu_grad | ✗ | ✓ | ✓ | ✗ | AI Core | 该算子暂无Ascend C代码实现,欢迎开发者补充贡献,贡献方式参考贡献指南。 |
| activation | softmax_cross_entropy_with_logits | ✓ | ✓ | ✓ | ✓ | AI Core | 计算softmax和cross entropy的交叉熵损失,并给出对输入logits的反向梯度。 |
| activation | softmax_grad | ✓ | ✓ | ✓ | ✓ | AI Core | 完成softmax的反向传播。 |
| activation | softmax_v2 | ✓ | ✓ | ✓ | ✓ | AI Core | 对输入张量计算Softmax值。 |
| activation | softplus | ✓ | ✓ | ✗ | ✓ | AI Core | 激活函数,用于将任意实数映射到正数区间。 |
| activation | softplus_v2 | ✗ | ✓ | ✓ | ✗ | AI Core | 该算子暂无Ascend C代码实现,欢迎开发者补充贡献,贡献方式参考贡献指南。 |
| activation | softplus_v2_grad | ✗ | ✓ | ✓ | ✗ | AI Core | 该算子暂无Ascend C代码实现,欢迎开发者补充贡献,贡献方式参考贡献指南。 |
| activation | softshrink | ✗ | ✓ | ✓ | ✗ | AI Core | 该算子暂无Ascend C代码实现,欢迎开发者补充贡献,贡献方式参考贡献指南。 |
| activation | softshrink_grad | ✗ | ✓ | ✓ | ✗ | AI Core | 该算子暂无Ascend C代码实现,欢迎开发者补充贡献,贡献方式参考贡献指南。 |
| activation | squared_relu | ✓ | ✓ | ✓ | ✓ | AI Core | SquaredRelu函数是一个基于标准Relu函数的变体,其主要特点是对Relu函数的输出进行平方,常作为模型的激活函数。 |
| activation | swi_glu | ✓ | ✓ | ✓ | ✓ | AI Core | Swish门控线性单元激活函数,实现x的SwiGlu计算。 |
| activation | swi_glu_grad | ✓ | ✓ | ✓ | ✓ | AI Core | 完成aclnnSwiGlu的反向计算,完成x的SwiGlu反向梯度计算。 |
| activation | swish | ✗ | ✓ | ✓ | ✗ | AI Core | 该算子暂无Ascend C代码实现,欢迎开发者补充贡献,贡献方式参考贡献指南。 |
| activation | swish_grad | ✓ | ✓ | ✓ | ✓ | AI Core | Swish激活函数的反向传播,用于计算Swish激活函数的梯度。 |
| activation | threshold | ✗ | ✓ | ✓ | ✗ | AI Core | 该算子暂无Ascend C代码实现,欢迎开发者补充贡献,贡献方式参考贡献指南。 |
| activation | threshold_grad_v2_d | ✗ | ✓ | ✓ | ✗ | AI Core | 该算子暂无Ascend C代码实现,欢迎开发者补充贡献,贡献方式参考贡献指南。 |
| control | assert | ✗ | ✓ | ✓ | ✓ | AI CPU | 断言给定条件为 true,如果输入张量 input_condition 判定为 false,则打印 input_data 中的张量列表。 |
| control | identity | ✗ | ✗ | ✗ | ✗ | AI Core | 该算子暂无Ascend C代码实现,欢迎开发者补充贡献,贡献方式参考贡献指南。 |
| control | identity_n | ✗ | ✗ | ✗ | ✗ | AI Core | 该算子暂无Ascend C代码实现,欢迎开发者补充贡献,贡献方式参考贡献指南。 |
| control | rank | ✗ | ✗ | ✗ | ✗ | AI Core | 该算子暂无Ascend C代码实现,欢迎开发者补充贡献,贡献方式参考贡献指南。 |
| control | shape | ✗ | ✗ | ✗ | ✗ | AI Core | 该算子暂无Ascend C代码实现,欢迎开发者补充贡献,贡献方式参考贡献指南。 |
| control | shape_n | ✗ | ✗ | ✗ | ✗ | AI Core | 该算子暂无Ascend C代码实现,欢迎开发者补充贡献,贡献方式参考贡献指南。 |
| conv | conv3d_backprop_filter_v2 | ✓ | ✓ | ✓ | ✓ | AI Core | 计算三维卷积核权重张量w的梯度 ∂L/∂w。 |
| conv | conv3d_backprop_input_v2 | ✓ | ✓ | ✓ | ✓ | AI Core | 计算三维卷积正向的输入张量x对损失函数L的梯度 ∂L/∂x。 |
| conv | conv3d_transpose_v2 | ✓ | ✓ | ✓ | ✓ | AI Core | 计算三维卷积的转置(反卷积)相对于输入的梯度。 |
| conv | conv3d_v2 | ✓ | ✓ | ✓ | ✓ | AI Core | 实现 3D 卷积功能。 |
| conv | conv2d_v2 | ✓ | ✓ | ✓ | ✗ | AI Core | 实现 2D 卷积功能。 |
| conv | convolution_backward | ✓ | ✓ | ✓ | ✗ | AI Core | 卷积的反向传播。根据输出掩码设置计算输入、权重和偏差的梯度。此函数支持1D、2D和3D卷积。 |
| conv | convolution_forward | ✓ | ✓ | ✓ | ✗ | AI Core | 实现卷积功能,支持 1D 卷积、2D 卷积、3D 卷积,同时支持转置卷积、空洞卷积、分组卷积。 |
| conv | deformable_conv2d | ✓ | ✓ | ✓ | ✗ | AI Core | 实现卷积功能,支持2D卷积,同时支持可变形卷积、分组卷积。 |
| conv | deformable_offsets | ✓ | ✓ | ✓ | ✓ | AI Core | 用于计算变形卷积(Deformable Convolution)输出的函数。通过引入偏移参数offsets,使得卷积核在输入特征图上的位置可以动态调整,从而适配不规则的集合变化。 |
| foreach | foreach_abs | ✓ | ✓ | ✓ | ✓ | AI Core | 对输入张量列表中的每个张量执行逐元素绝对值运算。 |
| foreach | foreach_acos | ✓ | ✓ | ✓ | ✓ | AI Core | 对输入张量列表中的每个张量执行逐元素反余弦运算。 |
| foreach | foreach_add_list | ✓ | ✓ | ✓ | ✓ | AI Core | 两个Tensor列表中的元素逐个相加,并可以通过alpha参数调整相加系数。 |
| foreach | foreach_add_scalar | ✓ | ✓ | ✓ | ✓ | AI Core | 将指定的张量值加到张量列表中的每个张量中。 |
| foreach | foreach_add_scalar_list | ✓ | ✓ | ✓ | ✓ | AI Core | 输入张量列表和输入标量列表执行逐元素相加运算。 |
| foreach | foreach_addcdiv_list | ✓ | ✓ | ✓ | ✓ | AI Core | 对多个张量进行逐元素加、乘、除操作,x2_i和x3_i进行逐元素相除,并将结果乘以scalars,再与x1_i相加。 |
| foreach | foreach_addcdiv_scalar | ✓ | ✓ | ✓ | ✓ | AI Core | 对多个张量进行逐元素加、乘、除操作,x2_i和x3_i进行逐元素相除,并将结果乘以scalar,再与x1_i相加。 |
| foreach | foreach_addcdiv_scalar_list | ✓ | ✓ | ✓ | ✓ | AI Core | 对多个张量进行逐元素加、乘、除操作,x2_i和x3_i进行逐元素相除,并将结果乘以scalars_i,再与x1_i相加。 |
| foreach | foreach_addcmul_list | ✓ | ✓ | ✓ | ✓ | AI Core | 先对张量列表x2和张量列表x3执行逐元素乘法,并将结果乘以张量scalars,最后将之前计算的结果与张量列表x1执行逐元素相加。 |
| foreach | foreach_addcmul_scalar | ✓ | ✓ | ✓ | ✓ | AI Core | 先对张量列表x2和张量列表x3执行逐元素乘法,再乘以张量scalar,最后将之前计算的结果与张量列表x1执行逐元素相加。 |
| foreach | foreach_addcmul_scalar_list | ✓ | ✓ | ✓ | ✓ | AI Core | 先对张量列表x2和张量列表x3执行逐元素乘法,再与张量scalars进行逐元素乘法,最后将之前计算的结果与张量列表x1执行逐元素相加。 |
| foreach | foreach_asin | ✓ | ✓ | ✓ | ✓ | AI Core | 按元素进行反正弦函数运算。 |
| foreach | foreach_atan | ✓ | ✓ | ✓ | ✓ | AI Core | 按元素进行反正切函数运算。 |
| foreach | foreach_copy | ✓ | ✓ | ✓ | ✓ | AI Core | 用于实现两个张量列表内容的复制。 |
| foreach | foreach_cos | ✓ | ✓ | ✓ | ✓ | AI Core | 按元素进行余弦函数运算。 |
| foreach | foreach_cosh | ✓ | ✓ | ✓ | ✓ | AI Core | 按元素进行双曲余弦函数运算。 |
| foreach | foreach_div_list | ✓ | ✓ | ✓ | ✓ | AI Core | 对张量列表x1和张量列表x2执行逐元素除法。 |
| foreach | foreach_div_scalar | ✓ | ✓ | ✓ | ✓ | AI Core | 计算张量列表x除以张量scalar。 |
| foreach | foreach_div_scalar_list | ✓ | ✓ | ✓ | ✓ | AI Core | 对张量列表x和标量列表scalars执行逐元素除法。 |
| foreach | foreach_erf | ✓ | ✓ | ✓ | ✓ | AI Core | 按元素进行误差函数运算(也称之为高斯误差函数,error function or Gaussian error function)。 |
| foreach | foreach_erfc | ✓ | ✓ | ✓ | ✓ | AI Core | 按元素执行从x到无穷大积分的互补误差函数运算。 |
| foreach | foreach_exp | ✓ | ✓ | ✓ | ✓ | AI Core | 对输入张量列表的每个张量进行指数运算。 |
| foreach | foreach_expm1 | ✓ | ✓ | ✓ | ✓ | AI Core | 对输入张量列表的每个张量执行指数运算,然后将得到的结果减1。 |
| foreach | foreach_lerp_list | ✓ | ✓ | ✓ | ✓ | AI Core | 对两个张量列表对应位置元素执行插值计算,其中张量列表weight是插值系数。 |
| foreach | foreach_lerp_scalar | ✓ | ✓ | ✓ | ✓ | AI Core | 对两个张量列表对应位置元素执行插值计算,其中标量weight是插值系数。 |
| foreach | foreach_log | ✓ | ✓ | ✓ | ✓ | AI Core | 对张量列表执行逐元素自然对数运算(ln(x))。 |
| foreach | foreach_log10 | ✓ | ✓ | ✓ | ✓ | AI Core | 对张量列表中的每一个元素执行以10为底的对数函数运算。 |
| foreach | foreach_log1p | ✓ | ✓ | ✓ | ✓ | AI Core | 对张量列表中的每一个元素执行先加一再以e为底的对数函数运算。 |
| foreach | foreach_log2 | ✓ | ✓ | ✓ | ✓ | AI Core | 对张量列表中的每一个元素执行以2为底的对数函数运算。 |
| foreach | foreach_maximum_list | ✓ | ✓ | ✓ | ✓ | AI Core | 对张量列表x1和张量列表x2执行逐元素比较,计算每个元素对应的最大值。 |
| foreach | foreach_maximum_scalar | ✓ | ✓ | ✓ | ✓ | AI Core | 对张量列表和张量scalar执行逐元素比较,计算每个元素对应的最大值。 |
| foreach | foreach_maximum_scalar_list | ✓ | ✓ | ✓ | ✓ | AI Core | 对张量列表x和标量列表scalars执行逐元素比较,计算每个元素对应的最大值。 |
| foreach | foreach_minimum_list | ✓ | ✓ | ✓ | ✓ | AI Core | 对张量列表x1和张量列表x2执行逐元素比较,计算每个元素对应的最小值。 |
| foreach | foreach_minimum_scalar | ✓ | ✓ | ✓ | ✓ | AI Core | 对张量列表x和张量scalar执行逐元素比较,计算每个元素对应的最小值。 |
| foreach | foreach_minimum_scalar_list | ✓ | ✓ | ✓ | ✓ | AI Core | 对张量列表x和标量列表scalars执行逐元素比较,计算每个元素对应的最小值。 |
| foreach | foreach_mul_list | ✓ | ✓ | ✓ | ✓ | AI Core | 对两个输入张量列表执行逐元素相乘。 |
| foreach | foreach_mul_scalar | ✓ | ✓ | ✓ | ✓ | AI Core | 对输入张量列表的每个张量与张量scalar执行相乘运算。 |
| foreach | foreach_mul_scalar_list | ✓ | ✓ | ✓ | ✓ | AI Core | 对输入张量列表与标量列表执行逐元素相乘运算。 |
| foreach | foreach_neg | ✓ | ✓ | ✓ | ✓ | AI Core | 计算输入张量列表中每个张量的相反数。 |
| foreach | foreach_non_finite_check_and_unscale | ✓ | ✓ | ✓ | ✓ | AI Core | 遍历scaledGrads中的所有Tensor,检查是否存在Inf或NaN,如果存在则将foundInf设置为1.0,否则foundInf保持不变,并对scaledGrads中的所有Tensor进行反缩放。 |
| foreach | foreach_norm | ✓ | ✓ | ✓ | ✓ | AI Core | 对输入张量列表的每个张量进行范数运算。 |
| foreach | foreach_pow_list | ✓ | ✓ | ✓ | ✓ | AI Core | 对输入张量列表的每个张量进行x2次方运算。 |
| foreach | foreach_pow_scalar | ✓ | ✓ | ✓ | ✓ | AI Core | 对输入张量列表的每个张量进行n次方运算。 |
| foreach | foreach_pow_scalar_and_tensor | ✓ | ✓ | ✓ | ✓ | AI Core | 对输入张量列表x中的每个张量进行指数运算,底数为输入的标量scalar。 |
| foreach | foreach_pow_scalar_list | ✓ | ✓ | ✓ | ✓ | AI Core | 对输入张量列表x中的每个张量进行指数运算,指数为标量列表exponent中对应的标量。 |
| foreach | foreach_reciprocal | ✓ | ✓ | ✓ | ✓ | AI Core | 对输入张量列表的每个张量进行倒数运算。 |
| foreach | foreach_round_off_number | ✓ | ✓ | ✓ | ✓ | AI Core | 对输入张量列表的每个张量执行指定精度的四舍五入运算,可通过roundMode指定舍入方式。 |
| foreach | foreach_sigmoid | ✓ | ✓ | ✓ | ✓ | AI Core | 对输入张量列表的每个张量进行Sigmoid函数运算。 |
| foreach | foreach_sign | ✓ | ✓ | ✓ | ✓ | AI Core | 计算输入张量列表中每个张量的符号值。 |
| foreach | foreach_sin | ✓ | ✓ | ✓ | ✓ | AI Core | 对输入张量列表的每个张量进行正弦函数运算。 |
| foreach | foreach_sinh | ✓ | ✓ | ✓ | ✓ | AI Core | 对输入张量列表的每个张量进行双曲正弦函数运算。 |
| foreach | foreach_sqrt | ✓ | ✓ | ✓ | ✓ | AI Core | 对输入张量列表的每个张量进行平方根运算。 |
| foreach | foreach_sub_list | ✓ | ✓ | ✓ | ✓ | AI Core | 对输入的两个张量列表执行逐元素相减运算,并可以通过alpha参数调整相减系数。 |
| foreach | foreach_sub_scalar | ✓ | ✓ | ✓ | ✓ | AI Core | 对输入张量列表的每个张量与张量scalar执行相减运算。 |
| foreach | foreach_sub_scalar_list | ✓ | ✓ | ✓ | ✓ | AI Core | 对输入张量列表的每个张量与标量列表scalars的每个标量逐元素执行相减运算。 |
| foreach | foreach_tan | ✓ | ✓ | ✓ | ✓ | AI Core | 对输入张量列表的每个张量进行正切函数运算。 |
| foreach | foreach_tanh | ✓ | ✓ | ✓ | ✓ | AI Core | 对输入张量列表的每个张量进行双曲正切函数运算。 |
| foreach | foreach_zero_inplace | ✓ | ✓ | ✓ | ✓ | AI Core | 原地更新输入张量列表,输入张量列表的每个张量置为0。 |
| index | apply_top_k_top_p_with_sorted | ✓ | ✓ | ✓ | ✗ | AI Core | 对原始输入logits进行top-k和top-p采样过滤。 |
| index | embedding_bag | ✓ | ✓ | ✓ | ✓ | AI Core | 根据indices从weight中获得一组被聚合的数,然后根据offsets的偏移和mode指定的聚合模式对获取的数进行max、sum、mean聚合。其余参数则更细化了计算过程的控制。 |
| index | embedding_dense_grad | ✓ | ✓ | ✓ | ✓ | AI Core | 实现Embedding的反向计算,将相同索引indices对应grad的一行累加到out上。 |
| index | embedding_dense_grad_v2 | ✓ | ✓ | ✓ | ✓ | AI Core | 实现Embedding的反向计算,将相同索引indices对应grad的一行累加到out上。 |
| index | expand_into_jagged_permute | ✓ | ✓ | ✓ | ✗ | AI Core | 将稀疏数据置换索引从表维度扩展到批次维度,适用于稀疏特征在不同rank中具有不同批次大小的情况。 |
| index | gather_elements | ✗ | ✓ | ✓ | ✗ | AI Core | 该算子暂无Ascend C代码实现,欢迎开发者补充贡献,贡献方式参考贡献指南。 |
| index | gather_elements_v2 | ✓ | ✓ | ✓ | ✓ | AI Core | 对输入tensor中指定的维度dim进行数据聚集。 |
| index | gather_nd | ✗ | ✓ | ✓ | ✗ | AI Core | 对于输入张量 self 和 输入张量 indices,将数据切片收集到输出张量out中。 |
| index | gather_v2 | ✓ | ✓ | ✓ | ✓ | AI Core | 该算子暂无Ascend C代码实现,欢迎开发者补充贡献,贡献方式参考贡献指南。 |
| index | index | ✓ | ✓ | ✓ | ✓ | AI Core | 根据索引indices将输入x对应坐标的数据取出。 |
| index | index_fill_d | ✓ | ✓ | ✓ | ✓ | AI Core | 沿输入self的给定轴dim,将index指定位置的值使用value进行替换。 |
| index | index_put_v2 | ✓ | ✓ | ✓ | ✓ | AI Core | 根据索引 indices 将输入 self 对应坐标的数据与输入 values 进行替换或累加。 |
| index | index_put_with_sort_v2 | ✓ | ✓ | ✓ | ✓ | AI Core | 执行scatter操作,根据pos_idx的值循环对应的values,累加/替换到linear_index指向的self的位置。 |
| index | inplace_index_add_with_sorted | ✓ | ✓ | ✓ | ✗ | AI Core | 将alpha和value相乘,并按照sorted_indices中的顺序,累加到var张量的指定axis维度中。 |
| index | inplace_scatter_add | ✓ | ✓ | ✓ | ✗ | AI Core | 根据给定的indices,将updates中的值加到输入张量var的第一维度上。 |
| index | linear_index | ✓ | ✓ | ✓ | ✗ | AI Core | 将多维数组 / 矩阵的元素位置映射为单一整数的索引方式。 |
| index | linear_index_v2 | ✓ | ✓ | ✓ | ✗ | AI Core | 将多维数组 / 矩阵的元素位置映射为单一整数的索引方式。 |
| index | masked_scatter | ✓ | ✓ | ✓ | ✗ | AI Core | 根据掩码(mask)张量中元素为True的位置,复制(source)中的元素到(selfRef)对应的位置上。 |
| index | matrix_inverse | ✗ | ✓ | ✓ | ✗ | AI Core | 该算子暂无Ascend C代码实现,欢迎开发者补充贡献,贡献方式参考贡献指南。 |
| index | non_zero | ✓ | ✓ | ✓ | ✓ | AI Core | 找出`self`中非零元素的位置,设self的维度为D,self中非零元素的个数为N,则返回`out`的shape为N * D,每一列表示一个非零元素的位置坐标。 |
| index | quant_update_scatter | ✓ | ✓ | ✓ | ✓ | AI Core | 先将updates在quantAxis轴上进行量化:quantScales对updates做缩放操作,quantZeroPoints做偏移。然后将量化后的updates中的值按指定的轴axis,根据索引张量indices逐个更新selfRef中对应位置的值。 |
| index | repeat_interleave | ✓ | ✓ | ✓ | ✓ | AI Core | 将tensor self进行flatten后,重复Tensor repeats中的相应次数。 |
| index | repeat_interleave_grad | ✓ | ✓ | ✓ | ✓ | AI Core | 算子RepeatInterleave的反向, 将y_grad tensor的axis维度按repeats进行ReduceSum。 |
| index | reverse_v2 | ✗ | ✓ | ✓ | ✗ | AI Core | 该算子暂无Ascend C代码实现,欢迎开发者补充贡献,贡献方式参考贡献指南。 |
| index | scatter_add | ✓ | ✓ | ✓ | ✗ | AI Core | 将tensor src中的值按指定的轴和方向以及对应的位置关系逐个替换/累加/累乘至tensor self中。 |
| index | scatter_add_with_sorted | ✓ | ✓ | ✓ | ✗ | AI Core | 将tensor src中的值按指定的轴和方向和对应的位置关系逐个替换/累加/累乘至tensor self中。 |
| index | scatter_elements | ✗ | ✓ | ✓ | ✗ | AI Core | 该算子暂无Ascend C代码实现,欢迎开发者补充贡献,贡献方式参考贡献指南。 |
| index | scatter_elements_v2 | ✓ | ✓ | ✓ | ✓ | AI Core | 将tensor src中的值按指定的轴和方向以及对应的位置关系逐个替换/累加/累乘至tensor self中。 |
| index | scatter_list | ✓ | ✓ | ✓ | ✓ | AI Core | 将稀疏矩阵更新应用到变量引用中。 |
| index | scatter_nd | ✗ | ✓ | ✓ | ✗ | AI Core | 算子功能:拷贝data的数据至out,同时在指定indices处根据updates更新out中的数据。 |
| index | scatter_nd_update | ✗ | ✓ | ✓ | ✗ | AI Core | 该算子暂无Ascend C代码实现,欢迎开发者补充贡献,贡献方式参考贡献指南。 |
| index | scatter_update | ✗ | ✓ | ✓ | ✗ | AI Core | 该算子暂无Ascend C代码实现,欢迎开发者补充贡献,贡献方式参考贡献指南。 |
| index | tf_scatter_add | ✗ | ✓ | ✓ | ✗ | AI Core | 该算子暂无Ascend C代码实现,欢迎开发者补充贡献,贡献方式参考贡献指南。 |
| index | top_k_top_p_sample | ✓ | ✓ | ✓ | ✓ | AI Core | 根据输入词频logits、topK/topP采样参数、随机采样权重分布q,进行topK-topP-sample采样计算,输出每个batch的最大词频logitsSelectIdx,以及topK-topP采样后的词频分布logitsTopKPSelect。 |
| index | top_k_top_p_sample | ✓ | ✓ | ✓ | ✓ | AI Core | 根据输入词频logits、topK/topP/minP采样参数、随机采样权重分布q,进行topK-topP-minP-sample采样计算。当输入isNeedSampleResult为false时,输出每个batch的最大词频logitsSelectIdx,以及topK-topP-minP采样后的词频分布logitsTopKPSelect;当输入isNeedSampleResult为true时,输出topK-topP-minP采样后的中间计算结果logitsIdx和logitsSortMasked,其中logitsSortMasked为词频logits经过topK-topP-minP采样计算后的中间结果,logitsIdx为logitsSortMasked在logits中对应的索引。 |
| index | unique_consecutive | ✓ | ✓ | ✓ | ✓ | AI Core | 去除每一个元素后的重复元素。 |
| index | unique_with_counts_ext2 | ✗ | ✓ | ✓ | ✗ | AI Core | 该算子暂无Ascend C代码实现,欢迎开发者补充贡献,贡献方式参考贡献指南。 |
| loss | binary_cross_entropy | ✓ | ✓ | ✓ | ✓ | AI Core | 计算x和y的二元交叉熵。 |
| loss | binary_cross_entropy_grad | ✓ | ✓ | ✓ | ✓ | AI Core | 求二元交叉熵反向传播的梯度值。 |
| loss | chamfer_distance_grad | ✓ | ✓ | ✓ | ✓ | AI Core | ChamferDistance(倒角距离)的反向算子,根据正向的输入对输出的贡献及初始梯度求出输入对应的梯度。 |
| loss | cross_entropy_loss | ✓ | ✓ | ✓ | ✗ | AI Core | 计算输入的交叉熵损失。 |
| loss | cross_entropy_loss_grad | ✓ | ✓ | ✓ | ✗ | AI Core | aclnnCrossEntropyLoss的反向传播。 |
| loss | cross_v2 | ✓ | ✓ | ✗ | ✓ | AI Core | 用于计算x1和x2张量在维度dim上的向量叉积。 |
| loss | ctc_loss_v2 | ✓ | ✓ | ✓ | ✓ | AI Core | 计算连接时序分类损失值。 |
| loss | ctc_loss_v2_grad | ✓ | ✓ | ✓ | ✓ | AI Core | ctcLoss的反向传播,计算CTC的损失梯度。 |
| loss | ctc_loss_v3 | ✓ | ✓ | ✗ | ✓ | AI Core | 计算连续(未分段)时间序列与目标序列之间的损失。 |
| loss | ctc_loss_v3_grad | ✓ | ✓ | ✗ | ✓ | AI Core | 计算连续(未分段)时间序列与目标序列之间的损失的反向。 |
| loss | kl_div_loss_grad | ✗ | ✓ | ✓ | ✗ | AI Core | 该算子暂无Ascend C代码实现,欢迎开发者补充贡献,贡献方式参考贡献指南。 |
| loss | l1_loss_grad | ✗ | ✓ | ✓ | ✗ | AI Core | 该算子暂无Ascend C代码实现,欢迎开发者补充贡献,贡献方式参考贡献指南。 |
| loss | logit | ✓ | ✓ | ✓ | ✓ | AI Core | 该算子是概率到对数几率(log-odds)转换的一个数学运算,常用于概率值的反变换。它可以将一个介于0和1之间的概率值转换为一个实数值。 |
| loss | logit_grad | ✓ | ✓ | ✓ | ✓ | AI Core | aclnnLogit的反向传播。 |
| loss | lp_loss | ✗ | ✓ | ✓ | ✗ | AI Core | 该算子暂无Ascend C代码实现,欢迎开发者补充贡献,贡献方式参考贡献指南。 |
| loss | mse_loss | ✓ | ✓ | ✓ | ✓ | AI Core | 计算输入和目标中每个元素之间的均方误差。 |
| loss | mse_loss_grad | ✓ | ✓ | ✓ | ✓ | AI Core | 均方误差函数aclnnMseLoss的反向传播。 |
| loss | mse_loss_grad_v2 | ✓ | ✓ | ✓ | ✓ | AI Core | 均方误差函数aclnnMseLoss的反向传播。 |
| loss | mse_loss_v2 | ✓ | ✓ | ✓ | ✓ | AI Core | 计算输入x和目标y中每个元素之间的均方误差。 |
| loss | multilabel_margin_loss | ✗ | ✓ | ✓ | ✗ | AI Core | 该算子暂无Ascend C代码实现,欢迎开发者补充贡献,贡献方式参考贡献指南。 |
| loss | nll_loss | ✗ | ✓ | ✓ | ✗ | AI Core | 该算子暂无Ascend C代码实现,欢迎开发者补充贡献,贡献方式参考贡献指南。 |
| loss | nll_loss_grad | ✗ | ✓ | ✓ | ✗ | AI Core | 该算子暂无Ascend C代码实现,欢迎开发者补充贡献,贡献方式参考贡献指南。 |
| loss | sigmoid_cross_entropy_with_logits_grad_v2 | ✗ | ✓ | ✓ | ✗ | AI Core | 该算子暂无Ascend C代码实现,欢迎开发者补充贡献,贡献方式参考贡献指南。 |
| loss | sigmoid_cross_entropy_with_logits_v2 | ✗ | ✓ | ✓ | ✗ | AI Core | 计算输入logits与标签target之间的BCELoss损失 |
| loss | smooth_l1_loss_grad_v2 | ✗ | ✓ | ✓ | ✗ | AI Core | 该算子暂无Ascend C代码实现,欢迎开发者补充贡献,贡献方式参考贡献指南。 |
| loss | smooth_l1_loss_v2 | ✓ | ✓ | ✓ | ✓ | AI Core | 计算SmoothL1损失函数。 |
| loss | soft_margin_loss | ✗ | ✓ | ✓ | ✗ | AI Core | 该算子暂无Ascend C代码实现,欢迎开发者补充贡献,贡献方式参考贡献指南。 |
| loss | soft_margin_loss_grad | ✗ | ✓ | ✓ | ✗ | AI Core | 该算子暂无Ascend C代码实现,欢迎开发者补充贡献,贡献方式参考贡献指南。 |
| matmul | addmv | ✗ | ✓ | ✓ | ✗ | AI Core | 该算子暂无Ascend C代码实现,欢迎开发者补充贡献,贡献方式参考贡献指南。 |
| matmul | batch_mat_mul_v3 | ✓ | ✓ | ✓ | ✓ | AI Core | 完成带batch的矩阵乘计算。 |
| matmul | convert_weight_to_int4_pack | ✗ | ✓ | ✓ | ✗ | AI Core | 该算子暂无Ascend C代码实现,欢迎开发者补充贡献,贡献方式参考贡献指南。 |
| matmul | dual_level_quant_batch_matmul | ✓ | ✓ | ✓ | ✗ | AI Core | 完成二级量化mxfp4的矩阵乘计算。 |
| matmul | fused_mat_mul | ✓ | ✓ | ✓ | ✗ | AI Core | 矩阵乘与通用向量计算融合。 |
| matmul | fused_quant_mat_mul | ✓ | ✓ | ✓ | ✗ | AI Core | 量化矩阵乘与通用向量计算融合。 |
| matmul | gemm | ✗ | ✓ | ✓ | ✗ | AI Core | 该算子暂无Ascend C代码实现,欢迎开发者补充贡献,贡献方式参考贡献指南。 |
| matmul | gemm_v2 | ✓ | ✓ | ✗ | ✓ | AI Core | 计算α乘以A与B的乘积,再与β和input C的乘积求和。 |
| matmul | gemm_v3 | ✓ | ✓ | ✗ | ✗ | AI Core | 计算α乘以A与B的乘积,再与β和input C的乘积求和。 |
| matmul | mat_mul_v3 | ✓ | ✓ | ✓ | ✓ | AI Core | 完成通用矩阵乘计算。 |
| matmul | mv | ✗ | ✓ | ✓ | ✗ | AI Core | 该算子暂无Ascend C代码实现,欢迎开发者补充贡献,贡献方式参考贡献指南。 |
| matmul | quant_batch_matmul_v3 | ✓ | ✓ | ✗ | ✓ | AI Core | 完成量化的矩阵乘计算,最小支持输入维度为2维,最大支持输入维度为6维。 |
| matmul | quant_batch_matmul_v4 | ✓ | ✓ | ✓ | ✓ | AI Core | 完成量化的矩阵乘计算。 |
| matmul | quant_matmul_reduce_sum | ✓ | ✓ | ✓ | ✓ | AI Core | 完成量化的分组矩阵计算,然后所有组的矩阵计算结果相加后输出 |
| matmul | transpose_batch_mat_mul | ✓ | ✓ | ✓ | ✓ | AI Core | 完成张量x1与张量x2的矩阵乘计算。仅支持三维的Tensor传入。Tensor支持转置,转置序列根据传入的序列进行变更。permX1代表张量x1的转置序列,permX2代表张量x2的转置序列,序列值为0的是batch维度,其余两个维度做矩阵乘法。 |
| matmul | transpose_quant_batch_mat_mul | ✓ | ✓ | ✓ | ✗ | AI Core | 完成张量x1与张量x2量化的矩阵乘计算。仅支持三维的Tensor传入。Tensor支持转置,转置序列根据传入的序列进行变更。permX1代表张量x1的转置序列,permX2代表张量x2的转置序列,序列值为0的是batch维度,其余两个维度做矩阵乘法。 |
| matmul | weight_quant_batch_matmul_v2 | ✓ | ✓ | ✓ | ✓ | AI Core | 完成一个输入为伪量化场景的矩阵乘计算,并可以实现对于输出的量化计算。 |
| norm | ada_layer_norm | ✓ | ✓ | ✓ | ✓ | AI Core | AdaLayerNorm算子将LayerNorm和下游的Add、Mul融合起来,通过自适应参数scale和shift来调整归一化过程。 |
| norm | ada_layer_norm_quant | ✓ | ✓ | ✓ | ✓ | AI Core | AdaLayerNormQuant算子将AdaLayerNorm和下游的量化(目前仅支持DynamicQuant)融合起来。该算子主要是用于执行自适应层归一化的量化操作,即将输入数据进行归一化处理,并将其量化为低精度整数,以提高计算效率和减少内存占用。 |
| norm | ada_layer_norm_v2 | ✓ | ✓ | ✓ | ✓ | AI Core | AdaLayerNormV2算子将LayerNorm和下游的Add、Mul融合起来,通过自适应参数scale和shift来调整归一化过程。相比AdaLayerNorm算子,输出新增2个参数(输入的均值和输入的标准差的倒数);weight和bias支持的数据类型增加对应约束。 |
| norm | add_layer_norm | ✓ | ✓ | ✓ | ✓ | AI Core | 实现AddLayerNorm功能。 |
| norm | add_layer_norm_grad | ✓ | ✓ | ✓ | ✓ | AI Core | LayerNorm是一种归一化方法,可以将网络层输入数据归一化到[0, 1]之间。LayerNormGrad算子是深度学习中用于反向传播阶段的一个关键算子,主要用于计算LayerNorm操作的梯度。AddLayerNormGrad算子是将Add和LayerNormGrad融合起来,减少搬入搬出操作。 |
| norm | add_layer_norm_quant | ✓ | ✓ | ✓ | ✓ | AI Core | LayerNorm算子是大模型常用的归一化操作。AddLayerNormQuant算子将LayerNorm前的Add算子和LayerNorm归一化输出给1个或2个下游的量化算子融合起来,减少搬入搬出操作。 |
| norm | add_rms_norm | ✓ | ✓ | ✓ | ✓ | AI Core | RmsNorm算子是大模型常用的归一化操作,相比LayerNorm算子,其去掉了减去均值的部分。AddRmsNorm算子将RmsNorm前的Add算子融合起来,减少搬入搬出操作。 |
| norm | add_rms_norm_cast | ✓ | ✓ | ✓ | ✓ | AI Core | RmsNorm算子是大模型常用的归一化操作,AddRmsNormCast算子将AddRmsNorm后的Cast算子融合起来,减少搬入搬出操作。 |
| norm | add_rms_norm_dynamic_quant | ✓ | ✓ | ✓ | ✓ | AI Core | RmsNorm算子是大模型常用的归一化操作,相比LayerNorm算子,其去掉了减去均值的部分。DynamicQuant算子则是为输入张量进行对称动态量化的算子。AddRmsNormDynamicQuantV2算子将RmsNorm前的Add算子和RmsNorm归一化输出给到的1个或2个DynamicQuant算子融合起来,减少搬入搬出操作。AddRmsNormDynamicQuant算子相较于AddRmsNormDynamicQuantV2在RmsNorm计算过程中增加了偏置项betaOptional参数,即计算对应公式中的beta,以及新增输出配置项output_mask参数,用于配置是否输出对应位置的量化结果 。 |
| norm | add_rms_norm_dynamic_quant_v2 | ✓ | ✓ | ✗ | ✓ | AI Core | RmsNorm算子是大模型常用的归一化操作,相比LayerNorm算子,其去掉了减去均值的部分。DynamicQuant算子则是为输入张量进行对称动态量化的算子。AddRmsNormDynamicQuantV2算子将RmsNorm前的Add算子和RmsNorm归一化输出给到的1个或2个DynamicQuant算子融合起来,减少搬入搬出操作。 |
| norm | add_rms_norm_quant | ✓ | ✓ | ✓ | ✓ | AI Core | RmsNorm是大模型常用的标准化操作,相比LayerNorm,其去掉了减去均值的部分。AddRmsNormQuant算子将RmsNorm前的Add算子以及RmsNorm归一化的输出给到1个或2个Quantize算子融合起来,减少搬入搬出操作。 |
| norm | add_rms_norm_quant_v2 | ✓ | ✓ | ✓ | ✓ | AI Core | RmsNorm是大模型常用的标准化操作,相比LayerNorm,其去掉了减去均值的部分。AddRmsNormQuant算子将RmsNorm前的Add算子以及RmsNorm归一化的输出给到1个或2个Quantize算子融合起来,减少搬入搬出操作。AddRmsNormQuantV2算子相较于AddRmsNormQuant在RmsNorm计算过程中增加了偏置项bias参数,即计算公式中的`bias`。 |
| norm | batch_norm_elemt | ✗ | ✓ | ✓ | ✗ | AI Core | 该算子暂无Ascend C代码实现,欢迎开发者补充贡献,贡献方式参考贡献指南。 |
| norm | batch_norm_grad_v3 | ✓ | ✓ | ✓ | ✓ | AI Core | 该算子暂无Ascend C代码实现,欢迎开发者补充贡献,贡献方式参考贡献指南。 |
| norm | batch_norm_v3 | ✓ | ✓ | ✓ | ✓ | AI Core | 对一个批次的数据做批量归一化处理,正则化之后生成的数据的统计结果为0均值、1标准差。 |
| norm | bn_training_reduce | ✓ | ✓ | ✓ | ✓ | AI Core | 该算子暂无Ascend C代码实现,欢迎开发者补充贡献,贡献方式参考贡献指南。 |
| norm | deep_norm | ✓ | ✓ | ✓ | ✓ | AI Core | 对输入张量x的元素进行深度归一化,通过计算其均值和标准差,将每个元素标准化为具有零均值和单位方差的输出张量。 |
| norm | deep_norm_grad | ✓ | ✓ | ✓ | ✓ | AI Core | DeepNorm的反向传播,完成张量x、张量gx、张量gamma的梯度计算,以及张量dy的求和计算。 |
| norm | dua_quantize_add_layer_norm | ✓ | ✓ | ✗ | ✓ | AI Core | DuaQuantizeAddLayerNorm是一个复杂的计算,结合了量化、加法和层归一化(Layer Normalization)的功能。 |
| norm | gemma_rms_norm | ✓ | ✓ | ✓ | ✓ | AI Core | GemmaRmsNorm算子是大模型常用的归一化操作,相比RmsNorm算子,在计算时对gamma执行了+1操作。 |
| norm | group_norm | ✗ | ✓ | ✓ | ✗ | AI Core | 该算子暂无Ascend C代码实现,欢迎开发者补充贡献,贡献方式参考贡献指南。 |
| norm | group_norm_grad | ✓ | ✓ | ✓ | ✓ | AI Core | GroupNorm用于计算输入张量的组归一化结果,均值,标准差的倒数,该算子是对GroupNorm的反向计算。用于计算输入张量的梯度,以便在反向传播过程中更新模型参数。 |
| norm | group_norm_silu_quant | ✓ | ✓ | ✓ | x | AI Core | 计算输入self的组归一化,均值meanOut,标准差的倒数rstdOut,以及对silu的输出进行量化的结果out。 |
| norm | group_norm_silu | ✓ | ✓ | ✓ | ✓ | AI Core | 计算输入self的组归一化结果out,均值meanOut,标准差的倒数rstdOut,以及silu的输出。 |
| norm | group_norm_swish | ✓ | ✓ | ✓ | ✓ | AI Core | 计算输入x的组归一化结果out,均值meanOut,标准差的倒数rstdOut,以及swish的输出。 |
| norm | group_norm_swish_grad | ✓ | ✓ | ✓ | ✓ | AI Core | aclnnGroupNormSwish的反向操作。 |
| norm | group_norm_v2 | ✓ | ✓ | ✗ | ✓ | AI Core | 计算输入x的组归一化结果out,均值meanOut,以及标准差的倒数rstdOut。 |
| norm | inplace_add_layer_norm | ✓ | ✓ | ✗ | ✓ | AI Core | 是一种结合了原位加法和层归一化的算法。输出参数`x1`(对应公式中的`y`)、`x2`(对应公式中的`x`)复用了输入参数`x1`、`x2`输入地址,实现InplaceAddLayerNorm功能。 |
| norm | inplace_add_rms_norm | ✓ | ✓ | ✓ | ✓ | AI Core | RmsNorm算子是大模型常用的归一化操作,相比LayerNorm算子,其去掉了减去均值的部分。AddRmsNorm算子将RmsNorm前的Add算子融合起来,减少搬入搬出操作。InplaceAddRmsNorm是一种结合了原位加法和RMS归一化的操作。 |
| norm | instance_norm | ✓ | ✓ | ✗ | ✓ | AI Core | 用于执行Instance Normalization(实例归一化)操作。相比BatchNorm算子,InstanceNorm在每个样本的实例上进行归一化,而不是在整个批次上进行归一化,这使得该函数更适合处理图像等数据。 |
| norm | instance_norm_v3 | ✗ | ✓ | ✓ | ✗ | AI Core | 该算子暂无Ascend C代码实现,欢迎开发者补充贡献,贡献方式参考贡献指南。 |
| norm | layer_norm_grad | ✓ | ✓ | ✗ | ✓ | AI Core | LayerNorm的反向传播。用于计算输入张量的梯度,以便在反向传播过程中更新模型参数。 |
| norm | layer_norm_grad_v3 | ✓ | ✓ | ✓ | ✓ | AI Core | LayerNormV4的反向传播。用于计算输入张量的梯度,以便在反向传播过程中更新模型参数。 |
| norm | layer_norm_quant | ✓ | ✓ | ✓ | ✗ | AI Core | 算子将LayerNorm归一化输出和下游的量化算子融合起来,减少搬入搬出操作。 |
| norm | layer_norm_v3 | ✓ | ✓ | ✗ | ✓ | AI Core | 对指定层进行均值为0、标准差为1的归一化计算。 |
| norm | layer_norm_v4 | ✓ | ✓ | ✓ | ✓ | AI Core | 对指定层进行均值为0、标准差为1的归一化计算。 |
| norm | lp_norm_v2 | ✗ | ✓ | ✓ | ✗ | AI Core | 返回给定张量的矩阵范数或者向量范数。 |
| norm | masked_softmax_with_rel_pos_bias | ✓ | ✓ | ✓ | ✓ | AI Core | 替换在swinTransformer中使用window attention计算softmax的部分。 |
| norm | quantize_add_layer_norm | ✓ | ✓ | ✗ | ✓ | AI Core | 是一种结合了量化、加法和层归一化的操作。 |
| norm | quantized_batch_norm | ✓ | ✓ | ✓ | ✗ | AI Core | 将输入Tensor执行一个反量化的计算,再根据输入的weight、bias、epsilon执行归一化,最后根据输出的outputScale以及outputZeroPoint执行量化。 |
| norm | renorm | ✗ | ✓ | ✓ | ✗ | AI Core | 该算子暂无Ascend C代码实现,欢迎开发者补充贡献,贡献方式参考贡献指南。 |
| norm | rms_norm | ✓ | ✓ | ✓ | ✓ | AI Core | RmsNorm算子是大模型常用的归一化操作,相比LayerNorm算子,其去掉了减去均值的部分。 |
| norm | rms_norm_grad | ✓ | ✓ | ✓ | ✓ | AI Core | RmsNorm的反向计算。用于计算RmsNorm的梯度,即在反向传播过程中计算输入张量的梯度。 |
| norm | rms_norm_quant | ✓ | ✓ | ✓ | ✓ | AI Core | RmsNorm算子是大模型常用的标准化操作,相比LayerNorm算子,其去掉了减去均值的部分。RmsNormQuant算子将RmsNorm算子以及RmsNorm后的Quantize算子融合起来,减少搬入搬出操作。 |
| norm | rms_norm_quant_v2 | ✓ | ✓ | ✓ | ✓ | AI Core | RmsNorm算子是大模型常用的标准化操作,相比LayerNorm算子,其去掉了减去均值的部分。RmsNormQuantV2算子将RmsNorm算子以及RmsNorm归一化的输出给到1个或2个Quantize算子融合起来,减少搬入搬出操作。 |
| norm | sync_batch_norm_backward_elemt | ✗ | ✓ | ✓ | ✗ | AI Core | 该算子暂无Ascend C代码实现,欢迎开发者补充贡献,贡献方式参考贡献指南。 |
| norm | sync_batch_norm_backward_reduce | ✗ | ✓ | ✓ | ✗ | AI Core | 该算子暂无Ascend C代码实现,欢迎开发者补充贡献,贡献方式参考贡献指南。 |
| norm | sync_batch_norm_gather_stats | ✗ | ✓ | ✓ | ✗ | AI Core | 该算子暂无Ascend C代码实现,欢迎开发者补充贡献,贡献方式参考贡献指南。 |
| norm | sync_batch_norm_gather_stats_with_counts | ✗ | ✓ | ✓ | ✗ | AI Core | 该算子暂无Ascend C代码实现,欢迎开发者补充贡献,贡献方式参考贡献指南。 |
| optim | advance_step | ✓ | ✓ | ✓ | ✓ | AI Core | vLLM是一个高性能的LLM推理和服务框架,专注于优化大规模语言模型的推理效率。它的核心特点包括PageAttention和高效内存管理。advance_step算子的主要作用是推进推理步骤,即在每个生成步骤中更新模型的状态并生成新的inputTokens、inputPositions、seqLens和slotMapping,为vLLM的推理提升效率。 |
| optim | advance_step | ✓ | ✓ | ✗ | ✓ | AI Core | ApplyAdagrad是自适应梯度算法的核心更新操作,主要用于在优化器(如随机梯度下降)中更新模型参数。 |
| optim | apply_adam_w_v2 | ✓ | ✓ | ✓ | ✓ | AI Core | 实现adamW优化器功能。 |
| optim | adam_apply_one | ✓ | ✓ | ✗ | ✓ | AI Core | 对模型中的一个参数(如权重),完成Adam优化算法的单步计算和更新。 |
| optim | adam_apply_one_with_decay | ✓ | ✓ | ✗ | ✓ | AI Core | 对模型中的一个参数(如权重),完成Adam优化算法的单步计算和更新,在adam_apply_one基础上增加了权重衰减。 |
| optim | adam_apply_one_with_decay_assign | ✓ | ✓ | ✗ | ✓ | AI Core | 对模型中的一个参数(如权重),完成Adam优化算法的单步计算和更新,在adam_apply_one_with_decay基础上增加了赋值操作,确保更新后的值被正确的地保存。 |
| optim | apply_gradient_descent | ✓ | ✓ | ✗ | ✓ | AI Core | 用于在梯度下降训练过程中更新模型参数。 |
| optim | apply_gradient_descent | ✓ | ✓ | ✗ | ✓ | AI Core | 用于在梯度下降训练过程中更新模型参数。 |
| optim | apply_fused_ema_adam | ✓ | ✓ | ✓ | ✓ | AI Core | 实现FusedEmaAdam融合优化器功能,结合了Adam优化器和指数移动平均(EMA)技术。 |
| pooling | adaptive_avg_pool3d | ✓ | ✓ | ✓ | ✓ | AI Core | 在指定三维输出shape信息的情况下,完成输入张量的3D自适应平均池化计算。 |
| pooling | adaptive_avg_pool3d_grad | ✓ | ✓ | ✓ | ✓ | AI Core | AdaptiveAvgPool3d的反向计算。 |
| pooling | adaptive_max_pool2d | ✓ | ✓ | ✓ | ✗ | AI Core | 根据输入的output_size计算每次kernel的大小,对输入x进行3维最大池化操作,输出池化后的值y和索引indices。 |
| pooling | adaptive_max_pool3d | ✓ | ✓ | ✓ | ✓ | AI Core | 根据输入的outputSize计算每次kernel的大小,对输入self进行3维最大池化操作,输出池化后的值outputOut和索引indicesOut。aclnnAdaptiveMaxPool3d与aclnnMaxPool3d的区别在于,只需指定outputSize大小,并按outputSize的大小来划分pooling区域。 |
| pooling | adaptive_max_pool3d_grad | ✓ | ✓ | ✓ | ✗ | AI Core | 正向自适应最大池化的反向传播,将梯度回填到每个自适应窗口最大值的坐标处,相同坐标处累加。 |
| pooling | avg_pool3_d | ✓ | ✓ | ✓ | ✓ | AI Core | 对输入Tensor进行窗口为kD * kH * kW、步长为sD * sH * sW的三维平均池化操作,其中k为kernelSize,表示池化窗口的大小,s为stride,表示池化操作的步长。 |
| pooling | avg_pool3_d_grad | ✓ | ✓ | ✓ | ✓ | AI Core | 三维平均池化的反向传播,计算三维平均池化正向传播的输入梯度。 |
| pooling | max_pool3d | ✓ | ✓ | ✗ | ✓ | AI Core | 对于输入信号的输入通道,提供3维最大池化(Max pooling)操作。 |
| pooling | max_pool_v3 | ✓ | ✓ | ✓ | ✓ | AI Core | 对于3维或4维的输入张量,进行最大池化(max pooling)操作。 |
| pooling | max_pool_with_argmax_v3 | ✓ | ✓ | ✗ | ✓ | AI Core | 对于输入数据计算2维最大池化操作。 |
| pooling | max_pool_grad_with_argmax_v3 | ✓ | ✓ | ✗ | ✓ | AI Core | 正向最大池化MaxPoolGradWithArgmaxV3的反向梯度。 |
| pooling | max_pool3d_grad_with_argmax | ✓ | ✓ | ✓ | ✓ | AI Core | 正向最大池化的反向传播,将梯度回填到每个窗口最大值的坐标处,相同坐标处累加。 |
| pooling | max_pool3d_with_argmax_v2 | ✓ | ✓ | ✓ | ✓ | AI Core | 对于输入信号的输入通道,提供3维最大池化(Max pooling)操作,输出池化后的值out和索引indices。 |
| quant | ascend_anti_quant_v2 | ✗ | ✓ | ✓ | ✗ | AI Core | 该算子暂无Ascend C代码实现,欢迎开发者补充贡献,贡献方式参考贡献指南。 |
| quant | ascend_quant | ✓ | ✓ | ✓ | ✓ | AI Core | 根据输入的scale和offset对输入x进行量化,且scale和offset的size需要是x的最后一维或1。 |
| quant | ascend_quant_v2 | ✓ | ✓ | ✓ | ✓ | AI Core | 对输入x进行量化操作,支持设置axis以指定scale和offset对应的轴,scale和offset的shape需要满足和axis指定x的轴相等或1。axis当前支持设置最后两个维度。 |
| quant | dequant_bias | ✓ | ✓ | ✓ | ✓ | AI Core | 对输入x反量化操作,将输入的int32的数据转化为FLOAT16/BFLOAT16输出。 |
| quant | dequant_swiglu_quant | ✓ | ✓ | ✓ | ✓ | AI Core | 在Swish门控线性单元激活函数前后添加dequant和quant操作,实现x的DequantSwigluQuant计算。 |
| quant | dynamic_block_quant | ✓ | ✓ | ✓ | ✓ | AI Core | 对输入张量,通过给定的row_block_size和col_block_size将输入划分成多个数据块,以数据块为基本粒度进行量化。在每个块中,先计算出当前块对应的量化参数scale,并根据scale对输入进行量化。输出最终的量化结果,以及每个块的量化参数scale。 |
| quant | dynamic_quant | ✓ | ✓ | ✓ | ✓ | AI Core | 为输入张量进行per-token对称动态量化。 |
| quant | dynamic_dual_level_mx_quant | ✓ | ✓ | ✓ | ✓ | AI Core | 通过给定的level0BlockSize和level1BlockSize将输入进行两次划分,以数据块为粒度,进行目的数据类型为FLOAT4类的MX二级量化。 |
| quant | grouped_dynamic_block_quant | ✓ | ✓ | ✓ | ✓ | AI Core | 根据传入的分组索引的起始值对各个group以基本块的粒度进行量化,并输出量化参数scale。 |
| quant | grouped_dynamic_mx_quant | ✓ | ✓ | ✓ | ✓ | AI Core | 根据传入的分组索引的起始值,对传入的数据进行分组的float8的动态量化。 |
| quant | dynamic_mx_quant | ✓ | ✓ | ✓ | ✓ | AI Core | 对传入的数据进行分组的float8的动态量化。 |
| quant | dynamic_quant_update_scatter | ✓ | ✓ | ✗ | ✓ | AI Core | 将DynamicQuantV2和ScatterUpdate单算子自动融合为DynamicQuantUpdateScatterV2融合算子,以实现INT4类型的非对称量化。 |
| quant | dynamic_quant_update_scatter_v2 | ✓ | ✓ | ✗ | ✓ | AI Core | 将DynamicQuantV2和ScatterUpdate单算子自动融合为DynamicQuantUpdateScatterV2融合算子,以实现INT4类型的非对称量化。 |
| quant | dynamic_quant_v2 | ✓ | ✓ | ✓ | ✓ | AI Core | 为输入张量进行per-token对称/非对称动态量化。在MOE场景下,每个专家的smooth_scales是不同的,根据输入的group_index进行区分。 |
| quant | fake_quant_affine_cachemask | ✓ | ✓ | ✓ | ✓ | AI Core | 对于输入数据self,使用scale和zeroPoint对输入self在指定轴axis上进行伪量化处理,并根据quantMin和quantMax对伪量化输出进行值域更新,最终返回结果out及对应位置掩码mask。 |
| quant | flat_quant | ✓ | ✓ | ✓ | ✓ | AI Core | 该融合算子为输入矩阵x一次进行两次小矩阵乘法,即右乘输入矩阵kroneckerP2,左乘输入矩阵kroneckerP1,然后针对矩阵乘的结果进行per-token量化处理。 |
| quant | group_quant | ✓ | ✓ | ✓ | ✓ | AI Core | 对输入x进行分组量化操作。 |
| quant | quantize | ✓ | ✓ | ✓ | ✓ | AI Core | 对输入张量x进行量化处理。 |
| quant | swi_glu_quant | ✓ | ✓ | ✓ | ✓ | AI Core | 在SwiGlu激活函数后添加quant操作,实现输入x的SwiGluQuant计算,支持int8或int4量化输出。 |
| quant | trans_quant_param | ✓ | ✓ | ✓ | ✓ | AI Core | 该算子暂无Ascend C代码实现,欢迎开发者补充贡献,贡献方式参考贡献指南。 |
| quant | trans_quant_param_v2 | ✓ | ✓ | ✓ | ✓ | AI Core | 完成量化计算参数scale数据类型的转换,将FLOAT32的数据类型转换为硬件需要的UINT64类型。 |
| quant | ifmr | ✓ | ✓ | ✗ | ✓ | AI Core | 输入特征图重建的量化方法。 |
| rnn | bidirection_lstm | ✓ | ✓ | ✓ | ✗ | AI Core | 进行LSTM网络计算,接收输入序列和初始状态,返回输出序列和最终状态。 |
| rnn | bidirection_lstm_v2 | ✓ | ✓ | ✓ | ✗ | AI Core | 进行LSTM网络计算,接收输入序列和初始状态,返回输出序列和最终状态。 |
| rnn | dynamic_rnn | ✓ | ✓ | ✓ | ✓ | AI Core | 基础循环神经网络 (Recurrent Neural Network) 算子,用于处理序列数据。它通过隐藏状态传递时序信息,适合处理具有时间/顺序依赖性的数据。 |
| rnn | dynamic_rnnv2 | ✓ | ✓ | ✗ | ✓ | AI Core | 基础循环神经网络 (Recurrent Neural Network) 算子,用于处理序列数据。它通过隐藏状态传递时序信息,适合处理具有时间/顺序依赖性的数据, 仅支持单层RNN。 |
| rnn | single_layer_lstm_grad | ✓ | ✓ | ✓ | ✗ | AI Core | 单层单向LSTM的反向传播,计算正向输入x、权重w、偏置b、初始隐藏状态initH与初始细胞状态initC的梯度。 |
| rnn | thnn_fused_lstm_cell | ✓ | ✓ | ✓ | ✗ | AI Core | 实现长短期记忆网络单元(LSTM Cell)的单步前向计算中,矩阵乘法后的后续计算。 |
| rnn | thnn_fused_lstm_cell_grad | ✓ | ✓ | ✓ | ✗ | AI Core | LSTMCell中四个门中matmul后剩余计算的反向传播,计算正向输出四个门激活前的值gates、输入cx、偏置b的梯度。 |
| vfusion | multi_scale_deformable_attention_grad | ✓ | ✓ | ✓ | ✓ | AI Core | MultiScaleDeformableAttention正向算子功能主要通过采样位置(sample location)、注意力权重(attention weights)、映射后的value特征、多尺度特征起始索引位置、多尺度特征图的空间大小(便于将采样位置由归一化的值变成绝对位置)等参数来遍历不同尺寸特征图的不同采样点。而反向算子的功能为根据正向的输入对输出的贡献及初始梯度求出输入对应的梯度。 |
| vfusion | multi_scale_deformable_attn_function | ✓ | ✓ | ✓ | ✓ | AI Core | 通过采样位置(sample location)、注意力权重(attention weights)、映射后的value特征、多尺度特征起始索引位置、多尺度特征图的空间大小(便于将采样位置由归一化的值变成绝对位置)等参数来遍历不同尺寸特征图的不同采样点。 |
| vfusion | scaled_masked_softmax_grad_v2 | ✓ | ✓ | ✓ | ✗ | AI Core | softmax的反向传播,并对结果进行缩放以及掩码。 |
| vfusion | scaled_masked_softmax_v2 | ✓ | ✓ | ✓ | ✗ | AI Core | 将输入的数据x先进行scale缩放和mask,然后执行softmax的输出。 |
| optim | apply_adam_w | ✓ | ✓ | ✓ | ✓ | AI Core | 实现adamW优化器功能。 |
| hash | embedding_hash_table_apply_adam_w | ✓ | ✓ | ✗ | ✓ | AI Core | 查询hash表是否存在key,如果存在,则更新其value,如果不存在,则插入key。 |
| hash | embedding_hash_table_export | ✓ | ✓ | ✗ | ✓ | AI Core | 导出整个table表。 |
| hash | embedding_hash_table_import | ✓ | ✓ | ✗ | ✓ | AI Core | 将输入的key和value插入hash表。 |
| hash | embedding_hash_table_lookup_or_insert | ✓ | ✓ | ✗ | ✓ | AI Core | 根据key值查看table中是否存在key;如果存在则不插入value值,并且导出key当前位置上的值;如果不存在则对对key进行hash,找到位置后插入value。 |
| hash | init_embedding_hash_table | ✓ | ✓ | ✗ | ✓ | AI Core | 初始化hash表。 |