高阶API列表
数据结构
| 类型 | 功能描述 |
|---|---|
| TensorShape | 描述高阶API的Host侧Tiling接口使用的Tensor形状。 |
| TensorDataType | 描述高阶API的Host侧Tiling接口使用的Tensor数据类型。 |
数学计算
| 接口名 | 功能描述 |
|---|---|
| Acos | 按元素做反余弦函数计算。 |
| Acosh | 按元素做双曲反余弦函数计算。 |
| Asin | 按元素做反正弦函数计算。 |
| Asinh | 按元素做反双曲正弦函数计算。 |
| Atan | 按元素做三角函数反正切运算。 |
| Atanh | 按元素做反双曲正切余弦函数计算。 |
| Axpy | 源操作数中每个元素与标量求积后和目的操作数中的对应元素相加。 |
| Ceil | 获取大于或等于x的最小的整数值,即向正无穷取整操作。 |
| ClampMax | 将srcTensor中大于scalar的数替换为scalar,小于等于scalar的数保持不变,作为dstTensor输出。 |
| ClampMin | 将srcTensor中小于scalar的数替换为scalar,大于等于scalar的数保持不变,作为dstTensor输出。 |
| Cos | 按元素做三角函数余弦运算。 |
| Cosh | 按元素做双曲余弦函数计算。 |
| CumSum | 对数据按行依次累加或按列依次累加。 |
| Digamma | 按元素计算x的gamma函数的对数导数。 |
| Erf | 按元素做误差函数计算,也称为高斯误差函数。 |
| Erfc | 返回输入x的互补误差函数结果,积分区间为x到无穷大。 |
| Exp | 按元素取自然指数。 |
| Floor | 获取小于或等于x的最小的整数值,即向负无穷取整操作。 |
| Fmod | 按元素计算两个浮点数相除后的余数。 |
| Frac | 按元素做取小数计算。 |
| Hypot | 按元素计算两个浮点数平方和的平方根。 |
| IsFinite | 按元素判断输入的浮点数是否非NAN、非±INF。 |
| Lgamma | 按元素计算x的gamma函数的绝对值并求自然对数。 |
| Log | 按元素以e、2、10为底做对数运算。 |
| Power | 实现按元素做幂运算功能。 |
| Round | 将输入的元素四舍五入到最接近的整数。 |
| Sign | 按元素执行Sign操作,Sign是指返回输入数据的符号。 |
| Sin | 按元素做正弦函数计算。 |
| Sinh | 按元素做双曲正弦函数计算。 |
| Tan | 按元素做正切函数计算。 |
| Tanh | 按元素做逻辑回归Tanh。 |
| Trunc | 按元素做浮点数截断操作,即向零取整操作。 |
| Xor | 按元素执行Xor(异或)运算。 |
| Fma | 按元素计算两个输入相乘后与第三个输入相加的结果。 |
| IsNan | 按元素判断输入的浮点数是否为nan。 |
| IsInf | 按元素判断输入的浮点数是否为±INF。 |
| Rint | 获取与输入数据最接近的整数。 |
| SinCos | 按元素进行正弦计算和余弦计算,分别获得正弦和余弦的结果。 |
| LogicalNot | 按元素进行取反操作。 |
| LogicalAnd | 按元素进行与操作。 |
| LogicalAnds | 输入矢量内的每个元素与标量进行与操作。 |
| LogicalOr | 按元素进行或操作。 |
| LogicalOrs | 输入矢量内的每个元素与标量进行或操作。 |
| LogicalXor | 按元素进行逻辑异或操作。 |
| BitwiseNot | 逐比特对输入进行取反。 |
| BitwiseAnd | 逐比特对两个输入进行与操作。 |
| BitwiseOr | 逐比特对两个输入进行或操作。 |
| BitwiseXor | 逐比特对两个输入进行异或操作。 |
| Where | 根据指定的条件,从两个源操作数中选择元素,生成目标操作数。 |
量化操作
| 接口名 | 功能描述 |
|---|---|
| AntiQuantize | 按元素做伪量化计算,比如将int8_t数据类型伪量化为half数据类型。 |
| AscendAntiQuant | 按元素做伪量化计算,比如将int8_t数据类型伪量化为half数据类型。 |
| Dequantize | 按元素做反量化计算,比如将int32_t数据类型反量化为half/float等数据类型。 |
| AscendDequant | 按元素做反量化计算,比如将int32_t数据类型反量化为half/float等数据类型。 |
| Quantize | 按元素做量化计算,比如将half/float数据类型量化为int8_t数据类型。 |
| AscendQuant | 按元素做量化计算,比如将half/float数据类型量化为int8_t数据类型。 |
归一化操作
| 接口名 | 功能描述 |
|---|---|
| BatchNorm | 对于每个batch中的样本,对其输入的每个特征在batch的维度上进行归一化。 |
| DeepNorm | 在深层神经网络训练过程中,可以替代LayerNorm的一种归一化方法。 |
| GroupNorm | 将输入的C维度分为groupNum组,对每一组数据进行标准化。 |
| LayerNorm | 将输入数据收敛到[0, 1]之间,可以规范网络层输入输出数据分布的一种归一化方法。 |
| LayerNorm-Tiling | LayerNorm的Tiling参数配置接口,用于获取LayerNorm kernel计算时所需的Tiling参数。 |
| LayerNormGrad | 用于计算LayerNorm的反向传播梯度。 |
| LayerNormGrad-Tiling | LayerNormGrad的Tiling参数配置接口,用于设置反向传播梯度计算所需的分片参数。 |
| LayerNormGradBeta | 用于获取反向beta/gmma的数值,和LayerNormGrad共同输出pdx, gmma和beta。 |
| LayerNormGradBeta-Tiling | LayerNormGradBeta的Tiling参数配置接口。 |
| Normalize | LayerNorm中,已知均值和方差,计算shape为[A,R]的输入数据的标准差的倒数rstd和归一化输出y。 |
| RmsNorm | 实现对shape大小为[B,S,H]的输入数据的RmsNorm归一化。 |
| WelfordUpdate | 实现Welford算法的前处理。 |
| WelfordFinalize | 实现Welford算法的后处理。 |
激活函数
| 接口名 | 功能描述 |
|---|---|
| AdjustSoftMaxRes | 用于对SoftMax相关计算结果做后处理,调整SoftMax的计算结果为指定的值。 |
| FasterGelu | FastGelu化简版本的一种激活函数。 |
| FasterGeluV2 | 实现FastGeluV2版本的一种激活函数。 |
| GeGLU | 采用GeLU作为激活函数的GLU变体。 |
| Gelu | GELU是一个重要的激活函数,其灵感来源于relu和dropout,在激活中引入了随机正则的思想。 |
| LogSoftMax | 对输入tensor做LogSoftmax计算。 |
| ReGlu | 一种GLU变体,使用Relu作为激活函数。 |
| Sigmoid | 按元素做逻辑回归Sigmoid。 |
| Silu | 按元素做Silu运算。 |
| SimpleSoftMax | 使用计算好的sum和max数据对输入tensor做softmax计算。 |
| SoftMax | 对输入tensor按行做Softmax计算。 |
| SoftmaxFlash | SoftMax增强版本,除了可以对输入tensor做softmaxflash计算,还可以根据上一次softmax计算的sum和max来更新本次的softmax计算结果。 |
| SoftmaxFlashV2 | SoftmaxFlash增强版本,对应FlashAttention-2算法。 |
| SoftmaxFlashV3 | SoftmaxFlash增强版本,对应Softmax PASA算法。 |
| SoftmaxGrad | 对输入tensor做grad反向计算的一种方法。 |
| SoftmaxGradFront | 对输入tensor做grad反向计算的一种方法。 |
| SwiGLU | 采用Swish作为激活函数的GLU变体。 |
| Swish | 神经网络中的Swish激活函数。 |
归约操作
| 接口名 | 功能描述 |
|---|---|
| Sum | 获取最后一个维度的元素总和。 |
| Mean | 根据最后一轴的方向对各元素求平均值。 |
| ReduceXorSum | 按照元素执行Xor(按位异或)运算,并将计算结果ReduceSum求和。 |
| ReduceSum | 对一个多维向量按照指定的维度进行数据累加。 |
| ReduceMean | 对一个多维向量按照指定的维度求平均值。 |
| ReduceMax | 对一个多维向量在指定的维度求最大值。 |
| ReduceMin | 对一个多维向量在指定的维度求最小值。 |
| ReduceAny | 对一个多维向量在指定的维度求逻辑或。 |
| ReduceAll | 对一个多维向量在指定的维度求逻辑与。 |
| ReduceProd | 对一个多维向量在指定的维度求积。 |
排序操作
| 接口名 | 功能描述 |
|---|---|
| TopK | 获取最后一个维度的前k个最大值或最小值及其对应的索引。 |
| Concat | 对数据进行预处理,将要排序的源操作数srcLocal一一对应的合入目标数据concatLocal中,数据预处理完后,可以进行Sort。 |
| Extract | 处理Sort的结果数据,输出排序后的value和index。 |
| Sort | 排序函数,按照数值大小进行降序排序。 |
| MrgSort | 将已经排好序的最多4条队列,合并排列成1条队列,结果按照score域由大到小排序。 |
数据过滤
| 接口名 | 功能描述 |
|---|---|
| Select | 给定两个源操作数src0和src1,根据maskTensor相应位置的值(非bit位)选取元素,得到目的操作数dst。 |
| DropOut | 提供根据MaskTensor对源操作数进行过滤的功能,得到目的操作数。 |
张量变换
| 接口名 | 功能描述 |
|---|---|
| Transpose | 对输入数据进行数据排布及Reshape操作。 |
| TransData | 将输入数据的排布格式转换为目标排布格式。 |
| Broadcast | 将输入按照输出shape进行广播。 |
| Pad | 对height * width的二维Tensor在width方向上pad到32B对齐。 |
| UnPad | 对height * width的二维Tensor在width方向上进行unpad。 |
| Fill | 将Global Memory上的数据初始化为指定值。 |
索引计算
| 接口名 | 功能描述 |
|---|---|
| Arange | 给定起始值,等差值和长度,返回一个等差数列。 |
矩阵计算
| 接口名 | 功能描述 |
|---|---|
| Matmul | Matmul矩阵乘法的运算。 |
HCCL通信类
| 接口名 | 功能描述 |
|---|---|
| HCCL通信类 | 在AI Core侧编排集合通信任务。 |
卷积计算
| 接口名 | 功能描述 |
|---|---|
| Conv3D | 3维卷积正向矩阵运算。 |
| Conv3DBackpropInput | 卷积的反向运算,求解特征矩阵的反向传播误差。 |
| Conv3DBackpropFilter | 卷积的反向运算,求解权重的反向传播误差。 |
随机函数
| 接口名 | 功能描述 |
|---|---|
| PhiloxRandom | 基于Philox随机数生成算法,给定随机数种子,生成若干的随机数。 |