预留接口

本章节列出的接口均为预留接口,后续有可能变更或废弃,不建议开发者使用,开发者无需关注。

表1 预留接口列表

一级分类

二级分类

接口名称

功能描述

通用接口

-

GetRpcClient

获取内部框架RPC客户端。

GetSubBlockIdx

获取Subblock的索引ID。

硬件架构中包含负责向量计算的Vector核(AIV)以及负责矩阵计算的Cube核(AIC)。Subblock索引ID是指AIV的索引ID。

GetTaskRation

获取Cube核(AIC)和Vector核(AIV)的配比。

GetTPipePtr

获得TPipe指针。

InitOutput

初始化GM输出。

数据定义

Tensor

GetPhyAddr

获取Tensor物理地址。

SetAddrWithOffset

设置带有偏移的Tensor地址。

ToFile

将Tensor内容写入文件。

GetBufferHandle

获取BufferHandle指针,用于控制Buffer。

GetLocalBufferAddr

获取LocalBuffer地址。

SetBufferLen

设置Buffer长度。

SetShapeInfo

设置Tensor的Shape信息。

SetBufferValue

设置相应Buffer位置的值。

ListTensor

ListTensorDesc

ListTensorDesc类的构造函数, 用于解析对应的内存排布。

Init

GetDesc

根据index获得对应的Tensor描述信息。

GetDataPtr

根据index获取对应位置的二级指针。

GetSize

获取二级指针的个数。

TensorDesc

SetShapeAddr

配置用于储存shape信息的地址。

GetDim

获取TensorDesc的dim。

GetIndex

获取TensorDesc在ListTensorDesc中对应的索引值。

GetShape

获取对应维度的shape信息。

GetDataPtr

获取数据指针。

GetDataObj

将数据指针置于GlobalTensor中并获取该GlobalTensor。

内存管理与同步

TQueBind

TQueBind

TQueBind构造函数。用于跨越AIC、AIV之间时使用。

AllocBuffer

从Que中分配内存,内存大小为InitBuffer时设置的每块内存长度。

FreeBuffer

释放Que中的指定Buffer块,供Que后续使用

EnQue

将TbufHandle放入Que队列。

DeQue

TbufHandle从Que队列出队。

GetBufferAddr

从TBufHandle中获取TBuffAddr信息

FreeAllEvent

释放全部事件Events。

GetState

获取Tensor状态。

TBuf

GetWithOffset

根据Offset获取Tensor。

SetTpipeBuf

设置Tbuf信息。

TPipe

AllocEventID

分配EventID。用于流水之间事件同步,内部使用。

ReleaseEvent

释放指定的Event。

FetchEventID

根据HardEvent(硬件类型的同步ID)获取相应的EventID。

GetAbsAddr

手动指定地址偏移和长度进行内存分配,返回对应的TBuffAddr信息或者LocalTensor。

InitShareBufStart

初始化共享buffer起始位置。MatMul高阶API内部使用。

InitShareBufEnd

初始化共享buffer最大地址。MatMul高阶API内部使用。

GetQueueEndAddress

获取Queue的结束地址,用于确认Queue的边界。

GetBaseAddr

CPU域调试时内部用来做地址计算。

workspace

GetSysWorkSpacePtr

得到系统workspace指针。

SetSysWorkSpacePtr

框架需要使用的worksapce称之为系统workspace。在进行融合算子编程时,由于框架通信机制需要使用到worksapce,也就是系统workspace,所以在该场景下,开发者要调用该接口,设置系统workspace的指针。

矢量计算

Reduce

Gatherb

根据偏移地址将输入张量收集到结果张量。

GatherMask

以内置固定模式对应的二进制或者用户自定义输入的Tensor数值对应的二进制为mask,从源操作数中选取元素写入目的操作数中。

RepeatReduceSum

对每个repeat迭代内指定数量的数据求和。

矩阵计算

2D卷积

CheckConv2DRange

Conv2D内部实现使用到的接口,开发者无需关注。

CheckConv2DParamsRange

GetTypeforC0

CalculateConv2dTiling

Conv2DExecNmNopingpong

Conv2DExecNmPingPong

Conv2DExecNm

Conv2DExecMnNopingpong

Conv2DExecMnPingPong

Conv2DExecMn

FixPipe

Fixpipe

矩阵计算完成后,对结果进行处理。

Gemm

GetTypeStr

Gemm内部实现使用到的接口,开发者无需关注。

CheckRange

CheckOverflow

CheckParams

LoadL0B

LoadL0A

MmadFunc

GemmExecNmNopingpong

GemmExecNmPingPong

GemmExecNm

GemmExecMnNopingpong

GemmExecMnPingPong

GemmExecMn

数据搬移

DataCopy

DataCopyGetOffsetList

DataCopy内部计算过程,开发者无需关注。

DataCopyGetPhyStartIndex

控制类

多核控制

InitSyncID

使用多核同步功能时,初始化公共缓存的值。

ParamOffset

在多核处理场景下,给定数据起始地址(addr)和相邻核间处理数据起始地址的间隔大小(blockFactor),该接口计算每个核处理地址的偏移量并返回,等价于(addr + block_idx * blockFactor)。其中block_idx为核的逻辑id。

符号重载

-

SymbolOverride

重载符号。

SymbolOverrideAdd

重载符号内部实现。重载加法符号。

SymbolOverrideSub

重载符号内部实现。重载减法符号。

SymbolOverrideMul

重载符号内部实现。重载乘法符号。

SymbolOverrideDiv

重载符号内部实现。重载除法符号。

SymbolOverrideCompare

重载符号内部实现。重载比较符号。

SymbolOverrideOr

重载符号内部实现。重载或符号。

SymbolOverrideAnd

重载符号内部实现。重载与符号。