CANN/runtime流内存操作
2026/5/9 16:27:26 网站建设 项目流程

11-09 流内存操作

【免费下载链接】runtime本项目提供CANN运行时组件和维测功能组件。项目地址: https://gitcode.com/cann/runtime

本章节描述内存值写入与等待接口,用于在 Stream 上异步写入/等待内存值。

  • aclError aclrtValueWrite(void* devAddr, uint64_t value, uint32_t flag, aclrtStream stream):向指定内存中写数据。异步接口。
  • aclError aclrtValueWait(void* devAddr, uint64_t value, uint32_t flag, aclrtStream stream):等待指定内存中的数据满足一定条件后解除阻塞。异步接口。

aclrtValueWrite

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

产品支持情况

产品是否支持
Ascend 950PR/Ascend 950DT
Atlas A3 训练系列产品/Atlas A3 推理系列产品
Atlas A2 训练系列产品/Atlas A2 推理系列产品

功能说明

向指定内存中写数据。异步接口。

参数说明

参数名输入/输出说明
devAddr输入Device侧内存地址。
此处需用户提前申请Device内存(例如调用aclrtMalloc接口),devAddr要求8字节对齐,有效内存位宽为64bit。
value输入需向内存中写入的数据。
flag输入预留参数,当前固定设置为0。
stream输入执行写数据任务的stream。类型定义请参见aclrtStream。
此处支持传NULL,表示使用默认Stream。

返回值说明

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




aclrtValueWait

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

产品支持情况

产品是否支持
Ascend 950PR/Ascend 950DT
Atlas A3 训练系列产品/Atlas A3 推理系列产品
Atlas A2 训练系列产品/Atlas A2 推理系列产品

功能说明

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

参数说明

参数名输入/输出说明
devAddr输入Device侧内存地址。
devAddr的有效内存位宽为64bit。
value输入需与内存中的数据作比较的值。
flag输入比较的方式,等满足条件后解除阻塞。取值如下:
ACL_STREAM_WAIT_VALUE_GEQ = 0x00000000U; // 等到(int64_t)(devAddr - value) >= 0
ACL_STREAM_WAIT_VALUE_EQ = 0x00000001U; // 等到
devAddr == value
ACL_STREAM_WAIT_VALUE_AND = 0x00000002U; // 等到(*devAddr & value) != 0
ACL_STREAM_WAIT_VALUE_NOR = 0x00000003U; // 等到~(*devAddr | value) != 0
stream输入执行等待任务的stream。类型定义请参见aclrtStream。
此处支持传NULL,表示使用默认Stream。

返回值说明

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

【免费下载链接】runtime本项目提供CANN运行时组件和维测功能组件。项目地址: https://gitcode.com/cann/runtime

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询