函数:reset_event
函数:destroy_event
| C函数原型 | aclError aclrtDestroyEvent(aclrtEvent event) |
|---|---|
| Python函数 | ret = acl.rt.destroy_event(event) |
| 函数功能 | 销毁一个Event,只能销毁通过acl.rt.create_event/acl.rt.create_event_with_flag接口创建的Event,同步接口。 在销毁时,用户需确保等待acl.rt.synchronize_event接口或acl.rt.stream_wait_event接口涉及的任务都结束后再销毁。 |
| 输入说明 | event:int,待销毁的Event指针地址。 |
| 返回值说明 | ret:int,错误码。 - 返回0表示成功。 - 返回其它值表示失败。 |
| 约束说明 | 在调用acl.rt.destroy_event接口销毁指定Event时,需确保其它接口没有正在使用该Event。 |
| 参考资源 | - 接口调用流程,参见多Stream接口调用流程。 - 接口调用示例,参见关于Event的同步等待、关于Stream间任务的同步等待。 |
父主题: 同步等待
函数:record_event
| C函数原型 | aclError aclrtRecordEvent(aclrtEvent event, aclrtStream stream) |
|---|---|
| Python函数 | ret = acl.rt.record_event(event, stream) |
| 函数功能 | 在Stream中记录一个Event。 |
| 输入说明 | event:int,待记录的Event的指针地址。 stream:int,将该Event记录在指定的Stream(指针地址)中,如果使用默认Stream,此处设置为0。 |
| 返回值说明 | ret:int,错误码。 - 返回0表示成功。 - 返回其它值表示失败。 |
| 约束说明 | - 该接口是异步接口,调用接口成功仅表示任务下发成功,不表示任务执行成功。调用该接口后,需调用同步等待接口(例如,acl.rt.synchronize_stream)确保任务已执行完成。 - acl.rt.record_event接口与acl.rt.stream_wait_event接口配合使用时,主要用于多Stream之间同步的场景,在调用acl.rt.record_event接口时,系统内部会申请Event资源,在调用acl.rt.stream_wait_event接口之后,请及时调用acl.rt.reset_event接口释放Event资源。 接口调用顺序:acl.rt.create_event-->acl.rt.record_event-->acl.rt.stream_wait_event-->acl.rt.reset_event - 由于在调用acl.rt.record_event接口,系统内部会申请Event资源,因此会受Event数量的限制,具体参考如下: Atlas 200/500 A2推理产品,单个Device上最多支持1023个Event。 |
| 参考资源 | - 接口调用流程,参见多Stream接口调用流程。 - 接口调用示例,参见关于Event的同步等待、关于Stream间任务的同步等待。 |
父主题: 同步等待
函数:reset_event
| C函数原型 | aclError aclrtResetEvent(aclrtEvent event, aclrtStream stream) |
|---|---|
| Python函数 | ret = acl.rt.reset_event(event, stream) |
| 函数功能 | 复位一个Event。用户需确保等待Stream中的任务都完成后,再复位Event,异步接口。 |
| 输入说明 | event:int,待复位的Event对象的指针地址。 stream:int,指定Event所在的Stream对象的指针地址。 |
| 返回值说明 | ret:int,错误码。 - 返回0表示成功。 - 返回其它值表示失败。 |
| 约束说明 | 在复位Event时,涉及重置Event的状态,Event的状态是在调用acl.rt.record_event接口时记录,因此在调用acl.rt.reset_event接口前,需要先调用acl.rt.record_event接口。 接口调用顺序:acl.rt.create_event-->acl.rt.record_event-->acl.rt.reset_event-->acl.rt.synchronize_stream |
父主题: 同步等待
函数:query_event
note
须知
此接口后续版本会废弃,请使用函数:query_event_status接口。
| C函数原型 | aclError aclrtQueryEvent(aclrtEvent event, aclrtEventStatus *status) |
|---|---|
| Python函数 | status, ret = acl.rt.query_event(event) |
| 函数功能 | 查询与本接口在同一线程中的acl.rt.record_event接口所记录的Event是否执行完成。同步接口。 |
| 输入说明 | event:int,指定待查询的Event对象指针地址。 |
| 返回值说明 | status:int,表示的是Event状态的指针地址。 - ACL_EVENT_RECORDED_STATUS_NOT_READY = 0,Event未被记录到Stream中,或记录到Stream中的Event未被执行或执行失败。 - ACL_EVENT_RECORDED_STATUS_COMPLETE = 1,记录到Stream中的Event执行成功。 ret:int,错误码。 - 返回0表示成功。 - 返回其它值表示失败。 |
| 约束说明 | 无 |
父主题: 同步等待
函数:query_event_status
| C函数原型 | aclError **aclrtQueryEventStatus(**aclrtEvent event, aclrtEventRecordedStatus *status) |
|---|---|
| Python函数 | status, ret = acl.rt.query_event_status(event) |
| 函数功能 | 本接口是acl.rt.query_event接口的扩展接口,可查询与本接口在同一线程或不同线程中的acl.rt.record_event接口所记录的Event是否执行完成。同步接口 |
| 输入说明 | event:int,指定待查询的Event对象的指针地址。 |
| 返回值说明 | status:int,表示的是Event状态的指针地址。 - ACL_EVENT_RECORDED_STATUS_NOT_READY = 0,Event未被记录到Stream中,或记录到Stream中的Event未被执行或执行失败。 - ACL_EVENT_RECORDED_STATUS_COMPLETE = 1,记录到Stream中的Event执行成功。 ret:int,错误码。 - 返回0表示成功。 - 返回其它值表示失败。 |
| 约束说明 | 无 |
父主题: 同步等待
在线提单