aclrtDestroyEvent
aclrtCreateEvent
函数功能
创建一个Event,创建出来的Event可用于统计两个Event之间的耗时、多Stream场景下的同步等待、Event内的同步等待等场景。同步接口。
函数原型
aclError aclrtCreateEvent(aclrtEvent *event)
参数说明
| 参数名 | 输入/输出 | 说明 |
|---|---|---|
| event | 输出 | Event的指针。 |
返回值说明
返回0表示成功,返回其它值表示失败。
相关接口
您也可以使用aclrtCreateEventWithFlag接口创建一个带标识的Event,不同标识的Event用于不同的功能。
参考资源
- 接口调用流程,参见多Stream时的同步等待流程。
- 接口调用示例,参见Event的同步等待示例代码、Stream间任务的同步等待示例代码。
父主题: 同步等待
aclrtCreateEventWithFlag
函数功能
创建一个带标识的Event,不同标识的Event用于不同的功能,同步接口。
函数原型
aclError aclrtCreateEventWithFlag(****aclrtEvent *event, uint32_t flag)
参数说明
| 参数名 | 输入/输出 | 说明 |
|---|---|---|
| event | 输出 | Event的指针。 |
| flag | 输入 | Event指针的flag。 当前支持将flag设置为如下宏: - ACL_EVENT_TIME_LINE 表示创建的Event数量不受限制、且创建出来的Event可用于统计两个Event之间的耗时。 text<br> #define ACL_EVENT_TIME_LINE 0x00000008u<br> - ACL_EVENT_SYNC 表示创建的Event数量受限、且创建出来的可用于多Stream间的同步等待。 text<br> #define ACL_EVENT_SYNC 0x00000001u<br> flag为bitmap,支持将flag设置为单个宏、或者对多个宏进行或操作。使用本接口创建Event时,若将flag参数值包含ACL_EVENT_SYNC宏,则创建出来的Event数量受限,具体如下: Atlas 200/500 A2推理产品,单个Device上最多支持65535个Event。 |
返回值说明
返回0表示成功,返回其它值表示失败。
相关接口
您也可以使用aclrtCreateEvent接口创建Event,Event数量有限,创建出来的Event可用于统计两个Event之间的耗时、多Stream场景下的同步等待、Event内的同步等待等场景。
父主题: 同步等待
aclrtDestroyEvent
函数功能
销毁一个Event,只能销毁通过aclrtCreateEvent/aclrtCreateEventWithFlag接口创建的Event,同步接口。调用aclrtCreateEvent接口创建的Event,在销毁时,用户需确保等待aclrtSynchronizeEvent接口或aclrtStreamWaitEvent接口涉及的任务都结束后,再销毁。
约束说明
在调用aclrtDestroyEvent接口销毁指定Event时,需确保其它接口没有正在使用该Event。
函数原型
aclError aclrtDestroyEvent(aclrtEvent event)
参数说明
| 参数名 | 输入/输出 | 说明 |
|---|---|---|
| event | 输入 | 待销毁的Event。 |
返回值说明
返回0表示成功,返回其它值表示失败。
参考资源
- 接口调用流程,参见多Stream时的同步等待流程。
- 接口调用示例,参见Event的同步等待示例代码、Stream间任务的同步等待示例代码。
父主题: 同步等待
aclrtRecordEvent
函数功能
在Stream中记录一个Event。
约束说明
-
该接口是异步接口,调用接口成功仅表示任务下发成功,不表示任务执行成功。调用该接口后,需调用同步等待接口(例如,aclrtSynchronizeStream)确保任务已执行完成。
-
aclrtRecordEvent接口与aclrtStreamWaitEvent接口配合使用时,主要用于多Stream之间同步的场景,在调用aclrtRecordEvent接口时,系统内部会申请Event资源,在调用aclrtStreamWaitEvent接口之后,请及时调用aclrtResetEvent接口释放Event资源。
接口调用顺序:aclrtCreateEvent-->aclrtRecordEvent-->aclrtStreamWaitEvent-->aclrtResetEvent
-
由于在调用aclrtRecordEvent接口,系统内部会申请Event资源,因此会受Event数量的限制,具体如下:
Atlas 200/500 A2推理产品,单个Device上最多支持65535个Event。
函数原型
aclError aclrtRecordEvent(aclrtEvent event, aclrtStream stream)
参数说明
| 参数名 | 输入/输出 | 说明 |
|---|---|---|
| event | 输入 | 待记录的Event。 |
| stream | 输入 | 将指定Event记录在指定的Stream中。 如果使用默认Stream,此处设置为NULL。 |
返回值说明
返回0表示成功,返回其它值表示失败。
参考资源
- 接口调用流程,参见多Stream时的同步等待流程。
- 接口调用示例,参见Event的同步等待示例代码、Stream间任务的同步等待示例代码。
父主题: 同步等待
aclrtResetEvent
函数功能
复位一个Event。用户需确保等待Stream中的任务都完成后,再复位Event,异步接口。
约束说明
在复位Event时,涉及重置Event的状态,Event的状态是在调用aclrtRecordEvent接口时记录,因此在调用aclrtResetEvent接口前,需要先调用aclrtRecordEvent接口。
接口调用顺序:aclrtCreateEvent-->aclrtRecordEvent-->aclrtResetEvent-->aclrtSynchronizeStream
函数原型
aclError aclrtResetEvent(aclrtEvent event, aclrtStream stream)
参数说明
| 参数名 | 输入/输出 | 说明 |
|---|---|---|
| event | 输入 | 待复位的Event。 |
| stream | 输入 | 指定Event所在的Stream。 |
返回值说明
返回0表示成功,返回其它值表示失败。
父主题: 同步等待
aclrtQueryEvent
须知
此接口后续版本会废弃,请使用aclrtQueryEventStatus接口。
函数功能
查询与本接口在同一线程中的aclrtRecordEvent接口所记录的Event是否执行完成。同步接口。
函数原型
aclError aclrtQueryEvent(aclrtEvent event, aclrtEventStatus *status)
参数说明
| 参数名 | 输入/输出 | 说明 |
|---|---|---|
| event | 输入 | 指定待查询的Event。 |
| status | 输出 | Event状态的指针。 |
返回值说明
返回0表示成功,返回其它值表示失败。
父主题: 同步等待
在线提单