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