昇腾社区首页
中文
注册

SetValue

功能说明

设置GlobalTensor相应偏移位置的值。

  • 因为硬件实现不同,其与通用CPU标量赋值操作存在差异。SetValue赋值操作首先改写的是每个AI Core内部的Data Cache, 不会立刻写出到Global Memory,且后续写出时以CacheLine(64B)为单位。使用该接口之前必须了解Data Cache结构和Cache一致性原理(参见DataCacheCleanAndInvalid),否则可能存在误用的情况,请谨慎使用。
  • 调用SetValue后,首先改写的是每个AI Core内部的Data Cache,如果需要立即写出到Global Memory,需要在调用此接口后,再调用DataCacheCleanAndInvalid,确保Data Cache与Global Memory的Cache一致性。
  • 多核操作GM地址时,要求不同核操作的地址(通过offset参数设置元素偏移,可以转换为地址)至少有CacheLine大小的偏移,否则会出现多核数据随机覆盖。同时需要考虑地址对齐(64B)的问题。详细内容请参考调用示例

函数原型

1
__aicore__ inline void SetValue(const uint64_t offset, PrimType value)

参数说明

表1 参数说明

参数名

输入/输出

描述

offset

输入

偏移offset个元素。

value

输入

设置值。

返回值

无。

支持的型号

Atlas 训练系列产品

Atlas 推理系列产品AI Core

Atlas 推理系列产品Vector Core

Atlas A2 训练系列产品/Atlas 800I A2 推理产品/A200I A2 Box 异构组件

Atlas 200I/500 A2 推理产品

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

约束说明

无。