aclrtProcessReport
函数功能
异步任务场景下,调用本接口设置超时时间,等待aclrtLaunchCallback接口下发的回调任务执行。
本接口需与以下其它接口配合使用,以便实现异步场景下的callback功能:
- 定义并实现回调函数,函数原型为:typedef void (*aclrtCallback)(void *userData);
- 新建线程,在线程函数内,调用aclrtProcessReport接口设置超时时间(需循环调用),等待回调任务执行;
- 调用aclrtSubscribeReport接口建立第2步中的线程和Stream的绑定关系,该Stream下发的回调函数将在绑定的线程中执行;
- 在指定Stream上执行异步任务(例如异步推理任务);
- 调用aclrtLaunchCallback接口在Stream的任务队列中下发回调任务,触发第2步中注册的线程处理回调函数,每调用一次aclrtLaunchCallback接口,就会触发一次回调函数的执行;
- 异步任务全部执行完成后,取消线程注册(aclrtUnSubscribeReport接口)。
函数原型
aclError aclrtProcessReport(int32_t timeout)
参数说明
参数名 |
输入/输出 |
说明 |
---|---|---|
timeout |
输入 |
超时时间,单位为ms。 取值范围:
|
返回值说明
返回0表示成功,返回其它值表示失败。
参考资源
接口调用流程及示例代码,参见异步模型推理。
父主题: 执行控制