跳到主要内容

aclrtRecordEvent

aclrtCreateEvent

函数功能

创建一个Event,创建出来的Event可用于统计两个Event之间的耗时、多Stream场景下的同步等待、Event内的同步等待等场景。同步接口。

函数原型

aclError aclrtCreateEvent(aclrtEvent *event)

参数说明

参数名输入/输出说明
event输出Event的指针。

返回值说明

返回0表示成功,返回其它值表示失败。

相关接口

您也可以使用aclrtCreateEventWithFlag接口创建一个带标识的Event,不同标识的Event用于不同的功能。

参考资源

父主题: 同步等待

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表示成功,返回其它值表示失败。

参考资源

父主题: 同步等待

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表示成功,返回其它值表示失败。

参考资源

父主题: 同步等待

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表示成功,返回其它值表示失败。

父主题: 同步等待

aclrtQueryEventStatus

函数功能

本接口是aclrtQueryEvent接口的扩展接口,可查询与本接口在同一线程或不同线程中的aclrtRecordEvent接口所记录的Event是否执行完成。同步接口。

函数原型

aclError aclrtQueryEventStatus(****aclrtEvent event, aclrtEventRecordedStatus *status)

参数说明

参数名输入/输出说明
event输入指定待查询的Event。
status输出Event状态的指针。

返回值说明

返回0表示成功,返回其它值表示失败。

父主题: 同步等待

在线提单