---
title: MatMulBiasAddFusionPass
description: "将MatMul/MatMulV2/MatMulV3/BatchMatmul/BatchMatMulV2/BatchMatMulV3算子和biasadd/add算子融合为MatMul/MatMulV2/MatMulV3/BatchMatmul/BatchMatMulV2/BatchMatMulV3算子。"
url: https://www.hiascend.com/document/detail/zh/canncommercial/latest/maintenref/graphubfusionref/atlasrr_30_0028.html
sourcePath: /source/zh/canncommercial/900/maintenref/graphubfusionref/atlasrr_30_0028.html
indexId: 9198210eb990ec921befb1150362859b101422228f8632a9ea19788ffc6c399f78
---
# MatMulBiasAddFusionPass

#### 融合模式

将MatMul/MatMulV2/MatMulV3/BatchMatmul/BatchMatMulV2/BatchMatMulV3算子和biasadd/add算子融合为MatMul/MatMulV2/MatMulV3/BatchMatmul/BatchMatMulV2/BatchMatMulV3算子。

融合为


#### 使用约束

- add算子的两个输入必须得有一个的维度为1。
- bias的数值大小与MatMul或MatMulV2或MatMulV3/BatchMatMul/BatchMatMulV2/BatchMatMulV3输出的倒数第一维的数值大小保持一致。
- MatMul/MatMulV2/MatMulV3的输出维度为2。
- 不支持broadcast。（broadcast是让两个shape不同的Tensor自动扩展成相同的shape，从而可以进行元素级的运算。broadcast的规则是从右往左检查两个Tensor的shape。如果某一边的维度是 1，那么它会自动扩展为与另一边相同。）
- 如果融合前的BiasAdd/Add是fp16计算，那么融合之后bias会在matmul内部使用fp32相加，会导致结果精度变化（精度提升），关闭MatMulBiasAddFusionPass后则不会出现以上精度变化。


#### 支持的型号

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

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

Atlas 350 加速卡
