产品支持情况
产品
|
是否支持
|
Ascend 950PR/Ascend 950DT
|
√
|
Atlas A3 训练系列产品/Atlas A3 推理系列产品
|
√
|
Atlas A2 训练系列产品/Atlas A2 推理系列产品
|
√
|
Atlas 200I/500 A2 推理产品
|
√
|
Atlas 推理系列产品
|
√
|
Atlas 训练系列产品
|
√
|
功能说明
创建带flag的Event,不同flag的Event用于不同的功能。支持创建Event时携带多个flag(按位进行或操作),从而同时启用对应flag的功能。
函数原型
| aclError aclrtCreateEventWithFlag(aclrtEvent *event, uint32_t flag)
|
参数说明
参数名
|
输入/输出
|
说明
|
event
|
输出
|
Event的指针。类型定义请参见aclrtEvent。
|
flag
|
输入
|
Event指针的flag。
flag为bitmap,支持将flag设置为单个宏、或者对多个宏进行或操作。
当前支持将flag设置为如下宏:
- ACL_EVENT_TIME_LINE:使用该bit表示创建的Event需要记录时间戳信息。注意:使用时间戳功能会影响Event相关接口的性能。
- ACL_EVENT_SYNC:使用该bit表示创建的Event支持多Stream间的同步。
- ACL_EVENT_CAPTURE_STREAM_PROGRESS:使用该bit表示创建的Event用于跟踪stream的任务执行进度。
- ACL_EVENT_EXTERNAL:使用该bit表示创建的Event用于任务捕获场景下的任务更新功能,相关说明请参见aclmdlRICaptureBegin。注意:该flag不支持与其他flag进行位或操作。
- ACL_EVENT_DEVICE_USE_ONLY:使用该bit表示创建的Event仅在Device上调用。
宏的定义如下:
#define ACL_EVENT_TIME_LINE 0x00000008U
#define ACL_EVENT_SYNC 0x00000001U
#define ACL_EVENT_CAPTURE_STREAM_PROGRESS 0x00000002U
#define ACL_EVENT_EXTERNAL 0x00000020U
#define ACL_EVENT_DEVICE_USE_ONLY 0x00000010U
|
约束说明
- 各产品型号对ACL_EVENT_DEVICE_USE_ONLY的支持情况不同:
Ascend 950PR/Ascend 950DT,支持
Atlas A3 训练系列产品/Atlas A3 推理系列产品,支持
Atlas A2 训练系列产品/Atlas A2 推理系列产品,支持
Atlas 200I/500 A2 推理产品,不支持
Atlas 推理系列产品,支持
- 若flag参数值不包含ACL_EVENT_SYNC宏,则不支持在以下API中使用本接口创建的Event:aclrtResetEvent、aclrtStreamWaitEvent、aclrtQueryEventWaitStatus。若flag参数值包含ACL_EVENT_SYNC宏或者flag设置为ACL_EVENT_EXTERNAL时,则创建出来的Event数量受限。不同型号的硬件支持的Event数量不同,具体如下:
- 对于以下产品型号,单个Device支持的Event最大数为65536:
Ascend 950PR/Ascend 950DT
Atlas A3 训练系列产品/Atlas A3 推理系列产品
Atlas A2 训练系列产品/Atlas A2 推理系列产品
Atlas 200I/500 A2 推理产品
- 对于Atlas 推理系列产品,单个Device支持的Event最大数为1023:
- 对于Atlas 训练系列产品,单个Device支持的Event最大数为65535。