开发者
下载

aclrtRecordEventWithFlag

产品支持情况

产品

是否支持

Ascend 950PR/Ascend 950DT

Atlas A3 训练系列产品/Atlas A3 推理系列产品

Atlas A2 训练系列产品/Atlas A2 推理系列产品

Atlas 200I/500 A2 推理产品

Atlas 推理系列产品

Atlas 训练系列产品

功能说明

在指定的Stream中记录一个Event。异步接口。

该接口是在aclrtRecordEvent接口基础上进行了增强,支持配置flag,不同的flag用于不同的使用场景。

函数原型

1
aclError aclrtRecordEventWithFlag(aclrtEvent event, aclrtStream stream, uint32_t flag)

参数说明

参数名

输入/输出

说明

event

输入

待记录的Event。类型定义请参见aclrtEvent

当flag为ACL_EVENT_RECORD_EXTERNAL时,event仅支持通过aclrtCreateEventExWithFlag接口创建,且flag必须为ACL_EVENT_SYNC,其他flag或其他创建Event的接口均不支持。

stream

输入

指定Stream。类型定义请参见aclrtStream

当flag为ACL_EVENT_RECORD_EXTERNAL时,仅支持在图捕获(ACL Graph)场景下使用,且stream参数处指定的Stream必须是正处于捕获状态。

flag

输入

指定记录动作的行为。flag取值如下:

  • 当flag为ACL_EVENT_RECORD_DEFAULT时,表示默认行为,适用于普通场景,等价于aclrtRecordEvent接口。
  • 当flag为ACL_EVENT_RECORD_EXTERNAL时,仅适用于图捕获场景,当用户正在把Stream上的任务捕获成计算图时,带上这个flag,本次记录的事件对外部可见,用于实现图和外部Stream之间做同步、以及实现图和图之间做同步。非图捕获场景下,flag为ACL_EVENT_RECORD_EXTERNAL时,返回报错。

宏定义如下:

#define ACL_EVENT_RECORD_DEFAULT 0x0U
#define ACL_EVENT_RECORD_EXTERNAL 0x01U

返回值说明

返回0表示成功,返回其他值表示失败,请参见aclError

约束说明

当flag为ACL_EVENT_RECORD_EXTERNAL时,存在如下约束:

  • 对于同一个图,在图捕获过程中,同一event不允许同时进行Record和Wait操作。
  • 若event在通过本接口记录之前已被aclrtRecordEvent记录过,则本接口返回错误。