20 Star 48 Fork 110

Ascend/ascendc-api-adv

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
README.md 11.59 KB
一键复制 编辑 原始数据 按行查看 历史

支持的API

本源码仓覆盖的高阶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上的数据初始化为指定值。
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/ascend/ascendc-api-adv.git
git@gitee.com:ascend/ascendc-api-adv.git
ascend
ascendc-api-adv
ascendc-api-adv
master

搜索帮助