下载
中文
注册

SetOrgShape

功能说明

设置Matmul计算原始完整的形状M、N、K,单位为元素个数。用于运行时修改shape,比如复用同一个Matmul对象,从不同的矩阵块取数据计算。

函数原型

1
__aicore__ inline void SetOrgShape(int orgM, int orgN, int orgK)
1
__aicore__ inline void SetOrgShape(int orgM, int orgN, int orgKa, int orgKb, int orgKc = 0)

参数说明

表1 参数说明

参数名

输入/输出

描述

orgM

输入

设置原始完整的形状M大小,单位为元素。

orgN

输入

设置原始完整的形状N大小,单位为元素。

orgK

输入

设置原始完整的形状K大小,单位为元素。原始完整形状Ka=Kb时可设置。

orgKa

输入

设置矩阵A原始完整的形状Ka大小,单位为元素。

orgKb

输入

设置矩阵B原始完整的形状Kb大小,单位为元素。

orgKc

输入

设置输出C矩阵的N,单位为元素。需要输入B矩阵的N和输出C矩阵的N不一样时可设置,默认为0(即使用B矩阵的N,不进行修改)。

返回值

支持的型号

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

Atlas推理系列产品AI Core

Atlas 200/500 A2推理产品

注意事项

本接口需要在SetTensorA接口、SetTensorB接口及SetSingleShape接口前调用。

调用示例

REGIST_MATMUL_OBJ(&pipe, GetSysWorkSpacePtr(), mm, &tiling);
mm.SetTensorA(gm_a);
mm.SetTensorB(gm_b);
mm.SetBias(gm_bias);
mm.IterateAll(gm_c);
//  复用mm对象
mm.SetOrgShape(orgM, orgN, orgK);
mm.SetTensorA(gm_a1);
mm.SetTensorB(gm_b1);
mm.SetBias(gm_bias1);
mm.IterateAll(gm_c1);