aclrtStreamWaitEventWithFlag
产品支持情况
产品 |
是否支持 |
|---|---|
√ |
|
√ |
|
√ |
|
☓ |
|
☓ |
|
☓ |
功能说明
阻塞指定Stream的运行,直到指定的Event完成。异步接口。
该接口是在接口aclrtStreamWaitEvent、aclrtStreamWaitEventWithTimeout基础上进行了增强,支持用户配置具体的超时时间,同时还可以配置flag,不同的flag用于不同的使用场景。
函数原型
1 | aclError aclrtStreamWaitEventWithFlag(aclrtStream stream, aclrtEvent event, uint32_t timeout, uint32_t flag) |
参数说明
参数名 |
输入/输出 |
说明 |
|---|---|---|
stream |
输入 |
指定Stream。类型定义请参见aclrtStream。 当flag为ACL_EVENT_WAIT_EXTERNAL时,仅支持在图捕获(ACL Graph)场景下使用,且stream参数处指定的Stream必须是正处于捕获状态。 |
event |
输入 |
需等待的Event。类型定义请参见aclrtEvent。 当flag为ACL_EVENT_WAIT_EXTERNAL时,event仅支持通过aclrtCreateEventExWithFlag接口创建,且flag必须为ACL_EVENT_SYNC。其他flag或其他创建Event的接口均不支持。 |
timeout |
输入 |
超时时间,单位为秒。 当flag为ACL_EVENT_WAIT_DEFAULT时,功能等价于aclrtStreamWaitEventWithTimeout接口,但本接口timeout参数类型为uint32_t。 当flag为ACL_EVENT_WAIT_EXTERNAL时,timeout参数仅支持设置为0,表示永不超时。 |
flag |
输入 |
指定等待动作的行为。flag取值如下:
宏定义如下: #define ACL_EVENT_WAIT_DEFAULT 0x0U #define ACL_EVENT_WAIT_EXTERNAL 0x01U |
返回值说明
返回0表示成功,返回其他值表示失败,请参见aclError。
约束说明
当flag为ACL_EVENT_WAIT_EXTERNAL时,存在如下约束:
- 对于同一个图,在图捕获过程中,同一event不允许同时进行Record和Wait操作。
- 若event在通过本接口记录之前已被aclrtRecordEvent记录过,则本接口返回错误。