算子列表
说明:
算子目录:目录名为算子名小写下划线形式,每个目录承载该算子所有交付件,包括代码实现、examples、文档等,目录介绍参见项目目录。
算子执行硬件单元:大部分算子运行在AI Core,少部分算子运行在AI CPU。默认情况下,项目中提到的算子一般指AI Core算子。关于AI Core和AI CPU详细介绍参见《Ascend C算子开发》中“概念原理和术语 > 硬件架构与数据处理原理”。
算子接口列表:为方便调用算子,CANN提供一套C API执行算子,一般以aclnn为前缀,全量接口参见aclnn列表。
V版本演进说明:部分算子存在多个V版本,使用时选择最高V版本即可(高版本算子已兼容低版本算子的所有能力)。
项目提供的所有算子分类和算子列表如下:
| 算子分类 | 算子目录 | 算子实现 | aclnn调用 | 图模式调用 | 算子执行硬件单元 | 说明 | |
|---|---|---|---|---|---|---|---|
| op_kernel | op_host | op_api | op_graph | ||||
| activation | celu | ✓ | ✓ | ✗ | ✓ | AI Core | 标准CeLU激活函数的昇腾硬件优化实现,用于网络非线性建模,保障训练稳定并提升运行效率。 |
| activation | celu_v2 | ✗ | ✗ | ✓ | ✗ | AI Core | 正数直接输出,负数用平滑指数曲线输出。 |
| activation | clipped_swiglu | ✓ | ✓ | ✗ | ✓ | AI Core | 带截断的Swish门控线性单元激活函数,实现x的SwiGlu计算。本算子相较于SwiGlu算子,新增了部分输入参数:groupIndex、alpha、limit、bias、interleaved,用于支持GPT-OSS模型使用的变体SwiGlu以及MoE模型使用的分组场景。 |
| activation | confusion_softmax_grad | ✓ | ✓ | ✗ | ✓ | AI Core | 融合算子,将mul、sum、sub三个算子进行融合。 |
| activation | bnll | ✓ | ✓ | ✗ | ✓ | AI Core | 计算BNLL (Binomial Normal Log Likelihood)激活函数,即数值稳定版本的softplus:y = ln(1 + exp(x))。 |
| activation | elu | ✓ | ✓ | ✓ | ✓ | AI Core/AI CPU | 对输入张量self中的每个元素x调用指数线性单元激活函数ELU,并将得到的结果存入输出张量out中。 |
| activation | elu_grad | ✓ | ✓ | ✗ | ✓ | AI Core | 对应Elu操作的反向传播梯度。 |
| activation | elu_grad_v2 | ✓ | ✓ | ✓ | ✓ | AI Core | 激活函数的反向计算,输出ELU激活函数正向输入的梯度。 |
| activation | erfinv | ✓ | ✓ | ✓ | ✓ | AI Core | 高斯误差函数erf的反函数。 |
| activation | fast_gelu | ✓ | ✓ | ✓ | ✓ | AI Core | 快速高斯误差线性单元激活函数。 |
| activation | fast_gelu_grad | ✓ | ✓ | ✓ | ✓ | AI Core | FastGelu反向传播。 |
| activation | fast_gelu_v2 | ✓ | ✓ | ✓ | ✓ | AI Core | 对输入特征做非线性激活,用轻量化指数 /sigmoid近似替代原版GELU的复杂计算。 |
| 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 | glu | ✓ | ✓ | ✓ | ✓ | AI Core | GLU是一个门控线性单元函数,它将输入张量沿着指定的维度dim平均分成两个张量,并将其前部分张量与后部分张量的Sigmoid函数输出的结果逐元素相乘。 |
| activation | hard_shrink | ✓ | ✓ | ✓ | ✓ | AI Core | 将输入张量中绝对值小于等于阈值lambd的元素置零,大于阈值的元素保持不变。 |
| activation | hard_shrink_grad | ✗ | ✗ | ✓ | ✗ | AI Core | 该算子暂无Ascend C代码实现,欢迎开发者补充贡献,贡献方式参考贡献指南。 |
| activation | hard_sigmoid | ✗ | ✗ | ✓ | ✗ | AI Core | 该算子暂无Ascend C代码实现,欢迎开发者补充贡献,贡献方式参考贡献指南。 |
| activation | hard_sigmoid_grad | ✓ | ✓ | ✓ | ✓ | AI Core | 对应Hardsigmoid操作的反向传播梯度。 |
| activation | hard_swish | ✗ | ✓ | ✓ | ✗ | AI Core | 该算子暂无Ascend C代码实现,欢迎开发者补充贡献,贡献方式参考贡献指南。 |
| activation | hard_swish_grad | ✓ | ✓ | ✓ | ✗ | AI Core | 分段线性激活函数HardSwish的梯度函数贡献指南。 |
| activation | hard_swish_grad_v2 | ✓ | ✓ | ✓ | ✓ | AI Core | aclnnHardswish的反向传播,完成张量self的梯度计算。 |
| 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 | 对应logsigmoid操作的反向传播梯度。 |
| activation | log_softmax_grad | ✓ | ✓ | ✓ | ✓ | AI Core | 该算子暂无Ascend C代码实现,欢迎开发者补充贡献,贡献方式参考贡献指南。 |
| activation | log_softmax_v2 | ✓ | ✓ | ✓ | ✓ | AI Core | 该算子暂无Ascend C代码实现,欢迎开发者补充贡献,贡献方式参考贡献指南。 |
| activation | mish | ✓ | ✓ | ✓ | ✓ | AI Core | 一个自正则化的非单调神经网络激活函数。 |
| activation | mish_grad | ✓ | ✓ | ✓ | ✗ | AI Core | 该算子暂无Ascend C代码实现,欢迎开发者补充贡献,贡献方式参考贡献指南。 |
| activation | p_relu | ✓ | ✓ | ✓ | ✗ | AI Core | 一种激活函数,当Tensor中value大于0,取该value,小于0时取权重与value的乘积。 |
| 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 | relu6 | ✓ | ✓ | ✗ | ✓ | AI Core | ReLU6是受限版ReLU激活函数,将输出钳位在 [0, 6] 区间,具备数值稳定、抗溢出、适合量化与端侧推理的特点,广泛用于轻量级卷积神经网络。 |
| activation | relu6_grad | ✓ | ✓ | ✗ | ✓ | AI Core | 对应ReLU6操作的反向传播梯度,对前向输入落在开区间(0, 6)的位置透传上游梯度,落在区间外(含端点0与6)的位置输出0。 |
| activation | selu | ✓ | ✓ | ✓ | ✓ | AI Core | 对输入Tensor逐元素计算SELU(Scaled Exponential Linear Unit)激活函数。 |
| activation | selu_grad | ✗ | ✗ | ✓ | ✗ | AI Core | 该算子暂无Ascend C代码实现,欢迎开发者补充贡献,贡献方式参考贡献指南。 |
| activation | shrink | ✓ | ✓ | ✓ | ✓ | AI Core | 对输入张量进行非线性变换,根据输入值self与阈值lambd的关系,对输入通过偏移量bias进行缩放和偏移处理。 |
| 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 | softsign_grad | ✓ | ✓ | ✗ | ✓ | AI Core | 对输入张量应用Softshrink激活函数。 |
| activation | softshrink_grad | ✗ | ✗ | ✓ | ✗ | AI Core | 该算子暂无Ascend C代码实现,欢迎开发者补充贡献,贡献方式参考贡献指南。 |
| activation | softsign_grad | ✓ | ✓ | ✗ | ✓ | AI Core | 完成Softsign激活函数的反向梯度计算。给定上游梯度gradients和前向输入特征features,按元素计算输出梯度。 |
| 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 | swiglu_group_quant | ✓ | ✓ | ✓ | ✓ | AI Core | 在SwiGlu激活函数后执行分组低比特量化,实现输入x的SwigluGroupQuant计算,支持FP8和FP4量化输出。 |
| activation | swiglu_group_quant_grad | ✓ | ✓ | ✓ | ✓ | AI Core | 完成SwiGLU激活函数分组量化的反向梯度计算。用于计算输入x梯度和输入权重weight梯度。 |
| activation | swish | ✓ | ✓ | ✓ | ✓ | AI Core | 该算子暂无Ascend C代码实现,欢迎开发者补充贡献,贡献方式参考贡献指南。 |
| activation | swish_grad | ✓ | ✓ | ✓ | ✓ | AI Core | Swish激活函数的反向传播,用于计算Swish激活函数的梯度。 |
| activation | threshold | ✗ | ✗ | ✓ | ✓ | AI Core | 该算子暂无Ascend C代码实现,欢迎开发者补充贡献,贡献方式参考贡献指南。 |
| activation | threshold_v2 | ✓ | ✓ | ✗ | ✓ | AI Core | 对输入x进行阈值操作。当x中的elements大于threshold时,返回elements;否则,返回value。 |
| activation | threshold_grad_v2_d | ✗ | ✗ | ✓ | ✗ | AI Core | 该算子暂无Ascend C代码实现,欢迎开发者补充贡献,贡献方式参考贡献指南。 |
| control | assert | ✗ | ✓ | ✓ | ✓ | AI CPU | 断言给定条件为true,如果输入张量input_condition判定为false,则打印input_data中的张量列表。 |
| 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,使得卷积核在输入特征图上的位置可以动态调整,从而适配不规则的几何变化。 |
| conv | deformable_offsets_grad | ✓ | ✓ | ✓ | ✓ | AI Core | DeformableOffsets算子的目的是根据offsets( kernel采样点的偏移值)来收集用于卷积的特征采样点,并对其进行重组,方便Conv2d算子进行卷积计算。而DeformableOffsetsGrad即为这一过程的反向。 |
| 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 | 对输入张量列表的每个张量进行幂运算(底数为x1,指数为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 | broadcast_gradient_args | ✓ | ✓ | ✗ | ✓ | AI Core | 接收两个输入shape,并输出两个整数向量,通过广播机制,分别得出两个输入shape在梯度计算时需要在哪些维度上进行聚合。 |
| index | bucketize_v2 | ✓ | ✓ | ✓ | ✓ | AI Core | 用于将张量中的值按照给定的边界进行离散化,根据给定的边界将输入张量中的每个值映射到对应的分箱区间,并返回该值所属区间索引。 |
| index | data_format_dim_map | ✓ | ✓ | ✗ | ✓ | AI Core | 根据源数据格式和目标数据格式的维度映射关系,将输入的维度索引转换为目标格式下的对应维度索引。 |
| index | embedding | ✓ | ✓ | ✓ | ✓ | AI Core | 把数据集合映射到向量空间,进而将数据进行量化。embedding的二维权重张量为weight(m+1行,n列),对于任意输入索引张量indices(如1行3列),输出out是一个3行n列的张量。 |
| 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/AI CPU | 该算子暂无Ascend C代码实现,欢迎开发者补充贡献,贡献方式参考贡献指南。 |
| index | index | ✓ | ✓ | ✓ | ✓ | AI Core | 根据索引indices将输入x对应坐标的数据取出。 |
| index | index_fill | ✓ | ✓ | ✓ | ✓ | AI Core | 沿输入x的给定轴dim,将indices指定位置的值使用value进行非原地填充替换。 |
| index | index_fill | ✓ | ✓ | ✓ | ✓ | AI Core | 在输入Tensor副本上指定维度dim,根据index填写特定的数value。 |
| index | index_check | ✓ | ✓ | ✗ | ✗ | AI Core | 检查索引是否越界。 |
| index | index_fill_d | ✓ | ✓ | ✓ | ✓ | AI Core | 沿输入self的给定轴dim,将index指定位置的值使用value进行替换。 |
| index | index_put_v2 | ✓ | ✓ | ✓ | ✓ | AI Core | 根据索引indices将输入self对应坐标的数据与输入values进行替换或累加。 |
| index | index_put_with_sort | ✓ | ✓ | ✗ | ✗ | AI Core | 执行scatter操作,根据pos_idx的值循环对应的values,累加/替换到linear_index指向的self的位置。 |
| 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_index_fill | ✓ | ✓ | ✗ | ✓ | AI Core | 在输入Tensor的指定维度dim,根据index填写特定的数value。 |
| index | inplace_scatter_add | ✓ | ✓ | ✓ | ✗ | AI Core | 根据给定的indices,将updates中的值加到输入张量var的第一维度上。 |
| index | linear_index | ✓ | ✓ | ✗ | ✗ | AI Core | 将多维数组 / 矩阵的元素位置映射为单一整数的索引方式。 |
| index | linear_index_v2 | ✓ | ✓ | ✗ | ✗ | AI Core | 将多维数组 / 矩阵的元素位置映射为单一整数的索引方式。 |
| index | map_index | ✓ | ✓ | ✗ | ✓ | AI Core | 该算子暂无Ascend C代码实现,欢迎开发者补充贡献,贡献方式参考贡献指南。 |
| index | masked_scatter | ✓ | ✓ | ✓ | ✓ | AI Core | 根据掩码(mask)张量中元素为True的位置,复制(source)中的元素到(selfRef)对应的位置上。 |
| index | masked_scatter_with_position | ✓ | ✓ | ✗ | ✓ | AI Core | 根据掩码(mask)张量进行模拟广播到x的shape,mask中为True位置,复制对应(updates)到输入(x)对应位置。其中position为mask广播前的前缀和张量。 |
| 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 | ✓ | ✓ | ✓ | ✓ | AI Core | 将tensor updates中的值按指定的轴axis和索引indices逐个更新tensor data中的值。 |
| 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/AI CPU | 该算子暂无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_max | ✓ | ✓ | ✗ | ✓ | AI Core | 算子功能:根据indices在给定变量内,在updates和单个值或切片之间求最大值。 |
| index | scatter_nd_min | ✓ | ✓ | ✗ | ✓ | AI Core | 算子功能:根据indices在给定变量内,在updates和单个值或切片之间求最小值。 |
| index | scatter_nd_update | ✓ | ✓ | ✓ | ✓ | AI Core | 算子功能:根据indices在给定变量内,将updates应用于变量的单个值或切片。 |
| index | scatter_update | ✓ | ✓ | ✓ | ✓ | AI Core | 该算子暂无Ascend C代码实现,欢迎开发者补充贡献,贡献方式参考贡献指南。 |
| index | sparse_to_dense | ✓ | ✓ | ✗ | ✓ | AI Core | 将一个稀疏表示(Sparse Representation)转换为一个稠密张量。 |
| index | tensor_scatter_update | ✓ | ✗ | ✗ | ✓ | AI CPU | 根据indices指定的位置,将updates中的数据更新到输入张量x的对应位置,生成输出张量y。 |
| 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_v2 | ✓ | ✓ | ✓ | ✓ | 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代码实现,欢迎开发者补充贡献,贡献方式参考贡献指南。 |
| index | where | ✓ | ✓ | ✗ | ✓ | AI CPU | 找出张量`x`中非零或True元素的位置,设张量`x`的维度为D,非零元素的个数为N,则返回`y`的shape为D * N,每一列表示一个非零元素的位置坐标。 |
| 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 | sigmoid_cross_entropy_with_logits | ✓ | ✓ | ✗ | ✓ | AI Core | 用于计算经过Sigmoid激活后的交叉熵损失的函数。 |
| 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 | kl_div_target_loss_grad | ✓ | ✓ | ✓ | ✗ | AI Core | 进行KL散度的target反向计算。 |
| 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_linear_cross_entropy_loss_grad | ✓ | ✓ | ✓ | ✗ | AI Core | 词汇表并行场景下交叉熵损失中的梯度计算实现。 |
| matmul | fused_linear_online_max_sum | ✓ | ✓ | ✓ | ✗ | AI Core | 功能等价Megatron的matmul与fused_vocab_parallel_cross_entropy的实现。 |
| 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 | matmul_compress | ✗ | ✗ | ✓ | ✗ | AI Core | 完成无损解压缩、矩阵乘计算。 |
| matmul | matmul_v2_compress_dequant | ✗ | ✗ | ✓ | ✗ | 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_batch_matmul_inplace_add | ✓ | ✓ | ✓ | ✗ | AI Core | 完成量化的矩阵乘计算和原地累加。 |
| matmul | quant_matmul | ✗ | ✗ | ✓ | ✗ | AI Core | 完成量化的矩阵乘计算。 |
| matmul | quant_matmul_dequant | ✗ | ✗ | ✓ | ✗ | AI Core | 完成量化的矩阵乘计算后,进行反量化。 |
| matmul | quant_matmul_reduce_sum | ✓ | ✓ | ✓ | ✓ | AI Core | 完成量化的分组矩阵计算,然后所有组的矩阵计算结果相加后输出 |
| matmul | rotate_quant | ✓ | ✓ | ✓ | ✓ | AI Core | 对张量x进行旋转变换,然后执行可选的clamp操作,最后执行对称动态量化(目的数据类型为int8或者quint4x2)或者MX量化(目的数据类型为FLOAT4类、FLOAT8类)。 |
| matmul | sparse_tensor_dense_mat_mul | ✓ | ✓ | ✗ | ✓ | AI Core | 完成稀疏矩阵x1乘以稠密矩阵x2,其中x1用x1_indices、x1_values、x1_shape三个Tensor来表达,x2为直接传入rank=2的Tensor(即矩阵)。 |
| matmul | sparse4to2quant_matmul | ✓ | ✓ | ✓ | ✗ | AI Core | 完成稀疏4:2量化的矩阵乘计算。 |
| 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 | ✗ | ✗ | ✓ | ✗ | AI Core | 完成一个输入为伪量化场景的矩阵乘计算,并可以实现对于输出的量化计算。 |
| matmul | weight_quant_batch_matmul_v2 | ✓ | ✓ | ✓ | ✓ | AI Core | 完成一个输入为伪量化场景的矩阵乘计算,并可以实现对于输出的量化计算。 |
| norm | ada_layer_norm | ✓ | ✓ | ✓ | ✗ | AI Core | AdaLayerNorm算子将LayerNorm和下游的Add、Mul融合起来,通过自适应参数scale和shift来调整归一化过程。 |
| norm | ada_layer_norm_grad | ✓ | ✓ | ✓ | ✓ | AI Core | AdaLayerNormV2的反向传播。用于计算输入张量的梯度,以便在反向传播过程中更新模型参数。 |
| 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_layer_norm_quant_v2 | ✓ | ✓ | ✓ | ✗ | AI Core | LayerNorm算子是大模型常用的归一化操作。AddLayerNormQuantV2算子将LayerNorm前的Add算子和LayerNorm归一化输出给1个下游的量化算子融合起来,减少搬入搬出操作。 |
| 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_mx_quant | ✓ | ✓ | ✓ | ✓ | AI Core | RmsNorm算子是大模型常用的归一化操作,相比LayerNorm算子,其去掉了减去均值的部分。DynamicMxQuant算子则是在尾轴上按blocksize分组进行动态MX量化的算子。AddRmsNormDynamicMxQuant算子将RmsNorm前的Add算子和RmsNorm归一化输出给到的DynamicMxQuant算子融合起来,减少搬入搬出操作。AddRmsNormDynamicMxQuant算子相较于AddRmsNormQuant在RmsNorm计算过程中增加了偏置项betaOptional参数,即计算公式中的beta。 |
| norm | add_rms_norm_dynamic_quant | ✓ | ✓ | ✓ | ✓ | AI Core | RmsNorm算子是大模型常用的归一化操作,相比LayerNorm算子,其去掉了减去均值的部分。DynamicQuant算子则是为输入张量进行对称动态量化的算子。AddRmsNormDynamicQuant算子将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 | ✓ | ✓ | ✗ | ✓ | AI Core | 对一个批次的数据做批量归一化处理,正则化之后生成的数据的统计结果为0均值、1标准差。 |
| 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 | euclidean_norm | ✓ | ✓ | ✗ | ✓ | AI Core | EuclideanNorm算子是欧几里得范数的实现。 |
| 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 | ✓ | ✓ | ✓ | ✗ | 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 | ✓ | ✓ | ✗ | ✓ | AI Core | 对指定层进行均值为0、标准差为1的归一化计算。 |
| 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 | multi_add_rms_norm_dynamic_quant | ✓ | ✓ | ✗ | ✓ | AI Core | RmsNorm算子是大模型常用的归一化操作。DynamicQuant算子则是为输入张量进行对称动态量化的算子。MultiAddRmsNormDynamicQuant算子将RmsNorm前的n个Add算子和RmsNorm归一化输出给到的DynamicQuant算子融合起来,减少搬入搬出操作(n支持0到4)。 |
| norm | quantize_add_layer_norm | ✓ | ✓ | ✗ | ✓ | AI Core | 是一种结合了量化、加法和层归一化的操作。 |
| norm | quantized_batch_norm | ✓ | ✓ | ✓ | ✗ | AI Core | 将输入Tensor执行一个反量化的计算,再根据输入的weight、bias、epsilon执行归一化,最后根据输入的outputScale以及outputZeroPoint执行量化。 |
| norm | renorm | ✓ | ✓ | ✓ | ✗ | AI Core | 返回一个张量,其中输入张量self沿维度dim的每个子张量都经过归一化,使得子张量的p范数低于maxnorm值。 |
| norm | rms_norm | ✓ | ✓ | ✓ | ✓ | AI Core | RmsNorm算子是大模型常用的归一化操作,相比LayerNorm算子,其去掉了减去均值的部分。 |
| norm | rms_norm_grad | ✓ | ✓ | ✓ | ✓ | AI Core | RmsNorm的反向计算。用于计算RmsNorm的梯度,即在反向传播过程中计算输入张量的梯度。 |
| norm | rms_norm_grad_quant | ✓ | ✓ | ✓ | ✓ | AI Core | RmsNormGrad是用于计算RmsNorm的梯度,即在反向传播过程中计算输入张量的梯度的算子。RmsNormGradQuant算子将RmsNormGrad和Quantize两个算子融合,RmsNormGrad计算完dx后进行quant计算,减少搬入搬出操作。 |
| 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 | rms_norm_quant_v3 | ✓ | ✓ | ✓ | ✓ | AI Core | RmsNorm算子是大模型常用的标准化操作,相比LayerNorm算子,其去掉了减去均值的部分。RmsNormQuantV3算子将RmsNorm算子以及RmsNorm归一化的输出给到1个或2个Quantize算子融合起来,减少搬入搬出操作。同时在RmsNormQuantV2算子的基础上新增了Rstd的输出。 |
| norm | rms_norm_dynamic_mx_quant | ✓ | ✓ | ✓ | ✓ | AI Core | RmsNorm算子是大模型常用的归一化操作,相比LayerNorm算子,其去掉了减去均值的部分。DynamicMxQuant算子则是在尾轴上按blocksize分组进行动态MX量化的算子。RmsNormDynamicMxQuant算子将RmsNorm归一化输出给到的DynamicMxQuant算子融合起来,减少搬入搬出操作。 |
| norm | sync_batch_norm_backward_elemt | ✓ | ✓ | ✓ | ✓ | AI Core | SyncBatchNormBackwardElemt算子用于计算输入张量的元素级梯度,以便在反向传播过程中更新模型参数。 |
| norm | sync_batch_norm_backward_reduce | ✓ | ✓ | ✓ | ✓ | AI Core | SyncBatchNormBackwardReduce用于反向传播过程中计算BatchNorm操作的所需的权重梯度gradWeight和中间量sumDyXmu。 |
| norm | sync_batch_norm_gather_stats | ✓ | ✓ | ✓ | ✓ | AI Core | SyncBatchNormGatherStats算子用于收集所有device的均值和方差,更新全局的均值和方差。 |
| norm | sync_batch_norm_gather_stats_fused | ✓ | ✓ | ✗ | ✗ | AI Core | SyncBatchNormGatherStatsFused算子用于计算在BatchNormTraining过程中的全局的均值和全局标准差倒数,以及更新全局方差。 |
| norm | sync_batch_norm_gather_stats_with_counts | ✗ | ✗ | ✓ | ✗ | AI Core | 该算子暂无Ascend C代码实现,欢迎开发者补充贡献,贡献方式参考贡献指南。 |
| norm | sync_bn_training_update | ✓ | ✓ | ✗ | ✓ | AI Core | SyncBNTrainingUpdate算子用于更新在BatchNormTraining过程中的全局的均值。 |
| optim | advance_step | ✓ | ✓ | ✓ | ✓ | AI Core | vLLM是一个高性能的LLM推理和服务框架,专注于优化大规模语言模型的推理效率。它的核心特点包括PageAttention和高效内存管理。advance_step算子的主要作用是推进推理步骤,即在每个生成步骤中更新模型的状态并生成新的inputTokens、inputPositions、seqLens和slotMapping,为vLLM的推理提升效率。 |
| optim | apply_adadelta | ✓ | ✓ | ✗ | ✓ | AI Core | 执行Adadelta优化器的单步参数更新,根据当前梯度、梯度平方累积accum和更新量平方累积accum_update,原地更新权重参数var以及accum、accum_update。 |
| optim | apply_adamax | ✓ | ✓ | ✗ | ✓ | AI Core | 执行AdaMax优化器的单步参数更新,基于无穷范数的Adam变种,根据当前梯度更新一阶矩m和无穷范数v,原地更新权重参数var以及m、v。 |
| optim | apply_rms_prop | ✓ | ✓ | ✗ | ✓ | AI Core | 执行RMSProp优化器(非centered版本)的单步参数更新,根据当前梯度更新梯度平方移动平均ms和动量累积mom,原地更新权重参数var以及ms、mom。对标TensorFlow的tf.raw_ops.ApplyRMSProp接口。 |
| optim | apply_adagrad_d | ✓ | ✓ | ✗ | ✓ | 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)技术。 |
| optim | apply_proximal_adagrad | ✓ | ✓ | ✗ | ✓ | AI Core | 结合Adagrad自适应学习率与FOBOS(Forward-Backward Splitting)Proximal近端算法的优化器,基于梯度平方累加器自适应调整学习率,并通过软阈值(L1正则化)与缩放(L2正则化)对模型参数进行原地更新。 |
| optim | fused_sgd | ✓ | ✓ | ✓ | ✗ | AI Core | 实现FusedSgd融合优化器功能。 |
| pooling | adaptive_avg_pool3d | ✓ | ✓ | ✓ | ✓ | AI Core | 在指定三维输出shape信息的情况下,完成输入张量的3D自适应平均池化计算。 |
| pooling | adaptive_avg_pool2d | ✓ | ✓ | ✓ | ✓ | AI Core | 在指定二维输出shape信息的情况下,完成输入张量的2D自适应平均池化计算。 |
| pooling | adaptive_avg_pool3d_grad | ✓ | ✓ | ✓ | ✓ | AI Core | AdaptiveAvgPool3d的反向计算。 |
| pooling | adaptive_max_pool2d | ✓ | ✓ | ✓ | ✗ | AI Core | 根据输入的output_size计算每次kernel的大小,对输入x进行2维最大池化操作,输出池化后的值y和索引indices。 |
| pooling | adaptive_max_pool3d | ✓ | ✓ | ✓ | ✓ | AI Core | 根据输入的outputSize计算每次kernel的大小,对输入self进行3维最大池化操作,输出池化后的值outputOut和索引indicesOut。aclnnAdaptiveMaxPool3d与aclnnMaxPool3d的区别在于,只需指定outputSize大小,并按outputSize的大小来划分pooling区域。 |
| pooling | adaptive_max_pool2d | ✓ | ✓ | ✓ | ✗ | AI Core | 根据输入的outputSize计算每次kernel的大小,对输入self进行2维最大池化操作,输出池化后的值outputOut和索引indicesOut。aclnnAdaptiveMaxPool2d与aclnnMaxPool2d的区别在于,只需指定outputSize大小,并按outputSize的大小来划分pooling区域。 |
| pooling | adaptive_max_pool3d_grad | ✓ | ✓ | ✓ | ✗ | AI Core | 正向自适应最大池化的反向传播,将梯度回填到每个自适应窗口最大值的坐标处,相同坐标处累加。 |
| pooling | avg_pool | ✓ | ✓ | ✗ | ✓ | AI Core | 对输入Tensor进行窗口为kH * kW、步长为sH * sW的二维平均池化操作,其中k为kernelSize,表示池化窗口的大小,s为stride,表示池化操作的步长。 |
| pooling | avg_pool_v2 | ✓ | ✓ | ✓ | ✓ | AI Core | 对输入Tensor进行窗口为kH * kW、步长为sH * sW的二维平均池化操作,其中k为kernelSize,表示池化窗口的大小,s为stride,表示池化操作的步长。 |
| pooling | avg_pool_v2_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_v2 | ✓ | ✓ | ✓ | ✓ | AI Core | 对于4维的输入张量,进行最大池化(max pooling)操作。 |
| pooling | max_pool_v3 | ✓ | ✓ | ✓ | ✓ | AI Core | 对于3维或4维的输入张量,进行最大池化(max pooling)操作。 |
| pooling | max_pool_with_argmax | ✓ | ✓ | ✗ | ✓ | AI Core | 对于输入数据计算2维最大池化操作,同时输出池化后的最大值和对应位置的索引。 |
| pooling | max_pool_with_argmax_v3 | ✓ | ✓ | ✗ | ✓ | AI Core | 对于输入数据计算2维最大池化操作。 |
| pooling | max_pool_grad_with_argmax | ✓ | ✓ | ✗ | ✓ | AI Core | 正向最大池化MaxPoolWithArgmax的反向梯度计算。 |
| pooling | max_pool_grad_with_argmax_v3 | ✓ | ✓ | ✗ | ✓ | AI Core | 正向最大池化MaxPoolGradWithArgmaxV3的反向梯度。 |
| pooling | max_pool3d_grad_with_argmax | ✓ | ✓ | ✓ | ✓ | AI Core | 正向最大池化的反向传播,将梯度回填到每个窗口最大值的坐标处,相同坐标处累加。 |
| pooling | max_pool3d_grad | ✓ | ✓ | ✓ | ✗ | AI Core | 正向最大池化后反向传播,将梯度回填到每个窗口最大值的坐标处,相同坐标处累加。 |
| pooling | max_pool3d_with_argmax_v2 | ✓ | ✓ | ✓ | ✓ | AI Core | 对于输入信号的输入通道,提供3维最大池化(Max pooling)操作,输出池化后的值out和索引indices。 |
| quant | anti_mx_quant | ✓ | ✓ | ✓ | ✓ | AI Core | 将调用DynamicMxQuant量化得到的FLOAT4/FLOAT8的Tensor反量化为FLOAT16/BFLOAT16/FLOAT32格式。 |
| quant | ascend_anti_quant | ✓ | ✓ | ✗ | ✓ | AI Core | 根据输入的scale和offset对输入x进行反量化。 |
| quant | ascend_anti_quant_v2 | ✓ | ✓ | ✓ | ✓ | AI Core | 根据输入的scale和offset对输入x进行反量化。 |
| quant | ascend_dequant | ✗ | ✗ | ✗ | ✗ | 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_block_mx_quant | ✓ | ✓ | ✓ | ✓ | AI Core | 对输入变量,以数据块(32*32)为基本块进行MX量化转换为目的数据类型。 |
| 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 | fake_quant_with_min_max_args | ✓ | ✓ | ✗ | ✓ | AI Core | 对输入x进行per-tensor假量化(Fake Quantization),通过Nudge算法将min/max调整为量化步长的整数倍后,执行量化-反量化操作。 |
| quant | fake_quant_with_min_max_args_gradient | ✓ | ✓ | ✗ | ✓ | AI Core | FakeQuantWithMinMaxArgs的反向梯度算子,通过Nudge后的nudgedMin/nudgedMax构建0/1 mask,对梯度进行乘法门控。 |
| quant | flat_quant | ✓ | ✓ | ✓ | ✓ | AI Core | 该融合算子为输入矩阵x一次进行两次小矩阵乘法,即右乘输入矩阵kroneckerP2,左乘输入矩阵kroneckerP1,然后针对矩阵乘的结果进行per-token量化处理。 |
| quant | group_quant | ✓ | ✓ | ✓ | ✓ | AI Core | 对输入x进行分组量化操作。 |
| quant | quant_max | ✓ | ✓ | ✓ | ✓ | AI Core | 根据输入的scale对输入x进行量化,并计算输入x的绝对值的最大值amax。 |
| quant | quantize | ✓ | ✓ | ✓ | ✓ | AI Core | 对输入张量x进行量化处理。 |
| quant | swi_glu_quant | ✓ | ✓ | ✓ | ✓ | AI Core | 在SwiGlu激活函数后添加quant操作,实现输入x的SwiGluQuant计算,支持int8或int4量化输出。 |
| quant | swiglu_mx_quant | ✓ | ✓ | ✓ | ✓ | AI Core | 在SwiGlu激活函数后添加mx_quant操作,实现输入x的SwigluMxQuant计算,支持FP8或FP4量化输出。 |
| quant | swiglu_mx_quant_with_dual_axis | ✓ | ✓ | ✓ | ✗ | AI Core | 在SwiGlu激活函数后添加group_mx_quant操作,实现输入x的Swiglu操作后-1轴和-2轴同时量化计算,支持FP8或FP4量化输出。 |
| quant | swiglu_backward_mx_quant_with_dual_axis | ✓ | ✓ | ✓ | ✗ | AI Core | 在SwiGlu激活的反向梯度计算函数后添加group_mx_quant操作,实现输入x的Swiglu反向梯度操作后-1轴和-2轴同时量化计算,支持FP8量化输出。 |
| quant | trans_quant_param | ✗ | ✗ | ✓ | ✗ | AI CPU | 该算子暂无Ascend C代码实现,欢迎开发者补充贡献,贡献方式参考贡献指南。 |
| quant | trans_quant_param_v2 | ✓ | ✓ | ✓ | ✓ | AI Core | 完成量化计算参数scale数据类型的转换,将FLOAT32的数据类型转换为硬件需要的UINT64类型。 |
| quant | ifmr | ✓ | ✓ | ✗ | ✓ | AI Core | 输入特征图重建的量化方法。 |
| rnn | bidirection_lstm | ✓ | ✓ | ✓ | ✗ | AI Core | 进行LSTM网络计算,接收输入序列和初始状态,返回输出序列和最终状态。 |
| rnn | bidirection_lstmv2 | ✓ | ✓ | ✓ | ✗ | AI Core | 进行LSTM网络计算,接收输入序列和初始状态,返回输出序列和最终状态。 |
| rnn | dynamic_rnn | ✓ | ✓ | ✓ | ✓ | AI Core | 基础循环神经网络(Recurrent Neural Network)算子,用于处理序列数据。它通过隐藏状态传递时序信息,适合处理具有时间/顺序依赖性的数据。 |
| rnn | dynamic_rnnv2 | ✓ | ✓ | ✗ | ✓ | AI Core | 基础循环神经网络(Recurrent Neural Network)算子,用于处理序列数据。它通过隐藏状态传递时序信息,适合处理具有时间/顺序依赖性的数据,仅支持单层RNN。 |
| index | unsorted_segment_sum | ✓ | ✓ | ✗ | ✓ | AI Core | unsorted_segment_sum主要功能是对一个张量分段求和。 |
| 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优化器功能。 |
| optim | apply_adam | ✓ | ✓ | ✓ | ✓ | AI Core | 实现adam优化器功能。 |
| optim | apply_adam_d | ✓ | ✓ | ✓ | ✓ | AI Core | 实现adam优化器功能。 |
| optim | apply_ftrl | ✓ | ✓ | ✓ | ✓ | AI Core | 实现ftrl优化器功能。 |
| optim | apply_momentum | ✓ | ✓ | ✓ | ✓ | AI Core | 实现momentum优化器功能。 |
| optim | apply_proximal_gradient_descent | ✓ | ✓ | ✗ | ✓ | AI Core | 实现带L1/L2正则化的近端梯度下降一步更新,常用于带稀疏正则的优化场景。 |
| 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表。 |