SetOrgShape

产品支持情况

产品

是否支持

Ascend 950PR/Ascend 950DT

√

Atlas A3 训练系列产品/Atlas A3 推理系列产品

√

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

√

Atlas 200I/500 A2 推理产品

√

Atlas 推理系列产品AI Core

√

Atlas 推理系列产品Vector Core

x

Atlas 训练系列产品

x

功能说明

设置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大小,单位为元素。

对于Ascend 950PR/Ascend 950DT,在使用MDL模板创建的Matmul对象调用本接口时,该参数用于设置GM或L1上完整的形状M大小,单位为元素。

orgN

输入

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

对于Ascend 950PR/Ascend 950DT,在使用MDL模板创建的Matmul对象调用本接口时,该参数用于设置GM或L1上完整的形状N大小,单位为元素。

orgK

输入

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

对于Ascend 950PR/Ascend 950DT,在使用MDL模板创建的Matmul对象调用本接口时,该参数用于设置GM或L1上完整的形状K大小,单位为元素。原始完整形状Ka=Kb时可设置。

orgKa

输入

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

对于Ascend 950PR/Ascend 950DT,在使用MDL模板创建的Matmul对象调用本接口时,该参数用于设置GM或L1上完整的形状Ka大小,单位为元素。

orgKb

输入

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

对于Ascend 950PR/Ascend 950DT,在使用MDL模板创建的Matmul对象调用本接口时,该参数用于设置GM或L1上完整的形状Kb大小,单位为元素。

orgKc

输入

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

  • 对于Ascend 950PR/Ascend 950DT上使用MDL模板创建的Matmul对象,L1上数据的形状与Tiling侧接口SetOrgShape中的orgMIn/orgNIn/orgKIn/orgKaIn/orgKbIn一致时,不必须调用此接口。
  • 对于Ascend 950PR/Ascend 950DT上使用MDL模板创建的Matmul对象,L1上数据的形状与Tiling侧接口SetOrgShape中的orgMIn/orgNIn/orgKIn/orgKaIn/orgKbIn不一致时,必须调用本接口指定GM/L1上的orgM/orgN/orgK/orgKa/orgKb。

    例如,使用MDL模板时,输入矩阵A在L1、输入矩阵B在GM的场景,L1上A的形状大小与Tiling侧原始的orgMIn/orgKIn/orgKaIn不一致时,调用SetOrgShape(orgM, orgN, orgK)/SetOrgShape(orgM, orgN, orgKa, orgKb)接口指定L1上A矩阵相关参数orgM/orgK/orgKa。

返回值说明

无

约束说明

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

调用示例