DataCacheCleanAndInvalid
功能说明
清空DataCache区域。
函数原型
针对Atlas A2训练系列产品/Atlas 800I A2推理产品:
template <typename T, CacheLine entireType, DcciDst dcciDst>
__aicore__ inline void DataCacheCleanAndInvalid(const GlobalTensor<T>& dstTensor);
template <typename T, CacheLine entireType, DcciDst dcciDst>
__aicore__ inline void DataCacheCleanAndInvalid(const LocalTensor<T>& dstTensor);
针对Atlas推理系列产品AI Core:
template <typename T, CacheLine entireType>
__aicore__ inline void DataCacheCleanAndInvalid(const GlobalTensor<T>& dstTensor);
参数说明
参数名 |
输入/输出 |
描述 |
---|---|---|
dstTensor |
输入 |
单个CacheLine包含的地址 |
entireType |
输入 |
CacheLine枚举类,缓存清理和失效的模式。 针对Atlas A2训练系列产品/Atlas 800I A2推理产品: SINGLE_CACHE_LINE:单个CacheLine包含地址的dstTensor ENTIRE_DATA_CACHE:包含dcciDst地址的所有cacheline 针对Atlas推理系列产品AI Core: SINGLE_CACHE_LINE:单个CacheLine包含地址的dstTensor ENTIRE_DATA_CACHE:表示整个decache 注意:当选择SINGLE_CACHE_LINE模式时,dcciDst参数配置无效。 |
dcciDst |
输入 |
多个cacheline包含的地址,类型为DcciDst枚举类。 CACHELINE_ALL:表示整个decache; CACHELINE_UB:包含UB地址的所有cacheline; CACHELINE_OUT:包含GM地址的所有cacheline; CACHELINE_ATOMIC: 表示ST_ATOMIC分配的所有cacheline。 |
返回值
无
支持的型号
Atlas A2训练系列产品/Atlas 800I A2推理产品
Atlas推理系列产品AI Core
约束说明
无
调用示例
*((__gm__ uint64_t*)mmAddr_) = 0; GlobalTensor<uint64_t> global; global.SetGlobalBuffer((__gm__ uint64_t*)mmAddr_); DataCacheCleanAndInvalid<uint64_t, CacheLine::SINGLE_CACHE_LINE, DcciDst::CACHELINE_OUT>(global);