常规matmul与叠加偏置

功能概述

常规矩阵乘matmul的功能,且可通过hasBias参数控制是否叠加偏置。

计算公式

矩阵乘输入两个张量A(x)和B(weight),输出张量为C:

叠加偏置,偏置矩阵为bias:

硬件支持情况

硬件型号

支持情况

特殊说明

Atlas 200I/500 A2 推理产品

支持

不支持输入输出tensor数据类型为bf16的场景。

Atlas 推理系列产品

支持

-

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

支持

-

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

支持

-

参数配置

成员名称

取值范围

特殊说明

transposeA

false/true

取值为true时,不支持部分场景,详见规格说明

transposeB

false/true

-

hasBias

false/true

-

outDataType

ACL_DT_UNDEFINED

-

enAccum

false

-

matmulType

MATMUL_UNDEFINED

-

输入

参数

维度

数据类型

格式

描述

x

[m, k]/[batch, m, k]

float16/bf16

ND

矩阵乘的A矩阵。

weight

[k, n]/[batch, k, n]/[1, n / 16, k, 16]/[batch, n / 16, k, 16]

float16/bf16

ND/NZ

矩阵乘的B矩阵,权重。

bias

[1, n]/[n]/[batch, n]

float16/bf16

ND

叠加的偏置矩阵。当hasBias取值为true时输入。

输出

参数

维度

数据类型

格式

描述

output

[m, n]/[batch, m, n]

float16/bf16

ND

矩阵乘计算结果。

规格说明

由于输入输出的排列组合约束较复杂,下图列举了所有输入输出属性的组合,图中没有的组合即不支持:

图1 输入输出属性排列组合

OP使用与典型场景

OP使用时,可参考算子使用指导中的使用流程部分,其中,单算子(OpsOperation)构造Operation参数的构造方法参考下列各场景的参数构造部分。

功能约束