预留接口
本章接口为预留接口,后续有可能变更或废弃,不建议开发者使用,开发者无需关注。
接口定义 |
功能说明 |
---|---|
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,执行上下文中的所有任务。 |