aclrtSynchronizeEvent
aclrtQueryEventStatus
函数功能
本接口是aclrtQueryEvent接口的扩展接口,可查询与本接口在同一线程或不同线程中的aclrtRecordEvent接口所记录的Event是否执行完成。同步接口。
函数原型
aclError aclrtQueryEventStatus(****aclrtEvent event, aclrtEventRecordedStatus *status)
参数说明
| 参数名 | 输入/输出 | 说明 |
|---|---|---|
| event | 输入 | 指定待查询的Event。 |
| status | 输出 | Event状态的指针。 |
返回值说明
返回0表示成功,返回其它值表示失败。
父主题: 同步等待
aclrtQueryEventWaitStatus
函数功能
调用aclrtStreamWaitEvent接口后,查询Stream是否接收到指定Event。如果多个Stream等待同一个Event,则多个Stream都接收到Event,通过该接口查询的Event状态才是已完成。同步接口。
函数原型
aclError aclrtQueryEventWaitStatus(****aclrtEvent event, aclrtEventWaitStatus *status)
参数说明
| 参数名 | 输入/输出 | 说明 |
|---|---|---|
| event | 输入 | 指定待查询的Event。 |
| status | 输出 | Event状态的指针。 |
返回值说明
返回0表示成功,返回其它值表示失败。
父主题: 同步等待
aclrtSynchronizeEvent
函数功能
阻塞应用程序运行,等待Event完成,同步接口。
函数原型
aclError aclrtSynchronizeEvent(aclrtEvent event)
参数说明
| 参数名 | 输入/输出 | 说明 |
|---|---|---|
| event | 输入 | 需等待的Event。 |
返回值说明
返回0表示成功,返回其它值表示失败。
参考资源
接口调用示例,参见Event的同步等待示例代码。
父主题: 同步等待
aclrtSynchronizeEventWithTimeout
函数功能
阻塞应用程序运行,等待Event完成,该接口是在接口aclrtSynchronizeEvent基础上进行了增强,支持用户设置超时时间,当应用程序异常时可根据所设置的超时时间自行退出。同步接口。
函数原型
aclError aclrtSynchronizeEventWithTimeout(aclrtEvent event, int32_t timeout)
参数说明
| 参数名 | 输入/输出 | 说明 |
|---|---|---|
| event | 输入 | 需等待的Event。 |
| timeout | 输入 | 接口的超时时间。 取值说明如下: - -1:表示永久等待,和接口aclrtSynchronizeEvent功能一样; - >0:配置具体的超时时间,单位是毫秒。 |
返回值说明
返回0表示成功,返回其它值表示失败。
父主题: 同步等待
aclrtEventElapsedTime
函数功能
统计两个Event之间的耗时,同步接口。
约束说明
**接口调用顺序:调用aclrtCreateEvent/aclrtCreateEventWithFlag接口创建Event-->调用aclrtRecordEvent接口在同一个Stream中记录起始Event、结尾Event-->调用aclrtSynchronizeStream接口阻塞应用程序运行,直到指定Stream中的所有任务都完成-->**调用aclrtEventElapsedTime接口统计两个Event之间的耗时
函数原型
aclError aclrtEventElapsedTime(float *ms, aclrtEvent startEvent, aclrtEvent endEvent)
参数说明
| 参数名 | 输入/输出 | 说明 |
|---|---|---|
| ms | 输出 | 表示两个Event之间耗时的指针,单位为毫秒。 |
| start | 输入 | 起始Event。 |
| end | 输入 | 结尾Event。 |
返回值说明
返回0表示成功,返回其它值表示失败。
父主题: 同步等待
aclrtStreamWaitEvent
函数功能
阻塞指定Stream的运行,直到指定的Event完成,支持多个Stream等待同一个Event的场景。异步接口。
约束说明
-
aclrtRecordEvent接口与aclrtStreamWaitEvent接口配合使用时,主要用于多Stream之间同步的场景,在调用aclrtRecordEvent接口时,系统内部会申请Event资源,在调用aclrtStreamWaitEvent接口之后,请及时调用aclrtResetEvent接口释放Event资源。
接口调用顺序:aclrtCreateEvent-->aclrtRecordEvent-->aclrtStreamWaitEvent-->aclrtResetEvent
-
一个进程内,调用aclInit接口初始化AscendCL后,调用aclrtSetOpWaitTimeout接口设置超时时间,本进程内后续调用aclrtStreamWaitEvent接口下发的任务支持在所设置的超时时间内等待,若等待的时间超过所设置的超时时间,则AscendCL会返回报错。
由于aclrtStreamWaitEvent接口是异步接口,调用接口成功仅表示任务下发成功,不表示任务执行成功,因此若等待的时间超过所设置的超时时间,则在调用aclrtSynchronizeStream接口后,会返回报错。
函数原型
aclError aclrtStreamWaitEvent(aclrtStream stream, aclrtEvent event)
参数说明
| 参数名 | 输入/输出 | 说明 |
|---|---|---|
| stream | 输入 | 指定需要等待Event完成的Stream。 如果使用默认Stream,此处设置为NULL。 |
| event | 输入 | 需等待的Event。 |
返回值说明
返回0表示成功,返回其它值表示失败。
参考资源
- 接口调用流程,参见多Stream时的同步等待流程。
- 接口调用示例,参见Event的同步等待示例代码、Stream间任务的同步等待示例代码。
父主题: 同步等待
在线提单