Ascend C GlobalTensor SetValue API
SetValue【免费下载链接】asc-devkit本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言原生支持C和C标准规范主要由类库和语言扩展层构成提供多层级API满足多维场景算子开发诉求。项目地址: https://gitcode.com/cann/asc-devkit产品支持情况产品是否支持Ascend 950PR/Ascend 950DT√Atlas A3 训练系列产品 / Atlas A3 推理系列产品√Atlas A2 训练系列产品 / Atlas A2 推理系列产品√Atlas 200I/500 A2 推理产品√Atlas 推理系列产品 AI Core√Atlas 推理系列产品 Vector Core√Atlas 训练系列产品√功能说明设置GlobalTensor相应偏移位置的值。因为硬件实现不同其与通用CPU标量赋值操作存在差异。SetValue赋值操作首先改写的是每个AI Core内部的DCache不会立刻写出到Global Memory且后续写出时以Cache Line64B为单位。使用该接口之前必须了解DCache结构和Cache一致性原理参见DataCacheCleanAndInvalid否则可能存在误用的情况请谨慎使用。调用SetValue后首先改写的是每个AI Core内部的DCache如果需要立即写出到Global Memory需要在调用此接口后再调用DataCacheCleanAndInvalid确保DCache与Global Memory的Cache一致性。多核操作GM地址时要求不同核操作的地址通过offset参数设置元素偏移可以转换为地址至少有Cache Line大小的偏移否则会出现多核数据随机覆盖。同时需要考虑地址对齐64B的问题。详细内容请参考调用示例。函数原型__aicore__ inline void SetValue(const uint64_t offset, PrimType value)参数说明表1参数说明参数名输入/输出描述offset输入偏移offset个元素。value输入设置值。PrimType类型。PrimType定义如下// PrimT用于从T中提取基础数据类型T传入基础数据类型直接返回数据类型T传入为TensorTrait类型时萃取TensorTrait中的LiteType基础数据类型 using PrimType PrimTT;返回值说明无。约束说明无。调用示例// aGlobal数据 [1, 1, 1, 1, 1] AscendC::GlobalTensorT aGlobal; T val 0; aGlobal.SetValue(2, val); //结果如下 aGlobal数据 [1, 1, 0, 1, 1]【免费下载链接】asc-devkit本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言原生支持C和C标准规范主要由类库和语言扩展层构成提供多层级API满足多维场景算子开发诉求。项目地址: https://gitcode.com/cann/asc-devkit创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考