开发者
资源

aclrtValueWait

产品支持情况

产品

是否支持

Atlas 350 加速卡

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

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

Atlas 200I/500 A2 推理产品

Atlas 推理系列产品

Atlas 训练系列产品

功能说明

等待指定内存中的数据满足一定条件后解除阻塞。异步接口。

函数原型

1
aclError aclrtValueWait(void* devAddr, uint64_t value, uint32_t flag, aclrtStream stream) 

参数说明

参数名

输入/输出

说明

devAddr

输入

Device侧内存地址。

devAddr的有效内存位宽为64bit。

value

输入

需与内存中的数据作比较的值。

flag

输入

比较的方式,等满足条件后解除阻塞。取值如下:

#define ACL_STREAM_WAIT_VALUE_GEQ 0x00000000U  // 等到(int64_t)(*devAddr - value) >= 0
#define ACL_STREAM_WAIT_VALUE_EQ  0x00000001U  // 等到*devAddr == value
#define ACL_STREAM_WAIT_VALUE_AND 0x00000002U  // 等到(*devAddr & value) != 0
#define ACL_STREAM_WAIT_VALUE_NOR 0x00000003U  // 等到~(*devAddr | value) != 0

stream

输入

执行等待任务的stream。类型定义请参见aclrtStream

此处支持传NULL,表示使用默认Stream。

返回值说明

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

接口调用示例

接口调用示例,参见内存语义同步