20 Star 48 Fork 114

Ascend/ascendc-api-adv

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

算子开发样例

目录名称 算子样例 功能描述
activation adjustsoftmaxres 用于对softmax结果进行后处理。当输入的max tensor中存在指定的值,调整输入x tensor中对应位置的数据为自定义的值。
fastergelu 对输入tensor做FasterGelu计算。
simplesoftmax 对输入tensor按行做softmax计算,计算过程中不包含按行reduce计算max和sum,所需的max和sum由外部输入。
softmax 对输入tensor按行做softmax计算,计算过程包含按行reduce计算max和sum,同时会输出max和sum。
softmaxflash softmax增强版本,除了可以对输入tensor做softmaxflash计算,还可以根据上一次softmax计算的sum和max来更新本次softmax计算结果。
softmaxgrad 对输入tensor按行做如下公式的计算:zi = ∑(xi * yi),其中∑为按行reduce求和。
softmaxgradfront 对输入tensor按行做如下公式的计算:zi = (xi - ∑(xi * yi)) * yi,其中∑为按行reduce求和。
index arithprogression 基于给定的起始值,等差值和长度,返回一个等差数列。
matrix basic_block_matmul 实现无尾块且tiling的base块大小固定的场景下的Matmul矩阵乘法,计算公式为:C = A * B + Bias。
batch_matmul 一次完成BatchNum个Matmul矩阵乘法,单次Matmul计算公式为:C = A * B + Bias。
matmul 实现K轴方向对齐或非对齐的Matmul矩阵乘法,计算公式为:C = A * B + Bias。
matmul_async 实现异步场景下的Matmul矩阵乘法,计算公式为:C = A * B + Bias。
matmul_constant 实现MDL模板下使能Tiling常量化的Matmul矩阵乘法,计算公式为:C = A * B + Bias。
matmul_ibshare 实现A矩阵或B矩阵GM地址相同,共享L1 Buffer场景下的Matmul矩阵乘法,计算公式为:C = A * B + Bias。
matmul_k_reorder_load 实现MDL模板下使能K轴错峰加载数据的Matmul矩阵乘法,计算公式为:C = A * B + Bias。
matmul_mndb 实现M或N轴方向流水并行场景下的Matmul矩阵乘法,计算公式为:C = A * B + Bias。
matmul_preload 实现MDL模板使能M或N方向预加载功能场景下的Matmul矩阵乘法,计算公式为:C = A * B + Bias。
matmul_a2b2share 实现NORM模板使能A2和B2全局管理场景下的两次Matmul矩阵乘法,计算公式为:C1 = A1 * B1 + Bias,C2 = A2 * B2 + Bias。
matmul_callback 实现NORM模板下,自定义左矩阵搬运回调函数的Matmul矩阵乘法,计算公式为:C = A * B + Bias。
matmul_l0c_extend 基于自主管理CO1的Iterate接口实现Matmul矩阵乘法,计算公式为:C = A * B + Bias。
matmul_mixdualmaster 实现NORM模板下使能双主模式的Matmul矩阵乘法,计算公式为:C = A * B + Bias。
matmul_splitk 实现多核切K场景下的Matmul矩阵乘法,计算公式为:C = A * B + Bias。
matmul_nbuffer33 实现MDL模板下使能NBuffer33模板策略的Matmul矩阵乘法,计算公式为:C = A * B + Bias。
matmul_l2cache 实现NORM模板下支持L2 Cache切分的Matmul矩阵乘法,计算公式为:C = A * B + Bias。
matmul_nz 输入矩阵内轴非256B对齐场景下,在AIV核上使用DataCopyPad实现ND转换NZ格式的Matmul矩阵乘法,计算公式为:C = A * B + Bias。
matmul_l0cache 实现NORM模板下使能L0A缓存特性的Matmul矩阵乘法,计算公式为:C = A * B + Bias。
matmul_sparse 实现MDL模板下稀疏左矩阵A与4:2稠密化后的右矩阵B的Matmul矩阵乘法,计算公式为:C = A * B + Bias。
matmul_triangle 实现NORM模板下使能上下三角模板策略的Matmul矩阵乘法,计算公式为:C = A * B + Bias。
matmul_unaligned 实现NORM模板下多核非对齐切分的Matmul矩阵乘法,计算公式为:C = A * B + Bias。
normalization layernorm 将输入数据收敛到[0, 1]之间,每个tensor的特征值减去该特征的均值然后除以该特征的标准差,实现数据归一化。
layernorm_grad 计算layernorm的反向传播梯度。
layernorm_v2 将shape为[A, R]的输入数据收敛到[0, 1]之间,计算输入数据的标准差的倒数rstd与归一化结果y。
normalize 已知均值和方差,计算shape为[A, R]的输入数据的标准差倒数rstd和归一化结果y的方法。
welford_update Welford算法的前处理,一种在线计算均值和方差的方法。
welford_finalize Welford算法的后处理,一种在线计算均值和方差的方法。
math cos 对输入tensor做Cos计算。
filter dropout 对输入tensor进行数据过滤。
reduce sum 计算输入tensor最后一个维度的元素之和。
transpose confusion_transpose 对输入数据进行数据排布及Reshape操作。
pad broadcast 对输入tensor的shape进行广播。
quantization quant 对输入tensor按元素做量化计算,将float数据类型量化为int8_t数据类型。
dequant 对输入tensor按元素做反量化计算,将int32_t数据类型反量化为float数据类型。
sort sort 对输入tensor做Sort计算,按照数值大小进行降序排序。
utils init_global_memory 将Global Memory上的数据初始化为指定值。
index arithprogression 基于给定的起始值,等差值和长度,返回一个等差数列。
select selectwithbytesmask 对输入srcTensor和srcScalar,根据maskTensor相应位置的值从二者中选取元素得到dstTensor。
马建仓 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

搜索帮助