代码拉取完成,页面将自动刷新
本源码仓覆盖的高阶API列表如下,下表列出简单功能说明,具体使用说明请参考高阶API。同时我们还配套了其具体实现的算法框图,可配合源码阅读。
类别 | API | 描述 |
数学库 | 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 | 按元素做取小数计算。 | |
Lgamma | 按元素计算x的gamma函数的绝对值并求自然对数。 | |
Log | 按元素以e、2、10为底做对数运算。 | |
Power | 实现按元素做幂运算功能。 | |
Round | 将输入的元素四舍五入到最接近的整数。 | |
Sign | 按元素执行Sign操作,Sign是指返回输入数据的符号。 | |
Sin | 按元素做正弦函数计算。 | |
Sinh | 按元素做双曲正弦函数计算。 | |
Tan | 按元素做正切函数计算。 | |
Tanh | 按元素做逻辑回归Tanh。 | |
Trunc | 按元素做浮点数截断操作,即向零取整操作。 | |
Xor | 按元素执行Xor(异或)运算。 | |
量化反量化 | AscendAntiQuant | 按元素做伪量化计算,比如将int8_t数据类型伪量化为half数据类型。 |
AscendDequant | 按元素做反量化计算,比如将int32_t数据类型反量化为half/float等数据类型。 | |
AscendQuant | 按元素做量化计算,比如将half/float数据类型量化为int8_t数据类型。 | |
数据归一化 | BatchNorm | 对于每个batch中的样本,对其输入的每个特征在batch的维度上进行归一化。 |
DeepNorm | 在深层神经网络训练过程中,可以替代LayerNorm的一种归一化方法。 | |
LayerNorm | 将输入数据收敛到[0, 1]之间,可以规范网络层输入输出数据分布的一种归一化方法。 | |
LayerNormGrad | 用于计算LayerNorm的反向传播梯度。 | |
LayerNormGradBeta | 用于获取反向beta/gmma的数值,和LayerNormGrad共同输出pdx, gmma和beta。 | |
RmsNorm | 实现对shape大小为[B,S,H]的输入数据的RmsNorm归一化。 | |
GroupNorm | 对输入数据在 channel 维度进行分组并对每个组做归一化的方法。 | |
Normalize | 已知均值和方差,计算shape为[A, R]的输入数据的标准差倒数rstd和归一化结果y的方法。 | |
WelfordUpdate | Welford算法的前处理,一种在线计算均值和方差的方法。 | |
WelfordFinalize | Welford算法的后处理,一种在线计算均值和方差的方法。 | |
激活函数 | AdjustSoftMaxRes | 用于对SoftMax相关计算结果做后处理,调整SoftMax的计算结果为指定的值。 |
FasterGelu | FastGelu化简版本的一种激活函数。 | |
FasterGeluV2 | FastGeluV2版本,可以降低GELU的算力需求。 | |
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反向计算的一种方法,其中dstTensor的last长度固定为32Byte。 | |
SwiGLU | 采用Swish作为激活函数的GLU变体。 | |
Swish | 神经网络中的Swish激活函数。 | |
归约操作 | Mean | 根据最后一轴的方向对各元素求平均值。 |
ReduceXorSum | 按照元素执行Xor(按位异或)运算,并将计算结果ReduceSum求和。 | |
Sum | 获取最后一个维度的元素总和。 | |
ReduceSum | 对一个多维向量按照指定的维度进行数据累加。 | |
ReduceMean | 对一个多维向量按照指定的维度求平均值。 | |
ReduceProd | 对一个多维向量按照指定的维度求积。 | |
ReduceMax | 对一个多维向量按照指定的维度求最大值。 | |
ReduceMin | 对一个多维向量按照指定的维度求最小值。 | |
ReduceAny | 对一个多维向量按照指定的维度求逻辑或。 | |
ReduceAll | 对一个多维向量按照指定的维度求逻辑与。 | |
排序 | TopK | 获取最后一个维度的前k个最大值或最小值及其对应的索引。 |
Sort | 对输入tensor做Sort计算,按照数值大小进行降序排序。 | |
数据填充 | Broadcast | 将输入按照输出shape进行广播。 |
Pad | 对height * width的二维Tensor在width方向上pad到32B对齐。 | |
UnPad | 对height * width的二维Tensor在width方向上进行unpad。 | |
数据过滤 | Dropout | 提供根据MaskTensor对源操作数进行过滤的功能,得到目的操作数。 |
比较选择 | SelectWithBytesMask | 给定两个源操作数src0和src1,根据maskTensor相应位置的值(非bit位)选取元素,得到目的操作数dst。 |
变形 | ConfusionTranspose | 对输入数据进行数据排布及Reshape操作。 |
索引操作 | ArithProgression | 给定起始值,等差值和长度,返回一个等差数列。 |
Matmul | Matmul | Matmul矩阵乘法的运算。 |
工具类 | InitGlobalMemory | 将Global Memory上的数据初始化为指定值。 |
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。