aclmdlExecConfigAttr
aclvencChannelDescParamType
| 视频编码处理通道属性类型 | 说明 |
|---|---|
| ACL_VENC_THREAD_ID_UINT64 = 0 | 回调线程ID。 (说明:同一个进程内,在不同的Device上注册VENC编码回调函数的线程时,不能指定同一个线程ID。) |
| ACL_VENC_CALLBACK_PTR = 1 | 回调函数。 |
| ACL_VENC_PIXEL_FORMAT_UINT32 = 2 | 输入图像格式,支持如下格式: - PIXEL_FORMAT_YUV_SEMIPLANAR_420 - PIXEL_FORMAT_YVU_SEMIPLANAR_420 |
| ACL_VENC_ENCODE_TYPE_UINT32 = 3 | 视频编码协议。 请参见acldvppStreamFormat。 |
| ACL_VENC_PIC_WIDTH_UINT32 = 4 | 输入图片宽度。 |
| ACL_VENC_PIC_HEIGHT_UINT32 = 5 | 输入图片高度。 |
| ACL_VENC_KEY_FRAME_INTERVAL_UINT32 = 6 | 关键帧间隔,取值范围[1, 65536]。 |
| ACL_VENC_BUF_ADDR_PTR = 7 | 编码输出缓存指针地址。 |
| ACL_VENC_BUF_SIZE_UINT32 = 8 | 编码输出缓存大小,单位为Byte。(说明:在 Atlas 200/500 A2推理产品 上,如果不设置该参数,参数值默认为8M;如果设置该参数,参数值最小为5M。) |
| ACL_VENC_RC_MODE_UINT32 = 9 | 指定码率控制模式。 - 1表示变码率VBR模式。 - 2表示定码率CBR模式。 (说明:如果不设置该参数,则采用默认值0。 Atlas 200/500 A2推理产品 ,默认值0表示VBR模式。) |
| ACL_VENC_SRC_RATE_UINT32 = 10 | 输入码流帧率,单位fps。 Atlas 200/500 A2推理产品,取值范围0或者[1,240]。 如果不设置该参数,默认为30;如果设置为0,表示使用默认值,即30。如果该值和实际输入码流帧率相差太大,会影响输出码率。 |
| ACL_VENC_MAX_BITRATE_UINT32 = 11 | 输出码率,单位kbps。 Atlas 200/500 A2推理产品,取值范围[2,614400],如果不设置该参数,默认为2000;如果设置为0,表示使用默认值,即2000。 |
| ACL_VENC_MAX_IP_PROP_UINT32 = 12 | 一个GOP内单个I帧bit数和单个P帧bit数的比例,取值范围0或[1,100] 。如果不设置该参数,VBR模式下此值默认为80,CBR模式下此值默认为70;如果设置为0,表示使用默认值,即VBR模式下此值默认为80,CBR模式下此值默认为70。 |
父主题: 数据类型及其操作接口
aclmdlConfigAttr
| 模型加载配置类型 | 含义 |
|---|---|
| ACL_MDL_PRIORITY_INT32 = 0 | 模型执行的优先级,数字越小优先级越高,取值[0, 7],可选项。默认值为0。 |
| ACL_MDL_LOAD_TYPE_SIZET = 1 | 模型加载方式,具体请参见表1,必选项。 |
| ACL_MDL_PATH_STR = 2 | 离线模型文件路径的指针地址,如果选择从文件加载模型,则该选项必选。 |
| ACL_MDL_MEM_ADDR_PTR = 3 | 模型在内存中的起始地址,如果选择从内存加载模型,则该选项必选。 |
| ACL_MDL_MEM_SIZET = 4 | 模型在内存中的大小,如果选择从内存加载模型,则该选项必选,与ACL_MDL_MEM_ADDR_PTR选项配合使用。 |
| ACL_MDL_WEIGHT_ADDR_PTR = 5 | Device上模型权值内存(存放权值数据)的指针地址,如果需要由用户管理权值内存,则该选项必选。若不配置该选项,则表示由系统管理内存。 |
| ACL_MDL_WEIGHT_SIZET = 6 | 权值内存大小,单位为Byte,如果需要由用户管理权值内存,则该选项必选,与ACL_MDL_WEIGHT_ADDR_PTR选项配合使用。 |
| ACL_MDL_WORKSPACE_ADDR_PTR = 7 | Device上模型所需工作内存(存放模型输入/输出等数据)的指针地址,如果需要由用户管理工作内存,则该选项必选。若不配置该选项,则表示由系统管理内存。 |
| ACL_MDL_WORKSPACE_SIZET = 8 | 模型所需工作内存的大小,单位为Byte,如果需要由用户管理权值内存,则该选项必选,与ACL_MDL_WORKSPACE_ADDR_PTR选项配合使用。 |
| ACL_MDL_INPUTQ_NUM_SIZET = 9 | 模型输入队列大小 ,带队列加载模型时,该选项必选,与ACL_MDL_INPUTQ_ADDR_PTR选项配合使用。 |
| ACL_MDL_INPUTQ_ADDR_PTR = 10 | 模型输入队列ID的指针地址,带队列加载模型时,该选项必选,一个模型输入对应一个队列ID。 |
| ACL_MDL_OUTPUTQ_NUM_SIZET = 11 | 模型输出队列大小,带队列加载模型时,该选项必选,与ACL_MDL_OUTPUTQ_ADDR_PTR选项配合使用。 |
| ACL_MDL_OUTPUTQ_ADDR_PTR = 12 | 模型输出队列ID的指针地址,带队列加载模型时,该选项必选,一个模型输出对应一个队列ID。 |
| ACL_MDL_WORKSPACE_MEM_OPTIMIZE | 是否开启模型工作内存优化功能,1开启,0不开启。 若关注内存规划或内存资源有限时,建议在模型加载前,开启工作内存优化功能,此时工作内存中不包含存放模型输入、输出数据的内存,工作内存大小会减小,达到节省内存的目的。 在模型执行前,还需要由用户申请存放模型输入、输出数据的内存,因此即使在模型加载时开启工作内存优化功能,也不会影响后续的模型执行。 |
表1 ACL_MDL_LOAD_TYPE_SIZET对应的属性值
| 模型加载方式 | 含义 |
|---|---|
| ACL_MDL_LOAD_FROM_FILE = 1 | 从文件加载离线模型数据,由系统内部管理内存。 |
| ACL_MDL_LOAD_FROM_FILE_WITH_MEM = 2 | 从文件加载离线模型数据,由用户自行管理模型运行的内存。 |
| ACL_MDL_LOAD_FROM_MEM = 3 | 从内存加载离线模型数据,由系统内部管理模型运行的内存。 |
| ACL_MDL_LOAD_FROM_MEM_WITH_MEM = 4 | 从内存加载离线模型数据,由用户自行管理模型运行的内存。 |
| ACL_MDL_LOAD_FROM_FILE_WITH_Q = 5 | 从文件加载离线模型数据,模型的输入、输出数据都存放在队列中。 |
:::note 说明 关于如何获取om文件,请参见模型构建。
对om模型文件大小有限制的场景下,如果使用ATC工具生成om文件时,将“--external_weight”参数设置为1(1表示将原始网络中的Const/Constant节点的权重保存在单独的文件中,且该文件保存在与om文件同级的“weight”目录下),那么在使用本接口加载om文件时,需将“weight”目录与om文件放在同级目录下,这时pyACL会自行到“weight”目录下查找权重文件,否则可能会导致单独的权重文件加载不成功。 :::
父主题: 数据类型及其操作接口
aclmdlExecConfigAttr
| 参数项 | 含义 |
|---|---|
| ACL_MDL_STREAM_SYNC_TIMEOUT = 0 | 在执行模型推理时控制Stream任务的超时时间。该属性值为INT32类型。 |
| ACL_MDL_STREAM_SYNC_TIMEOUT = 1 | 在执行模型推理时控制Event任务的超时时间。该属性值为INT32类型。 |
| ACL_MDL_WORK_ADDR_PTR = 2 | 模型所需工作内存(Device上存放模型执行过程中的临时数据)的指针地址,由用户管理工作内存。一般用于模型一次加载、多并发执行的场景。 当前版本不支持该配置。 |
| ACL_MDL_WORK_SIZET = 3 | 模型所需工作内存的大小,单位为Byte。一般用于模型一次加载、多并发执行的场景。 当前版本不支持该配置。 |
| ACL_MDL_MPAIMID_SIZET = 4 | 预留配置。 |
| ACL_MDL_AICQOS_SIZET = 5 | 预留配置。 |
| ACL_MDL_AICOST_SIZET = 6 | 预留配置。 |
| ACL_MDL_MEC_TIMETHR_SIZET = 7 | 预留配置。 |
父主题: 数据类型及其操作接口
aclMemType
| 内存类型 | 含义 |
|---|---|
| ACL_MEMTYPE_DEVICE = 0 | Device内存。 |
| ACL_MEMTYPE_HOST = 1 | Host内存。 |
| ACL_MEMTYPE_HOST_COMPILE_INDEPENDENT = 2 | Host内存。 |
:::note 说明 ACL_MEMTYPE_HOST和ACL_MEMTYPE_HOST_COMPILE_INDEPENDENT都标识Host内存,但在使用上有区别:
- ACL_MEMTYPE_HOST:设置该选项时,模糊编译场景下,算子输入或输出的值的变化,不会触发算子重新编译;精确编译场景下,算子输入或输出的值的变化,会触发算子重新编译。
- ACL_MEMTYPE_HOST_COMPILE_INDEPENDENT :设置该选项时,无论是模糊编译,还是精确编译,算子输入或输出的值的变化,都不会触发算子重新编译。若算子编译时依赖其输入或输出的值,此时如果设置为 ACL_MEMTYPE_HOST_COMPILE_INDEPENT,则可能会导致编译失败。 :::
父主题: 数据类型及其操作接口
aclrtEventWaitStatus
| 事件状态 | 说明 |
|---|---|
| ACL_EVENT_STATUS_COMPLETE = 0 | 完成 |
| ACL_EVENT_STATUS_NOT_READY = 1 | 未完成 |
| ACL_EVENT_STATUS_RESERVED = 2 | 预留 |
父主题: 数据类型及其操作接口
aclrtEventRecordedStatus
| 事件状态 | 说明 |
|---|---|
| ACL_EVENT_RECORDED_STATUS_NOT_READY = 0 | Event未被记录到Stream中,或记录到Stream中的Event未被执行或执行失败 |
| ACL_EVENT_RECORDED_STATUS_COMPLETE = 1 | 记录到Stream中的Event执行成功 |
父主题: 数据类型及其操作接口
在线提单