算子接口(aclnn)

使用说明

为方便调用算子,提供一套基于C的API(以aclnn为前缀API),无需提供IR(Intermediate Representation)定义,方便高效构建模型与应用开发,该方式被称为“单算子API调用”,简称aclnn调用。

  • 头文件/库文件

    调用算子API时,需引用依赖的头文件和库文件,一般头文件默认在${INSTALL_DIR}/include/aclnnop,库文件默认在${INSTALL_DIR}/lib64,具体文件如下:

    • 头文件:方式1 (推荐):引用算子仓总头文件aclnn_ops_${ops_project}.h。方式2:引用单个算子API的头文件aclnn_*.h。
    • 库文件:引用算子仓对应的库文件libopapi_${ops_project}.so。注意,原所有算子仓总库文件libopapi.so后续会废弃,不推荐使用,也不支持与单个算子仓库文件同时使用。

    ${INSTALL_DIR}表示CANN安装后文件路径;${ops_project}表示算子仓名(如math、nn、cv、transformer),请改为实际算子仓名。

  • V版本演进说明

    请注意,部分API存在多个V版本,使用时选择最高V版本即可(高版本API已兼容低版本API的所有能力)。

接口列表

确定性简介

  • 配置说明:因CANN或NPU型号不同等原因,可能无法保证同一个算子多次运行结果一致。在相同条件下(平台、设备、版本号和其他随机性参数等),部分算子接口可通过aclrtCtxSetSysParamOpt(参见《acl API(C)》)开启确定性算法,使多次运行结果一致。
  • 性能说明:同一个算子采用确定性计算通常比非确定性慢,因此模型单次运行性能可能会下降。但在实验、调试和调测等需要保证多次运行结果相同来定位问题的场景,确定性计算可以提升效率。
  • 线程说明:同一线程中只能设置一次确定性状态,多次设置以最后一次有效设置为准。有效设置是指设置确定性状态后,真正执行了一次算子任务下发。如果仅设置,没有算子下发,只能是确定性变量开启但未下发给算子,因此不执行算子。 解决方案:暂不推荐一个线程多次设置确定性。该问题在二进制开启和关闭情况下均存在,在后续版本中会解决该问题。
  • 符号说明:表中 “- ”符号表示该接口暂不支持当前列产品。

算子接口列表如下:

接口名 说明 确定性说明(A2/A3) 确定性说明(Ascend 950)
aclnnAdaLayerNorm 将LayerNorm和下游的Add、Mul融合起来,通过自适应参数scale和shift来调整归一化过程。 默认确定性实现 -
aclnnAdaLayerNormBackward aclnnAdaLayerNormV2的反向传播。用于计算输入张量的梯度,以便在反向传播过程中更新模型参数。 默认确定性实现 -
aclnnAdaLayerNormQuant 算子将AdaLayerNorm和下游的量化(目前仅支持DynamicQuant)融合起来。该算子主要是用于执行自适应层归一化的量化操作,即将输入数据进行归一化处理,并将其量化为低精度整数,以提高计算效率和减少内存占用。 默认确定性实现 默认确定性实现
aclnnAdaLayerNormV2 算子将LayerNorm和下游的Add、Mul融合起来,通过自适应参数scale和shift来调整归一化过程。相比AdaLayerNorm算子,输出新增2个参数(输入的均值和输入的标准差的倒数);weight和bias支持的数据类型增加对应约束。 默认确定性实现 默认确定性实现
aclnnAdaptiveAvgPool2d 在指定二维输出shape信息(outputSize)的情况下,完成张量self的2D自适应平均池化计算。 默认确定性实现 默认确定性实现
aclnnAdaptiveAvgPool2dBackward aclnnAdaptiveAvgPool2d的反向计算。 默认非确定性实现,支持配置开启 默认非确定性实现,支持配置开启
aclnnAdaptiveAvgPool3d 在指定三维输出shape信息(outputSize)的情况下,完成张量self的3D自适应平均池化计算。 默认确定性实现 默认确定性实现
aclnnAdaptiveAvgPool3dBackward aclnnAdaptiveAvgPool3d的反向计算。 默认非确定性实现,支持配置开启 默认非确定性实现,支持配置开启
aclnnAdaptiveMaxPool2d 根据输入的outputSize计算每次kernel的大小,对输入self进行2维最大池化操作。 默认确定性实现 默认确定性实现
aclnnAdaptiveMaxPool2dBackward 正向自适应最大池化的反向传播,将梯度回填到每个自适应窗口最大值的坐标处,相同坐标处累加。 默认非确定性实现,支持配置开启 默认非确定性实现,支持配置开启
aclnnAdaptiveMaxPool3d 根据输入的outputSize计算每次kernel的大小,对输入self进行3维最大池化操作。 默认确定性实现 默认确定性实现
aclnnAdaptiveMaxPool3dBackward 正向自适应最大池化的反向传播,将梯度回填到每个自适应窗口最大值的坐标处,相同坐标处累加。 默认非确定性实现,支持配置开启 默认非确定性实现,支持配置开启
aclnnAddbmm&aclnnInplaceAddbmm 首先进行batch1、batch3的矩阵乘计算,然后将该结果按照第一维(batch维度)批处理相加,将三维向量压缩为二维向量(shape大小为后两维的shape),然后该结果与α作乘积计算,再与β和self的乘积求和得到结果。 - 默认确定性实现
aclnnAddmm&aclnnInplaceAddmm 计算α 乘以mat1与mat2的乘积,再与β和self的乘积求和。 - 默认确定性实现
aclnnAddmmWeightNz 计算α 乘以mat1与mat2的乘积,再与β和self的乘积求和。相较于原有addmm接口,新接口mat2支持nz格式。 默认确定性实现 默认确定性实现
aclnnAddmv 完成矩阵乘计算,然后和向量相加。 - 默认确定性实现
aclnnAddLayerNorm 实现AddLayerNorm功能。 默认确定性实现 默认确定性实现
aclnnAddLayerNormGrad LayerNorm是一种归一化方法,可以将网络层输入数据归一化到[0, 1]之间。 默认非确定性实现,支持配置开启 默认非确定性实现,支持配置开启
aclnnAddLayerNormQuant LayerNorm算子是大模型常用的归一化操作。 - 默认确定性实现
aclnnAddLayerNormQuantV2 LayerNorm算子是大模型常用的归一化操作。AddLayerNormQuantV2算子将LayerNorm前的Add算子和LayerNorm归一化输出给1个或2个下游的量化算子融合起来,减少搬入搬出操作。LayerNorm下游的量化算子可以是Quantize、AscendQuantV2或DynamicQuant算子,具体的量化算子类型由attr入参divMode和quantMode决定。当下游有2个量化算子时,2个量化算子的算子类型、输入输出dtype组合和可选输入的组合需要完全一致。 默认确定性实现 默认确定性实现
aclnnAddRmsNormCast RmsNorm算子是大模型常用的归一化操作,AddRmsNormCast算子将AddRmsNorm后的Cast算子融合起来,减少搬入搬出操作。 默认确定性实现 默认确定性实现
aclnnAddRmsNormDynamicMxQuant RmsNorm算子是大模型常用的归一化操作。DynamicMxQuant算子则是在尾轴上按blocksize分组进行动态MX量化的算子。AddRmsNormDynamicMxQuant算子将RmsNorm前的Add算子和RmsNorm归一化输出给到的DynamicMxQuant算子融合起来,减少搬入搬出操作。 - 默认确定性实现
aclnnAddRmsNormDynamicQuant 将RmsNorm前的Add算子和RmsNorm归一化输出给到的1个或2个DynamicQuant算子融合起来,减少搬入搬出操作。 默认确定性实现 默认确定性实现
aclnnAddRmsNormDynamicQuantV2 RmsNorm算子是大模型常用的归一化操作,相比LayerNorm算子,其去掉了减去均值的部分。 默认确定性实现 默认确定性实现
aclnnAddRmsNorm RmsNorm算子是大模型常用的归一化操作,相比LayerNorm算子,其去掉了减去均值的部分。 默认确定性实现 默认确定性实现
aclnnAddRmsNormQuant 将RmsNorm前的Add算子以及RmsNorm后的Quantize算子融合起来,减少搬入搬出操作。 默认确定性实现 默认确定性实现
aclnnAddRmsNormQuantV2 RmsNorm是大模型常用的标准化操作,相比LayerNorm,其去掉了减去均值的部分。 默认确定性实现 默认确定性实现
aclnnAddRelu&aclnnInplaceAddRelu 完成加法计算后得到结果再进行激活。 默认确定性实现 默认确定性实现
aclnnRmsNormDynamicMxQuant RmsNorm算子是大模型常用的归一化操作。DynamicMxQuant算子则是在尾轴上按blocksize分组进行动态MX量化的算子。RmsNormDynamicMxQuant算子将RmsNorm归一化输出给到的DynamicMxQuant算子融合起来,减少搬入搬出操作。 - 默认确定性实现
aclnnRmsNormDynamicQuant RmsNorm算子是大模型常用的归一化操作,相比LayerNorm算子,其去掉了减去均值的部分。DynamicQuant算子则是为输入张量进行对称动态量化的算子。RmsNormDynamicQuant算子将RmsNorm归一化和DynamicQuant动态量化融合起来,减少搬入搬出操作。 - 默认确定性实现
aclnnAdvanceStep 推进推理步骤,即在每个生成步骤中更新模型的状态并生成新的inputTokens、inputPositions、seqLens和slotMapping,为vLLM的推理提升效率。 默认确定性实现 -
aclnnAdvanceStepV2 推进推理步骤,即在每个生成步骤中更新模型的状态并生成新的inputTokens、inputPositions、seqLens和slotMapping,为vLLM的推理提升效率。 默认确定性实现 -
aclnnAntiMxQuant 将调用aclnnDynamicMxQuant/aclnnDynamicMxQuantV2量化得到的FLOAT4/FLOAT8的Tensor反量化为FLOAT16/BFLOAT16/FLOAT32格式。 - 默认确定性实现
aclnnApplyAdamW 实现adamW优化器功能。 - 默认确定性实现
aclnnApplyAdamWQuant 实现adamW优化器功能,对m和v做量化处理。 - 默认确定性实现
aclnnApplyAdamWV2 实现adamW优化器功能。 - 默认确定性实现
aclnnApplyFusedEmaAdam 实现FusedEmaAdam融合优化器功能。 默认确定性实现 默认确定性实现
aclnnApplyTopKTopP 对原始输入logits进行top-k和top-p采样过滤。 默认确定性实现 默认确定性实现
aclnnAscendAntiQuant 根据输入的scale和offset对输入x进行反量化。 默认确定性实现 -
aclnnAscendQuant 根据输入的scale和offset对输入x进行量化,且scale和offset的size需要是x的最后一维或1。 默认确定性实现 默认确定性实现
aclnnAscendQuantV3 对输入x进行量化操作,支持设置axis以指定scale和offset对应的轴,scale和offset的shape需要满足和axis指定x的轴相等或1。 默认确定性实现 默认确定性实现
aclnnAvgPool2d 对输入Tensor进行窗口为kH∗kWkH * kW、步长为sH∗sWsH * sW的二维平均池化操作。 默认确定性实现 默认确定性实现
aclnnAvgPool2dBackward 二维平均池化的反向传播,计算二维平均池化正向传播的输入梯度。 默认非确定性实现,支持配置开启 默认非确定性实现,支持配置开启
aclnnAvgPool3d 对输入Tensor进行窗口为kD∗kH∗kWkD * kH * kW、步长为sD∗sH∗sWsD * sH * sW的三维平均池化操作。 默认确定性实现 默认确定性实现
aclnnAvgPool3dBackward 三维平均池化的反向传播,计算三维平均池化正向传播的输入梯度。 默认非确定性实现,支持配置开启 默认非确定性实现,支持配置开启
aclnnBaddbmm&aclnnInplaceBaddbmm 计算α与batch1、batch2的矩阵乘结果的乘积,再与β和self的乘积求和。 默认确定性实现 默认确定性实现
aclnnBatchMatMul 完成张量self与张量mat2的矩阵乘计算。 - 默认确定性实现
aclnnBatchMatMulWeightNz 完成张量self与张量mat2的矩阵乘计算, mat2仅支持昇腾亲和数据排布格式,只支持self为3维, mat2为5维。 默认确定性实现 默认确定性实现
aclnnBatchNorm 对一个批次的数据做批量归一化处理,正则化之后生成的数据的统计结果为0均值、1标准差。 默认非确定性实现,支持配置开启 默认非确定性实现,支持配置开启
aclnnBatchNormElemt 将全局的均值和标准差倒数作为算子输入,对x做BatchNorm计算。 默认非确定性实现,支持配置开启 默认非确定性实现,支持配置开启
aclnnBatchNormElemtBackward aclnnBatchNormElemt的反向计算。用于计算输入张量的元素级梯度,以便在反向传播过程中更新模型参数。 默认确定性实现 默认确定性实现
aclnnBatchNormBackward aclnnBatchNorm的反向传播。用于计算输入张量的梯度,以便在反向传播过程中更新模型参数。 默认非确定性实现,支持配置开启 默认非确定性实现,支持配置开启
aclnnBatchNormGatherStatsWithCounts 收集所有device的均值和方差,更新全局的均值和标准差的倒数。 默认确定性实现 默认确定性实现
aclnnBatchNormReduce 对数据做正则化处理的第一步,对数据进行求和及平方和 默认非确定性实现,支持配置开启 -
aclnnBatchNormReduceBackward 主要用于反向传播过程中计算BatchNorm操作的梯度,并进行一些中间结果的规约操作以优化计算效率。 默认确定性实现 默认确定性实现
aclnnBidirectionLSTM 进行LSTM网络计算,接收输入序列和初始状态,返回输出序列和最终状态。 - -
aclnnBidirectionLSTMV2 进行LSTM网络计算,接收输入序列和初始状态,返回输出序列和最终状态。 - -
aclnnBinaryCrossEntropy 计算self和target的二元交叉熵。 默认确定性实现 默认确定性实现
aclnnBinaryCrossEntropyBackward 求二元交叉熵反向传播的梯度值。 默认确定性实现 默认确定性实现
aclnnBinaryCrossEntropyWithLogits 计算输入logits与标签target之间的BCELoss损失。 默认确定性实现 默认确定性实现
aclnnBinaryCrossEntropyWithLogitsBackward 将输入self执行logits计算,将得到的值与标签值target一起进行BCELoss的反向传播计算。 默认确定性实现 -
aclnnBinaryCrossEntropyWithLogitsTargetBackward 将输入self执行logits计算,将得到的值与标签值target一起进行BECLoss关于target的反向传播计算。 默认确定性实现 -
aclnnBucketize 根据给定的边界数组(boundaries)确定输入张量中每个元素所属的区间索引。 - 默认确定性实现
aclnnCelu&aclnnInplaceCelu aclnnCelu对输入张量self中的每个元素x调用连续可微指数线性单元激活函数CELU,并将得到的结果存入输出张量out中。 默认确定性实现 默认确定性实现
aclnnChamferDistanceBackward ChamferDistance(倒角距离)的反向算子,根据正向的输入对输出的贡献及初始梯度求出输入对应的梯度。 默认非确定性实现,支持配置开启 -
aclnnClippedSwiglu 带截断的Swish门控线性单元激活函数,实现x的SwiGlu计算。 默认确定性实现 默认确定性实现
aclnnConvolution 实现卷积功能,支持1D/2D/3D、转置卷积、空洞卷积、分组卷积。 默认确定性实现 默认确定性实现
aclnnConvolutionBackward 实现卷积的反向传播。 默认非确定性实现,支持配置开启 默认非确定性实现,支持配置开启
aclnnConvDepthwise2d 实现二维深度卷积(DepthwiseConv2D)计算。 默认确定性实现 默认确定性实现
aclnnConvertWeightToINT4Pack 对输入weight数据做预处理,实现低比特数据由稀疏存储到紧密存储的排布转换。输出weightInt4Pack的数据格式声明为FRACTAL_NZ时,该算子将数据格式从ND转为FRACTAL_NZ。 默认确定性实现 默认确定性实现
aclnnConvTbc 实现时序(TBC)一维卷积。 默认确定性实现 默认确定性实现
aclnnConvTbcBackward 用于计算时序卷积的反向传播。 默认非确定性实现,支持配置开启 默认非确定性实现,支持配置开启
aclnnCrossEntropyLoss 计算输入的交叉熵损失。 默认确定性实现 默认确定性实现
aclnnCrossEntropyLossGrad aclnnCrossEntropyLoss的反向传播。 默认确定性实现 默认确定性实现
aclnnCtcLoss 计算连接时序分类损失值。 默认非确定性实现,支持配置开启。 默认确定性实现
aclnnCtcLossBackward 连接时序分类损失值反向传播。 - -
aclnnDeepNorm 对输入张量x的元素进行深度归一化,通过计算其均值和标准差,将每个元素标准化为具有零均值和单位方差的输出张量。 默认确定性实现 -
aclnnDeepNormGrad aclnnDeepNorm的反向传播,完成张量x、张量gx、张量gamma的梯度计算,以及张量dy的求和计算。 默认非确定性实现,不支持配置开启 -
aclnnDeformableConv2d 实现卷积功能,支持2D卷积,同时支持可变形卷积、分组卷积。 默认确定性实现 默认确定性实现
aclnnDeformableConv2dBackward 实现卷积反向功能,支持2D卷积反向,同时支持可变形卷积、分组卷积反向。 - 默认确定性实现
aclnnDequantBias 对输入x反量化操作,将输入的int32的数据转化为FLOAT16/BFLOAT16输出。 默认确定性实现 -
aclnnDequantSwigluQuant 在Swish门控线性单元激活函数前后添加dequant和quant操作,实现x的DequantSwigluQuant计算。 默认确定性实现 默认确定性实现
aclnnDequantSwigluQuantV2 在Swish门控线性单元激活函数前后添加dequant和quant操作,实现x的DequantSwigluQuant计算。 默认确定性实现 默认确定性实现
aclnnSwigluGroup 执行SwiGLU激活,实现x的SwiGlu计算,输出与x相同数据类型的激活结果。 - 默认确定性实现
aclnnSwigluMxQuant 在Swish门控线性单元激活函数后添加DynamicMxQuant操作,实现x的SwigluMxQuant计算。 - 默认确定性实现
aclnnSwigluMxQuantWithDualAxis 在Swish门控线性单元激活函数后添加GroupDynamicMxQuant操作,根据传入的分组索引的起始值,对swiglu后的数据进行分组的-1轴和-2轴同时动态量化。 - 默认确定性实现
aclnnSwigluBackwardMxQuantWithDualAxis 在Swish门控线性单元激活的反向计算函数后添加GroupDynamicMxQuant操作,根据传入的分组索引的起始值,对swiglu后的数据进行分组的-1轴和-2轴同时动态量化。 - 默认确定性实现
aclnnGroupedDynamicMxQuant 根据传入的分组索引的起始值,对传入的数据进行分组的float8的动态量化。 - 默认确定性实现
aclnnGroupedDynamicMxQuantV2 根据传入的分组索引的起始值,对传入的数据进行分组的float8的动态量化。根据scaleAlg不同取值,选择不同的量化算法。 - 默认确定性实现
aclnnDynamicDualLevelMxQuant 通过给定的level0BlockSize和level1BlockSize将输入进行两次划分,以数据块为粒度,进行目的数据类型为FLOAT4类的MX二级量化。 - 默认确定性实现
aclnnGroupedDynamicBlockQuant 根据传入的分组索引的起始值对各个group以基本块的粒度进行量化,并输出量化参数scale。 - 默认确定性实现
aclnnGroupedDynamicBlockQuantV2 根据传入的分组索引的起始值对各个group以基本块的粒度进行量化,并输出量化参数scale。在目标数据类型为HIFLOAT8时,可以根据dstTypeMax设置目标数据类型的最大值。 - 默认确定性实现
aclnnDualLevelQuantMatmulWeightNz 完成二级量化mxfp4的矩阵乘计算。 - 默认确定性实现
aclnnDynamicMxQuant 目的数据类型为FLOAT4类、FLOAT8类的MX量化。在给定的轴axis上,根据每blocksize个数,计算出这组数对应的量化尺度mxscale作为输出mxscaleOut的对应部分,然后对这组数每一个除以mxscale,根据round_mode转换到对应的dstType,得到量化结果y作为输出yOut的对应部分。在dstType为FLOAT8_E4M3FN、FLOAT8_E5M2时,根据scaleAlg的取值来指定计算mxscale的不同算法。 - 默认确定性实现
aclnnDynamicMxQuantV2 目的数据类型为FLOAT4类、FLOAT8类的MX量化。根据scaleAlg不同取值,选择目的数据类型FP4E2M1的不同量化算法。可以根据dstTypeMax设置目标数据类型的最大值。 - 默认确定性实现
aclnnDynamicMxQuantV3 目的数据类型为FLOAT4类、FLOAT8类的MX量化。根据scaleAlg不同取值,选择目的数据类型FP4E2M1的不同量化算法。可以通过maxLowBound设置每个block计算出的最大绝对值的下界钳位值。 - 默认确定性实现
aclnnDynamicMxQuantWithDualAxis 在-1轴和-2轴上同时进行目的数据类型为FLOAT4类、FLOAT8类的MX量化。支持scaleAlg取值0(OCP算法)和1(CuBLAS算法)。算子实现时,-2轴(不包含)之前的轴会进行合轴处理。 - 默认确定性实现
aclnnDynamicMxQuantWithDualAxisV2 在-1轴和-2轴上同时进行目的数据类型为FLOAT4类、FLOAT8类的MX量化。在V1基础上新增scaleAlg取值2(DynamicDtypeRange算法)及dstTypeMax参数,支持FP4_E2M1类型的自定义量化范围。算子实现时,-2轴(不包含)之前的轴会进行合轴处理。 - 默认确定性实现
aclnnDynamicBlockMxQuant 对输入变量,以数据块(32*32)为基本块进行MX量化转换为目的数据类型。在每个基本块中,根据scale_alg的取值采取不同的scale算法计算出当前块对应的量化参数scale(1*1),将其广播为scale1(32*1)和scale2(1*32)输出。同时对基本块中的每一个数除以scale,根据round_mode转换到对应的dst_type,得到量化结果y - 默认确定性实现
aclnnDynamicBlockQuant 对输入张量,通过给定的rowBlockSize和colBlockSize将输入划分成多个数据块,以数据块为基本粒度进行量化。在每个块中,先计算出当前块对应的量化参数scaleOut,并根据scaleOut对输入进行量化。输出最终的量化结果,以及每个块的量化参数scaleOut。 默认确定性实现 默认确定性实现
aclnnDynamicBlockQuantV2 对输入张量,通过给定的rowBlockSize和colBlockSize将输入划分成多个数据块,以数据块为基本粒度进行量化。在每个块中,先计算出当前块对应的量化参数scaleOut,并根据scaleOut对输入进行量化。输出最终的量化结果,以及每个块的量化参数scaleOut。在目标数据类型为HIFLOAT8时,可以根据dstTypeMax设置目标数据类型的最大值。 默认确定性实现 默认确定性实现
aclnnDynamicQuant 对输入张量进行per-token对称动态量化。 默认确定性实现 默认确定性实现
aclnnDynamicQuantV2 为输入张量进行per-token对称/非对称动态量化。 默认确定性实现 默认确定性实现
aclnnDynamicQuantV3 为输入张量进行动态量化。 - 默认确定性实现
aclnnDynamicQuantV4 为输入张量进行动态量化。支持设置量化结果范围。 - 默认确定性实现
aclnnEinsum 使用爱因斯坦求和约定执行张量计算,形式为“term1, term2 -> output-term”,按照以下等式生成输出张量,其中reduce-sum对出现在输入项(term1, term2)中但未出现在输出项中的所有索引执行求和。 默认确定性实现 默认确定性实现
aclnnElu&aclnnInplaceElu 对输入张量self中的每个元素x调用指数线性单元激活函数ELU,并将得到的结果存入输出张量out中。 默认确定性实现 默认确定性实现
aclnnEluBackward aclnnElu激活函数的反向计算,输出ELU激活函数正向输入的梯度。 默认确定性实现 默认确定性实现
aclnnEmbedding 把数据集合映射到向量空间,进而将数据进行量化。embedding的二维权重张量为weight(m+1行,n列),对于任意输入索引张量indices(如1行3列),输出out是一个3行n列的张量。 默认确定性实现 默认确定性实现
aclnnEmbeddingBag 根据indices从weight中获得一组被聚合的数,然后根据offsets的偏移和mode指定的聚合模式对获取的数进行max、sum、mean聚合。其余参数则更细化了计算过程的控制。 默认确定性实现 默认确定性实现
aclnnEmbeddingDenseBackward 实现aclnnEmbedding的反向计算,将相同索引indices对应grad的一行累加到out上。 默认非确定性实现,支持配置开启 默认非确定性实现,支持配置开启
aclnnExpandIntoJaggedPermute 将稀疏数据置换索引从表维度扩展到批次维度,适用于稀疏特征在不同rank中具有不同批次大小的情况。 默认确定性实现 -
aclnnEmbeddingRenorm 根据给定的maxNorm和normType返回输入tensor在指定indices下的修正结果。 默认确定性实现 默认确定性实现
aclnnErfinv&aclnnInplaceErfinv erfinv是高斯误差函数erf的反函数。返回输入Tensor中每个元素对应在标准正态分布函数的分位数。 默认确定性实现 默认确定性实现
aclnnFakeQuantPerChannelAffineCachemask 对于输入数据self,使用scale和zero_point对输入self在指定轴axis上进行伪量化处理,并根据quant_min和quant_max对伪量化输出进行值域更新。 默认确定性实现 -
aclnnFakeQuantPerTensorAffineCachemask 对输入self进行伪量化处理,并根据quant_min和quant_max对伪量化输出进行值域更新。 默认确定性实现 -
aclnnFastBatchNormBackward aclnnBatchNorm的反向传播(高性能版本)。用于计算输入张量的梯度,以便在反向传播过程中更新模型参数。 默认确定性实现 -
aclnnFastGelu 快速高斯误差线性单元激活函数。 默认确定性实现 默认确定性实现
aclnnFastGeluBackward FastGelu的反向计算。 默认确定性实现 默认确定性实现
aclnnFastLayerNorm 对指定层进行均值为0、标准差为1的归一化计算。 默认确定性实现 -
aclnnFatreluMul 将输入Tensor按照最后一个维度分为左右两个Tensor:x1和x2,对左边的x1进行Threshold计算,将计算结果与x2相乘。 默认确定性实现 -
aclnnFlatQuant 融合算子为输入矩阵x一次进行两次小矩阵乘法。 默认确定性实现 默认确定性实现
aclnnFlatQuantV2 融合算子为输入矩阵x一次进行两次小矩阵乘法,支持dstTypeMax参数。 - 默认确定性实现
aclnnFlip 对n维张量的指定维度进行反转(倒序),dims中指定的每个轴的计算公式。 默认确定性实现 默认确定性实现
aclnnForeachAbs 对输入张量列表中的每个张量执行逐元素绝对值运算。 默认确定性实现 默认确定性实现
aclnnForeachAcos 对输入张量列表中的每个张量执行逐元素反余弦运算。 默认确定性实现 默认确定性实现
aclnnForeachACosInplace 对输入张量列表中的每个张量逐元素求反余弦,结果原地更新。 - 默认确定性实现
aclnnForeachAddcdivList 对多个张量进行逐元素加、乘、除操作,x2ix2_{i}x3ix3_{i}进行逐元素相除,并将结果乘以scalars,再与x1ix1_{i}相加。 默认确定性实现 -
aclnnForeachAddcdivScalar 对多个张量进行逐元素加、乘、除操作,x2ix2_{i}x3ix3_{i}进行逐元素相除,并将结果乘以scalar,再与x1ix1_{i}相加。 默认确定性实现 默认确定性实现
aclnnForeachAddcdivScalarList 对多个张量进行逐元素加、乘、除操作,x2ix2_{i}x3ix3_{i}进行逐元素相除,并将结果乘以scalarsiscalars_{i},再与x1ix1_{i}相加。 默认确定性实现 默认确定性实现
aclnnForeachAddcdivScalarV2 对多个张量进行逐元素加、乘、除操作,x2ix2_{i}x3ix3_{i}进行逐元素相除,并将结果乘以scalar,再与x1ix1_{i}相加。 默认确定性实现 默认确定性实现
aclnnForeachAddcmulList 先对张量列表x2和张量列表x3执行逐元素乘法,并将结果乘以张量scalars,最后将之前计算的结果与张量列表x1执行逐元素相加。 默认确定性实现 -
aclnnForeachAddcmulScalar 先对张量列表x2和张量列表x3执行逐元素乘法,再乘以张量scalar,最后将之前计算的结果与张量列表x1执行逐元素相加。 默认确定性实现 默认确定性实现
aclnnForeachAddcmulScalarList 先对张量列表x2和张量列表x3执行逐元素乘法,再与张量scalars进行逐元素乘法,最后将之前计算的结果与张量列表x1执行逐元素相加。 默认确定性实现 默认确定性实现
aclnnForeachAddcmulScalarV2 先对张量列表x2和张量列表x3执行逐元素乘法,再乘以标量scalar,最后将之前计算的结果与张量列表x1执行逐元素相加。 默认确定性实现 默认确定性实现
aclnnForeachAddList 两个Tensor列表中的元素逐个相加,并可以通过alpha参数调整相加系数。 默认确定性实现 默认确定性实现
aclnnForeachAddListV2 两个Tensor列表中的元素逐个相加,并可以通过alpha参数调整相加系数。 默认确定性实现 默认确定性实现
aclnnForeachAddListInplace 对两个张量列表逐元素计算x1+alpha*x2,结果原地写回第一个列表。 - 默认确定性实现
aclnnForeachAddScalar 将指定的张量值加到张量列表中的每个张量中。 默认确定性实现 默认确定性实现
aclnnForeachAddScalarList 输入张量列表和输入标量列表执行逐元素相加运算。 默认确定性实现 默认确定性实现
aclnnForeachAddScalarV2 将指定的标量值加到张量列表中的每个张量中。 默认确定性实现 默认确定性实现
aclnnForeachAsin 按元素进行反正弦函数运算。 默认确定性实现 默认确定性实现
aclnnForeachAtan 按元素进行反正切函数运算。 默认确定性实现 默认确定性实现
aclnnForeachCopy 用于实现两个张量列表内容的复制。 默认确定性实现 默认确定性实现
aclnnForeachCos 按元素进行余弦函数运算。 默认确定性实现 默认确定性实现
aclnnForeachCosh 按元素进行双曲余弦函数运算。 默认确定性实现 默认确定性实现
aclnnForeachDivList 对张量列表x1和张量列表x2执行逐元素除法。 默认确定性实现 默认确定性实现
aclnnForeachDivListInplace 对两个张量列表逐元素相除,结果原地写回第一个列表。 - 默认确定性实现
aclnnForeachDivScalar 计算张量列表x除以张量scalar。 默认确定性实现 默认确定性实现
aclnnForeachDivScalarList 对张量列表x和标量列表scalars执行逐元素除法。 默认确定性实现 默认确定性实现
aclnnForeachDivScalarV2 计算张量列表x除以标量scalar。 默认确定性实现 -
aclnnForeachErf 按元素进行误差函数运算(也称之为高斯误差函数,error function or Gaussian error function)。 默认确定性实现 默认确定性实现
aclnnForeachErfc 按元素执行从x到无穷大积分的互补误差函数运算。 默认确定性实现 默认确定性实现
aclnnForeachExp 对输入张量列表的每个张量进行指数运算。 默认确定性实现 默认确定性实现
aclnnForeachExpm1 对输入张量列表的每个张量执行指数运算,然后将得到的结果减1。 默认确定性实现 默认确定性实现
aclnnForeachLerpList 对两个张量列表对应位置元素执行插值计算,其中张量列表weight是插值系数。 默认确定性实现 默认确定性实现
aclnnForeachLerpScalar 对两个张量列表对应位置元素执行插值计算,其中标量weight是插值系数。 默认确定性实现 默认确定性实现
aclnnForeachLog 对张量列表执行逐元素自然对数运算(ln(x))。 默认确定性实现 默认确定性实现
aclnnForeachLogInplace 对输入张量列表中的每个张量逐元素求自然对数,结果原地更新。 - 默认确定性实现
aclnnForeachLog1p 对张量列表中的每一个元素执行先加一再以e为底的对数函数运算。 默认确定性实现 默认确定性实现
aclnnForeachLog2 对张量列表中的每一个元素执行以2为底的对数函数运算。 默认确定性实现 默认确定性实现
aclnnForeachLog10 对张量列表中的每一个元素执行以10为底的对数函数运算。 默认确定性实现 默认确定性实现
aclnnForeachMaximumList 对张量列表x1和张量列表x2执行逐元素比较,计算每个元素对应的最大值。 默认确定性实现 默认确定性实现
aclnnForeachMaximumScalar 对张量列表和张量scalar执行逐元素比较,计算每个元素对应的最大值。 默认确定性实现 -
aclnnForeachMaximumScalarList 对张量列表x和标量列表scalars执行逐元素比较,计算每个元素对应的最大值。 默认确定性实现 默认确定性实现
aclnnForeachMaximumScalarV2 对张量列表和标量值scalar执行逐元素比较,计算每个元素对应的最大值。 默认确定性实现 默认确定性实现
aclnnForeachMinimumList 对张量列表x1和张量列表x2执行逐元素比较,计算每个元素对应的最小值。 默认确定性实现 默认确定性实现
aclnnForeachMinimumScalar 对张量列表x和张量scalar执行逐元素比较,计算每个元素对应的最小值。 默认确定性实现 -
aclnnForeachMinimumScalarList 对张量列表x和标量列表scalars执行逐元素比较,计算每个元素对应的最小值。 默认确定性实现 默认确定性实现
aclnnForeachMinimumScalarV2 对张量列表x和标量值scalar执行逐元素比较,计算每个元素对应的最小值。 默认确定性实现 默认确定性实现
aclnnForeachMulList 对两个输入张量列表执行逐元素相乘。 默认确定性实现 默认确定性实现
aclnnForeachMulListInplace 对两个张量列表逐元素相乘,结果原地写回第一个列表。 - 默认确定性实现
aclnnForeachMulScalar 对输入张量列表的每个张量与张量scalar执行相乘运算。 默认确定性实现 默认确定性实现
aclnnForeachMulScalarList 对输入张量列表与标量列表执行逐元素相乘运算。 默认确定性实现 默认确定性实现
aclnnForeachMulScalarV2 对输入张量列表的每个张量与标量scalar执行相乘运算。 默认确定性实现 默认确定性实现
aclnnForeachMulScalarInplace 对输入张量列表中的每个张量逐元素乘以同一标量,结果原地更新。 - 默认确定性实现
aclnnForeachNeg 计算输入张量列表中每个张量的相反数。 默认确定性实现 默认确定性实现
aclnnForeachNonFiniteCheckAndUnscale 遍历scaledGrads中的所有Tensor,检查是否存在Inf或NaN,如果存在则将foundInf设置为1.0,否则foundInf的值保持不变,并对scaledGrads中的所有Tensor进行反缩放。 默认确定性实现 默认确定性实现
aclnnForeachNorm 对输入张量列表的每个张量进行范数运算。 默认确定性实现 默认确定性实现
aclnnForeachPowList 对输入张量列表的每个张量进行幂运算(底数为x1,指数为x2)。 默认确定性实现 默认确定性实现
aclnnForeachPowScalar 对输入张量列表x中的每个张量进行指数运算,指数为张量scale。 默认确定性实现 -
aclnnForeachPowScalarV2 对输入张量列表x中的每个张量进行指数运算,指数为标量exponent。 默认确定性实现 默认确定性实现
aclnnForeachPowScalarAndTensor 对输入张量列表x中的每个张量进行指数运算,底数为输入的标量scalar。 默认确定性实现 默认确定性实现
aclnnForeachPowScalarList 对输入张量列表x中的每个张量进行指数运算,指数为标量列表exponent中对应的标量。 默认确定性实现 默认确定性实现
aclnnForeachReciprocal 对输入张量列表的每个张量进行倒数运算。 默认确定性实现 默认确定性实现
aclnnForeachRoundOffNumber 对输入张量列表的每个张量执行指定精度的四舍五入运算,可通过roundMode指定舍入方式。 默认确定性实现 默认确定性计算
aclnnForeachRoundOffNumberV2 对输入张量列表的每个张量执行指定精度的四舍五入运算,可通过roundMode指定舍入方式。 默认确定性实现 默认确定性计算
aclnnForeachSigmoid 对输入张量列表的每个张量进行Sigmoid函数运算。 默认确定性实现 默认确定性实现
aclnnForeachSign 计算输入张量列表中每个张量的符号值。 默认确定性实现 默认确定性实现
aclnnForeachSin 对输入张量列表的每个张量进行正弦函数运算。 默认确定性实现 默认确定性实现
aclnnForeachSinh 对输入张量列表的每个张量进行双曲正弦函数运算。 默认确定性实现 默认确定性实现
aclnnForeachSqrt 对输入张量列表的每个张量进行平方根运算。 默认确定性实现 默认确定性实现
aclnnForeachSubList 对输入的两个张量列表执行逐元素相减运算,并可以通过alpha参数调整相减系数。 默认确定性实现 -
aclnnForeachSubListV2 对两个张量列表中的元素执行逐个相减,并可以通过alpha参数调整相减系数。 默认确定性实现 默认确定性实现
aclnnForeachSubListInplace 对两个张量列表逐元素计算x1-alpha*x2,结果原地写回第一个列表。 - 默认确定性实现
aclnnForeachSubScalar 对输入张量列表的每个张量与张量scalar执行相减运算。 默认确定性实现 -
aclnnForeachSubScalarList 对输入张量列表的每个张量与标量列表scalars的每个标量逐元素执行相减运算。 默认确定性实现 默认确定性实现
aclnnForeachSubScalarV2 对输入张量列表的每个张量与标量scalar执行相减运算。 默认确定性实现 默认确定性实现
aclnnForeachSubScalarInplace 对输入张量列表中的每个张量逐元素减去同一标量,结果原地更新。 - 默认确定性实现
aclnnForeachTan 对输入张量列表的每个张量进行正切函数运算。 默认确定性实现 默认确定性实现
aclnnForeachTanh 对输入张量列表的每个张量进行双曲正切函数运算。 默认确定性实现 默认确定性实现
aclnnForeachZeroInplace 原地更新输入张量列表,输入张量列表的每个张量置为0。 默认确定性实现 -
aclnnFusedCrossEntropyLossWithMaxSum 词汇表并行场景下交叉熵计算模块的一部分,解决超大规模词汇表下的显存和计算效率问题,当前部分为计算loss与softMax的结果。 默认确定性实现 -
aclnnFusedLinearOnlineMaxSum 功能等价Megatron的matmul与fused_vocab_parallel_cross_entropy的实现,支持vocabulary_size维度切卡融合matmul与cross-entropy loss。 默认确定性实现 默认确定性实现
aclnnFusedLinearCrossEntropyLossGrad 是词汇表并行场景下交叉熵损失计算模块中的一部分,解决超大规模词汇表下的显存和计算效率问题,当前部分为梯度计算实现,用于计算叶子节点inputweight的梯度。 默认确定性实现 -
aclnnFusedMatmul 矩阵乘与通用向量计算融合。 默认确定性实现 默认确定性实现
aclnnFusedQuantMatmul 量化矩阵乘与通用向量计算融合。 默认确定性实现 -
aclnnFusedQuantMatmulWeightNz 量化矩阵乘与通用向量计算融合,WeightNz输入。 - -
aclnnGather 对输入tensor中指定的维度dim进行数据聚集。 默认确定性实现 -
aclnnGatherNd 对于维度为r≥1的输入张量self,和维度q≥1的输入张量indices,将数据切片收集到维度为(q-1) + (r - indices_shape[-1])的输出张量out中。 默认确定性实现 默认确定性实现
aclnnGatherV2 从输入Tensor的指定维度dim,按index中的下标序号提取元素,保存到out Tensor中。 默认确定性实现 默认确定性实现
aclnnGatherV3 从输入Tensor的指定维度dim,按index中的下标序号提取元素,batchDims代表运算批次。保存到out Tensor中。 默认确定性实现 默认确定性实现
aclnnGeGlu 高斯误差线性单元激活函数。 默认确定性实现 默认确定性实现
aclnnGeGluBackward 完成aclnnGeGlu的反向。 默认确定性实现 默认确定性实现
aclnnGeGluV3 高斯误差线性单元激活门函数,针对aclnnGeGlu,扩充了设置激活函数操作数据块方向的功能。 默认确定性实现 默认确定性实现
aclnnGeGluV3Backward 完成aclnnGeGluV3的反向。 默认确定性实现 默认确定性实现
aclnnGelu 高斯误差线性单元激活函数。 默认确定性实现 默认确定性实现
aclnnGeluBackward 完成aclnnGelu的反向。 默认确定性实现 默认确定性实现
aclnnGeluBackwardV2 完成aclnnGeluV2的反向。 默认确定性实现 默认确定性实现
aclnnGeluMul 将输入Tensor按照最后一个维度分为左右两个Tensor:x1和x2,对左边的x1进行Gelu计算,将计算结果与x2相乘。 默认确定性实现 默认确定性实现
aclnnGeluQuant 将GeluV2与DynamicQuant/AscendQuantV2进行融合,对输入的数据self进行gelu激活后,对激活的结果进行量化,输出量化后的结果。 - 默认确定性实现
aclnnGeluV2 高斯误差线性单元激活函数。 默认确定性实现 默认确定性实现
aclnnGemm 计算α 乘以A与B的乘积,再与β 和input C的乘积求和。 默认确定性实现 默认确定性实现
aclnnGemmaRmsNorm GemmaRmsNorm算子是大模型常用的归一化操作,相比RmsNorm算子,在计算时对gamma执行了+1操作。 默认确定性实现 默认确定性实现
aclnnGlu GLU是一个门控线性单元函数,它将输入张量沿着指定的维度dim平均分成两个张量,并将其前部分张量与后部分张量的Sigmoid函数输出的结果逐元素相乘。 默认确定性实现 默认确定性实现
aclnnGluBackward 完成aclnnGlu的反向。 默认确定性实现 默认确定性实现
aclnnHardshrink 以元素为单位,强制收缩λ范围内的元素。 默认确定性实现 -
aclnnGroupNorm 计算输入self的组归一化结果out,均值meanOut,标准差的倒数rstdOut。 默认确定性实现 默认确定性实现
aclnnGroupNormBackward aclnnGroupNorm的反向计算。用于计算输入张量的梯度,以便在反向传播过程中更新模型参数。 默认非确定性实现,支持配置开启 默认非确定性实现,支持配置开启
aclnnGroupNormSilu 计算输入self的组归一化结果groupnormOut,均值meanOut,标准差的倒数rstdOut,将groupnormOut进行silu运算得到最终的输出out。 默认确定性实现 默认确定性实现
aclnnGroupNormSiluV2 计算输入self的组归一化结果out,均值meanOut,标准差的倒数rstdOut,以及silu的输出。 默认确定性实现 默认确定性实现
aclnnGroupNormSiluQuant 计算输入self的组归一化,均值meanOut,标准差的倒数rstdOut,以及对silu的输出进行量化的结果out。 默认确定性实现 -
aclnnGroupNormSwish 计算输入x的组归一化结果out,均值meanOut,标准差的倒数rstdOut,以及swish的输出。 默认确定性实现 默认确定性实现
aclnnGroupNormSwishGrad aclnnGroupNormSwish的反向操作。 默认非确定性实现,支持配置开启 默认确定性实现
aclnnGroupQuant 对输入x进行分组量化操作。 默认确定性实现 -
aclnnHardshrinkBackward aclnnHardshrink计算反向传播的梯度gradInput。 默认确定性实现 默认确定性实现
aclnnHardsigmoid&aclnnInplaceHardsigmoid 激活函数变种,根据公式返回一个新的tensor。结果的形状与输入tensor相同。 默认确定性实现 -
aclnnHardsigmoidBackward aclnnHardsigmoid的反向传播。 默认确定性实现 默认确定性实现
aclnnHardswishBackward aclnnHardswish的反向传播,完成张量self的梯度计算。 默认确定性实现 默认确定性实现
aclnnHardswishBackwardV2 aclnnHardswish的反向传播,完成张量self的梯度计算。 默认确定性实现 默认确定性实现
aclnnHardswish&aclnnInplaceHardswish 激活函数,返回与输入tensor shape相同的输出tensor,输入的value小于等于-3时取0,大于等于3时取该value,其余时刻取value加3的和乘上value再除以6。 默认确定性实现 默认确定性实现
aclnnHardtanhBackward 激活函数aclnnHardtanh的反向。 默认确定性实现 默认确定性实现
aclnnHeaviside 计算输入input中每个元素的Heaviside阶跃函数,作为模型的激活函数。 默认确定性实现 -
aclnnIndex 根据索引indices将输入x对应坐标的数据取出。 默认确定性实现 默认确定性实现
aclnnIndexAdd 在指定维度上,根据给定的索引,将源张量中的值加到输入张量中对应位置的值上。 默认非确定性实现,支持配置开启 默认非确定性实现,支持配置开启
aclnnIndexAddV2 在指定维度上,根据给定的索引,将源张量中的值加到输入张量中对应位置的值上。支持开启高性能计算模式。 默认非确定性实现,支持配置开启 -
aclnnIndexCopy&aclnnInplaceIndexCopy 将index张量中元素值作为索引,针对指定轴dim,把source中元素复制到selfRef的对应位置上。 默认确定性实现 默认确定性实现
aclnnIndexFill&aclnnInplaceIndexFill 沿输入self的给定轴dim,将index指定位置的值使用value进行替换。 默认确定性实现 默认确定性实现
aclnnIndexFillTensor&aclnnInplaceIndexFillTensor 沿输入self的给定轴dim,将index指定位置的值使用value进行替换。 默认确定性实现 默认确定性实现
aclnnIndexPutImpl 根据索引indices将输入x对应坐标的数据与输入value进行替换或累加。 默认非确定性实现,支持配置开启 默认非确定性实现,支持配置开启
aclnnInplacePut 将selfRef视为一维张量,把index张量中元素值作为索引,如果accumulate为true,把source中元素和selfRef对应的位置上元素做累加操作;如果accumulate为false,把source中元素替换掉selfRef对应位置上的元素。 默认确定性实现 默认确定性实现
aclnnInplaceScatterUpdate 将tensor updates中的值按指定的轴axis和索引indices逐个更新tensor data中的值。该算子为自定义算子语义,无对应的tensorflow或pytorch接口。 默认确定性实现 默认确定性实现
aclnnIndexSelect 从输入Tensor的指定维度dim,按index中的下标序号提取元素,保存到out Tensor中。 默认确定性实现 默认确定性实现
aclnnInplaceAddRmsNorm RmsNorm算子是大模型常用的归一化操作,相比LayerNorm算子,其去掉了减去均值的部分。 默认确定性实现 默认确定性实现
aclnnInplaceMaskedScatter 根据掩码(mask)张量中元素为True的位置,复制(source)中的元素到(selfRef)对应的位置上。 默认确定性实现 默认确定性实现
aclnnInplaceQuantScatter 先将updates在quantAxis轴上进行量化:quantScales对updates做缩放操作,quantZeroPoints做偏移。然后将量化后的updates中的值按指定的轴axis,根据索引张量indices逐个更新selfRef中对应位置的值。 默认确定性实现 默认确定性实现
aclnnInplaceQuantScatterV2 Quantize算子和Scatter算子的融合,先将updates在quantAxis轴上进行量化:quantScales对updates做缩放操作,quantZeroPoints做偏移。然后将量化后的updates中的值按指定的轴axis,根据索引张量indices逐个更新selfRef中对应位置的值。相比aclnnInplaceQuantScatter多了roundMode输入。 - 默认确定性实现
aclnnInstanceNorm 用于执行Instance Normalization(实例归一化)操作。 - -
aclnnInverse 计算输入方阵的逆矩阵。 默认确定性实现 默认确定性实现
aclnnKlDivBackward 进行aclnnKlDiv api的结果的反向计算。 默认确定性实现 默认确定性实现
aclnnKlDivTargetBackward 进行aclnnKlDiv api的结果的target反向计算。 默认确定性实现 默认确定性实现
aclnnKthvalue 返回输入Tensor在指定维度上的第k个最小值及索引。 默认确定性实现 默认确定性实现
aclnnL1Loss 计算输入self和目标target中每个元素之间的平均绝对误差(Mean Absolute Error,简称MAE)。 默认确定性实现 默认确定性实现
aclnnL1LossBackward 计算aclnnL1Loss的反向传播。reduction指定损失函数的计算方式。 默认确定性实现 默认确定性实现
aclnnLayerNorm&aclnnLayerNormWithImplMode 对指定层进行均值为0、标准差为1的归一化计算。 默认确定性实现 默认确定性实现
aclnnLayerNormBackward aclnnNorm的反向传播。用于计算输入张量的梯度,以便在反向传播过程中更新模型参数。 默认确定性实现 默认确定性实现
aclnnLayerNormQuant 算子将LayerNorm归一化输出和下游的量化算子融合起来,减少搬入搬出操作。 默认确定性实现 默认确定性实现
aclnnLeakyRelu&aclnnInplaceLeakyRelu 激活函数,用于解决Relu函数在输入小于0时输出为0的问题,避免神经元无法更新参数。 默认确定性实现 默认确定性实现
aclnnLeakyReluBackward LeakyRelu激活函数反向。 默认确定性实现 默认确定性实现
aclnnLinalgVectorNorm 计算输入张量的向量范数。 默认非确定性实现,支持配置开启 默认确定性实现
aclnnLogit 该算子是概率到对数几率(log-odds)转换的一个数学运算,常用于概率值的反变换。 默认确定性实现 默认确定性实现
aclnnLogitGrad 完成aclnnLogit的反向传播。 默认确定性实现 默认确定性实现
aclnnLogSigmoid 对输入张量逐元素实现LogSigmoid运算。 默认确定性实现 默认确定性实现
aclnnLogSigmoidBackward aclnnLogSigmoid的反向传播,根据上一层传播的梯度与LogSigmoid正向输入计算其梯度输入。 默认确定性实现 默认确定性实现
aclnnLogSigmoidForward 对输入张量逐元素实现LogSigmoid运算。 默认确定性实现 默认确定性实现
aclnnLogSoftmax 对输入张量计算logsoftmax值。 默认确定性实现 默认确定性实现
aclnnLogSoftmaxBackward 完成aclnnLogSoftmax的反向传播。 默认确定性实现 默认确定性实现
aclnnLSTM 完成LSTM的计算。 默认确定性实现 -
aclnnLstmBackward 完成LSTM反向的计算。 默认确定性实现 -
aclnnMaskedSoftmaxWithRelPosBias 替换在swinTransformer中使用window attention计算softmax的部分。 默认确定性实现 -
aclnnMatmul 完成1到6维张量self与张量mat2的矩阵乘计算。 默认确定性实现 默认确定性实现
aclnnMatmulWeightNz 完成张量self与张量mat2的矩阵乘计算,mat2仅支持昇腾亲和数据排布格式。 默认确定性实现 默认确定性实现
aclnnMatmulCompress 进行l@r矩阵乘计算时,可先通过msModelSlim工具对r矩阵进行无损压缩,减少r矩阵的内存占用大小,然后通过本接口完成无损解压缩,矩阵乘,反量化计算。 默认确定性实现 -
aclnnMatmulCompressDequant 进行l@r矩阵乘计算时,可先通过msModelSlim工具对r矩阵进行无损压缩,减少r矩阵的内存占用大小,然后通过本接口完成无损解压缩,矩阵乘,反量化计算。 默认确定性实现 -
aclnnMaxPool 对于dim=3或4维的输入张量,进行最大池化(max pooling)操作。 默认确定性实现 默认确定性实现
aclnnMaxPool2dWithIndices 对于输入信号的输入通道,提供2维(H,W维度)最大池化(max pooling)操作,输出池化后的值out和索引indices。 默认确定性实现 默认确定性实现
aclnnMaxPool2dWithIndicesBackward 正向最大池化aclnnMaxPool2dWithIndices的反向传播。 默认非确定性实现,支持配置开启。 默认确定性实现
aclnnMaxPool2dWithMask 对于输入信号的输入通道,提供2维最大池化(max pooling)操作,输出池化后的值out和索引indices(采用mask语义计算得出)。 默认确定性实现 -
aclnnMaxPool2dWithMaskBackward 正向最大池化aclnnMaxPool2dWithMask的反向传播。 默认非确定性实现,支持配置开启。 -
aclnnMaxPool3dWithArgmax 对于输入信号的输入通道,提供3维最大池化(max pooling)操作,输出池化后的值out和索引indices。 默认确定性实现 默认确定性实现
aclnnMaxPool3dWithArgmaxBackward 正向最大池化aclnnMaxPool3dWithArgmax的反向传播,将梯度回填到每个窗口最大值的坐标处,相同坐标处累加。 默认非确定性实现,支持配置开启。 默认确定性实现
aclnnMaxUnpool2d aclnnMaxPool在2d的逆运算,由outputSize决定out的H、W轴大小,并根据indices索引在out中填入self的元素值,其余位置都设置为0。 默认确定性实现 默认确定性实现
aclnnMaxUnpool2dBackward MaxPool2d的逆运算aclnnMaxUnpool2d的反向传播,根据indices索引在out中填入gradOutput的元素值。 默认确定性实现 默认确定性实现
aclnnMaxUnpool3d aclnnMaxPool在3d的逆运算,由outputSize决定outRef的D、H、W轴大小,并根据indices索引在outRef中填入self的元素值,其余位置都设置为0。 默认确定性实现 默认确定性实现
aclnnMaxUnpool3dBackward MaxPool3d的逆运算aclnnMaxUnpool3d的反向传播,根据indices索引在out中填入gradOutput的元素值。 默认确定性实现 默认确定性实现
aclnnMedian 返回所有元素的中位数。 默认确定性实现 默认确定性实现
aclnnMedianDim 返回所有元素的中位数及所在位置(若指定维度元素个数为size,则中位数对应排序后的下标为(size - 1) // 2)。 默认确定性实现 默认确定性实现
aclnnMm 完成2维张量self与张量mat2的矩阵乘计算。 默认确定性实现 默认确定性实现
aclnnMish&aclnnInplaceMish 一个自正则化的非单调神经网络激活函数。 默认确定性实现 默认确定性实现
aclnnMishBackward 计算aclnnMish的反向传播过程。 默认确定性实现 默认确定性实现
aclnnModulate 实现特征的自适应缩放(scale)和平移(shift)。 默认确定性实现 默认确定性实现
aclnnModulateBackward 完成ModulateBackward反向传播中参数的计算,进行梯度更新。 默认确定性实现 -
aclnnMseLoss 计算输入x和目标y中每个元素之间的均方误差。 默认确定性实现 默认确定性实现
aclnnMseLossBackward 均方误差函数aclnnMseLoss的反向传播。 默认确定性实现 默认确定性实现
aclnnMseLossOut 计算输入x和目标y中每个元素之间的均方误差。 默认确定性实现 默认确定性实现
aclnnMultilabelMarginLoss 计算负对数似然损失值。 默认非确定性实现,支持配置开启。 -
aclnnMultiScaleDeformableAttnFunction 通过指定参数来遍历不同尺寸特征图的不同采样点。 默认确定性实现 -
aclnnMultiScaleDeformableAttentionGrad 正向算子功能主要通过指定参数来遍历不同尺寸特征图的不同采样点。而反向算子的功能为根据正向的输入对输出的贡献及初始梯度求出输入对应的梯度。 默认非确定性实现,支持配置开启。 -
aclnnMv 计算矩阵input与向量vec的乘积。 默认确定性实现 默认确定性实现
aclnnNanMedian 忽略NAN后,返回所有元素的中位数。 默认确定性实现 默认确定性实现
aclnnNanMedianDim 忽略NAN后,返回Tensor指定维度求中位数及所在位置。 默认确定性实现 默认确定性实现
aclnnNorm 返回给定张量的矩阵范数或者向量范数。 默认非确定性实现,支持配置开启。 默认确定性实现
aclnnNLLLoss 计算负对数似然损失值。 默认非确定性实现,支持配置开启。 默认确定性实现
aclnnNLLLoss2d 计算负对数似然损失值。 默认非确定性实现,支持配置开启。 默认确定性实现
aclnnNLLLoss2dBackward 负对数似然损失反向。 默认确定性实现 默认确定性实现
aclnnNLLLossBackward 负对数似然损失函数的反向传播。 默认确定性实现 默认确定性实现
aclnnNonzero 找出self中非零元素的位置,设self的维度为D,self中非零元素的个数为N,则返回out的shape为D * N,每一列表示一个非零元素的位置坐标。 默认确定性实现 默认确定性实现
aclnnNonzeroV2 找出self中非零元素的位置,设self的维度为D,self中非零元素的个数为N,则返回out的shape为D * N,每一列表示一个非零元素的位置坐标。 默认确定性实现 默认确定性实现
aclnnPrelu 激活函数,Tensor中value大于0,取该value,小于0时取权重与value的乘积。 默认确定性实现 默认确定性实现
aclnnPreluBackward 完成aclnnPrelu的反向函数。 默认确定性实现 默认确定性实现
aclnnQuantConvolution 完成per-channel量化的2D/3D卷积计算。 默认确定性实现 默认确定性实现
aclnnQuantConvolutionWeightNz 完成per-channel量化的3D卷积计算,weight仅支持FRACTAL_Z_3D格式。 默认确定性实现 默认确定性实现
aclnnQuantize 对输入张量进行量化处理。 默认确定性实现 默认确定性实现
aclnnQuantizedBatchNorm 将输入Tensor执行一个反量化的计算,再根据输入的weight、bias、epsilon执行归一化,最后根据输出的outputScale以及outputZeroPoint执行量化。 默认确定性实现 默认确定性实现
aclnnQuantMatmulV5 完成量化的矩阵乘计算。 默认确定性实现 默认确定性实现
aclnnQuantBatchMatmulInplaceAdd 实现量化矩阵乘计算和原地累加加法计算,基本功能为矩阵乘和加法的组合。 - 默认确定性实现
aclnnQuantMatmulReduceSumWeightNz 完成量化的分组矩阵计算,然后所有组的矩阵计算结果相加后输出。 默认非确定性实现,支持配置开启。 -
aclnnQuantMatmulWeightNz 完成量化的矩阵乘计算。 默认确定性实现 默认确定性实现
aclnnQuantMatmulDequant 对输入x进行量化,矩阵乘以及反量化。 默认确定性实现 -
aclnnQuantMax 完成输入的量化计算并得到输入绝对值的最大值。 - 默认确定性实现
aclnnGroupedQuantMax 完成输入分组的量化计算并得到输入分组绝对值的最大值。 - 默认确定性实现
aclnnRelu&aclnnInplaceRelu 激活函数,返回与输入tensor shape相同的tensor, tensor中value大于等于0时,取值该value,小于0,取0。 默认确定性实现 默认确定性实现
aclnnRenorm&aclnnInplaceRenorm 返回一个张量,其中输入张量self沿维度dim的每个子张量都经过归一化,使得子张量的p范数低于maxNorm值。 默认确定性实现 默认确定性实现
aclnnRepeatInterleave 将tensor self进行flatten后,重复Tensor repeats中的相应次数。 默认确定性实现 默认确定性实现
aclnnRepeatInterleaveGrad 算子repeatInterleave的反向,将yGrad tensor的axis维度按repeats进行ReduceSum。 默认确定性实现 默认确定性实现
aclnnRepeatInterleaveInt 将tensor self进行flatten后,每个元素重复repeats的相应次数。 默认确定性实现 默认确定性实现
aclnnRepeatInterleaveIntWithDim 将tensor中的每个元素根据dim维度,每个元素重复repeats的相应次数。 默认确定性实现 默认确定性实现
aclnnRepeatInterleaveTensor 针对Tensor repeats的第i个元素,将i重复repeats[i]次。 默认确定性实现 默认确定性实现
aclnnRepeatInterleaveWithDim 将tensor中的每个元素根据dim维度,重复Tensor repeats中对应位置的相应次数。 默认确定性实现 默认确定性实现
aclnnRmsNorm RmsNorm算子是大模型常用的归一化操作,相比LayerNorm算子,其去掉了减去均值的部分。 默认确定性实现 默认确定性实现
aclnnRmsNormGrad aclnnRmsNorm的反向计算。用于计算RMSNorm的梯度,即在反向传播过程中计算输入张量的梯度。 默认非确定性实现,支持配置开启 默认非确定性实现,支持配置开启
aclnnRmsNormGradQuant RmsNormGrad是用于计算RmsNorm的梯度,即在反向传播过程中计算输入张量的梯度的算子。RmsNormGradQuant算子将RmsNormGrad和Quantize两个算子融合,RmsNormGrad计算完dx后进行quant计算,减少搬入搬出操作。 - 默认非确定性实现,支持配置开启
aclnnRmsNormQuant aclnnRmsNormQuant算子将aclnnRmsNorm前的Add算子以及aclnnRmsNorm后的Quantize算子融合起来,减少搬入搬出操作。 默认确定性实现 默认确定性实现
aclnnRmsNormQuantV3 aclnnRmsNormQuantV3将aclnnRmsNorm以及aclnnRmsNorm后的Quantize算子融合起来,减少搬入搬出操作。同时在aclnnRmsNormQuant的基础上支持Rstd的可选输出。 - 默认确定性实现
aclnnRotateQuant 对张量x进行旋转变换,然后执行可选的clamp操作,最后执行对称动态量化(目的数据类型为int8或者quint4x2)或者MX量化(目的数据类型为FLOAT4类、FLOAT8类)。 默认确定性实现 默认确定性实现
aclnnRReluWithNoise&aclnnInplaceRReluWithNoise 实现了带噪声的随机修正线性单元激活函数,它在输入小于等于0时,斜率为a;输入大于0时斜率为1。 默认确定性实现 -
aclnnScatter&aclnnInplaceScatter 将tensor src中的值按指定的轴和方向和对应的位置关系逐个替换/累加/累乘至tensor self中。 默认确定性实现 默认非确定性实现,支持配置开启
aclnnScatterAdd 将src tensor中的值按指定的轴方向和index tensor中的位置关系逐个填入self tensor中,若有多于一个src值被填入到self的同一位置,那么这些值将会在这一位置上进行累加。 默认确定性实现 默认非确定性实现,支持配置开启
aclnnScatterDiv 实现兼容tf.scatter_div的功能,按索引将updates逐切片除到var上。 - 默认非确定性实现,支持通过aclrtCtxSetSysParamOpt开启确定性
aclnnScatterNd 拷贝data的数据至out,同时在指定indices处根据updates更新out中的数据。 默认确定性实现 默认非确定性实现,支持配置开启
aclnnScatterNdUpdate 将tensor updates中的值按指定的索引indices逐个更新tensor varRef中的值。 默认确定性实现 默认非确定性实现,支持配置开启
aclnnScatterList 将稀疏更新应用到变量引用张量列表中,通过索引将updates中的值scatter到var对应的维度上。 默认非确定性实现,支持配置开启 -
aclnnScatterMax 实现兼容tf.scatter_max的功能,按索引将var与updates逐切片取最大值。 - 默认确定性实现
aclnnScatterMin 实现兼容tf.scatter_min的功能,按索引将var与updates逐切片取最小值。 - 默认确定性实现
aclnnScatterMul 实现兼容tf.scatter_mul的功能,按索引将updates逐切片乘到var上。 - 默认非确定性实现,支持通过aclrtCtxSetSysParamOpt开启确定性
aclnnScatterReduce&aclnnInplaceScatterReduce 对输入Tensor完成带规约语义的scatter操作,支持替换、累加、累乘、取最大值、取最小值、取平均值六种规约模式,可通过includeSelf控制是否将self中的原始值参与规约计算。 默认非确定性实现,支持配置开启 -
aclnnScatterValue&aclnnInplaceScatterValue 将scalar value中的值按指定的轴和方向和对应的位置关系逐个填入tensor self中。 默认确定性实现 默认非确定性实现,支持配置开启
aclnnScaledMaskedSoftmax 将输入的数据x先进行scale缩放和mask,然后执行softmax的输出。 默认确定性实现 -
aclnnScaledMaskedSoftmaxBackward softmax的反向传播,并对结果进行缩放以及掩码。 默认非确定性实现,支持配置开启。 -
aclnnSelu&aclnnInplaceSelu 对输入Tensor逐元素计算SELU(Scaled Exponential Linear Unit)激活函数。 默认确定性实现 -
aclnnSeluBackward 完成aclnnSelu的反向。 默认确定性实现 默认确定性实现
aclnnShrink 对输入张量进行非线性变换,根据输入值self与阈值lambd的关系,对输入通过偏移量bias进行缩放和偏移处理。 默认确定性实现 默认确定性实现
aclnnSigmoid&aclnnInplaceSigmoid 对输入Tensor完成sigmoid运算。 默认确定性实现 默认确定性实现
aclnnSigmoidBackward 完成sigmoid的反向传播,根据sigmoid反向传播梯度与正向输出计算sigmoid的梯度输入。 默认确定性实现 默认确定性实现
aclnnSilu 该算子也被称为Swish函数。 默认确定性实现 默认确定性实现
aclnnSiluBackward aclnnSilu的反向传播,根据silu反向传播梯度与正向输出计算silu的梯度输入。 默认确定性实现 默认确定性实现
aclnnSmoothL1Loss 计算SmoothL1损失函数。 默认确定性实现 默认确定性实现
aclnnSmoothL1LossBackward 计算aclnnSmoothL1Loss api的反向传播。 默认确定性实现 默认确定性实现
aclnnSoftMarginLoss 计算输入self和目标target的二分类逻辑损失函数。 默认确定性实现 默认确定性实现
aclnnSoftMarginLossBackward 计算aclnnSoftMarginLoss二分类逻辑损失函数的反向传播。 默认确定性实现 默认确定性实现
aclnnSoftmax 对输入张量计算softmax值。 默认确定性实现 默认确定性实现
aclnnSoftmaxBackward 完成softmax的反向传播。 默认确定性实现 默认确定性实现
aclnnSoftmaxCrossEntropyWithLogits 计算softmax和cross entropy的交叉熵损失,并给出对输入logits的反向梯度。 默认确定性实现 默认确定性实现
aclnnSoftplus 激活函数softplus。 默认确定性实现 -
aclnnSoftplusBackward aclnnSoftplus的反向传播。 默认确定性实现 -
aclnnSoftshrink 以元素为单位,强制收缩λ范围内的元素。 默认确定性实现 默认确定性实现
aclnnSoftshrinkBackward 完成Softshrink函数的反向接口。 默认确定性实现 默认确定性实现
aclnnSparse4to2QuantMatmulWeightNz 实现稀疏4:2量化的矩阵乘计算。 默认确定性实现 -
aclnnSquaredRelu SquaredReLU函数是一个基于标准ReLU函数的变体,其主要特点是对ReLU函数的输出进行平方,常作为模型的激活函数。 默认确定性实现 默认确定性实现
aclnnSwiGlu Swish门控线性单元激活函数,实现x的SwiGlu计算。 默认确定性实现 默认确定性实现
aclnnSwiGluGrad 完成aclnnSwiGlu的反向计算,完成x的SwiGlu反向梯度计算。 默认确定性实现 默认确定性实现
aclnnSwigluGroupQuant 在Swish门控线性单元激活函数后执行分组低比特量化,支持FP8和FP4量化输出。 - 默认确定性实现
aclnnSwigluGroupQuantGrad 完成SwiGLU激活函数分组量化的反向梯度计算。 - 默认确定性实现
aclnnSwiGluQuant 在SwiGlu激活函数后添加quant操作,实现输入x的SwiGluQuant计算。 默认确定性实现 默认确定性实现
aclnnSwiGluQuantV2 在SwiGlu激活函数后添加quant操作,实现输入x的SwiGluQuant计算,支持int8或int4量化输出。 默认确定性实现 默认确定性实现
aclnnSwish Swish激活函数,对输入Tensor逐元素进行Swish函数运算并输出结果Tensor。 默认确定性实现 默认确定性实现
aclnnSwishBackward aclnnSwishBackward是aclnnSwish激活函数的反向传播,用于计算Swish激活函数的梯度。 默认确定性实现 默认确定性实现
aclnnSyncBatchNormGatherStats 收集所有device的均值和方差,更新全局的均值和方差。 默认确定性实现 默认确定性实现
aclnnTake 将输入的self张量视为一维数组,把index的值当作索引,从self中取值,输出shape与index一致的Tensor。 默认确定性实现 默认确定性实现
aclnnTfScatterAdd 实现兼容tf.scatter_add和tf.scatter_nd_add的功能,将updates中的值按指定的索引加到varRef的切片上。 默认确定性实现 默认确定性实现
aclnnThnnFusedLstmCell 完成LSTM单元前向计算中,矩阵乘法后的后续计算。 默认确定性实现 -
aclnnThnnFusedLstmCellBackward 完成单个时间步LSTM反向的计算。 默认确定性实现 -
aclnnThreshold&aclnnInplaceThreshold 对输入x进行阈值操作。当x中的elements大于threshold时,返回elements;否则,返回value。 默认确定性实现 默认确定性实现
aclnnThresholdBackward 完成aclnnThreshold的反向。 默认确定性实现 默认确定性实现
aclnnTransSparse4to2Para 对结构化稀疏的weight矩阵进行压缩预处理,输出压缩后的稀疏矩阵以及对应的索引矩阵。 默认确定性实现 -
aclnnTransposeBatchMatMul 完成张量x1与张量x2的矩阵乘计算。 默认确定性实现 默认确定性实现
aclnnTransposeBatchMatMulWeightNz 完成张量x1与张量x2的矩阵乘计算。x2仅支持昇腾亲和数据排布格式NZ,只支持x1为3维, x2为5维。 默认确定性实现 -
aclnnTransposeQuantBatchMatMul 完成张量x1与张量x2量化的矩阵乘计算。 默认确定性实现 默认确定性实现
aclnnTransposeQuantBatchMatMulWeightNz 完成张量x1与张量x2量化的矩阵乘计算。x2仅支持昇腾亲和数据排布格式NZ,只支持x1为3维, x2为5维。 默认确定性实现 默认确定性实现
aclnnTransQuantParam 将输入scale数据从FLOAT32类型转换为硬件需要的UINT64类型,并存储到quantParam中。 默认确定性实现 默认确定性实现
aclnnTransQuantParamV2 完成量化计算参数scale数据类型的转换,将FLOAT32的数据类型转换为硬件需要的UINT64,INT64类型。 默认确定性实现 默认确定性实现
aclnnTransQuantParamV3 完成量化计算参数scale数据类型的转换,将Float32的数据类型转换为硬件需要的UINT64,INT64类型。 默认确定性实现 默认确定性实现
aclnnTopKTopPSample 根据输入词频logits、topK/topP采样参数、随机采样权重分布q,进行topK-topP-sample采样计算,输出每个batch的最大词频logitsSelectIdx,以及topK-topP采样后的词频分布logitsTopKPSelect。 默认确定性实现 -
aclnnTopKTopPSampleV2 根据输入词频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中对应的索引。 默认确定性实现 -
aclnnUnique 返回输入张量中的唯一元素。 默认确定性实现 默认确定性实现
aclnnUnique2 对输入张量self进行去重,返回self中的唯一元素。unique功能的增强,新增返回值countsOut,表示valueOut中各元素在输入self中出现的次数,用returnCounts参数控制。 默认确定性实现 默认确定性实现
aclnnUniqueConsecutive 去除每一个元素后的重复元素。当dim不为空时,去除对应维度上的每一个张量后的重复张量。 默认确定性实现 默认确定性实现
aclnnUniqueDim 在某一dim轴上,对输入张量self做去重操作。 默认确定性实现 默认确定性实现
aclnnWeightQuantBatchMatmulNz 完成一个输入为伪量化场景的矩阵乘计算,仅支持NZ场景。 默认确定性实现 默认确定性实现
aclnnWeightQuantBatchMatmulV2 完成一个输入为伪量化场景的矩阵乘计算,并可以实现对于输出的量化计算。 默认非确定性实现,支持配置开启。 默认确定性实现
aclnnWeightQuantBatchMatmulV3 完成一个输入为伪量化场景的矩阵乘计算,并可以实现对于输出的量化计算。 默认非确定性实现,支持配置开启。 默认确定性实现

废弃接口

废弃接口 说明
aclnnWeightQuantBatchMatmul 此接口后续版本会废弃,请使用最新接口aclnnWeightQuantBatchMatmulV2aclnnWeightQuantBatchMatmulV3
aclnnQuantMatmul 此接口后续版本会废弃,请使用最新接口aclnnQuantMatmulV5
aclnnQuantMatmulV2 此接口后续版本会废弃,请使用最新接口aclnnQuantMatmulV5
aclnnQuantMatmulV3 此接口后续版本会废弃,请使用最新接口aclnnQuantMatmulV5
aclnnQuantMatmulV4 此接口后续版本会废弃,请使用最新接口aclnnQuantMatmulV5
aclnnBatchMatmulQuant 此接口后续版本会废弃,请勿使用该接口。