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