使用说明
功能说明
本章提供的接口用于实现Device侧的数据队列和数据转发功能。
队列只允许单个消费者或单个生产者操作,Enqueue(指向队列中添加数据)或Dequeue(指从队列中获取数据)时应单线程操作,不支持并发。
典型使用场景举例
用户可以结合本章的队列管理接口、队列方式模型加载接口(指aclmdlLoadFromFileWithQ或aclmdlLoadFromMemWithQ接口),实现以数据驱动的模型推理功能,该场景下的关键接口调用流程如下:
- 调用多次acltdtCreateQueue接口,申请存放模型输入、输出数据的队列,一个输入对应一个输入队列ID,一个输出对应一个输出队列ID。
- 调用队列方式模型加载接口(指aclmdlLoadFromFileWithQ或aclmdlLoadFromMemWithQ接口),传入模型、输入队列ID、输出队列ID等。
- 用户申请存放输入、输出数据的内存。
- 向内存中读入模型推理的输入数据,并调用acltdtEnqueueData接口将每个输入的数据入队。
此时,接口内部会根据入队的输入数据自行触发模型推理,推理结束后,结果数据会自行存放到输出队列中。
- 调用acltdtDequeueData出队接口,获取每个输出的数据,以便进一步后处理。
- 获取推理结果数据后,需及时清理资源,包括释放输入&输出内存、调用aclmdlUnload接口卸载模型、调用acltdtDestroyQueue接口销毁队列等。
父主题: 共享队列管理