昇腾社区首页
中文
注册
开发者
下载

算子清单

算子类型

Operation

说明

通信算子

AllGatherOperation

不同卡的数据concat起来。

AllGatherVOperation

将多个通信卡上的数据按通信编号的顺序在第一维进行聚合,然后发送到每张卡上。

AllReduceOperation

不同卡的数据相加或者平均。

AllToAllOperation

数据广播。

AllToAllVOperation

向通信域内所有通信卡发送数据(数据量可以通过参数定制),并从所有通信卡接收数据(数据量可以通过参数定制)。

AllToAllVV2Operation

向通信域内所有通信卡发送数据(数据量可以通过参数定制),并从所有通信卡接收数据(数据量可以通过参数定制)。

BroadcastOperation

将通信主卡上的数据广播到其他每张卡上。

RecvOperation

从当前通信卡接收来自指定通信卡的数据。

ReduceScatterOperation

在集群内的所有节点上都按维度执行相同的Reduce规约运算,再将结果发散到集群内所有的节点上。

ReduceScatterVOperation

将多个通信卡上的数据进行计算,支持相加、取最大、最小三种计算,然后不等地发送到每张卡上。

SendOperation

将当前通信卡的输入发送至指定通信卡上。

RmsNormOperation

不同卡的数据concat起来。

RopeOperation

旋转位置编码,以旋转矩阵的方式在q、k中注入位置信息,使得attention计算时能感受到token的位置关系。

激活类

ActivationOperation

激活函数,可以引入非线性因素。

SoftmaxOperation

可以将Tensor(张量)的某个或多个维度数据归一化,对应维度上每一个元素的范围都在(0, 1)之间并且和为1。

张量变换

AsStridedOperation

基于已有的张量创建一个数据重新排布过的新的视图(view),可以通过指定形状(shape)和步长(strides)来重新排列元素。

BlockCopyOperation

通过指定源block index和目的block index,将keyCache和valueCache中的数据从一系列源block拷贝到一系列目的block(keyCache和valueCache做相同的拷贝处理)。

ConcatOperation

将两个输入张量在指定维度拼接成一个输出张量。

FillOperation

将指定位置设置为value值或者生成一个指定shape的tensor并填充为value。

PadOperation

对于输入input_ids,取出每个batch最后一个有效token的embedding向量。

RepeatOperation

将输入tensor的Shape,根据参数中multiples上的信息扩展指定倍数。

SetValueOperation

将输入源张量中的内容拷贝到输入目标张量指定位置中。

SliceOperation

从输入张量某个起始位置中提取指定大小的切片。

SplitOperation

将输入张量沿指定维度切分成多个张量。

TransdataOperation

数据格式转换处理。

TransposeOperation

改变输入Tensor的排列顺序,在多个维度上进行转置。

UnpadOperation

对于输入input_ids,把所有有效的token拼接在一起,并在最后补0。

正则化计算

CohereLayerNormOperation

一种归一化方法,可以将网络层输入根据-1维归一化到[0, 1]之间。

GatherPreRmsNormOperation

先进行Gather索引操作,然后进行加法操作,最后进行RmsNorm计算。

LayerNormOperation

是一种归一化方法,可以将网络层输入数据归一化到[0, 1]之间。

LayerNormWithStrideOperation

为了使LayerNorm支持非连续Tensor,将x tensor通过(shape、strides、offset)表示。strides描述某个维度上相邻两个元素的间隔,offset表示这个Tensor的首元素相对addr的偏移。

RmsNormOperation

RMSNorm是一种归一化方法,它通过对数据的root mean square(RMS)进行归一化,避免了均值的使用。

RmsNormWithStrideOperation

为了使RmsNorm支持非连续Tensor,将x tensor通过(shape、strides、offset)表示。strides描述某个维度上相邻两个元素的间隔,offset表示这个Tensor的首元素相对addr的偏移。

数学计算

CumsumOperation

返回给定axes上的累计和。

ElewiseOperation

常用的逐元素数值计算集合。

OnehotOperation

onehot编码。

ReduceOperation

在指定维度上求和、取最大值或最小值,并消除这个维度。

SortOperation

后处理计算功能。

WhereOperation

三目运算。

融合算子

DynamicNTKOperation

推理的长度大于训练序列长度时,生成ROPE算子使用的旋转矩阵。推理长度小于等于训练序列长度时,不进行插值;推理长度大于训练长度时,放大base动态插值。

FaUpdateOperation

将各SP域PA算子的输出的中间结果lse、attention out两个局部结果更新成全局结果。

FusedAddTopkDivOperation

算子支持两种模式:常规模式(物理专家模式)、逻辑专家模式。

GatingOperation

将token和专家的映射关系反转为专家与token的映射关系。

GmmDeqSwigluQuantGmmDeqOperation

整网中gate up + gate down两层的融合算子

GroupedMatmulInplaceAddOperation

算子Groupedmatmul和add融合,实现分组矩阵乘+InplaceAdd功能。

GroupedMatmulWithRoutingOperation

在MOE中,实现topK个专家权重与token激活值的乘法。

GroupTopkOperation

将输入tensor0中维度1(输入tensor0有2个维度:维度0和维度1)数据分groupNum个组,每组取最大值,然后选出每组最大值中前k个,最后将非前k个组的数据全部置零。

KVCacheOperation

KVCache处理。

MlaPreprocessOperation

融合了MLA场景下PagedAttention输入数据处理的全过程。

MmDeqSwigluQuantMmDeqOperation

整网中 gate up + gate down 两层的融合算子

MultiLatentAttentionOperation

MLA场景下的paged attention。

NormRopeReshapeOperation

对输入tensor x进行RmsNorm操作,再对keyrope进行Rope操作,将两个操作的输出合并后进行ReshapeAndCache操作 。

PagedAttentionOperation

基于paged attention 对于kvcache分页管理的机制计算attention score。

PagedCacheLoadOperation

根据blockTable上存储的blockId和kv请求长度在kvCache上将对应位置的token搬运拼接成1条连续的key/value序列。

RazorFusionAttentionOperation

支持混元大模型在多模态场景下的长序列优化,基于优化算法实现razorFusion特性。

RelayAttentionOperation

RelayAttention算法的核心创新点是通过将与系统提示对应的矩阵-向量乘法分组为矩阵-矩阵乘法,允许对于一批输入令牌从DRAM中仅读取一次系统提示的隐藏状态(键值对),从而消除现有因果注意力计算算法中处理系统提示时存在的大量冗余内存访问,在提高效率的同时保持生成质量且无需模型重新训练。

ReshapeAndCacheOperation

遍历每个key和value,将key和value(num_heads, head_size)以slotmapping填入key_cache/value_cache指定位置。

ReshapeAndCacheOmniOperation

OmniAttention在Decode阶段通过对LLM特定的Layer的特定Head进行Attention稀疏计算达到节省KV Cache显存、降低片上内存搬运数据量到缓存、减少Attention计算量的性能增益。

ReshapeAndCacheWithStrideOperation

支持Leading Dimension功能,key和value由传入tensor:kStrides、vStrides、kOffset、vOffset确定。

RingMLAOperation

基于传统MultiLatentAttention,并使能ring MLA算子的输出的中间结果lse,attention out两个局部结果更新成全局结果,支持更长的序列长度。

RopeOperation

旋转位置编码(Rotary Position Embedding,RoPE),以旋转矩阵的方式在q、k中注入位置信息,使得attention计算时能感受到token的位置关系。

RopeQConcatOperation

旋转位置编码后进行concat操作。

SelfAttentionOperation

基于传统flash attention按照layerId管理kvcache的机制计算attention score。

SwigluQuantOperation

swiglu函数激活对输出进行per token量化。

TopkToppSamplingOperation

依据给定的词表概率以及top-k、top-p,从词表概率中选取前k个作为候选,然后选取概率高于top-p的词表按照TopkToppSamplingType的值采取不同的后处理策略,最后选择最合适的词序号以及对应的概率作为输出。

FastSoftMaxOperation

与unpadOperation一起使用,将unpad处理后的Q矩阵和K矩阵相乘的结果做高性能的SoftMax处理。

FastSoftMaxGradOperation

用于计算FastSoftMax的反向计算结果,其数据的排列结构与FastSoftMax相同。

GenAttentionMaskOperation

根据实际需要生成attention mask。

LaserAttentionOperation

训练场景下,使用LaserAttention算法实现self-attention(自注意力)的计算。

LaserAttentionGradOperation

训练场景下,使用LaserAttention算法实现self-attention(自注意力)的计算(反向)。

PadWithHiddenStateOperation

带隐藏层的pad,这个算子的主要作用是将变长的序列填充为固定长度,便于批处理和模型训练。

RmsNormBackwardOperation

rmsnorm的反向计算。

RopeGradOperation

旋转位置编码处理的反向。

UnpadWithHiddenStateOperation

将填充后的序列恢复成原始的变长序列。

索引计算

GatherOperation

从输入张量中根据索引收集切片,并将这些切片组合成一个新的张量。

IndexAddOperation

固定维度的指定下标加上某个特定值。

MultinomialOperation

采样功能。对最后一个轴进行采样,随机抽取numSamples个值,输出下标。

NonzeroOperation

输出非零值索引。

ScatterElementsV2Operation

将张量update中的所有的值,按照indices位置,写到自身张量input中。

通算融合

LinearParallelOperation

通信计算并行算子,该算子功能为linear和通信算子组合,通信和计算是并行处理,与串行处理相较性能大幅度提升。

矩阵运算

LinearOperation

将A、B两个矩阵进行矩阵乘运算,同时可以选择对矩阵乘的运算结果添加偏置、InplaceAdd融合或反量化操作。

LinearSparseOperation

稀疏量化Linear。

StridedBatchMatmulOperation

对矩阵进行分组,指定每组矩阵之间的步长,实现更加灵活的矩阵乘法操作。