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"
接口清单
Functions
uapi_npu_freq_change
头文件清单
功能说明
- NPU频率变更接口
- 用于动态调整NPU工作频率
- 支持的频率值为64、133或200
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| freq | uint32_t | NPU频率值(单位MHz) | - 64 - 133 - 200 |
返回值
- 返回类型:int32_t
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| 0 | 执行成功 | 函数成功执行 |
| OtherValues | 执行失败 | 函数执行失败 |
uapi_npu_dlog_setlevel
头文件清单
功能说明
- 设置模块日志级别和事件开关
- 可按模块设置不同的日志输出等级
- 支持控制事件的启用和禁用
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| 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
头文件清单
功能说明
- 注册处理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)
头文件清单
功能说明
- 在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
头文件清单
功能说明
- 等待指定时间后触发回调处理
- 处理由aclrtSubscribeReport接口指定的线程回调
- 超时后返回
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| timeout | int32_t | 超时值(毫秒) | - |
返回值
- 返回类型:aclError
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| ACL_SUCCESS(0) | 执行成功 | 函数成功执行 |
| Other | 其他错误码,参考aclError | 执行失败 |
aclrtUnSubscribeReport
头文件清单
功能说明
- 取消线程注册,指定Stream上的回调函数不再由该线程处理
- 与aclrtSubscribeReport配对使用
- 取消注册后回调将不再被分发到该线程
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| threadId | uint64_t | 线程ID | - |
| stream | aclrtStream | Stream句柄 | - |
返回值
- 返回类型:aclError
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| ACL_SUCCESS(0) | 执行成功 | 函数成功执行 |
| Other | 其他错误码,参考aclError | 执行失败 |
aclrtCreateContext
头文件清单
功能说明
- 创建Context并关联到当前线程
- 支持在一个进程中创建多个Context
- 当前线程同一时刻只能使用一个Context
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| context | aclrtContext * | 创建的Context指针 | - |
| deviceId | int32_t | 创建Context的Device ID | - |
出参
| 名称 | 数据类型 | 输出说明 |
|---|---|---|
| context | aclrtContext * | 创建的Context实例 |
返回值
- 返回类型:aclError
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| ACL_SUCCESS(0) | 执行成功 | 函数成功执行 |
| Other | 其他错误码,参考aclError | 执行失败 |
aclrtDestroyContext
头文件清单
功能说明
- 销毁Context实例
- 仅能销毁通过aclrtCreateContext接口创建的Context
- 不能用于释放默认Context
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| context | aclrtContext | 待销毁的Context | - |
返回值
- 返回类型:aclError
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| ACL_SUCCESS(0) | 执行成功 | 函数成功执行 |
| Other | 其他错误码,参考aclError | 执行失败 |
aclrtSetCurrentContext
头文件清单
功能说明
- 设置线程的当前Context
- 多次调用以最后一次设置为准
- 建议显式指定当前线程的Context
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| context | aclrtContext | 当前线程的Context | - |
返回值
- 返回类型:aclError
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| ACL_SUCCESS(0) | 执行成功 | 函数成功执行 |
| Other | 其他错误码,参考aclError | 执行失败 |
aclrtGetCurrentContext
头文件清单
功能说明
- 获取线程的当前Context
- 多次调用aclrtSetCurrentContext后获取最后一次设置的Context
- 未显式设置时获取默认Context
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| context | aclrtContext * | 当前线程的Context指针 | - |
出参
| 名称 | 数据类型 | 输出说明 |
|---|---|---|
| context | aclrtContext * | 当前线程的Context实例 |
返回值
- 返回类型:aclError
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| ACL_SUCCESS(0) | 执行成功 | 函数成功执行 |
| Other | 其他错误码,参考aclError | 执行失败 |
aclrtSetDevice
头文件清单
功能说明
- 指定用于运算的Device,隐式创建默认Context和默认Stream
- 同一进程或线程中可多次调用指定同一Device
- 支持多Device场景下切换Device
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| deviceId | int32_t | Device ID | - |
返回值
- 返回类型:aclError
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| ACL_SUCCESS(0) | 执行成功 | 函数成功执行 |
| Other | 其他错误码,参考aclError | 执行失败 |
aclrtResetDevice
头文件清单
功能说明
- 重置当前操作的Device并释放资源,包括默认Context、默认Stream等
- 同步接口,等待任务完成后释放
前置条件
- 调用时序约束:重置前需先释放显式创建的Stream、Event和Context
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| deviceId | int32_t | Device ID | - |
返回值
- 返回类型:aclError
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| ACL_SUCCESS(0) | 执行成功 | 函数成功执行 |
| Other | 其他错误码,参考aclError | 执行失败 |
aclrtGetDevice
头文件清单
功能说明
- 获取当前线程的目标Device
- 通过出参deviceId返回当前线程所关联的Device ID
出参
| 名称 | 数据类型 | 输出说明 |
|---|---|---|
| deviceId | int32_t * | 当前线程的目标Device ID |
返回值
- 返回类型:aclError
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| ACL_SUCCESS(0) | 执行成功 | 函数成功执行 |
| Other | 其他错误码,参考aclError | 执行失败 |
aclrtGetRunMode
头文件清单
功能说明
- 获取当前运行模式,区分Device侧运行还是Host侧运行
- 通过出参runMode返回运行模式
出参
| 名称 | 数据类型 | 输出说明 |
|---|---|---|
| runMode | aclrtRunMode * | 运行模式,参考aclrtRunMode |
返回值
- 返回类型:aclError
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| ACL_SUCCESS(0) | 执行成功 | 函数成功执行 |
| Other | 其他错误码,参考aclError | 执行失败 |
aclrtMalloc
头文件清单
功能说明
- 在Device上分配内存
- 支持通过policy指定内存分配策略
- 分配的内存需要通过aclrtFree接口释放
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| size | size_t | 待分配内存大小(字节) | - |
| policy | aclrtMemMallocPolicy | 内存分配策略 | 参考aclrtMemMallocPolicy |
出参
| 名称 | 数据类型 | 输出说明 |
|---|---|---|
| devPtr | void ** | 分配的Device内存地址指针 |
返回值
- 返回类型:aclError
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| ACL_SUCCESS(0) | 执行成功 | 函数成功执行 |
| Other | 其他错误码,参考aclError | 执行失败 |
aclrtFree
头文件清单
功能说明
- 释放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)
头文件清单
功能说明
- 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
头文件清单
功能说明
- 初始化内存并设置为指定值
- 将devPtr指向的内存前count字节设置为value值
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| devPtr | void * | 待初始化的内存地址指针 | - |
| maxCount | size_t | 内存最大长度(字节) | - |
| value | int32_t | 待设置的值 | - |
| count | size_t | 待设置的字节数 | - |
返回值
- 返回类型:aclError
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| ACL_SUCCESS(0) | 执行成功 | 函数成功执行 |
| Other | 其他错误码,参考aclError | 执行失败 |
aclrtCreateStreamConfigHandle
头文件清单
功能说明
- 创建Stream配置句柄
- 创建的句柄用于aclrtSetStreamConfigOpt设置配置选项,并通过aclrtCreateStreamV2创建Stream
返回值
- 返回类型:aclrtStreamConfigHandle *
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| 非空指针 | 执行成功 | 成功创建Stream配置句柄 |
| NULL | 执行失败 | 创建失败 |
aclrtDestroyStreamConfigHandle
头文件清单
功能说明
- 销毁Stream配置句柄
- 仅能销毁通过aclrtCreateStreamConfigHandle接口创建的句柄
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| handle | aclrtStreamConfigHandle * | 待销毁的Stream配置句柄 | - |
返回值
- 返回类型:aclError
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| ACL_SUCCESS(0) | 执行成功 | 函数成功执行 |
| Other | 其他错误码,参考aclError | 执行失败 |
aclrtSetStreamConfigOpt
aclError aclrtSetStreamConfigOpt(aclrtStreamConfigHandle *handle, aclrtStreamConfigAttr attr, const void *attrValue, size_t valueSize)
头文件清单
功能说明
- 设置Stream配置选项
- 通过attr指定配置属性类型,attrValue指定属性值
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| handle | aclrtStreamConfigHandle * | Stream配置句柄 | - |
| attr | aclrtStreamConfigAttr | 配置属性类型 | 参考aclrtStreamConfigAttr |
| attrValue | const void * | 属性值指针 | - |
| valueSize | size_t | 属性值大小(字节) | - |
返回值
- 返回类型:aclError
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| ACL_SUCCESS(0) | 执行成功 | 函数成功执行 |
| Other | 其他错误码,参考aclError | 执行失败 |
aclrtCreateStreamV2
头文件清单
功能说明
- 创建Stream实例
- 支持通过配置句柄指定Stream属性
- 创建的Stream需通过aclrtDestroyStream接口销毁
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| handle | const aclrtStreamConfigHandle * | Stream配置句柄 | - |
出参
| 名称 | 数据类型 | 输出说明 |
|---|---|---|
| stream | aclrtStream * | 创建的Stream实例 |
返回值
- 返回类型:aclError
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| ACL_SUCCESS(0) | 执行成功 | 函数成功执行 |
| Other | 其他错误码,参考aclError | 执行失败 |
aclrtDestroyStream
头文件清单
功能说明
- 销毁Stream实例
- 仅能销毁通过aclrtCreateStreamV2或aclrtCreateStream接口创建的Stream
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| stream | aclrtStream | 待销毁的Stream实例 | - |
返回值
- 返回类型:aclError
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| ACL_SUCCESS(0) | 执行成功 | 函数成功执行 |
| Other | 其他错误码,参考aclError | 执行失败 |
aclrtSynchronizeStream
头文件清单
功能说明
- 阻塞Host等待Stream中所有任务完成
- 同步接口,等待指定Stream中所有异步任务执行完毕后才返回
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| stream | aclrtStream | Stream实例 | - |
返回值
- 返回类型:aclError
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| ACL_SUCCESS(0) | 执行成功 | 函数成功执行 |
| Other | 其他错误码,参考aclError | 执行失败 |
aclrtGetMemInfo
头文件清单
功能说明
- 获取指定属性的空闲内存和总内存大小
- 通过attr指定内存属性类型
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| attr | aclrtMemAttr | 内存属性类型 | 参考aclrtMemAttr |
出参
| 名称 | 数据类型 | 输出说明 |
|---|---|---|
| free | size_t * | 空闲内存大小(字节) |
| total | size_t * | 总内存大小(字节) |
返回值
- 返回类型:aclError
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| ACL_SUCCESS(0) | 执行成功 | 函数成功执行 |
| Other | 其他错误码,参考aclError | 执行失败 |
aclrtSubscribeHostFunc
头文件清单
功能说明
- 注册线程用于处理指定Stream上的HostFunc回调
- 注册后该线程将处理该Stream上的HostFunc回调
- 与aclrtUnSubscribeHostFunc配对使用
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| hostFuncThreadId | uint64_t | 线程ID | - |
| exeStream | aclrtStream | Stream句柄 | - |
返回值
- 返回类型:aclError
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| ACL_SUCCESS(0) | 执行成功 | 函数成功执行 |
| Other | 其他错误码,参考aclError | 执行失败 |
aclrtProcessHostFunc
头文件清单
功能说明
- 等待指定时间后触发HostFunc回调处理
- 处理由aclrtSubscribeHostFunc接口注册的线程回调
- 超时后返回
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| timeout | int32_t | 超时值(毫秒) | - |
返回值
- 返回类型:aclError
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| ACL_SUCCESS(0) | 执行成功 | 函数成功执行 |
| Other | 其他错误码,参考aclError | 执行失败 |
aclrtUnSubscribeHostFunc
头文件清单
功能说明
- 取消线程注册,指定Stream上的HostFunc回调不再由该线程处理
- 与aclrtSubscribeHostFunc配对使用
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| hostFuncThreadId | uint64_t | 线程ID | - |
| exeStream | aclrtStream | Stream句柄 | - |
返回值
- 返回类型:aclError
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| ACL_SUCCESS(0) | 执行成功 | 函数成功执行 |
| Other | 其他错误码,参考aclError | 执行失败 |
aclrtGetVersion
头文件清单
功能说明
- 查询ACL接口版本号
- 通过出参返回主版本号、次版本号和补丁版本号
出参
| 名称 | 数据类型 | 输出说明 |
|---|---|---|
| majorVersion | int32_t * | 主版本号 |
| minorVersion | int32_t * | 次版本号 |
| patchVersion | int32_t * | 补丁版本号 |
返回值
- 返回类型:aclError
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| ACL_SUCCESS(0) | 执行成功 | 函数成功执行 |
| Other | 其他错误码,参考aclError | 执行失败 |
aclmdlCreateDesc
头文件清单
功能说明
- 创建aclmdlDesc数据
- 用于描述模型的输入输出信息
- 创建的aclmdlDesc需通过aclmdlDestroyDesc接口销毁
返回值
- 返回类型:aclmdlDesc *
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| 非空指针 | 执行成功 | 成功创建aclmdlDesc实例 |
| NULL | 执行失败 | 创建失败 |
aclmdlDestroyDesc
头文件清单
功能说明
- 销毁aclmdlDesc数据
- 仅能销毁通过aclmdlCreateDesc接口创建的aclmdlDesc
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| modelDesc | aclmdlDesc * | 待销毁的aclmdlDesc实例 | - |
返回值
- 返回类型:aclError
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| ACL_SUCCESS(0) | 执行成功 | 函数成功执行 |
| Other | 其他错误码,参考aclError | 执行失败 |
aclmdlGetDesc
头文件清单
功能说明
- 根据模型ID获取aclmdlDesc数据
- 通过modelId查询已加载模型的描述信息并写入modelDesc
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| modelDesc | aclmdlDesc * | 模型描述实例 | - |
| modelId | uint32_t | 模型ID | - |
返回值
- 返回类型:aclError
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| ACL_SUCCESS(0) | 执行成功 | 函数成功执行 |
| Other | 其他错误码,参考aclError | 执行失败 |
aclmdlGetDescFromFile
头文件清单
功能说明
- 根据模型文件路径获取aclmdlDesc数据
- 从离线模型文件中读取模型描述信息并写入modelDesc
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| modelDesc | aclmdlDesc * | 模型描述实例 | - |
| modelPath | const char * | 离线模型文件路径 | - |
返回值
- 返回类型:aclError
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| ACL_SUCCESS(0) | 执行成功 | 函数成功执行 |
| Other | 其他错误码,参考aclError | 执行失败 |
aclmdlGetDescFromMem
头文件清单
功能说明
- 根据模型内存获取aclmdlDesc数据
- 从内存中的模型数据读取模型描述信息并写入modelDesc
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| modelDesc | aclmdlDesc * | 模型描述实例 | - |
| model | const void * | 模型内存地址指针 | - |
| modelSize | size_t | 模型内存大小(字节) | - |
返回值
- 返回类型:aclError
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| ACL_SUCCESS(0) | 执行成功 | 函数成功执行 |
| Other | 其他错误码,参考aclError | 执行失败 |
aclmdlGetNumInputs
头文件清单
功能说明
- 获取模型输入数量
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| modelDesc | aclmdlDesc * | 模型描述实例 | - |
返回值
- 返回类型:size_t
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| size_t | 模型输入数量 | 函数成功执行 |
aclmdlGetNumOutputs
头文件清单
功能说明
- 获取模型输出数量
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| modelDesc | aclmdlDesc * | 模型描述实例 | - |
返回值
- 返回类型:size_t
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| size_t | 模型输出数量 | 函数成功执行 |
aclmdlGetInputSizeByIndex
头文件清单
功能说明
- 根据索引获取模型指定输入的大小
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| modelDesc | aclmdlDesc * | 模型描述实例 | - |
| index | size_t | 输入索引 | - |
返回值
- 返回类型:size_t
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| size_t | 指定输入的大小(字节) | 函数成功执行 |
aclmdlGetOutputSizeByIndex
头文件清单
功能说明
- 根据索引获取模型指定输出的大小
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| modelDesc | aclmdlDesc * | 模型描述实例 | - |
| index | size_t | 输出索引 | - |
返回值
- 返回类型:size_t
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| size_t | 指定输出的大小(字节) | 函数成功执行 |
aclmdlCreateExecConfigHandle
头文件清单
功能说明
- 创建模型执行配置句柄
- 创建的句柄用于aclmdlSetExecConfigOpt设置执行配置选项
返回值
- 返回类型:aclmdlExecConfigHandle *
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| 非空指针 | 执行成功 | 成功创建模型执行配置句柄 |
| NULL | 执行失败 | 创建失败 |
aclmdlDestroyExecConfigHandle
头文件清单
功能说明
- 销毁模型执行配置句柄
- 仅能销毁通过aclmdlCreateExecConfigHandle接口创建的句柄
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| handle | const aclmdlExecConfigHandle * | 待销毁的模型执行配置句柄 | - |
返回值
- 返回类型:aclError
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| ACL_SUCCESS(0) | 执行成功 | 函数成功执行 |
| Other | 其他错误码,参考aclError | 执行失败 |
aclmdlCreateDataset
头文件清单
功能说明
- 创建aclmdlDataset数据
- 用于描述模型推理的输入输出数据集
- 创建的aclmdlDataset需通过aclmdlDestroyDataset接口销毁
返回值
- 返回类型:aclmdlDataset *
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| 非空指针 | 执行成功 | 成功创建aclmdlDataset实例 |
| NULL | 执行失败 | 创建失败 |
aclmdlDestroyDataset
头文件清单
功能说明
- 销毁aclmdlDataset数据
- 仅能销毁通过aclmdlCreateDataset接口创建的aclmdlDataset
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| dataset | const aclmdlDataset * | 待销毁的aclmdlDataset实例 | - |
返回值
- 返回类型:aclError
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| ACL_SUCCESS(0) | 执行成功 | 函数成功执行 |
| Other | 其他错误码,参考aclError | 执行失败 |
aclmdlAddDatasetBuffer
头文件清单
功能说明
- 向aclmdlDataset中添加aclDataBuffer
- 用于将数据缓冲区添加到模型输入或输出数据集中
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| dataset | aclmdlDataset * | aclmdlDataset实例 | - |
| dataBuffer | aclDataBuffer * | 待添加的aclDataBuffer实例 | - |
返回值
- 返回类型:aclError
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| ACL_SUCCESS(0) | 执行成功 | 函数成功执行 |
| Other | 其他错误码,参考aclError | 执行失败 |
aclmdlGetDatasetNumBuffers
头文件清单
功能说明
- 获取aclmdlDataset中aclDataBuffer的数量
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| dataset | const aclmdlDataset * | aclmdlDataset实例 | - |
返回值
- 返回类型:size_t
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| size_t | aclDataBuffer的数量 | 函数成功执行 |
aclmdlGetDatasetBuffer
头文件清单
功能说明
- 根据索引从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)
头文件清单
功能说明
- 执行模型同步推理
- 支持通过配置句柄指定执行属性
前置条件
- 调用时序约束:需先通过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)
头文件清单
功能说明
- 执行模型异步推理
- 支持通过配置句柄指定执行属性
- 异步接口,需通过aclrtSynchronizeStream等待任务完成
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| modelId | uint32_t | 模型ID | - |
| input | const aclmdlDataset * | 模型输入数据集 | - |
| output | aclmdlDataset * | 模型输出数据集 | - |
| stream | aclrtStream | Stream实例 | - |
| handle | const aclmdlExecConfigHandle * | 模型执行配置句柄 | - |
返回值
- 返回类型:aclError
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| ACL_SUCCESS(0) | 执行成功 | 函数成功执行 |
| Other | 其他错误码,参考aclError | 执行失败 |
aclmdlUnload
头文件清单
功能说明
- 根据模型ID卸载模型
- 卸载后释放模型占用的Device资源
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| modelId | uint32_t | 模型ID | - |
返回值
- 返回类型:aclError
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| ACL_SUCCESS(0) | 执行成功 | 函数成功执行 |
| Other | 其他错误码,参考aclError | 执行失败 |
aclmdlQuerySize
头文件清单
功能说明
- 根据模型文件查询工作内存和权重内存大小
- 用于在加载模型前预分配所需内存
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| fileName | const char * | 离线模型文件路径 | - |
出参
| 名称 | 数据类型 | 输出说明 |
|---|---|---|
| workSize | size_t * | 工作内存大小(字节) |
| weightSize | size_t * | 权重内存大小(字节) |
返回值
- 返回类型:aclError
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| ACL_SUCCESS(0) | 执行成功 | 函数成功执行 |
| Other | 其他错误码,参考aclError | 执行失败 |
aclmdlQueryExeOMDesc
头文件清单
功能说明
- 根据模型文件查询各分区大小信息
- 用于获取模型各组成部分的内存大小
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| fileName | const char * | 离线模型文件路径 | - |
出参
| 名称 | 数据类型 | 输出说明 |
|---|---|---|
| mdlPartitionSize | aclmdlExeOMDesc * | 模型各分区大小信息,参考aclmdlExeOMDesc |
返回值
- 返回类型:aclError
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| ACL_SUCCESS(0) | 执行成功 | 函数成功执行 |
| Other | 其他错误码,参考aclError | 执行失败 |
aclmdlGetInputDims
头文件清单
功能说明
- 获取模型输入维度信息
- 根据索引获取指定输入的维度描述
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| modelDesc | const aclmdlDesc * | 模型描述实例 | - |
| index | size_t | 输入索引 | - |
出参
| 名称 | 数据类型 | 输出说明 |
|---|---|---|
| dims | aclmdlIODims * | 输入维度信息,参考aclmdlIODims |
返回值
- 返回类型:aclError
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| ACL_SUCCESS(0) | 执行成功 | 函数成功执行 |
| Other | 其他错误码,参考aclError | 执行失败 |
aclmdlGetOutputDims
头文件清单
功能说明
- 获取模型输出维度信息
- 根据索引获取指定输出的维度描述
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| modelDesc | const aclmdlDesc * | 模型描述实例 | - |
| index | size_t | 输出索引 | - |
出参
| 名称 | 数据类型 | 输出说明 |
|---|---|---|
| dims | aclmdlIODims * | 输出维度信息,参考aclmdlIODims |
返回值
- 返回类型:aclError
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| ACL_SUCCESS(0) | 执行成功 | 函数成功执行 |
| Other | 其他错误码,参考aclError | 执行失败 |
aclmdlGetInputNameByIndex
头文件清单
功能说明
- 根据索引获取模型输入张量名称
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| modelDesc | const aclmdlDesc * | 模型描述实例 | - |
| index | size_t | 输入索引 | - |
返回值
- 返回类型:const char *
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| 非空指针 | 执行成功 | 成功获取输入张量名称 |
| NULL | 执行失败 | 索引无效或获取失败 |
aclmdlGetOutputNameByIndex
头文件清单
功能说明
- 根据索引获取模型输出张量名称
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| modelDesc | const aclmdlDesc * | 模型描述实例 | - |
| index | size_t | 输出索引 | - |
返回值
- 返回类型:const char *
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| 非空指针 | 执行成功 | 成功获取输出张量名称 |
| NULL | 执行失败 | 索引无效或获取失败 |
aclmdlGetInputFormat
头文件清单
功能说明
- 根据索引获取模型输入的数据格式
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| modelDesc | const aclmdlDesc * | 模型描述实例 | - |
| index | size_t | 输入索引 | - |
返回值
- 返回类型:aclFormat
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| aclFormat | 输入数据格式 | 参考aclFormat |
aclmdlGetOutputFormat
头文件清单
功能说明
- 根据索引获取模型输出的数据格式
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| modelDesc | const aclmdlDesc * | 模型描述实例 | - |
| index | size_t | 输出索引 | - |
返回值
- 返回类型:aclFormat
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| aclFormat | 输出数据格式 | 参考aclFormat |
aclmdlGetInputDataType
头文件清单
功能说明
- 根据索引获取模型输入的数据类型
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| modelDesc | const aclmdlDesc * | 模型描述实例 | - |
| index | size_t | 输入索引 | - |
返回值
- 返回类型:aclDataType
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| aclDataType | 输入数据类型 | 参考aclDataType |
aclmdlGetOutputDataType
头文件清单
功能说明
- 根据索引获取模型输出的数据类型
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| modelDesc | const aclmdlDesc * | 模型描述实例 | - |
| index | size_t | 输出索引 | - |
返回值
- 返回类型:aclDataType
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| aclDataType | 输出数据类型 | 参考aclDataType |
aclmdlGetInputIndexByName
头文件清单
功能说明
- 根据张量名称获取模型输入索引
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| modelDesc | const aclmdlDesc * | 模型描述实例 | - |
| name | const char * | 输入张量名称 | - |
出参
| 名称 | 数据类型 | 输出说明 |
|---|---|---|
| index | size_t * | 输入张量索引 |
返回值
- 返回类型:aclError
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| ACL_SUCCESS(0) | 执行成功 | 函数成功执行 |
| Other | 其他错误码,参考aclError | 执行失败 |
aclmdlGetOutputIndexByName
头文件清单
功能说明
- 根据张量名称获取模型输出索引
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| modelDesc | const aclmdlDesc * | 模型描述实例 | - |
| name | const char * | 输出张量名称 | - |
出参
| 名称 | 数据类型 | 输出说明 |
|---|---|---|
| index | size_t * | 输出张量索引 |
返回值
- 返回类型:aclError
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| ACL_SUCCESS(0) | 执行成功 | 函数成功执行 |
| Other | 其他错误码,参考aclError | 执行失败 |
aclmdlLoadWithConfig
头文件清单
功能说明
- 根据配置加载模型
- 通过配置句柄指定模型加载路径、内存地址等参数
- 加载成功后通过出参返回模型ID
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| handle | const aclmdlConfigHandle * | 模型加载配置句柄 | - |
出参
| 名称 | 数据类型 | 输出说明 |
|---|---|---|
| modelId | uint32_t * | 加载后的模型ID |
返回值
- 返回类型:aclError
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| ACL_SUCCESS(0) | 执行成功 | 函数成功执行 |
| Other | 其他错误码,参考aclError | 执行失败 |
aclmdlCreateConfigHandle
头文件清单
功能说明
- 创建模型加载配置句柄
- 创建的句柄用于aclmdlSetConfigOpt设置加载配置选项
返回值
- 返回类型:aclmdlConfigHandle *
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| 非空指针 | 执行成功 | 成功创建模型加载配置句柄 |
| NULL | 执行失败 | 创建失败 |
aclmdlDestroyConfigHandle
头文件清单
功能说明
- 销毁模型加载配置句柄
- 仅能销毁通过aclmdlCreateConfigHandle接口创建的句柄
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| handle | aclmdlConfigHandle * | 待销毁的模型加载配置句柄 | - |
返回值
- 返回类型:aclError
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| ACL_SUCCESS(0) | 执行成功 | 函数成功执行 |
| Other | 其他错误码,参考aclError | 执行失败 |
aclmdlSetConfigOpt
aclError aclmdlSetConfigOpt(aclmdlConfigHandle *handle, aclmdlConfigAttr attr, const void *attrValue, size_t valueSize)
头文件清单
功能说明
- 设置模型加载配置选项
- 通过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)
头文件清单
功能说明
- 设置模型执行配置选项
- 通过attr指定配置属性类型,attrValue指定属性值
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| handle | aclmdlExecConfigHandle * | 模型执行配置句柄 | - |
| attr | aclmdlExecConfigAttr | 配置属性类型 | 参考aclmdlExecConfigAttr |
| attrValue | const void * | 属性值指针 | - |
| valueSize | size_t | 属性值大小(字节) | - |
返回值
- 返回类型:aclError
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| ACL_SUCCESS(0) | 执行成功 | 函数成功执行 |
| Other | 其他错误码,参考aclError | 执行失败 |
aclmdlGetTensorRealName
头文件清单
功能说明
- 从模型描述中获取张量的真实名称
- 根据张量名称获取模型中对应的实际张量名称
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| modelDesc | const aclmdlDesc * | 模型描述实例 | - |
| name | const char * | 张量名称 | - |
返回值
- 返回类型:const char *
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| 非空指针 | 执行成功 | 成功获取张量真实名称 |
| NULL | 执行失败 | 名称无效或获取失败 |
aclInit
头文件清单
功能说明
- ACL初始化
- 加载指定路径的配置文件进行ACL运行环境初始化
- 必须在使用其他ACL接口前调用
- configPath为空时使用默认配置
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| configPath | const char * | 配置文件路径 | - |
返回值
- 返回类型:aclError
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| ACL_SUCCESS(0) | 执行成功 | 函数成功执行 |
| Other | 其他错误码,参考aclError | 执行失败 |
aclFinalize
头文件清单
功能说明
- ACL去初始化
- 释放ACL运行环境资源
- 应在所有ACL操作完成后调用
返回值
- 返回类型:aclError
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| ACL_SUCCESS(0) | 执行成功 | 函数成功执行 |
| Other | 其他错误码,参考aclError | 执行失败 |
aclGetRecentErrMsg
头文件清单
功能说明
- 获取最近的错误信息
- 返回最近一次ACL接口调用产生的错误消息字符串
返回值
- 返回类型:const char *
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| 非空指针 | 执行成功 | 成功获取错误信息字符串 |
| NULL | 执行失败 | 无错误信息或获取失败 |
aclCreateDataBuffer
头文件清单
功能说明
- 创建aclDataBuffer
- 用于描述数据的地址和大小
- 创建的aclDataBuffer需通过aclDestroyDataBuffer接口销毁
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| data | void * | 数据地址指针 | - |
| size | size_t | 数据大小(字节) | - |
返回值
- 返回类型:aclDataBuffer *
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| 非空指针 | 执行成功 | 成功创建aclDataBuffer实例 |
| NULL | 执行失败 | 创建失败 |
aclDestroyDataBuffer
头文件清单
功能说明
- 销毁aclDataBuffer
- 仅能销毁通过aclCreateDataBuffer接口创建的aclDataBuffer
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| dataBuffer | const aclDataBuffer * | 待销毁的aclDataBuffer实例 | - |
返回值
- 返回类型:aclError
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| ACL_SUCCESS(0) | 执行成功 | 函数成功执行 |
| Other | 其他错误码,参考aclError | 执行失败 |
aclGetDataBufferAddr
头文件清单
功能说明
- 获取aclDataBuffer中的数据地址
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| dataBuffer | const aclDataBuffer * | aclDataBuffer实例 | - |
返回值
- 返回类型:void *
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| 非空指针 | 执行成功 | 成功获取数据地址 |
| NULL | 执行失败 | 获取失败 |
aclGetDataBufferSize
头文件清单
功能说明
- 获取aclDataBuffer中的数据大小
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| dataBuffer | const aclDataBuffer * | aclDataBuffer实例 | - |
返回值
- 返回类型:uint32_t
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| uint32_t | 数据大小(字节) | 函数成功执行 |
aclGetDataBufferSizeV2
头文件清单
功能说明
- 获取aclDataBuffer中的数据大小(V2版本)
- 返回size_t类型,支持更大的数据大小
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| dataBuffer | const aclDataBuffer * | aclDataBuffer实例 | - |
返回值
- 返回类型:size_t
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| size_t | 数据大小(字节) | 函数成功执行 |
Enumerations
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
使用说明
Stream句柄类型,用于aclrtSubscribeReport、aclrtLaunchCallback等接口
aclrtContext
使用说明
Context句柄类型,用于aclrtCreateContext、aclrtDestroyContext等接口
aclError
使用说明
错误码类型,用于ACL运行时和模型接口的返回值
aclDataBuffer
使用说明
数据缓冲区类型,用于aclCreateDataBuffer、aclmdlAddDatasetBuffer等接口
aclrtCallback
使用说明
回调函数类型,用于aclrtLaunchCallback接口
aclmdlDataset
使用说明
模型数据集类型,用于aclmdlCreateDataset、aclmdlExecuteV2等接口
aclmdlDesc
使用说明
模型描述类型,用于aclmdlCreateDesc、aclmdlGetDesc等接口
aclmdlConfigHandle
使用说明
模型加载配置句柄类型,用于aclmdlCreateConfigHandle、aclmdlLoadWithConfig等接口
aclmdlExecConfigHandle
使用说明
模型执行配置句柄类型,用于aclmdlCreateExecConfigHandle、aclmdlSetExecConfigOpt等接口