C函数原型 |
aclError aclrtSubscribeReport(uint64_t threadId, aclrtStream stream) |
Python函数 |
ret = acl.rt.subscribe_report(thread_id, stream) |
函数功能 |
异步任务场景下,指定处理Stream上回调函数的线程。
|
输入说明 |
thread_id:int,指定线程id。 stream:int,指定需要处理的Stream的指针地址。 |
返回值说明 |
ret:int,错误码。
|
约束说明 |
支持多次调用acl.rt.subscribe_report接口给多个Stream(仅支持同一Device内的多个Stream)订阅同一个处理回调函数的线程。
为确保Stream内的任务按调用顺序执行,不支持调用acl.rt.subscribe_report接口给同一个Stream订阅多个处理回调函数的线程。
- 在Atlas 200/300/500 推理产品上,单进程内调用acl.rt.subscribe_report接口订阅的线程数量如果超过128个,则接口返回失败。
- 在Atlas 训练系列产品上,单进程内调用acl.rt.subscribe_report接口订阅的线程数量如果超过1024个,则接口返回失败。
- 在Atlas A2训练系列产品/Atlas 800I A2推理产品上,单进程内调用acl.rt.subscribe_report接口订阅的线程数量如果超过1024个,则接口返回失败。
- 在Atlas 推理系列产品上,单进程内调用acl.rt.subscribe_report接口订阅的线程数量如果超过1024个,则接口返回失败。
- 在Atlas 200I/500 A2推理产品上,单进程内调用acl.rt.subscribe_report接口订阅的线程数量如果超过1024个,则接口返回失败。
考虑操作系统的线程切换性能开销,建议调用acl.rt.subscribe_report接口订阅的线程数量控制在32个以下(包括32)。
同一个进程内,在不同的Device上订阅回调函数的线程时,不能指定同一个线程ID。
|
参考资源 |
|