函数:query_event_wait_status
函数: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
备注
须知
此接口后续版本会废弃,请使用函数: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表示成功。 - 返回其它值表示失败。 |
| 约束说明 | 无 |
父主题: 同步等待
函数:query_event_wait_status
| C函数原型 | aclError **aclrtQueryEventWaitStatus(**aclrtEvent event, aclrtEventWaitStatus *status) |
|---|---|
| Python函数 | status, ret=acl.rt.query_event_wait_status(event) |
| 函数功能 | 调用acl.stream_wait_event接口后,查询Stream是否接收到指定Event。如果多个Stream等待同一个Event,则多个Stream都接收到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表示成功。 - 返回其它值表示失败。 |
| 约束说明 | 无 |
父主题: 同步等待
函数:synchronize_event
| C函数原型 | aclError aclrtSynchronizeEvent(aclrtEvent event) |
|---|---|
| Python函数 | ret = acl.rt.synchronize_event(event) |
| 函数功能 | 阻塞应用程序运行,等待Event完成,同步接口。 |
| 输入说明 | event:int,指定需等待的Event对象的指针地址。 |
| 返回值说明 | ret:int,错误码。 - 返回0表示成功。 - 返回其它值表示失败。 |
| 约束说明 | 无 |
| 参考资源 | 接口调用示例,参见关于Event的同步等待。 |
父主题: 同步等待
函数:synchronize_event_with_timeout
| C函数原型 | aclError aclrtSynchronizeEventWithTimeout(aclrtEvent event, int32_t timeout) |
|---|---|
| Python函数 | ret = acl.rt.synchronize_event_with_timeout(event, timeout) |
| 函数功能 | 阻塞应用程序运行,等待Event完成,该接口是在接口acl.rt.synchronize_event基础上进行了增强,支持用户设置超时时间,当应用程序异常时可根据所设置的超时时间自行退出。同步接口。 |
| 输入说明 | event:int,指定需等待的Event对象的指针地址。 timeout:int,接口的超时时间。 取值说明如下: - -1:表示永久等待与接口acl.rt.synchronize_event功能一致。 - >0:配置具体的超时时间,单位是毫秒。 |
| 返回值说明 | ret:int,错误码。 - 返回0表示成功。 - 返回其它值表示失败。 |
| 约束说明 | 无 |
| 参考资源 | 接口调用示例,参见关于Event的同步等待。 |
父主题: 同步等待
函数:event_elapsed_time
| C函数原型 | aclError aclrtEventElapsedTime(float *ms, aclrtEvent startEvent, aclrtEvent endEvent) |
|---|---|
| Python函数 | ms, ret = acl.rt.event_elapsed_time(start, end) |
| 函数功能 | 统计两个Event之间的耗时,同步接口。 |
| 输入说明 | start:int,指定起始Event对象的指针地址。 end:int,指定结尾Event对象的指针地址。 |
| 返回值说明 | ms:float,表示的是两个Event之间的耗时,单位是毫秒。 ret:int,错误码。 - 返回0表示成功。 - 返回其它值表示失败。 |
| 约束说明 | 接口调用顺序:调用acl.rt.create_event/acl.rt.create_event_with_flag接口创建event-->调用acl.rt.record_event接口在同一个stream中记录起始event、结尾event-->调用acl.rt.synchronize_stream接口阻塞应用程序运行,直到指定Stream中的所有任务都完成-->调用acl.rt.event_elapsed_time接口统计两个Event之间的耗时。 |
父主题: 同步等待
在线提单