IterateAll
功能说明
调用一次IterateAll,会计算出singleCoreM * singleCoreN大小的C矩阵。迭代顺序可通过tiling参数iterateOrder调整。
函数原型
1 | template <bool sync = true> __aicore__ inline void IterateAll(const GlobalTensor<DstT>& gm, uint8_t enAtomic = 0, bool enSequentialWrite = false, bool waitIterateAll = false, bool fakeMsg = false)  | 
1 | template <bool sync = true> __aicore__ inline void IterateAll(const LocalTensor<DstT>& ubCmatrix, uint8_t enAtomic = 0)  | 
参数说明
参数名  | 
描述  | 
|---|---|
sync  | 
获取C矩阵过程分为同步和异步两种模式: 
 通过该参数设置同步或者异步模式:同步模式设置为true;异步模式设置为false,默认为同步模式。  | 
参数名  | 
输入/输出  | 
描述  | 
|---|---|---|
gm  | 
输入  | 
C矩阵。类型为GlobalTensor。  | 
ubCmatrix  | 
输入  | 
C矩阵。类型为LocalTensor,支持的TPosition为TSCM。  | 
enAtomic  | 
输入  | 
是否开启Atomic操作,默认值为0。 参数取值: 0:不开启Atomic操作 1:开启AtomicAdd累加操作 2:开启AtomicMax求最大值操作 3:开启AtomicMin求最小值操作 对于 对于  | 
enSequentialWrite  | 
输入  | 
是否开启连续写模式(连续写,写入[baseM, baseN];非连续写,写入[singleCoreM, singleCoreN]中对应的位置),默认值false(非连续写模式)。  | 
waitIterateAll  | 
输入  | 
仅在异步场景下使用,是否需要通过WaitIterateAll接口等待IterateAll执行结束。 true:需要通过WaitIterateAll接口等待IterateAll执行结束。 false:不需要通过WaitIterateAll接口等待IterateAll执行结束,开发者自行处理等待IterateAll执行结束的过程。  | 
fakeMsg  | 
输入  | 
仅在IBShare场景(模板参数中开启了doIBShareNorm开关)和IntraBlockPartSum场景(模板参数中开启了intraBlockPartSum开关)使用。  | 
返回值
无
支持的型号
约束说明
传入的C矩阵地址空间大小需要保证不小于singleCoreM * singleCoreN。