概述
本章节包含常用自定义接口,包括创建tensor及计算类操作。
API名称 |
说明 |
---|---|
不使用种子(seed)进行dropout结果计数。与torch.dropout相似,优化NPU设备实现。 |
|
从src拷贝元素到self张量,并返回self。 |
|
返回一个填充未初始化数据的张量。 |
|
计算输入张量中fast_gelu的梯度。 |
|
为溢出检测模式申请tensor作为入参。 |
|
在单个特征图中生成锚点的责任标志。 |
|
adam结果计数。 |
|
根据batch分类计算输入框评分,通过评分排序,删除评分高于阈值(iou_threshold)的框,支持多批多类处理。通过NonMaxSuppression(nms)操作可有效删除冗余的输入框,提高检测精度。NonMaxSuppression:抑制不是极大值的元素,搜索局部的极大值,常用于计算机视觉任务中的检测类模型。 |
|
adam结果计数。 |
|
将矩阵“a”乘以矩阵“b”,生成“a*b”。 |
|
根据rois和deltas生成标注框。自定义FasterRcnn算子。 |
|
计算标注框和ground truth真值框之间的坐标变化。自定义FasterRcnn算子。 |
|
返回self张量的新视图,其单维度扩展,结果连续。张量也可以扩展更多维度,新的维度添加在最前面。 |
|
应用基于NPU的CIoU操作。在DIoU的基础上增加了penalty item,并propose CIoU。 |
|
清除溢出检测相关标志位。 |
|
混淆reshape和transpose运算。 |
|
在由多个输入平面组成的输入图像上应用一个2D转置卷积算子,有时这个过程也被称为“反卷积”。 |
|
在由多个输入平面组成的输入图像上应用一个2D卷积。 |
|
在由多个输入平面组成的输入图像上应用一个3D卷积。 |
|
在由多个输入平面组成的输入图像上应用一个2D或3D卷积。 |
|
在由多个输入平面组成的输入图像上应用一个2D或3D转置卷积算子,有时这个过程也被称为“反卷积”。 |
|
使用预期输入计算变形卷积输出(deformed convolution output)。 |
|
应用基于NPU的DIoU操作。考虑到目标之间距离,以及距离和范围的重叠率,不同目标或边界需趋于稳定。 |
|
执行张量数据类型(dtype)转换。 |
|
修改NPU张量的格式。 |
|
原地修改self张量格式,与src格式保持一致。 |
|
获取溢出检测结果。 |
|
首先计算两个框的最小封闭面积和IoU,然后计算封闭区域中不属于两个框的封闭面积的比例,最后从IoU中减去这个比例,得到GIoU。 |
|
执行position-sensitive的候选区域池化梯度计算。 |
|
计算DynamicGRUV2。 |
|
使用“begin,end,strides”数组对ifmr结果进行计数。 |
|
使用“begin,end,strides”数组对index结果进行计数。 |
|
根据ground-truth和预测区域计算交并比(IoU)或前景交叉比(IoF)。 |
|
对层归一化结果进行计数。与torch.nn.functional.layer_norm相同, 优化NPU设备实现。 |
|
将矩阵“a”乘以矩阵“b”,生成“a*b”。 |
|
计算DynamicRNN。 |
|
同轴上被range.boxes屏蔽(masked)的填充张量。自定义屏蔽填充范围算子。 |
|
使用dim对最大结果进行计数。类似于torch.max, 优化NPU设备实现。 |
|
使用dim对最小结果进行计数。类似于torch.min, 优化NPU设备实现。 |
|
按元素计算self的双曲正切。 |
|
按分数降序选择旋转标注框的子集。 |
|
按分数降序选择标注框的子集。 |
|
生成值0或1,用于nms算子确定有效位。 |
|
执行批量归一化。 |
|
返回一个one-hot张量。input中index表示的位置采用on_value值,而其他所有位置采用off_value的值。 |
|
填充张量。 |
|
执行Position Sensitive ROI Pooling。 |
|
根据ground-truth和预测区域计算交并比(IoU)或前景交叉比(IoF)。 |
|
混洗非零元素的index。 |
|
reshape张量。仅更改张量shape,其数据不变。 |
|
从特征图中获取ROI特征矩阵。自定义FasterRcnn算子。 |
|
旋转标注框编码。 |
|
旋转标注框编码。 |
|
计算旋转框的IoU。 |
|
计算旋转框的重叠面积。 |
|
使用dim对scatter结果进行计数。类似于torch.scatter,优化NPU设备实现。 |
|
将float类型1位Adam打包为uint8。 |
|
将uint8类型1位Adam拆包为float。 |
|
计算self的Swish。 |
|
从张量中提取切片。 |
|
计算softmax的交叉熵cost。 |
|
沿给定维度,按无index值对输入张量元素进行升序排序。若dim未设置,则选择输入的最后一个维度。如果descending为True,则元素将按值降序排序。 |
|
添加两个张量的partial values,格式为NC1HWC0。 |
|
返回原始张量视图,其维度已permute,结果连续。 |
|
根据YOLO的锚点框(anchor box)和真值框(ground-truth box)生成标注框。自定义mmdetection算子。 |
|
实现“Transformer attention score”的融合计算逻辑,主要将matmul、transpose、add、softmax、dropout、batchmatmul、permute等计算进行了融合。 |
|
实现“Transformer Attention Score”的融合计算。 |
|
TP切分场景下,实现mm和all_reduce的融合,融合算子内部实现计算和通信流水并行。 |
|
该算子兼容MoeFFN和FFN。该算子在没有专家分组(expert_tokens为空)时是FFN,有专家分组时是MoeFFN,统称为FFN,属于Moe结构。 |
|
完成量化计算参数scale数据类型的转换。 |
|
完成量化的矩阵乘计算,最小支持输入维度为2维,最大支持输入维度为6维。 |
|
该接口用于实现矩阵乘计算中的weight输入和输出的量化操作,支持pertensor,perchannel,pergroup多场景量化。 |
|
GroupedMatmul算子可以实现分组矩阵乘计算,每组矩阵乘的维度大小可以不同,是一种灵活的支持方式。 |
|
先将updates进行量化,然后将updates中的值按指定的轴axis和索引indices更新self中的值,并将结果保存到输出tensor,self本身的数据不变。 |
|
先将updates进行量化,然后将updates中的值按指定的轴axis和索引indices更新self中的值,self中的数据被改变。 |
|
将updates中的值按指定的索引indices更新self中的值,并将结果保存到输出tensor,self本身的数据不变。 |
|
将updates中的值按指定的索引indices更新self中的值,并将结果保存到输出tensor,self中的数据被改变。 |
|
实现Transformer模块中的MultiHeadAttention计算逻辑。 |
|
RmsNorm算子是大模型常用的归一化操作,相比LayerNorm算子,其去掉了减去均值的部分 。 |
|
实现axpy_v2、softmax_v2、drop_out_domask_v3功能。 |
|
实现RotaryEmbedding旋转位置编码。 |
|
计算输入张量x缩放并按照mask遮蔽后的Softmax结果。 |
|
对输入Tensor完成GeGlu运算。 |
|
提供swiglu的激活函数。 |
|
用1填充self张量。 |