跳到主要内容

函数:stream_wait_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之间的耗时。

父主题: 同步等待

函数:stream_wait_event

C函数原型aclError aclrtStreamWaitEvent(aclrtStream stream, aclrtEvent event)
Python函数ret = acl.rt.stream_wait_event(stream, event)
函数功能阻塞指定Stream的运行,直到指定的Event完成,支持多个Stream等待同一个Event的场景。异步接口。
输入说明stream:int,指定需要等待Event完成的Stream的指针地址。如果使用默认Stream,此处设置为0。 event:int,需等待的Event的指针地址。
返回值说明ret:int,错误码。
- 返回0表示成功。
- 返回其它值表示失败。
约束说明- 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.init接口初始化pyACL后,调用acl.rt.set_op_wait_timeout接口设置超时时间,本进程内后续调用acl.rt.stream_wait_event接口下发的任务支持在所设置的超时时间内等待,若等待的时间超过所设置的超时时间,则pyACL会返回报错。 由于acl.rt.stream_wait_event接口是异步接口,调用接口成功仅表示任务下发成功,不表示任务执行成功,因此若等待的时间超过所设置的超时时间,则在调用acl.rt.synchronize_stream接口后,会返回报错。
参考资源- 接口调用流程,参见多Stream接口调用流程
- 接口调用示例,参见关于Event的同步等待关于Stream间任务的同步等待

父主题: 同步等待

函数:synchronize_device

C函数原型aclError aclrtSynchronizeDevice(void)
Python函数ret = acl.rt.synchronize_device()
函数功能阻塞应用程序运行,直到正在运算中的Device完成运算,同步接口。
输入说明
返回值说明ret:int,错误码。
- 返回0表示成功。
- 返回其它值表示失败。
约束说明
参考资源- 接口调用流程,参见多Stream接口调用流程
- 接口调用示例,参见关于Event的同步等待

父主题: 同步等待

函数:synchronize_stream

C函数原型aclError aclrtSynchronizeStream(aclrtStream stream)
Python函数ret = acl.rt.synchronize_stream(stream)
函数功能阻塞应用程序运行,直到指定Stream中的所有任务都完成,同步接口。
输入说明stream:int,指定需要完成所有任务的Stream对象的指针地址。
返回值说明ret:int,错误码。
- 返回0表示成功。
- 返回其它值表示失败。
约束说明
参考资源接口调用示例,参见关于Stream间任务的同步等待

父主题: 同步等待

函数:synchronize_stream_with_timeout

C函数原型aclError aclrtSynchronizeStreamWithTimeout(aclrtStream stream, int32_t timeout)
Python函数ret = acl.rt.synchronize_stream_with_timeout(stream, timeout)
函数功能阻塞应用程序运行,直到指定Stream中的所有任务都完成,该接口是在acl.rt.synchronize_stream接口基础上进行了增强,支持用户设置超时时间,当应用程序异常时可根据所设置的超时时间自行退出。同步接口。
输入说明stream:int,指定需要完成所有任务的Stream的指针地址。 timeout:int,接口的超时时间。取值说明如下:
- -1:表示永久等待,和接口acl.rt.synchronize_stream功能一样。
- >0:配置具体的超时时间,单位是毫秒。
返回值说明ret:int,错误码。
- 返回0表示成功。
- 返回其它值表示失败。
约束说明

父主题: 同步等待

在线提单