下载
中文
注册

预留接口

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

表1 接口列表

接口定义

功能说明

aclOpExecutor()

aclOpExecutor是用于记录整个host侧API运行信息的上下文结构,host侧API中几乎所有操作都以该数据结构为媒介,该函数为其构造函数。

CreateView(const aclTensor *tensor, const op::Shape &shape, int64_t offset)

针对一个已有的aclTensor,创建一个它的view类tensor,两个tensor共享内存,可以指定后者的shape和offset。

UpdateTensorAddr(void *workspaceAddr, const size_t size)

在workspace地址分配后,刷新每个workspace的地址。

GetWorkspaceAddr()

获取workspace的起始指针。

GetWorkspaceSize()

获取所需workspace的大小。

GetLinearWorkspaceSize()

废弃接口,开发者无需关注。

GetWorkspaceOffsets()

获取记录的workspace offset列表。

SetWorkspaceOffsets(const op::FVector<uint64_t> &workspaceOffsets)

设置要记录的workspace offset列表。

Run()

运行aclOpExecutor执行队列中的任务。

GetStream()

获取当前执行流。

GetInputTensors()

获取host侧API接口中的输入aclTensor。

GetOutputTensors()

获取host侧API接口中的输出aclTensor。

GetLogInfo()

获取aclOpExecutor中存储的日志相关信息。

SetLogInfo(const op::internal::OpLogInfo &logInfo)

SetStream(aclrtStream stream)

设置当前运行流。

AddTensorRelation(const aclTensor *tensorOut, const aclTensor *tensorMiddle)

记录两个aclTensor间的地址等价关系,用于aclnn cache。

UpdateStorageAddr()

在aclOpExecutor复用场景中,刷新aclTensor地址。

SetRepeatable()

尝试设置当前aclOpExecutor为可复用状态。

IsRepeatable()

判断当前aclOpExecutor是否为可复用状态。

FinalizeCache()

完成aclnn cache最终的数据保存工作。

RepeatRunWithCache(void *workspaceAddr, const aclrtStream stream)

复用aclOpExecutor场景,尝试利用aclnn cache完成任务执行。

CheckLauncherRepeatable()

判断aclOpExecutor任务列表中的每个任务都允许aclOpExecutor复用。

AddCache()

将aclOpExecutor中的aclnn cache保存到全局管理。

GetOpExecCache()

获取aclOpExecutor中记录的aclnn cache。

SetIOTensorList()

记录host侧API的输入/输出aclTensor。

GetGraph()

获取host侧API的执行图。

GetMagicNumber()

获取magic number,用于不同对象的区分。

UniqueExecutor(const char *funcName)

UniqueExecutor是aclOpExecutor的构造工厂,该函数为其构造函数。

UniqueExecutor()

get()

获取UniqueExecutor中的aclOpExecutor指针。

ReleaseTo(aclOpExecutor **executor)

将UniqueExecutor中的aclOpExecutor指针传递给目标aclOpExecutor指针。

UniqueExecutor(const UniqueExecutor &)

废弃接口,开发者无需关注。

GetOpExecCacheFromExecutor(aclOpExecutor *)

尝试将外部的aclOpExecutor转为aclnn cache对象。

InitL2Phase1Context(const char *l2Name, [[maybe_unused]] aclOpExecutor **executor)

初始化host侧API一阶段中的部分DFX变量值。

InitL2Phase2Context([[maybe_unused]] const char* l2Name, aclOpExecutor* executor)

初始化host侧API二阶段中的部分DFX变量值。

InitL0Context(const char *profilingName, aclOpExecutor* executor)

初始化L0接口的部分DFX变量值。

CreatAiCoreKernelLauncher([[maybe_unused]] const char *l0Name, uint32_t opType, aclOpExecutor *executor, op::OpArgContext *args)

创建一个AI Core任务对象。

CreatDSAKernelLauncher([[maybe_unused]] const char *l0Name, uint32_t opType, DSA_TASK_TYPE dsaTask, aclOpExecutor *executor, op::OpArgContext *args)

创建一个DSA任务对象。

InferShape(uint32_t optype, op::OpArgList &inputs, op::OpArgList &outputs, op::OpArgList &attrs)

执行指定算子的infer shape,获取infer shape的结果。

ConvertToTensor(const aclIntArray *value, op::DataType dataType)

将不同类型的host侧数据,转为一个host侧的aclTensor。

ConvertToTensor(const aclBoolArray *value, op::DataType dataType)

ConvertToTensor(const aclFloatArray *value, op::DataType dataType)

ConvertToTensor(const aclFp16Array *value, op::DataType dataType)

ConvertToTensor(const aclBf16Array *value, op::DataType dataType)

ConvertToTensor(const T *value, uint64_t size, op::DataType dataType)

ConvertToTensor(const aclScalar *value, op::DataType dataType)

将不同类型的host侧数据,转为一个host侧的aclTensor。

AddToKernelLauncherList(op::KernelLauncher *obj)

添加一个AI Core任务到执行队列。

AddToKernelLauncherListDvpp(uint32_t opType, op::KernelLauncher *obj, op::OpArgContext *args)

添加一个DVPP任务到执行队列。

AddToKernelLauncherListCopyTask(uint32_t opType, op::KernelLauncher *obj, op::OpArgList &inputs, op::OpArgList &outputs, op::OpArgList &workspace)

添加一个数据拷贝类任务到执行队列。

AddToKernelLauncherListAiCpu(int32_t opType, op::KernelLauncher *obj, op::OpArgContext *args)

添加一个AI CPU任务到执行队列。

CommonOpExecutorRun(void *workspace, uint64_t workspaceSize, aclOpExecutor *executor, aclrtStream stream)

根据外部给出的aclOpExecutor及workspace、stream,执行上下文中的所有任务。