接口调用流程
开发应用时,如果涉及异步场景下的同步等待,则应用程序中必须包含相关的代码逻辑,关于该场景的接口调用流程,请参见下图。
图1 同步等待流程_Callback场景
关键接口说明如下:
- 回调函数需由用户提前创建,用于获取并处理模型推理或算子执行的结果。
- 线程需由用户提前创建,并自定义线程函数,在线程函数内调用aclrtProcessReport接口,等待指定时间后,触发1中创建的回调函数。
- 调用aclrtSubscribeReport接口:指定处理Stream上回调函数的线程,线程与2中创建的线程保持一致。
- 调用aclrtLaunchCallback接口:在Stream的任务队列中增加一个需要执行的回调函数,回调函数与1中的回调函数保持一致。
- 调用aclrtUnSubscribeReport接口:取消线程注册(Stream上的回调函数不再由指定线程处理)。
- 如果是异步推理Callback场景,为确保Stream中所有任务都完成、模型推理的结果数据都经过Callback函数处理,在stream销毁前,需要调用一次aclrtSynchronizeStream接口。
父主题: 模型异步推理