文档
注册
评分
提单
论坛
小AI

Iterate

功能说明

每调用一次Iterate,会计算出一片baseM * baseN的C矩阵。接口内部会维护迭代进度,调用一次后会对A、B矩阵首地址进行偏移。默认以先M轴再N轴的迭代顺序,也可以通过调整tiling参数iterateOrder,转换为先N轴再M轴的迭代顺序。

当传入数据未对齐,存在尾块时,会在最后一次迭代输出尾块的计算结果。

函数原型

1
template <bool sync = true> __aicore__ inline bool Iterate(bool enPartialSum = false)

参数说明

表1 模板参数说明

参数名

描述

sync

迭代获取C矩阵分片的过程分为同步和异步两种模式。通过该参数设置同步或者异步模式:同步模式设置为true;异步模式设置为false。默认为同步模式。具体模式的介绍和使用方法请参考GetTensorC

表2 参数说明

参数名

输入/输出

描述

enPartialSum

输入

是否将矩阵乘的结果累加于现有的CO1数据,默认值false。在L0C累加时,只支持A矩阵和B矩阵相乘的输出C矩阵规格为singleM==baseM &&singleN==baseN。

针对Atlas 200/500 A2推理产品,该参数仅支持配置为false。

返回值

false:单核上的所有数据全部算完。

true:数据仍在迭代计算中。

支持的型号

Atlas A2训练系列产品/Atlas 800I A2推理产品

Atlas推理系列产品(Ascend 310P处理器)AI Core

Atlas 200/500 A2推理产品

注意事项

调用示例

// 同步模式样例
while (mm.Iterate()) {   
    mm.GetTensorC(ubCmatrix); 
}

// 异步模式样例
mm.template Iterate<false>();
…… ……
for (int i = 0; i < singleM/baseM*singleN/baseN; ++i) {   
    mm.GetTensorC<false>(ubCmatrix); 
}
搜索结果
找到“0”个结果

当前产品无相关内容

未找到相关内容,请尝试其他搜索词