文档
注册

函数:launch_callback

C函数原型

aclError aclrtLaunchCallback(aclrtCallback fn, void *userData, aclrtCallbackBlockType blockType, aclrtStream stream)

Python函数

ret = acl.rt.launch_callback(fn, user_data_list, block_type, stream)

函数功能

异步任务场景下,在Stream的任务队列中下发一个函数回调任务,系统内部在执行到该回调任务时,会在Stream上订阅的线程(通过acl.rt.subscribe_report接口注册的线程)中执行回调函数。异步接口。

本接口需与以下其它接口配合使用,以便实现异步场景下的Callback功能:
  1. 新建线程,在线程函数内,调用acl.rt.process_report接口设置超时时间(需循环调用),等待acl.rt.launch_callback接口下发的函数回调任务。
  2. 调用acl.rt.subscribe_report接口建立第1步中的线程和Stream的绑定关系,该Stream下发的函数回调任务将在绑定的线程中执行。
  3. 在指定Stream上执行异步任务(例如异步推理任务)。
  4. 定义并实现回调函数,调用acl.rt.launch_callback接口在Stream的任务队列中下发函数回调任务,触发acl.rt.subscribe_report订阅的线程处理回调函数,每调用一次acl.rt.launch_callback接口,就会下发一个回调函数任务。
  5. 异步任务全部执行完成后,调用acl.rt.unsubscribe_report接口取消线程订阅,解除线程和Stream的绑定关系。

输入说明

fn:function,表示Python侧的回调函数。

user_data_list:list,表示需要传递给回调函数的参数(目前传入的是list类型的数据)。

block_type:int,指定线程是否阻塞。
  • 0:表示非阻塞。Atlas 200/300/500 推理产品,当前版本不支持该选项,该选项预留。
  • 1:表示阻塞。

stream:int,表示指定的Stream。

返回值说明

ret:int,错误码。

  • 返回0表示成功。
  • 返回其它值表示失败。

约束说明

参考资源

搜索结果
找到“0”个结果

当前产品无相关内容

未找到相关内容,请尝试其他搜索词