---
title: 函数：create_event_ex_with_flag
description: "| 产品 | 是否支持 |"
url: https://www.hiascend.com/document/detail/zh/canncommercial/latest/API/runtimeapi/aclpythondevg_01_0955.html
sourcePath: /source/zh/canncommercial/900/API/runtimeapi/aclpythondevg_01_0955.html
indexId: e284f6f1b8ded3685797d346178eb78c8614ff22ca10388c057440d6597b641971
---
# 函数：create_event_ex_with_flag

#### 产品支持情况

| 产品 | 是否支持 |
| --- | --- |
| Atlas 350 加速卡 | √ |
| Atlas A3 训练系列产品 / Atlas A3 推理系列产品 | √ |
| Atlas A2 训练系列产品 / Atlas A2 推理系列产品 | √ |
| Atlas 训练系列产品 | √ |
| Atlas 推理系列产品 | √ |
| Atlas 200I/500 A2 推理产品 | √ |


#### 功能说明

创建一个带flag的Event，不同flag的Event用于不同的功能。支持创建Event时携带多个flag（按位进行或操作），从而同时使能对应flag的功能。创建Event时，Event资源不受硬件限制。


#### 函数原型

- C函数原型
  1 aclError aclrtCreateEventExWithFlag(aclrtEvent *event, uint32_t flag)

- python函数
  1 event, ret = acl.rt.create_event_ex_with_flag(flag)


#### 参数说明

| 参数名 | 说明 |
| --- | --- |
| flag | int，Event指针的flag，可支持以下选项。 ACL\_EVENT\_TIME\_LINE = 0x00000008，表示创建的Event数量不受限制且创建出来的Event可用于统计两个Event之间的耗时。 ACL\_EVENT\_SYNC = 0x00000001，表示创建的Event数量受限且创建出来的可用于多Stream间的同步等待。 ACL\_EVENT\_CAPTURE\_STREAM\_PROGRESS = 0x00000002，表示创建的Event用于跟踪Stream的任务执行进度。 |


#### 返回值说明

| 返回值 | 说明 |
| --- | --- |
| event | int，创建的Event对象的指针地址。 |
| ret | int，错误码，返回0表示成功，返回其它值表示失败。 |


#### 约束说明

- 采用本API创建的Event，不支持在以下接口中使用：  acl.rt.reset_event
、  acl.rt.query_event
、  acl.rt.query_event_wait_status
。
- 调用本接口创建Event时，“flag”为bitmap，支持对单个flag或者多个flag进行操作，例如：acl.rt.create_event_ex_with_flag(ACL_EVENT_TIME_LINE | ACL_EVENT_SYNC)。

  - 若“flag”参数值包含“ACL_EVENT_SYNC”，后续调用    acl.rt.record_event
接口时，系统内部才会申请Event资源，因此会受Event数量的限制，Event达到上限后，系统内部会等待资源释放。
    Event数量限制如下：

    Atlas 推理系列产品 ，单个Device上最多支持1023个Event。

    Atlas 200I/500 A2 推理产品 ，单个Device上最多支持65536个Event。

    Atlas 训练系列产品 ，单个Device上最多支持65535个Event。

    Atlas A2 训练系列产品 / Atlas A2 推理系列产品 ，单个Device上最多支持65536个Event。

    Atlas A3 训练系列产品 / Atlas A3 推理系列产品 ，单个Device上最多支持65536个Event。

  - 若“flag”参数值不包含“ACL_EVENT_SYNC”，则不支持在    acl.rt.stream_wait_event
接口中使用本接口创建的Event。
