跳转至

ai

AI模块提供ACL(AI Computing Language)运行时和模型管理接口,支持NPU设备管理、内存管理、流管理、模型加载与推理等功能。

头文件清单

#include "include/middleware/services/ai/acl/acl.h"
#include "include/middleware/services/ai/acl/acl_base.h"
#include "include/middleware/services/ai/acl/acl_rt.h"
#include "include/middleware/services/ai/acl/acl_mdl.h"
#include "include/middleware/services/ai/acl/driver/npu_drv_freq_if.h"
#include "include/middleware/services/ai/acl/driver/npu_drv_if.h"

接口清单

接口名称 功能简述
uapi_npu_freq_change NPU频率变更
uapi_npu_dlog_setlevel 设置模块日志级别
aclrtSubscribeReport 注册处理Stream上回调函数的线程
aclrtLaunchCallback 在Stream任务队列中添加回调函数
aclrtProcessReport 等待指定时间后触发回调处理
aclrtUnSubscribeReport 取消线程注册,不再处理指定Stream回调
aclrtCreateContext 创建Context并关联到当前线程
aclrtDestroyContext 销毁Context实例
aclrtSetCurrentContext 设置线程的当前Context
aclrtGetCurrentContext 获取线程的当前Context
aclrtSetDevice 指定用于运算的Device
aclrtResetDevice 重置当前操作的Device并释放资源
aclrtGetDevice 获取当前线程的目标Device
aclrtGetRunMode 获取运行侧
aclrtMalloc 在Device上分配内存
aclrtFree 释放Device内存
aclrtMemcpy Host与Device之间同步内存复制
aclrtMemset 初始化内存并设置为指定值
aclrtCreateStreamConfigHandle 创建Stream配置句柄
aclrtDestroyStreamConfigHandle 销毁Stream配置句柄
aclrtSetStreamConfigOpt 设置Stream配置选项
aclrtCreateStreamV2 创建Stream实例
aclrtDestroyStream 销毁Stream实例
aclrtSynchronizeStream 阻塞Host等待Stream中所有任务完成
aclrtGetMemInfo 获取指定属性内存的空闲和总量
aclrtSubscribeHostFunc 注册处理Stream上HostFunc的线程
aclrtProcessHostFunc 等待指定时间后触发HostFunc回调处理
aclrtUnSubscribeHostFunc 取消线程注册,不再处理指定Stream的HostFunc
aclrtGetVersion 查询ACL接口版本号
aclmdlCreateDesc 创建aclmdlDesc类型数据
aclmdlDestroyDesc 销毁aclmdlDesc类型数据
aclmdlGetDesc 根据模型ID获取aclmdlDesc数据
aclmdlGetDescFromFile 根据模型路径获取aclmdlDesc数据
aclmdlGetDescFromMem 根据模型内存获取aclmdlDesc数据
aclmdlGetNumInputs 获取模型输入数量
aclmdlGetNumOutputs 获取模型输出数量
aclmdlGetInputSizeByIndex 获取指定输入的大小
aclmdlGetOutputSizeByIndex 获取指定输出的大小
aclmdlCreateExecConfigHandle 创建模型执行配置句柄
aclmdlDestroyExecConfigHandle 销毁模型执行配置句柄
aclmdlCreateDataset 创建aclmdlDataset类型数据
aclmdlDestroyDataset 销毁aclmdlDataset类型数据
aclmdlAddDatasetBuffer 向aclmdlDataset中添加aclDataBuffer
aclmdlGetDatasetNumBuffers 获取aclmdlDataset中aclDataBuffer数量
aclmdlGetDatasetBuffer 按索引获取aclmdlDataset中的aclDataBuffer
aclmdlExecuteV2 执行模型同步推理
aclmdlExecuteAsyncV2 执行模型异步推理
aclmdlUnload 按模型ID卸载模型
aclmdlQuerySize 根据模型文件查询所需工作内存和权重大小
aclmdlQueryExeOMDesc 根据模型文件查询各分区大小
aclmdlGetInputDims 获取模型输入维度信息
aclmdlGetOutputDims 获取模型输出维度信息
aclmdlGetInputNameByIndex 按索引获取输入张量名称
aclmdlGetOutputNameByIndex 按索引获取输出张量名称
aclmdlGetInputFormat 按索引获取输入张量格式
aclmdlGetOutputFormat 按索引获取输出张量格式
aclmdlGetInputDataType 按索引获取输入张量数据类型
aclmdlGetOutputDataType 按索引获取输出张量数据类型
aclmdlGetInputIndexByName 按名称获取输入张量索引
aclmdlGetOutputIndexByName 按名称获取输出张量索引
aclmdlLoadWithConfig 按配置加载模型
aclmdlCreateConfigHandle 创建模型加载配置句柄
aclmdlDestroyConfigHandle 销毁模型加载配置句柄
aclmdlSetConfigOpt 设置模型加载配置选项
aclmdlSetExecConfigOpt 设置模型执行配置选项
aclmdlGetTensorRealName 获取模型张量真实名称
aclInit ACL初始化
aclFinalize ACL去初始化
aclGetRecentErrMsg 获取最近错误消息
aclCreateDataBuffer 创建aclDataBuffer类型数据
aclDestroyDataBuffer 销毁aclDataBuffer类型数据
aclGetDataBufferAddr 获取aclDataBuffer的数据地址
aclGetDataBufferSize 获取aclDataBuffer的数据大小
aclGetDataBufferSizeV2 获取aclDataBuffer的数据大小(V2版本)

Functions

uapi_npu_freq_change

int32_t uapi_npu_freq_change(uint32_t freq)

头文件清单

#include "include/middleware/services/ai/acl/driver/npu_drv_freq_if.h"

功能说明

  • NPU频率变更接口
  • 用于动态调整NPU工作频率
  • 支持的频率值为64、133或200

入参

名称 参数类型 详细说明 约束取值范围
freq uint32_t NPU频率值(单位MHz) - 64
- 133
- 200

返回值

  • 返回类型:int32_t
返回值 文字含义 触发场景
0 执行成功 函数成功执行
OtherValues 执行失败 函数执行失败

uapi_npu_dlog_setlevel

int32_t uapi_npu_dlog_setlevel(int moduleId, int level, int enableEvent)

头文件清单

#include "include/middleware/services/ai/acl/driver/npu_drv_if.h"

功能说明

  • 设置模块日志级别和事件开关
  • 可按模块设置不同的日志输出等级
  • 支持控制事件的启用和禁用

入参

名称 参数类型 详细说明 约束取值范围
moduleId int 模块ID,-1表示所有模块 -1:所有模块,其他值见slog.h定义
level int 日志级别 - 0:debug
- 1:info
- 2:warning
- 3:error
- 4:null output
enableEvent int 事件开关 - 1:启用
- 0:禁用

返回值

  • 返回类型:int32_t
返回值 文字含义 触发场景
0 执行成功 函数成功执行
OtherValues 执行失败 函数执行失败

aclrtSubscribeReport

aclError aclrtSubscribeReport(uint64_t threadId, aclrtStream stream)

头文件清单

#include "include/middleware/services/ai/acl/acl_rt.h"

功能说明

  • 注册处理Stream上回调函数的线程
  • 指定线程ID与Stream的关联关系
  • 该线程将负责处理指定Stream上的回调函数

入参

名称 参数类型 详细说明 约束取值范围
threadId uint64_t 线程ID -
stream aclrtStream Stream句柄 -

返回值

  • 返回类型:aclError
返回值 文字含义 触发场景
ACL_SUCCESS(0) 执行成功 函数成功执行
Other 其他错误码,参考aclError 执行失败

aclrtLaunchCallback

aclError aclrtLaunchCallback(aclrtCallback fn, void *userData, aclrtCallbackBlockType blockType, aclrtStream stream)

头文件清单

#include "include/middleware/services/ai/acl/acl_rt.h"

功能说明

  • 在Stream任务队列中添加需要在Host上执行的回调函数
  • 回调函数按Stream中任务顺序执行
  • 支持阻塞和非阻塞两种回调模式

入参

名称 参数类型 详细说明 约束取值范围
fn aclrtCallback 回调函数指针 -
userData void * 传递给回调函数的用户数据 -
blockType aclrtCallbackBlockType 回调阻塞类型 - ACL_CALLBACK_NO_BLOCK
- ACL_CALLBACK_BLOCK
stream aclrtStream Stream句柄 -

返回值

  • 返回类型:aclError
返回值 文字含义 触发场景
ACL_SUCCESS(0) 执行成功 函数成功执行
Other 其他错误码,参考aclError 执行失败

aclrtProcessReport

aclError aclrtProcessReport(int32_t timeout)

头文件清单

#include "include/middleware/services/ai/acl/acl_rt.h"

功能说明

  • 等待指定时间后触发回调处理
  • 处理由aclrtSubscribeReport接口指定的线程回调
  • 超时后返回

入参

名称 参数类型 详细说明 约束取值范围
timeout int32_t 超时值(毫秒) -

返回值

  • 返回类型:aclError
返回值 文字含义 触发场景
ACL_SUCCESS(0) 执行成功 函数成功执行
Other 其他错误码,参考aclError 执行失败

aclrtUnSubscribeReport

aclError aclrtUnSubscribeReport(uint64_t threadId, aclrtStream stream)

头文件清单

#include "include/middleware/services/ai/acl/acl_rt.h"

功能说明

  • 取消线程注册,指定Stream上的回调函数不再由该线程处理
  • 与aclrtSubscribeReport配对使用
  • 取消注册后回调将不再被分发到该线程

入参

名称 参数类型 详细说明 约束取值范围
threadId uint64_t 线程ID -
stream aclrtStream Stream句柄 -

返回值

  • 返回类型:aclError
返回值 文字含义 触发场景
ACL_SUCCESS(0) 执行成功 函数成功执行
Other 其他错误码,参考aclError 执行失败

aclrtCreateContext

aclError aclrtCreateContext(aclrtContext *context, int32_t deviceId)

头文件清单

#include "include/middleware/services/ai/acl/acl_rt.h"

功能说明

  • 创建Context并关联到当前线程
  • 支持在一个进程中创建多个Context
  • 当前线程同一时刻只能使用一个Context

入参

名称 参数类型 详细说明 约束取值范围
context aclrtContext * 创建的Context指针 -
deviceId int32_t 创建Context的Device ID -

出参

名称 数据类型 输出说明
context aclrtContext * 创建的Context实例

返回值

  • 返回类型:aclError
返回值 文字含义 触发场景
ACL_SUCCESS(0) 执行成功 函数成功执行
Other 其他错误码,参考aclError 执行失败

aclrtDestroyContext

aclError aclrtDestroyContext(aclrtContext context)

头文件清单

#include "include/middleware/services/ai/acl/acl_rt.h"

功能说明

  • 销毁Context实例
  • 仅能销毁通过aclrtCreateContext接口创建的Context
  • 不能用于释放默认Context

入参

名称 参数类型 详细说明 约束取值范围
context aclrtContext 待销毁的Context -

返回值

  • 返回类型:aclError
返回值 文字含义 触发场景
ACL_SUCCESS(0) 执行成功 函数成功执行
Other 其他错误码,参考aclError 执行失败

aclrtSetCurrentContext

aclError aclrtSetCurrentContext(aclrtContext context)

头文件清单

#include "include/middleware/services/ai/acl/acl_rt.h"

功能说明

  • 设置线程的当前Context
  • 多次调用以最后一次设置为准
  • 建议显式指定当前线程的Context

入参

名称 参数类型 详细说明 约束取值范围
context aclrtContext 当前线程的Context -

返回值

  • 返回类型:aclError
返回值 文字含义 触发场景
ACL_SUCCESS(0) 执行成功 函数成功执行
Other 其他错误码,参考aclError 执行失败

aclrtGetCurrentContext

aclError aclrtGetCurrentContext(aclrtContext *context)

头文件清单

#include "include/middleware/services/ai/acl/acl_rt.h"

功能说明

  • 获取线程的当前Context
  • 多次调用aclrtSetCurrentContext后获取最后一次设置的Context
  • 未显式设置时获取默认Context

入参

名称 参数类型 详细说明 约束取值范围
context aclrtContext * 当前线程的Context指针 -

出参

名称 数据类型 输出说明
context aclrtContext * 当前线程的Context实例

返回值

  • 返回类型:aclError
返回值 文字含义 触发场景
ACL_SUCCESS(0) 执行成功 函数成功执行
Other 其他错误码,参考aclError 执行失败

aclrtSetDevice

aclError aclrtSetDevice(int32_t deviceId)

头文件清单

#include "include/middleware/services/ai/acl/acl_rt.h"

功能说明

  • 指定用于运算的Device,隐式创建默认Context和默认Stream
  • 同一进程或线程中可多次调用指定同一Device
  • 支持多Device场景下切换Device

入参

名称 参数类型 详细说明 约束取值范围
deviceId int32_t Device ID -

返回值

  • 返回类型:aclError
返回值 文字含义 触发场景
ACL_SUCCESS(0) 执行成功 函数成功执行
Other 其他错误码,参考aclError 执行失败

aclrtResetDevice

aclError aclrtResetDevice(int32_t deviceId)

头文件清单

#include "include/middleware/services/ai/acl/acl_rt.h"

功能说明

  • 重置当前操作的Device并释放资源,包括默认Context、默认Stream等
  • 同步接口,等待任务完成后释放

前置条件

  • 调用时序约束:重置前需先释放显式创建的Stream、Event和Context

入参

名称 参数类型 详细说明 约束取值范围
deviceId int32_t Device ID -

返回值

  • 返回类型:aclError
返回值 文字含义 触发场景
ACL_SUCCESS(0) 执行成功 函数成功执行
Other 其他错误码,参考aclError 执行失败

aclrtGetDevice

aclError aclrtGetDevice(int32_t *deviceId)

头文件清单

#include "include/middleware/services/ai/acl/acl_rt.h"

功能说明

  • 获取当前线程的目标Device
  • 通过出参deviceId返回当前线程所关联的Device ID

出参

名称 数据类型 输出说明
deviceId int32_t * 当前线程的目标Device ID

返回值

  • 返回类型:aclError
返回值 文字含义 触发场景
ACL_SUCCESS(0) 执行成功 函数成功执行
Other 其他错误码,参考aclError 执行失败

aclrtGetRunMode

aclError aclrtGetRunMode(aclrtRunMode *runMode)

头文件清单

#include "include/middleware/services/ai/acl/acl_rt.h"

功能说明

  • 获取当前运行模式,区分Device侧运行还是Host侧运行
  • 通过出参runMode返回运行模式

出参

名称 数据类型 输出说明
runMode aclrtRunMode * 运行模式,参考aclrtRunMode

返回值

  • 返回类型:aclError
返回值 文字含义 触发场景
ACL_SUCCESS(0) 执行成功 函数成功执行
Other 其他错误码,参考aclError 执行失败

aclrtMalloc

aclError aclrtMalloc(void **devPtr, size_t size, aclrtMemMallocPolicy policy)

头文件清单

#include "include/middleware/services/ai/acl/acl_rt.h"

功能说明

  • 在Device上分配内存
  • 支持通过policy指定内存分配策略
  • 分配的内存需要通过aclrtFree接口释放

入参

名称 参数类型 详细说明 约束取值范围
size size_t 待分配内存大小(字节) -
policy aclrtMemMallocPolicy 内存分配策略 参考aclrtMemMallocPolicy

出参

名称 数据类型 输出说明
devPtr void ** 分配的Device内存地址指针

返回值

  • 返回类型:aclError
返回值 文字含义 触发场景
ACL_SUCCESS(0) 执行成功 函数成功执行
Other 其他错误码,参考aclError 执行失败

aclrtFree

aclError aclrtFree(void *devPtr)

头文件清单

#include "include/middleware/services/ai/acl/acl_rt.h"

功能说明

  • 释放Device内存
  • 仅能释放通过aclrtMalloc接口分配的内存

入参

名称 参数类型 详细说明 约束取值范围
devPtr void * 待释放的Device内存地址指针 -

返回值

  • 返回类型:aclError
返回值 文字含义 触发场景
ACL_SUCCESS(0) 执行成功 函数成功执行
Other 其他错误码,参考aclError 执行失败

aclrtMemcpy

aclError aclrtMemcpy(void *dst, size_t destMax, const void *src, size_t count, aclrtMemcpyKind kind)

头文件清单

#include "include/middleware/services/ai/acl/acl_rt.h"

功能说明

  • Host与Device之间同步内存复制
  • 支持Host到Host、Host到Device、Device到Host、Device到Device等多种复制方向
  • 同步接口,复制完成后才返回

入参

名称 参数类型 详细说明 约束取值范围
dst void * 目标内存地址指针 -
destMax size_t 目标内存最大长度(字节) -
src const void * 源内存地址指针 -
count size_t 待复制内存长度(字节) -
kind aclrtMemcpyKind 内存复制方向 参考aclrtMemcpyKind

返回值

  • 返回类型:aclError
返回值 文字含义 触发场景
ACL_SUCCESS(0) 执行成功 函数成功执行
Other 其他错误码,参考aclError 执行失败

aclrtMemset

aclError aclrtMemset(void *devPtr, size_t maxCount, int32_t value, size_t count)

头文件清单

#include "include/middleware/services/ai/acl/acl_rt.h"

功能说明

  • 初始化内存并设置为指定值
  • 将devPtr指向的内存前count字节设置为value值

入参

名称 参数类型 详细说明 约束取值范围
devPtr void * 待初始化的内存地址指针 -
maxCount size_t 内存最大长度(字节) -
value int32_t 待设置的值 -
count size_t 待设置的字节数 -

返回值

  • 返回类型:aclError
返回值 文字含义 触发场景
ACL_SUCCESS(0) 执行成功 函数成功执行
Other 其他错误码,参考aclError 执行失败

aclrtCreateStreamConfigHandle

aclrtStreamConfigHandle *aclrtCreateStreamConfigHandle(void)

头文件清单

#include "include/middleware/services/ai/acl/acl_rt.h"

功能说明

  • 创建Stream配置句柄
  • 创建的句柄用于aclrtSetStreamConfigOpt设置配置选项,并通过aclrtCreateStreamV2创建Stream

返回值

  • 返回类型:aclrtStreamConfigHandle *
返回值 文字含义 触发场景
非空指针 执行成功 成功创建Stream配置句柄
NULL 执行失败 创建失败

aclrtDestroyStreamConfigHandle

aclError aclrtDestroyStreamConfigHandle(aclrtStreamConfigHandle *handle)

头文件清单

#include "include/middleware/services/ai/acl/acl_rt.h"

功能说明

  • 销毁Stream配置句柄
  • 仅能销毁通过aclrtCreateStreamConfigHandle接口创建的句柄

入参

名称 参数类型 详细说明 约束取值范围
handle aclrtStreamConfigHandle * 待销毁的Stream配置句柄 -

返回值

  • 返回类型:aclError
返回值 文字含义 触发场景
ACL_SUCCESS(0) 执行成功 函数成功执行
Other 其他错误码,参考aclError 执行失败

aclrtSetStreamConfigOpt

aclError aclrtSetStreamConfigOpt(aclrtStreamConfigHandle *handle, aclrtStreamConfigAttr attr, const void *attrValue, size_t valueSize)

头文件清单

#include "include/middleware/services/ai/acl/acl_rt.h"

功能说明

  • 设置Stream配置选项
  • 通过attr指定配置属性类型,attrValue指定属性值

入参

名称 参数类型 详细说明 约束取值范围
handle aclrtStreamConfigHandle * Stream配置句柄 -
attr aclrtStreamConfigAttr 配置属性类型 参考aclrtStreamConfigAttr
attrValue const void * 属性值指针 -
valueSize size_t 属性值大小(字节) -

返回值

  • 返回类型:aclError
返回值 文字含义 触发场景
ACL_SUCCESS(0) 执行成功 函数成功执行
Other 其他错误码,参考aclError 执行失败

aclrtCreateStreamV2

aclError aclrtCreateStreamV2(aclrtStream *stream, const aclrtStreamConfigHandle *handle)

头文件清单

#include "include/middleware/services/ai/acl/acl_rt.h"

功能说明

  • 创建Stream实例
  • 支持通过配置句柄指定Stream属性
  • 创建的Stream需通过aclrtDestroyStream接口销毁

入参

名称 参数类型 详细说明 约束取值范围
handle const aclrtStreamConfigHandle * Stream配置句柄 -

出参

名称 数据类型 输出说明
stream aclrtStream * 创建的Stream实例

返回值

  • 返回类型:aclError
返回值 文字含义 触发场景
ACL_SUCCESS(0) 执行成功 函数成功执行
Other 其他错误码,参考aclError 执行失败

aclrtDestroyStream

aclError aclrtDestroyStream(aclrtStream stream)

头文件清单

#include "include/middleware/services/ai/acl/acl_rt.h"

功能说明

  • 销毁Stream实例
  • 仅能销毁通过aclrtCreateStreamV2或aclrtCreateStream接口创建的Stream

入参

名称 参数类型 详细说明 约束取值范围
stream aclrtStream 待销毁的Stream实例 -

返回值

  • 返回类型:aclError
返回值 文字含义 触发场景
ACL_SUCCESS(0) 执行成功 函数成功执行
Other 其他错误码,参考aclError 执行失败

aclrtSynchronizeStream

aclError aclrtSynchronizeStream(aclrtStream stream)

头文件清单

#include "include/middleware/services/ai/acl/acl_rt.h"

功能说明

  • 阻塞Host等待Stream中所有任务完成
  • 同步接口,等待指定Stream中所有异步任务执行完毕后才返回

入参

名称 参数类型 详细说明 约束取值范围
stream aclrtStream Stream实例 -

返回值

  • 返回类型:aclError
返回值 文字含义 触发场景
ACL_SUCCESS(0) 执行成功 函数成功执行
Other 其他错误码,参考aclError 执行失败

aclrtGetMemInfo

aclError aclrtGetMemInfo(aclrtMemAttr attr, size_t *free, size_t *total)

头文件清单

#include "include/middleware/services/ai/acl/acl_rt.h"

功能说明

  • 获取指定属性的空闲内存和总内存大小
  • 通过attr指定内存属性类型

入参

名称 参数类型 详细说明 约束取值范围
attr aclrtMemAttr 内存属性类型 参考aclrtMemAttr

出参

名称 数据类型 输出说明
free size_t * 空闲内存大小(字节)
total size_t * 总内存大小(字节)

返回值

  • 返回类型:aclError
返回值 文字含义 触发场景
ACL_SUCCESS(0) 执行成功 函数成功执行
Other 其他错误码,参考aclError 执行失败

aclrtSubscribeHostFunc

aclError aclrtSubscribeHostFunc(uint64_t hostFuncThreadId, aclrtStream exeStream)

头文件清单

#include "include/middleware/services/ai/acl/acl_rt.h"

功能说明

  • 注册线程用于处理指定Stream上的HostFunc回调
  • 注册后该线程将处理该Stream上的HostFunc回调
  • 与aclrtUnSubscribeHostFunc配对使用

入参

名称 参数类型 详细说明 约束取值范围
hostFuncThreadId uint64_t 线程ID -
exeStream aclrtStream Stream句柄 -

返回值

  • 返回类型:aclError
返回值 文字含义 触发场景
ACL_SUCCESS(0) 执行成功 函数成功执行
Other 其他错误码,参考aclError 执行失败

aclrtProcessHostFunc

aclError aclrtProcessHostFunc(int32_t timeout)

头文件清单

#include "include/middleware/services/ai/acl/acl_rt.h"

功能说明

  • 等待指定时间后触发HostFunc回调处理
  • 处理由aclrtSubscribeHostFunc接口注册的线程回调
  • 超时后返回

入参

名称 参数类型 详细说明 约束取值范围
timeout int32_t 超时值(毫秒) -

返回值

  • 返回类型:aclError
返回值 文字含义 触发场景
ACL_SUCCESS(0) 执行成功 函数成功执行
Other 其他错误码,参考aclError 执行失败

aclrtUnSubscribeHostFunc

aclError aclrtUnSubscribeHostFunc(uint64_t hostFuncThreadId, aclrtStream exeStream)

头文件清单

#include "include/middleware/services/ai/acl/acl_rt.h"

功能说明

  • 取消线程注册,指定Stream上的HostFunc回调不再由该线程处理
  • 与aclrtSubscribeHostFunc配对使用

入参

名称 参数类型 详细说明 约束取值范围
hostFuncThreadId uint64_t 线程ID -
exeStream aclrtStream Stream句柄 -

返回值

  • 返回类型:aclError
返回值 文字含义 触发场景
ACL_SUCCESS(0) 执行成功 函数成功执行
Other 其他错误码,参考aclError 执行失败

aclrtGetVersion

aclError aclrtGetVersion(int32_t *majorVersion, int32_t *minorVersion, int32_t *patchVersion)

头文件清单

#include "include/middleware/services/ai/acl/acl_rt.h"

功能说明

  • 查询ACL接口版本号
  • 通过出参返回主版本号、次版本号和补丁版本号

出参

名称 数据类型 输出说明
majorVersion int32_t * 主版本号
minorVersion int32_t * 次版本号
patchVersion int32_t * 补丁版本号

返回值

  • 返回类型:aclError
返回值 文字含义 触发场景
ACL_SUCCESS(0) 执行成功 函数成功执行
Other 其他错误码,参考aclError 执行失败

aclmdlCreateDesc

aclmdlDesc *aclmdlCreateDesc(void)

头文件清单

#include "include/middleware/services/ai/acl/acl_mdl.h"

功能说明

  • 创建aclmdlDesc数据
  • 用于描述模型的输入输出信息
  • 创建的aclmdlDesc需通过aclmdlDestroyDesc接口销毁

返回值

  • 返回类型:aclmdlDesc *
返回值 文字含义 触发场景
非空指针 执行成功 成功创建aclmdlDesc实例
NULL 执行失败 创建失败

aclmdlDestroyDesc

aclError aclmdlDestroyDesc(aclmdlDesc *modelDesc)

头文件清单

#include "include/middleware/services/ai/acl/acl_mdl.h"

功能说明

  • 销毁aclmdlDesc数据
  • 仅能销毁通过aclmdlCreateDesc接口创建的aclmdlDesc

入参

名称 参数类型 详细说明 约束取值范围
modelDesc aclmdlDesc * 待销毁的aclmdlDesc实例 -

返回值

  • 返回类型:aclError
返回值 文字含义 触发场景
ACL_SUCCESS(0) 执行成功 函数成功执行
Other 其他错误码,参考aclError 执行失败

aclmdlGetDesc

aclError aclmdlGetDesc(aclmdlDesc *modelDesc, uint32_t modelId)

头文件清单

#include "include/middleware/services/ai/acl/acl_mdl.h"

功能说明

  • 根据模型ID获取aclmdlDesc数据
  • 通过modelId查询已加载模型的描述信息并写入modelDesc

入参

名称 参数类型 详细说明 约束取值范围
modelDesc aclmdlDesc * 模型描述实例 -
modelId uint32_t 模型ID -

返回值

  • 返回类型:aclError
返回值 文字含义 触发场景
ACL_SUCCESS(0) 执行成功 函数成功执行
Other 其他错误码,参考aclError 执行失败

aclmdlGetDescFromFile

aclError aclmdlGetDescFromFile(aclmdlDesc *modelDesc, const char *modelPath)

头文件清单

#include "include/middleware/services/ai/acl/acl_mdl.h"

功能说明

  • 根据模型文件路径获取aclmdlDesc数据
  • 从离线模型文件中读取模型描述信息并写入modelDesc

入参

名称 参数类型 详细说明 约束取值范围
modelDesc aclmdlDesc * 模型描述实例 -
modelPath const char * 离线模型文件路径 -

返回值

  • 返回类型:aclError
返回值 文字含义 触发场景
ACL_SUCCESS(0) 执行成功 函数成功执行
Other 其他错误码,参考aclError 执行失败

aclmdlGetDescFromMem

aclError aclmdlGetDescFromMem(aclmdlDesc *modelDesc, const void *model, size_t modelSize)

头文件清单

#include "include/middleware/services/ai/acl/acl_mdl.h"

功能说明

  • 根据模型内存获取aclmdlDesc数据
  • 从内存中的模型数据读取模型描述信息并写入modelDesc

入参

名称 参数类型 详细说明 约束取值范围
modelDesc aclmdlDesc * 模型描述实例 -
model const void * 模型内存地址指针 -
modelSize size_t 模型内存大小(字节) -

返回值

  • 返回类型:aclError
返回值 文字含义 触发场景
ACL_SUCCESS(0) 执行成功 函数成功执行
Other 其他错误码,参考aclError 执行失败

aclmdlGetNumInputs

size_t aclmdlGetNumInputs(aclmdlDesc *modelDesc)

头文件清单

#include "include/middleware/services/ai/acl/acl_mdl.h"

功能说明

  • 获取模型输入数量

入参

名称 参数类型 详细说明 约束取值范围
modelDesc aclmdlDesc * 模型描述实例 -

返回值

  • 返回类型:size_t
返回值 文字含义 触发场景
size_t 模型输入数量 函数成功执行

aclmdlGetNumOutputs

size_t aclmdlGetNumOutputs(aclmdlDesc *modelDesc)

头文件清单

#include "include/middleware/services/ai/acl/acl_mdl.h"

功能说明

  • 获取模型输出数量

入参

名称 参数类型 详细说明 约束取值范围
modelDesc aclmdlDesc * 模型描述实例 -

返回值

  • 返回类型:size_t
返回值 文字含义 触发场景
size_t 模型输出数量 函数成功执行

aclmdlGetInputSizeByIndex

size_t aclmdlGetInputSizeByIndex(aclmdlDesc *modelDesc, size_t index)

头文件清单

#include "include/middleware/services/ai/acl/acl_mdl.h"

功能说明

  • 根据索引获取模型指定输入的大小

入参

名称 参数类型 详细说明 约束取值范围
modelDesc aclmdlDesc * 模型描述实例 -
index size_t 输入索引 -

返回值

  • 返回类型:size_t
返回值 文字含义 触发场景
size_t 指定输入的大小(字节) 函数成功执行

aclmdlGetOutputSizeByIndex

size_t aclmdlGetOutputSizeByIndex(aclmdlDesc *modelDesc, size_t index)

头文件清单

#include "include/middleware/services/ai/acl/acl_mdl.h"

功能说明

  • 根据索引获取模型指定输出的大小

入参

名称 参数类型 详细说明 约束取值范围
modelDesc aclmdlDesc * 模型描述实例 -
index size_t 输出索引 -

返回值

  • 返回类型:size_t
返回值 文字含义 触发场景
size_t 指定输出的大小(字节) 函数成功执行

aclmdlCreateExecConfigHandle

aclmdlExecConfigHandle *aclmdlCreateExecConfigHandle(void)

头文件清单

#include "include/middleware/services/ai/acl/acl_mdl.h"

功能说明

  • 创建模型执行配置句柄
  • 创建的句柄用于aclmdlSetExecConfigOpt设置执行配置选项

返回值

  • 返回类型:aclmdlExecConfigHandle *
返回值 文字含义 触发场景
非空指针 执行成功 成功创建模型执行配置句柄
NULL 执行失败 创建失败

aclmdlDestroyExecConfigHandle

aclError aclmdlDestroyExecConfigHandle(const aclmdlExecConfigHandle *handle)

头文件清单

#include "include/middleware/services/ai/acl/acl_mdl.h"

功能说明

  • 销毁模型执行配置句柄
  • 仅能销毁通过aclmdlCreateExecConfigHandle接口创建的句柄

入参

名称 参数类型 详细说明 约束取值范围
handle const aclmdlExecConfigHandle * 待销毁的模型执行配置句柄 -

返回值

  • 返回类型:aclError
返回值 文字含义 触发场景
ACL_SUCCESS(0) 执行成功 函数成功执行
Other 其他错误码,参考aclError 执行失败

aclmdlCreateDataset

aclmdlDataset *aclmdlCreateDataset(void)

头文件清单

#include "include/middleware/services/ai/acl/acl_mdl.h"

功能说明

  • 创建aclmdlDataset数据
  • 用于描述模型推理的输入输出数据集
  • 创建的aclmdlDataset需通过aclmdlDestroyDataset接口销毁

返回值

  • 返回类型:aclmdlDataset *
返回值 文字含义 触发场景
非空指针 执行成功 成功创建aclmdlDataset实例
NULL 执行失败 创建失败

aclmdlDestroyDataset

aclError aclmdlDestroyDataset(const aclmdlDataset *dataset)

头文件清单

#include "include/middleware/services/ai/acl/acl_mdl.h"

功能说明

  • 销毁aclmdlDataset数据
  • 仅能销毁通过aclmdlCreateDataset接口创建的aclmdlDataset

入参

名称 参数类型 详细说明 约束取值范围
dataset const aclmdlDataset * 待销毁的aclmdlDataset实例 -

返回值

  • 返回类型:aclError
返回值 文字含义 触发场景
ACL_SUCCESS(0) 执行成功 函数成功执行
Other 其他错误码,参考aclError 执行失败

aclmdlAddDatasetBuffer

aclError aclmdlAddDatasetBuffer(aclmdlDataset *dataset, aclDataBuffer *dataBuffer)

头文件清单

#include "include/middleware/services/ai/acl/acl_mdl.h"

功能说明

  • 向aclmdlDataset中添加aclDataBuffer
  • 用于将数据缓冲区添加到模型输入或输出数据集中

入参

名称 参数类型 详细说明 约束取值范围
dataset aclmdlDataset * aclmdlDataset实例 -
dataBuffer aclDataBuffer * 待添加的aclDataBuffer实例 -

返回值

  • 返回类型:aclError
返回值 文字含义 触发场景
ACL_SUCCESS(0) 执行成功 函数成功执行
Other 其他错误码,参考aclError 执行失败

aclmdlGetDatasetNumBuffers

size_t aclmdlGetDatasetNumBuffers(const aclmdlDataset *dataset)

头文件清单

#include "include/middleware/services/ai/acl/acl_mdl.h"

功能说明

  • 获取aclmdlDataset中aclDataBuffer的数量

入参

名称 参数类型 详细说明 约束取值范围
dataset const aclmdlDataset * aclmdlDataset实例 -

返回值

  • 返回类型:size_t
返回值 文字含义 触发场景
size_t aclDataBuffer的数量 函数成功执行

aclmdlGetDatasetBuffer

aclDataBuffer *aclmdlGetDatasetBuffer(const aclmdlDataset *dataset, size_t index)

头文件清单

#include "include/middleware/services/ai/acl/acl_mdl.h"

功能说明

  • 根据索引从aclmdlDataset中获取aclDataBuffer

入参

名称 参数类型 详细说明 约束取值范围
dataset const aclmdlDataset * aclmdlDataset实例 -
index size_t aclDataBuffer索引 -

返回值

  • 返回类型:aclDataBuffer *
返回值 文字含义 触发场景
非空指针 执行成功 成功获取aclDataBuffer实例
NULL 执行失败 索引无效或获取失败

aclmdlExecuteV2

aclError aclmdlExecuteV2(uint32_t modelId, const aclmdlDataset *input, aclmdlDataset *output, aclrtStream stream, const aclmdlExecConfigHandle *handle)

头文件清单

#include "include/middleware/services/ai/acl/acl_mdl.h"

功能说明

  • 执行模型同步推理
  • 支持通过配置句柄指定执行属性

前置条件

  • 调用时序约束:需先通过aclmdlLoadWithConfig加载模型获取modelId

入参

名称 参数类型 详细说明 约束取值范围
modelId uint32_t 模型ID -
input const aclmdlDataset * 模型输入数据集 -
output aclmdlDataset * 模型输出数据集 -
stream aclrtStream Stream实例 -
handle const aclmdlExecConfigHandle * 模型执行配置句柄 -

返回值

  • 返回类型:aclError
返回值 文字含义 触发场景
ACL_SUCCESS(0) 执行成功 函数成功执行
Other 其他错误码,参考aclError 执行失败

aclmdlExecuteAsyncV2

aclError aclmdlExecuteAsyncV2(uint32_t modelId, const aclmdlDataset *input, aclmdlDataset *output, aclrtStream stream, const aclmdlExecConfigHandle *handle)

头文件清单

#include "include/middleware/services/ai/acl/acl_mdl.h"

功能说明

  • 执行模型异步推理
  • 支持通过配置句柄指定执行属性
  • 异步接口,需通过aclrtSynchronizeStream等待任务完成

入参

名称 参数类型 详细说明 约束取值范围
modelId uint32_t 模型ID -
input const aclmdlDataset * 模型输入数据集 -
output aclmdlDataset * 模型输出数据集 -
stream aclrtStream Stream实例 -
handle const aclmdlExecConfigHandle * 模型执行配置句柄 -

返回值

  • 返回类型:aclError
返回值 文字含义 触发场景
ACL_SUCCESS(0) 执行成功 函数成功执行
Other 其他错误码,参考aclError 执行失败

aclmdlUnload

aclError aclmdlUnload(uint32_t modelId)

头文件清单

#include "include/middleware/services/ai/acl/acl_mdl.h"

功能说明

  • 根据模型ID卸载模型
  • 卸载后释放模型占用的Device资源

入参

名称 参数类型 详细说明 约束取值范围
modelId uint32_t 模型ID -

返回值

  • 返回类型:aclError
返回值 文字含义 触发场景
ACL_SUCCESS(0) 执行成功 函数成功执行
Other 其他错误码,参考aclError 执行失败

aclmdlQuerySize

aclError aclmdlQuerySize(const char *fileName, size_t *workSize, size_t *weightSize)

头文件清单

#include "include/middleware/services/ai/acl/acl_mdl.h"

功能说明

  • 根据模型文件查询工作内存和权重内存大小
  • 用于在加载模型前预分配所需内存

入参

名称 参数类型 详细说明 约束取值范围
fileName const char * 离线模型文件路径 -

出参

名称 数据类型 输出说明
workSize size_t * 工作内存大小(字节)
weightSize size_t * 权重内存大小(字节)

返回值

  • 返回类型:aclError
返回值 文字含义 触发场景
ACL_SUCCESS(0) 执行成功 函数成功执行
Other 其他错误码,参考aclError 执行失败

aclmdlQueryExeOMDesc

aclError aclmdlQueryExeOMDesc(const char *fileName, aclmdlExeOMDesc *mdlPartitionSize)

头文件清单

#include "include/middleware/services/ai/acl/acl_mdl.h"

功能说明

  • 根据模型文件查询各分区大小信息
  • 用于获取模型各组成部分的内存大小

入参

名称 参数类型 详细说明 约束取值范围
fileName const char * 离线模型文件路径 -

出参

名称 数据类型 输出说明
mdlPartitionSize aclmdlExeOMDesc * 模型各分区大小信息,参考aclmdlExeOMDesc

返回值

  • 返回类型:aclError
返回值 文字含义 触发场景
ACL_SUCCESS(0) 执行成功 函数成功执行
Other 其他错误码,参考aclError 执行失败

aclmdlGetInputDims

aclError aclmdlGetInputDims(const aclmdlDesc *modelDesc, size_t index, aclmdlIODims *dims)

头文件清单

#include "include/middleware/services/ai/acl/acl_mdl.h"

功能说明

  • 获取模型输入维度信息
  • 根据索引获取指定输入的维度描述

入参

名称 参数类型 详细说明 约束取值范围
modelDesc const aclmdlDesc * 模型描述实例 -
index size_t 输入索引 -

出参

名称 数据类型 输出说明
dims aclmdlIODims * 输入维度信息,参考aclmdlIODims

返回值

  • 返回类型:aclError
返回值 文字含义 触发场景
ACL_SUCCESS(0) 执行成功 函数成功执行
Other 其他错误码,参考aclError 执行失败

aclmdlGetOutputDims

aclError aclmdlGetOutputDims(const aclmdlDesc *modelDesc, size_t index, aclmdlIODims *dims)

头文件清单

#include "include/middleware/services/ai/acl/acl_mdl.h"

功能说明

  • 获取模型输出维度信息
  • 根据索引获取指定输出的维度描述

入参

名称 参数类型 详细说明 约束取值范围
modelDesc const aclmdlDesc * 模型描述实例 -
index size_t 输出索引 -

出参

名称 数据类型 输出说明
dims aclmdlIODims * 输出维度信息,参考aclmdlIODims

返回值

  • 返回类型:aclError
返回值 文字含义 触发场景
ACL_SUCCESS(0) 执行成功 函数成功执行
Other 其他错误码,参考aclError 执行失败

aclmdlGetInputNameByIndex

const char *aclmdlGetInputNameByIndex(const aclmdlDesc *modelDesc, size_t index)

头文件清单

#include "include/middleware/services/ai/acl/acl_mdl.h"

功能说明

  • 根据索引获取模型输入张量名称

入参

名称 参数类型 详细说明 约束取值范围
modelDesc const aclmdlDesc * 模型描述实例 -
index size_t 输入索引 -

返回值

  • 返回类型:const char *
返回值 文字含义 触发场景
非空指针 执行成功 成功获取输入张量名称
NULL 执行失败 索引无效或获取失败

aclmdlGetOutputNameByIndex

const char *aclmdlGetOutputNameByIndex(const aclmdlDesc *modelDesc, size_t index)

头文件清单

#include "include/middleware/services/ai/acl/acl_mdl.h"

功能说明

  • 根据索引获取模型输出张量名称

入参

名称 参数类型 详细说明 约束取值范围
modelDesc const aclmdlDesc * 模型描述实例 -
index size_t 输出索引 -

返回值

  • 返回类型:const char *
返回值 文字含义 触发场景
非空指针 执行成功 成功获取输出张量名称
NULL 执行失败 索引无效或获取失败

aclmdlGetInputFormat

aclFormat aclmdlGetInputFormat(const aclmdlDesc *modelDesc, size_t index)

头文件清单

#include "include/middleware/services/ai/acl/acl_mdl.h"

功能说明

  • 根据索引获取模型输入的数据格式

入参

名称 参数类型 详细说明 约束取值范围
modelDesc const aclmdlDesc * 模型描述实例 -
index size_t 输入索引 -

返回值

  • 返回类型:aclFormat
返回值 文字含义 触发场景
aclFormat 输入数据格式 参考aclFormat

aclmdlGetOutputFormat

aclFormat aclmdlGetOutputFormat(const aclmdlDesc *modelDesc, size_t index)

头文件清单

#include "include/middleware/services/ai/acl/acl_mdl.h"

功能说明

  • 根据索引获取模型输出的数据格式

入参

名称 参数类型 详细说明 约束取值范围
modelDesc const aclmdlDesc * 模型描述实例 -
index size_t 输出索引 -

返回值

  • 返回类型:aclFormat
返回值 文字含义 触发场景
aclFormat 输出数据格式 参考aclFormat

aclmdlGetInputDataType

aclDataType aclmdlGetInputDataType(const aclmdlDesc *modelDesc, size_t index)

头文件清单

#include "include/middleware/services/ai/acl/acl_mdl.h"

功能说明

  • 根据索引获取模型输入的数据类型

入参

名称 参数类型 详细说明 约束取值范围
modelDesc const aclmdlDesc * 模型描述实例 -
index size_t 输入索引 -

返回值

  • 返回类型:aclDataType
返回值 文字含义 触发场景
aclDataType 输入数据类型 参考aclDataType

aclmdlGetOutputDataType

aclDataType aclmdlGetOutputDataType(const aclmdlDesc *modelDesc, size_t index)

头文件清单

#include "include/middleware/services/ai/acl/acl_mdl.h"

功能说明

  • 根据索引获取模型输出的数据类型

入参

名称 参数类型 详细说明 约束取值范围
modelDesc const aclmdlDesc * 模型描述实例 -
index size_t 输出索引 -

返回值

  • 返回类型:aclDataType
返回值 文字含义 触发场景
aclDataType 输出数据类型 参考aclDataType

aclmdlGetInputIndexByName

aclError aclmdlGetInputIndexByName(const aclmdlDesc *modelDesc, const char *name, size_t *index)

头文件清单

#include "include/middleware/services/ai/acl/acl_mdl.h"

功能说明

  • 根据张量名称获取模型输入索引

入参

名称 参数类型 详细说明 约束取值范围
modelDesc const aclmdlDesc * 模型描述实例 -
name const char * 输入张量名称 -

出参

名称 数据类型 输出说明
index size_t * 输入张量索引

返回值

  • 返回类型:aclError
返回值 文字含义 触发场景
ACL_SUCCESS(0) 执行成功 函数成功执行
Other 其他错误码,参考aclError 执行失败

aclmdlGetOutputIndexByName

aclError aclmdlGetOutputIndexByName(const aclmdlDesc *modelDesc, const char *name, size_t *index)

头文件清单

#include "include/middleware/services/ai/acl/acl_mdl.h"

功能说明

  • 根据张量名称获取模型输出索引

入参

名称 参数类型 详细说明 约束取值范围
modelDesc const aclmdlDesc * 模型描述实例 -
name const char * 输出张量名称 -

出参

名称 数据类型 输出说明
index size_t * 输出张量索引

返回值

  • 返回类型:aclError
返回值 文字含义 触发场景
ACL_SUCCESS(0) 执行成功 函数成功执行
Other 其他错误码,参考aclError 执行失败

aclmdlLoadWithConfig

aclError aclmdlLoadWithConfig(const aclmdlConfigHandle *handle, uint32_t *modelId)

头文件清单

#include "include/middleware/services/ai/acl/acl_mdl.h"

功能说明

  • 根据配置加载模型
  • 通过配置句柄指定模型加载路径、内存地址等参数
  • 加载成功后通过出参返回模型ID

入参

名称 参数类型 详细说明 约束取值范围
handle const aclmdlConfigHandle * 模型加载配置句柄 -

出参

名称 数据类型 输出说明
modelId uint32_t * 加载后的模型ID

返回值

  • 返回类型:aclError
返回值 文字含义 触发场景
ACL_SUCCESS(0) 执行成功 函数成功执行
Other 其他错误码,参考aclError 执行失败

aclmdlCreateConfigHandle

aclmdlConfigHandle *aclmdlCreateConfigHandle(void)

头文件清单

#include "include/middleware/services/ai/acl/acl_mdl.h"

功能说明

  • 创建模型加载配置句柄
  • 创建的句柄用于aclmdlSetConfigOpt设置加载配置选项

返回值

  • 返回类型:aclmdlConfigHandle *
返回值 文字含义 触发场景
非空指针 执行成功 成功创建模型加载配置句柄
NULL 执行失败 创建失败

aclmdlDestroyConfigHandle

aclError aclmdlDestroyConfigHandle(aclmdlConfigHandle *handle)

头文件清单

#include "include/middleware/services/ai/acl/acl_mdl.h"

功能说明

  • 销毁模型加载配置句柄
  • 仅能销毁通过aclmdlCreateConfigHandle接口创建的句柄

入参

名称 参数类型 详细说明 约束取值范围
handle aclmdlConfigHandle * 待销毁的模型加载配置句柄 -

返回值

  • 返回类型:aclError
返回值 文字含义 触发场景
ACL_SUCCESS(0) 执行成功 函数成功执行
Other 其他错误码,参考aclError 执行失败

aclmdlSetConfigOpt

aclError aclmdlSetConfigOpt(aclmdlConfigHandle *handle, aclmdlConfigAttr attr, const void *attrValue, size_t valueSize)

头文件清单

#include "include/middleware/services/ai/acl/acl_mdl.h"

功能说明

  • 设置模型加载配置选项
  • 通过attr指定配置属性类型,attrValue指定属性值

入参

名称 参数类型 详细说明 约束取值范围
handle aclmdlConfigHandle * 模型加载配置句柄 -
attr aclmdlConfigAttr 配置属性类型 参考aclmdlConfigAttr
attrValue const void * 属性值指针 -
valueSize size_t 属性值大小(字节) -

返回值

  • 返回类型:aclError
返回值 文字含义 触发场景
ACL_SUCCESS(0) 执行成功 函数成功执行
Other 其他错误码,参考aclError 执行失败

aclmdlSetExecConfigOpt

aclError aclmdlSetExecConfigOpt(aclmdlExecConfigHandle *handle, aclmdlExecConfigAttr attr, const void *attrValue, size_t valueSize)

头文件清单

#include "include/middleware/services/ai/acl/acl_mdl.h"

功能说明

  • 设置模型执行配置选项
  • 通过attr指定配置属性类型,attrValue指定属性值

入参

名称 参数类型 详细说明 约束取值范围
handle aclmdlExecConfigHandle * 模型执行配置句柄 -
attr aclmdlExecConfigAttr 配置属性类型 参考aclmdlExecConfigAttr
attrValue const void * 属性值指针 -
valueSize size_t 属性值大小(字节) -

返回值

  • 返回类型:aclError
返回值 文字含义 触发场景
ACL_SUCCESS(0) 执行成功 函数成功执行
Other 其他错误码,参考aclError 执行失败

aclmdlGetTensorRealName

const char *aclmdlGetTensorRealName(const aclmdlDesc *modelDesc, const char *name)

头文件清单

#include "include/middleware/services/ai/acl/acl_mdl.h"

功能说明

  • 从模型描述中获取张量的真实名称
  • 根据张量名称获取模型中对应的实际张量名称

入参

名称 参数类型 详细说明 约束取值范围
modelDesc const aclmdlDesc * 模型描述实例 -
name const char * 张量名称 -

返回值

  • 返回类型:const char *
返回值 文字含义 触发场景
非空指针 执行成功 成功获取张量真实名称
NULL 执行失败 名称无效或获取失败

aclInit

ACL_FUNC_VISIBILITY aclError aclInit(const char *configPath)

头文件清单

#include "include/middleware/services/ai/acl/acl.h"

功能说明

  • ACL初始化
  • 加载指定路径的配置文件进行ACL运行环境初始化
  • 必须在使用其他ACL接口前调用
  • configPath为空时使用默认配置

入参

名称 参数类型 详细说明 约束取值范围
configPath const char * 配置文件路径 -

返回值

  • 返回类型:aclError
返回值 文字含义 触发场景
ACL_SUCCESS(0) 执行成功 函数成功执行
Other 其他错误码,参考aclError 执行失败

aclFinalize

ACL_FUNC_VISIBILITY aclError aclFinalize(void)

头文件清单

#include "include/middleware/services/ai/acl/acl.h"

功能说明

  • ACL去初始化
  • 释放ACL运行环境资源
  • 应在所有ACL操作完成后调用

返回值

  • 返回类型:aclError
返回值 文字含义 触发场景
ACL_SUCCESS(0) 执行成功 函数成功执行
Other 其他错误码,参考aclError 执行失败

aclGetRecentErrMsg

ACL_FUNC_VISIBILITY const char *aclGetRecentErrMsg(void)

头文件清单

#include "include/middleware/services/ai/acl/acl.h"

功能说明

  • 获取最近的错误信息
  • 返回最近一次ACL接口调用产生的错误消息字符串

返回值

  • 返回类型:const char *
返回值 文字含义 触发场景
非空指针 执行成功 成功获取错误信息字符串
NULL 执行失败 无错误信息或获取失败

aclCreateDataBuffer

ACL_FUNC_VISIBILITY aclDataBuffer *aclCreateDataBuffer(void *data, size_t size)

头文件清单

#include "include/middleware/services/ai/acl/acl_base.h"

功能说明

  • 创建aclDataBuffer
  • 用于描述数据的地址和大小
  • 创建的aclDataBuffer需通过aclDestroyDataBuffer接口销毁

入参

名称 参数类型 详细说明 约束取值范围
data void * 数据地址指针 -
size size_t 数据大小(字节) -

返回值

  • 返回类型:aclDataBuffer *
返回值 文字含义 触发场景
非空指针 执行成功 成功创建aclDataBuffer实例
NULL 执行失败 创建失败

aclDestroyDataBuffer

ACL_FUNC_VISIBILITY aclError aclDestroyDataBuffer(const aclDataBuffer *dataBuffer)

头文件清单

#include "include/middleware/services/ai/acl/acl_base.h"

功能说明

  • 销毁aclDataBuffer
  • 仅能销毁通过aclCreateDataBuffer接口创建的aclDataBuffer

入参

名称 参数类型 详细说明 约束取值范围
dataBuffer const aclDataBuffer * 待销毁的aclDataBuffer实例 -

返回值

  • 返回类型:aclError
返回值 文字含义 触发场景
ACL_SUCCESS(0) 执行成功 函数成功执行
Other 其他错误码,参考aclError 执行失败

aclGetDataBufferAddr

ACL_FUNC_VISIBILITY void *aclGetDataBufferAddr(const aclDataBuffer *dataBuffer)

头文件清单

#include "include/middleware/services/ai/acl/acl_base.h"

功能说明

  • 获取aclDataBuffer中的数据地址

入参

名称 参数类型 详细说明 约束取值范围
dataBuffer const aclDataBuffer * aclDataBuffer实例 -

返回值

  • 返回类型:void *
返回值 文字含义 触发场景
非空指针 执行成功 成功获取数据地址
NULL 执行失败 获取失败

aclGetDataBufferSize

ACL_FUNC_VISIBILITY uint32_t aclGetDataBufferSize(const aclDataBuffer *dataBuffer)

头文件清单

#include "include/middleware/services/ai/acl/acl_base.h"

功能说明

  • 获取aclDataBuffer中的数据大小

入参

名称 参数类型 详细说明 约束取值范围
dataBuffer const aclDataBuffer * aclDataBuffer实例 -

返回值

  • 返回类型:uint32_t
返回值 文字含义 触发场景
uint32_t 数据大小(字节) 函数成功执行

aclGetDataBufferSizeV2

ACL_FUNC_VISIBILITY size_t aclGetDataBufferSizeV2(const aclDataBuffer *dataBuffer)

头文件清单

#include "include/middleware/services/ai/acl/acl_base.h"

功能说明

  • 获取aclDataBuffer中的数据大小(V2版本)
  • 返回size_t类型,支持更大的数据大小

入参

名称 参数类型 详细说明 约束取值范围
dataBuffer const aclDataBuffer * aclDataBuffer实例 -

返回值

  • 返回类型:size_t
返回值 文字含义 触发场景
size_t 数据大小(字节) 函数成功执行

Enumerations

aclrtRunMode

typedef enum aclrtRunMode {
    ACL_DEVICE,
    ACL_HOST,
} aclrtRunMode;
枚举成员 取值 描述
ACL_DEVICE 0 Device侧运行
ACL_HOST 1 Host侧运行

aclrtCallbackBlockType

typedef enum aclrtCallbackBlockType {
    ACL_CALLBACK_NO_BLOCK,
    ACL_CALLBACK_BLOCK,
} aclrtCallbackBlockType;
枚举成员 取值 描述
ACL_CALLBACK_NO_BLOCK 0 非阻塞回调
ACL_CALLBACK_BLOCK 1 阻塞回调

aclrtMemcpyKind

typedef enum aclrtMemcpyKind {
    ACL_MEMCPY_HOST_TO_HOST,
    ACL_MEMCPY_HOST_TO_DEVICE,
    ACL_MEMCPY_DEVICE_TO_HOST,
    ACL_MEMCPY_DEVICE_TO_DEVICE,
    ACL_MEMCPY_DEFAULT,
    ACL_MEMCPY_HOST_TO_BUF_TO_DEVICE,
    ACL_MEMCPY_INNER_DEVICE_TO_DEVICE,
    ACL_MEMCPY_INTER_DEVICE_TO_DEVICE,
} aclrtMemcpyKind;
枚举成员 取值 描述
ACL_MEMCPY_HOST_TO_HOST 0 Host到Host内存复制
ACL_MEMCPY_HOST_TO_DEVICE 1 Host到Device内存复制
ACL_MEMCPY_DEVICE_TO_HOST 2 Device到Host内存复制
ACL_MEMCPY_DEVICE_TO_DEVICE 3 Device到Device内存复制
ACL_MEMCPY_DEFAULT 4 默认内存复制方向
ACL_MEMCPY_HOST_TO_BUF_TO_DEVICE 5 Host通过缓冲区到Device内存复制
ACL_MEMCPY_INNER_DEVICE_TO_DEVICE 6 Device内部内存复制
ACL_MEMCPY_INTER_DEVICE_TO_DEVICE 7 跨Device内存复制

aclrtMemMallocPolicy

typedef enum aclrtMemMallocPolicy {
    ACL_MEM_MALLOC_HUGE_FIRST,
    ACL_MEM_MALLOC_HUGE_ONLY,
    ACL_MEM_MALLOC_NORMAL_ONLY,
    ACL_MEM_MALLOC_HUGE_FIRST_P2P,
    ACL_MEM_MALLOC_HUGE_ONLY_P2P,
    ACL_MEM_MALLOC_NORMAL_ONLY_P2P,
    ACL_MEM_MALLOC_HUGE1G_ONLY,
    ACL_MEM_MALLOC_HUGE1G_ONLY_P2P,
    ACL_MEM_TYPE_LOW_BAND_WIDTH   = 0x0100,
    ACL_MEM_TYPE_HIGH_BAND_WIDTH  = 0x1000,
    ACL_MEM_ACCESS_USER_SPACE_READONLY = 0x100000,
} aclrtMemMallocPolicy;
枚举成员 取值 描述
ACL_MEM_MALLOC_HUGE_FIRST 0 优先分配大页内存
ACL_MEM_MALLOC_HUGE_ONLY 1 仅分配大页内存
ACL_MEM_MALLOC_NORMAL_ONLY 2 仅分配普通内存
ACL_MEM_MALLOC_HUGE_FIRST_P2P 3 优先分配大页内存(P2P)
ACL_MEM_MALLOC_HUGE_ONLY_P2P 4 仅分配大页内存(P2P)
ACL_MEM_MALLOC_NORMAL_ONLY_P2P 5 仅分配普通内存(P2P)
ACL_MEM_MALLOC_HUGE1G_ONLY 6 仅分配1G大页内存
ACL_MEM_MALLOC_HUGE1G_ONLY_P2P 7 仅分配1G大页内存(P2P)
ACL_MEM_TYPE_LOW_BAND_WIDTH 0x0100 低带宽内存类型
ACL_MEM_TYPE_HIGH_BAND_WIDTH 0x1000 高带宽内存类型
ACL_MEM_ACCESS_USER_SPACE_READONLY 0x100000 用户空间只读内存

aclrtMemAttr

typedef enum aclrtMemAttr {
    ACL_DDR_MEM,
    ACL_HBM_MEM,
    ACL_DDR_MEM_HUGE,
    ACL_DDR_MEM_NORMAL,
    ACL_HBM_MEM_HUGE,
    ACL_HBM_MEM_NORMAL,
    ACL_DDR_MEM_P2P_HUGE,
    ACL_DDR_MEM_P2P_NORMAL,
    ACL_HBM_MEM_P2P_HUGE,
    ACL_HBM_MEM_P2P_NORMAL,
    ACL_HBM_MEM_HUGE1G,
    ACL_HBM_MEM_P2P_HUGE1G,
} aclrtMemAttr;
枚举成员 取值 描述
ACL_DDR_MEM 0 DDR内存
ACL_HBM_MEM 1 HBM内存
ACL_DDR_MEM_HUGE 2 DDR大页内存
ACL_DDR_MEM_NORMAL 3 DDR普通内存
ACL_HBM_MEM_HUGE 4 HBM大页内存
ACL_HBM_MEM_NORMAL 5 HBM普通内存
ACL_DDR_MEM_P2P_HUGE 6 DDR P2P大页内存
ACL_DDR_MEM_P2P_NORMAL 7 DDR P2P普通内存
ACL_HBM_MEM_P2P_HUGE 8 HBM P2P大页内存
ACL_HBM_MEM_P2P_NORMAL 9 HBM P2P普通内存
ACL_HBM_MEM_HUGE1G 10 HBM 1G大页内存
ACL_HBM_MEM_P2P_HUGE1G 11 HBM P2P 1G大页内存

aclrtStreamConfigAttr

typedef enum {
    ACL_RT_STREAM_WORK_ADDR_PTR = 0,
    ACL_RT_STREAM_WORK_SIZE,
    ACL_RT_STREAM_FLAG,
    ACL_RT_STREAM_PRIORITY,
} aclrtStreamConfigAttr;
枚举成员 取值 描述
ACL_RT_STREAM_WORK_ADDR_PTR 0 模型工作地址指针
ACL_RT_STREAM_WORK_SIZE 1 模型工作内存大小
ACL_RT_STREAM_FLAG 2 Stream标志位
ACL_RT_STREAM_PRIORITY 3 Stream优先级

aclDataType

typedef enum {
    ACL_DT_UNDEFINED = -1,
    ACL_FLOAT = 0,
    ACL_FLOAT16 = 1,
    ACL_INT8 = 2,
    ACL_INT32 = 3,
    ACL_UINT8 = 4,
    ACL_INT16 = 6,
    ACL_UINT16 = 7,
    ACL_UINT32 = 8,
    ACL_INT64 = 9,
    ACL_UINT64 = 10,
    ACL_DOUBLE = 11,
    ACL_BOOL = 12,
    ACL_STRING = 13,
    ACL_COMPLEX64 = 16,
    ACL_COMPLEX128 = 17,
    ACL_BF16 = 27,
    ACL_INT4 = 29,
    ACL_UINT1 = 30,
    ACL_COMPLEX32 = 33,
    ACL_HIFLOAT8 = 34,
    ACL_FLOAT8_E5M2 = 35,
    ACL_FLOAT8_E4M3FN = 36,
    ACL_FLOAT8_E8M0 = 37,
    ACL_FLOAT6_E3M2 = 38,
    ACL_FLOAT6_E2M3 = 39,
    ACL_FLOAT4_E2M1 = 40,
    ACL_FLOAT4_E1M2 = 41,
} aclDataType;
枚举成员 取值 描述
ACL_DT_UNDEFINED -1 未定义数据类型
ACL_FLOAT 0 32位浮点数
ACL_FLOAT16 1 16位浮点数
ACL_INT8 2 8位有符号整数
ACL_INT32 3 32位有符号整数
ACL_UINT8 4 8位无符号整数
ACL_INT16 6 16位有符号整数
ACL_UINT16 7 16位无符号整数
ACL_UINT32 8 32位无符号整数
ACL_INT64 9 64位有符号整数
ACL_UINT64 10 64位无符号整数
ACL_DOUBLE 11 64位双精度浮点数
ACL_BOOL 12 布尔类型
ACL_STRING 13 字符串类型
ACL_COMPLEX64 16 64位复数
ACL_COMPLEX128 17 128位复数
ACL_BF16 27 BFloat16类型
ACL_INT4 29 4位有符号整数
ACL_UINT1 30 1位无符号整数
ACL_COMPLEX32 33 32位复数
ACL_HIFLOAT8 34 HiFloat8类型
ACL_FLOAT8_E5M2 35 Float8 E5M2类型
ACL_FLOAT8_E4M3FN 36 Float8 E4M3FN类型
ACL_FLOAT8_E8M0 37 Float8 E8M0类型
ACL_FLOAT6_E3M2 38 Float6 E3M2类型
ACL_FLOAT6_E2M3 39 Float6 E2M3类型
ACL_FLOAT4_E2M1 40 Float4 E2M1类型
ACL_FLOAT4_E1M2 41 Float4 E1M2类型

aclFormat

typedef enum {
    ACL_FORMAT_UNDEFINED = -1,
    ACL_FORMAT_NCHW = 0,
    ACL_FORMAT_NHWC = 1,
    ACL_FORMAT_ND = 2,
    ACL_FORMAT_NC1HWC0 = 3,
    ACL_FORMAT_FRACTAL_Z = 4,
    ACL_FORMAT_NC1HWC0_C04 = 12,
    ACL_FORMAT_HWCN = 16,
    ACL_FORMAT_NDHWC = 27,
    ACL_FORMAT_FRACTAL_NZ = 29,
    ACL_FORMAT_NCDHW = 30,
    ACL_FORMAT_NDC1HWC0 = 32,
    ACL_FRACTAL_Z_3D = 33,
    ACL_FORMAT_NC = 35,
    ACL_FORMAT_NCL = 47,
    ACL_FORMAT_FRACTAL_NZ_C0_16 = 50,
    ACL_FORMAT_FRACTAL_NZ_C0_32 = 51,
} aclFormat;
枚举成员 取值 描述
ACL_FORMAT_UNDEFINED -1 未定义格式
ACL_FORMAT_NCHW 0 NCHW格式
ACL_FORMAT_NHWC 1 NHWC格式
ACL_FORMAT_ND 2 ND格式
ACL_FORMAT_NC1HWC0 3 NC1HWC0格式
ACL_FORMAT_FRACTAL_Z 4 FRACTAL_Z格式
ACL_FORMAT_NC1HWC0_C04 12 NC1HWC0_C04格式
ACL_FORMAT_HWCN 16 HWCN格式
ACL_FORMAT_NDHWC 27 NDHWC格式
ACL_FORMAT_FRACTAL_NZ 29 FRACTAL_NZ格式
ACL_FORMAT_NCDHW 30 NCDHW格式
ACL_FORMAT_NDC1HWC0 32 NDC1HWC0格式
ACL_FRACTAL_Z_3D 33 FRACTAL_Z_3D格式
ACL_FORMAT_NC 35 NC格式
ACL_FORMAT_NCL 47 NCL格式
ACL_FORMAT_FRACTAL_NZ_C0_16 50 FRACTAL_NZ_C0_16格式
ACL_FORMAT_FRACTAL_NZ_C0_32 51 FRACTAL_NZ_C0_32格式

aclmdlConfigAttr

typedef enum {
    ACL_MDL_PRIORITY_INT32 = 0,
    ACL_MDL_LOAD_TYPE_SIZET,
    ACL_MDL_PATH_PTR,
    ACL_MDL_MEM_ADDR_PTR,
    ACL_MDL_MEM_SIZET,
    ACL_MDL_WEIGHT_ADDR_PTR,
    ACL_MDL_WEIGHT_SIZET,
    ACL_MDL_WORKSPACE_ADDR_PTR,
    ACL_MDL_WORKSPACE_SIZET,
    ACL_MDL_INPUTQ_NUM_SIZET,
    ACL_MDL_INPUTQ_ADDR_PTR,
    ACL_MDL_OUTPUTQ_NUM_SIZET,
    ACL_MDL_OUTPUTQ_ADDR_PTR,
    ACL_MDL_WORKSPACE_MEM_OPTIMIZE,
    ACL_MDL_WEIGHT_PATH_PTR,
    ACL_MDL_MODEL_DESC_PTR,
    ACL_MDL_MODEL_DESC_SIZET,
    ACL_MDL_KERNEL_PTR,
    ACL_MDL_KERNEL_SIZET,
    ACL_MDL_KERNEL_ARGS_PTR,
    ACL_MDL_KERNEL_ARGS_SIZET,
    ACL_MDL_STATIC_TASK_PTR,
    ACL_MDL_STATIC_TASK_SIZET,
    ACL_MDL_DYNAMIC_TASK_PTR,
    ACL_MDL_DYNAMIC_TASK_SIZET,
    ACL_MDL_MEM_MALLOC_POLICY_SIZET,
    ACL_MDL_FIFO_PTR,
    ACL_MDL_FIFO_SIZET
} aclmdlConfigAttr;
枚举成员 取值 描述
ACL_MDL_PRIORITY_INT32 0 模型优先级(int32_t)
ACL_MDL_LOAD_TYPE_SIZET 1 模型加载类型(size_t)
ACL_MDL_PATH_PTR 2 模型加载路径指针(深拷贝)
ACL_MDL_MEM_ADDR_PTR 3 模型内存地址指针(浅拷贝)
ACL_MDL_MEM_SIZET 4 模型内存大小
ACL_MDL_WEIGHT_ADDR_PTR 5 权重内存地址指针(浅拷贝)
ACL_MDL_WEIGHT_SIZET 6 权重内存大小
ACL_MDL_WORKSPACE_ADDR_PTR 7 工作区内存地址指针(浅拷贝)
ACL_MDL_WORKSPACE_SIZET 8 工作区内存大小
ACL_MDL_INPUTQ_NUM_SIZET 9 输入队列数量
ACL_MDL_INPUTQ_ADDR_PTR 10 输入队列地址指针(浅拷贝)
ACL_MDL_OUTPUTQ_NUM_SIZET 11 输出队列数量
ACL_MDL_OUTPUTQ_ADDR_PTR 12 输出队列地址指针(浅拷贝)
ACL_MDL_WORKSPACE_MEM_OPTIMIZE 13 工作区内存优化
ACL_MDL_WEIGHT_PATH_PTR 14 权重路径指针(深拷贝)
ACL_MDL_MODEL_DESC_PTR 15 模型描述指针(浅拷贝)
ACL_MDL_MODEL_DESC_SIZET 16 模型描述大小
ACL_MDL_KERNEL_PTR 17 内核指针(浅拷贝)
ACL_MDL_KERNEL_SIZET 18 内核大小
ACL_MDL_KERNEL_ARGS_PTR 19 内核参数指针(浅拷贝)
ACL_MDL_KERNEL_ARGS_SIZET 20 内核参数大小
ACL_MDL_STATIC_TASK_PTR 21 静态任务描述指针(浅拷贝)
ACL_MDL_STATIC_TASK_SIZET 22 静态任务描述大小
ACL_MDL_DYNAMIC_TASK_PTR 23 动态任务描述指针(浅拷贝)
ACL_MDL_DYNAMIC_TASK_SIZET 24 动态任务描述大小
ACL_MDL_MEM_MALLOC_POLICY_SIZET 25 内存分配策略
ACL_MDL_FIFO_PTR 26 FIFO内存指针(浅拷贝)
ACL_MDL_FIFO_SIZET 27 FIFO内存大小

aclmdlExecConfigAttr

typedef enum {
    ACL_MDL_STREAM_SYNC_TIMEOUT = 0,
    ACL_MDL_EVENT_SYNC_TIMEOUT,
    ACL_MDL_WORK_ADDR_PTR,
    ACL_MDL_WORK_SIZET,
    ACL_MDL_MPAIMID_SIZET,
    ACL_MDL_AICQOS_SIZET,
    ACL_MDL_AICOST_SIZET,
    ACL_MDL_MEC_TIMETHR_SIZET
} aclmdlExecConfigAttr;
枚举成员 取值 描述
ACL_MDL_STREAM_SYNC_TIMEOUT 0 Stream同步超时时间
ACL_MDL_EVENT_SYNC_TIMEOUT 1 Event同步超时时间
ACL_MDL_WORK_ADDR_PTR 2 工作区地址指针
ACL_MDL_WORK_SIZET 3 工作区大小
ACL_MDL_MPAIMID_SIZET 4 预留参数
ACL_MDL_AICQOS_SIZET 5 预留参数
ACL_MDL_AICOST_SIZET 6 预留参数
ACL_MDL_MEC_TIMETHR_SIZET 7 预留参数

Structures

aclmdlIODims

typedef struct aclmdlIODims {
    char name[ACL_MAX_TENSOR_NAME_LEN];
    size_t dimCount;
    int64_t dims[ACL_MAX_DIM_CNT];
} aclmdlIODims;

成员说明

成员名称 数据类型 描述
name char[ACL_MAX_TENSOR_NAME_LEN] 张量名称
dimCount size_t 维度数组计数
dims int64_t[ACL_MAX_DIM_CNT] 维度数据数组

aclmdlExeOMDesc

typedef struct aclmdlExeOMDesc {
    size_t workSize;
    size_t weightSize;
    size_t modelDescSize;
    size_t kernelSize;
    size_t kernelArgsSize;
    size_t staticTaskSize;
    size_t dynamicTaskSize;
    size_t fifoTaskSize;
    size_t reserved[8];
} aclmdlExeOMDesc;

成员说明

成员名称 数据类型 描述
workSize size_t 工作内存大小
weightSize size_t 权重内存大小
modelDescSize size_t 模型描述大小
kernelSize size_t 内核大小
kernelArgsSize size_t 内核参数大小
staticTaskSize size_t 静态任务大小
dynamicTaskSize size_t 动态任务大小
fifoTaskSize size_t FIFO任务大小
reserved size_t[8] 预留字段

aclrtStreamConfigHandle

typedef struct aclrtStreamConfigHandle {
    void* workptr;
    size_t workSize;
    size_t flag;
    uint32_t priority;
} aclrtStreamConfigHandle;

成员说明

成员名称 数据类型 描述
workptr void* 工作内存指针
workSize size_t 工作内存大小
flag size_t 标志位
priority uint32_t 优先级

Type definitions

aclrtStream

typedef void *aclrtStream;

使用说明

Stream句柄类型,用于aclrtSubscribeReport、aclrtLaunchCallback等接口

aclrtContext

typedef void *aclrtContext;

使用说明

Context句柄类型,用于aclrtCreateContext、aclrtDestroyContext等接口

aclError

typedef int aclError;

使用说明

错误码类型,用于ACL运行时和模型接口的返回值

aclDataBuffer

typedef struct aclDataBuffer aclDataBuffer;

使用说明

数据缓冲区类型,用于aclCreateDataBuffer、aclmdlAddDatasetBuffer等接口

aclrtCallback

typedef void (*aclrtCallback)(void *userData);

使用说明

回调函数类型,用于aclrtLaunchCallback接口

aclmdlDataset

typedef struct aclmdlDataset aclmdlDataset;

使用说明

模型数据集类型,用于aclmdlCreateDataset、aclmdlExecuteV2等接口

aclmdlDesc

typedef struct aclmdlDesc aclmdlDesc;

使用说明

模型描述类型,用于aclmdlCreateDesc、aclmdlGetDesc等接口

aclmdlConfigHandle

typedef struct aclmdlConfigHandle aclmdlConfigHandle;

使用说明

模型加载配置句柄类型,用于aclmdlCreateConfigHandle、aclmdlLoadWithConfig等接口

aclmdlExecConfigHandle

typedef struct aclmdlExecConfigHandle aclmdlExecConfigHandle;

使用说明

模型执行配置句柄类型,用于aclmdlCreateExecConfigHandle、aclmdlSetExecConfigOpt等接口

Macros

ACL_TENSOR_SHAPE_RANGE_NUM

#define ACL_TENSOR_SHAPE_RANGE_NUM 2

ACL_TENSOR_VALUE_RANGE_NUM

#define ACL_TENSOR_VALUE_RANGE_NUM 2

ACL_UNKNOWN_RANK

#define ACL_UNKNOWN_RANK 0xFFFFFFFFFFFFFFFE

ACL_DIM_ENDPOINTS

#define ACL_DIM_ENDPOINTS        2

ACL_MAX_DIM_CNT

#define ACL_MAX_DIM_CNT          128

ACL_MAX_TENSOR_NAME_LEN

#define ACL_MAX_TENSOR_NAME_LEN  128

ACL_MAX_BATCH_NUM

#define ACL_MAX_BATCH_NUM        128

ACL_MAX_HW_NUM

#define ACL_MAX_HW_NUM           128

ACL_MAX_SHAPE_COUNT

#define ACL_MAX_SHAPE_COUNT      128

ACL_INVALID_NODE_INDEX

#define ACL_INVALID_NODE_INDEX   0xFFFFFFFF

ACL_MDL_LOAD_FROM_FILE

#define ACL_MDL_LOAD_FROM_FILE            1

ACL_MDL_LOAD_FROM_FILE_WITH_MEM

#define ACL_MDL_LOAD_FROM_FILE_WITH_MEM   2

ACL_MDL_LOAD_FROM_MEM

#define ACL_MDL_LOAD_FROM_MEM             3

ACL_MDL_LOAD_FROM_MEM_WITH_MEM

#define ACL_MDL_LOAD_FROM_MEM_WITH_MEM    4

ACL_MDL_LOAD_FROM_FILE_WITH_Q

#define ACL_MDL_LOAD_FROM_FILE_WITH_Q     5

ACL_MDL_LOAD_FROM_MEM_WITH_Q

#define ACL_MDL_LOAD_FROM_MEM_WITH_Q      6

ACL_WORKSPACE_MEM_OPTIMIZE_DEFAULT

#define ACL_WORKSPACE_MEM_OPTIMIZE_DEFAULT 0

ACL_WORKSPACE_MEM_OPTIMIZE_INPUTOUTPUT

#define ACL_WORKSPACE_MEM_OPTIMIZE_INPUTOUTPUT 1

ACL_MODEL_STREAM_FLAG_HEAD

#define ACL_MODEL_STREAM_FLAG_HEAD    0x00000000U

ACL_MODEL_STREAM_FLAG_DEFAULT

#define ACL_MODEL_STREAM_FLAG_DEFAULT 0x7FFFFFFFU

ACL_MAJOR_VERSION

#define ACL_MAJOR_VERSION              1

ACL_MINOR_VERSION

#define ACL_MINOR_VERSION              15

ACL_PATCH_VERSION

#define ACL_PATCH_VERSION              0

ACL_STREAM_FAST_LAUNCH

#define ACL_STREAM_FAST_LAUNCH  0x00000001U

ACL_STREAM_FAST_SYNC

#define ACL_STREAM_FAST_SYNC    0x00000002U

ACL_STREAM_PERSISTENT

#define ACL_STREAM_PERSISTENT   0x00000004U

ACL_STREAM_HUGE

#define ACL_STREAM_HUGE         0x00000008U

ACL_STREAM_CPU_SCHEDULE

#define ACL_STREAM_CPU_SCHEDULE 0x00000010U

ACL_STREAM_WAIT_VALUE_GEQ

#define ACL_STREAM_WAIT_VALUE_GEQ 0x00000000U

ACL_STREAM_WAIT_VALUE_EQ

#define ACL_STREAM_WAIT_VALUE_EQ  0x00000001U

ACL_STREAM_WAIT_VALUE_AND

#define ACL_STREAM_WAIT_VALUE_AND 0x00000002U

ACL_STREAM_WAIT_VALUE_NOR

#define ACL_STREAM_WAIT_VALUE_NOR 0x00000003U

ACL_CONTINUE_ON_FAILURE

#define ACL_CONTINUE_ON_FAILURE 0x00000000U

ACL_STOP_ON_FAILURE

#define ACL_STOP_ON_FAILURE     0x00000001U

ACL_DEV_FEATURE_SUPPORT

#define ACL_DEV_FEATURE_SUPPORT     0x00000001

ACL_DEV_FEATURE_NOT_SUPPORT

#define ACL_DEV_FEATURE_NOT_SUPPORT 0x00000000