---
title: BatchMatMulV2ReshapeFusionPass
description: "该融合模式分为三种场景："
url: https://www.hiascend.com/document/detail/zh/canncommercial/latest/maintenref/graphubfusionref/atlasrr_30_0031.html
sourcePath: /source/zh/canncommercial/900/maintenref/graphubfusionref/atlasrr_30_0031.html
indexId: 873f5f3ee0163a720d850a788cc168d692a31fd205b9c68ce1bba25543cb66c578
---
# BatchMatMulV2ReshapeFusionPass

#### 融合模式

该融合模式分为三种场景：

场景一：针对MatMulV2+Reshape特殊场景，输出为四维并转置的场景，融合Transpose节点提升性能，其中Transpose节点的perm参数仅支持配置为[0,2,1,3]或[0,2,3,1]。


融合为


场景二：针对MatMul+Reshape+Swish融合场景，后置Reshape保证MatMul+Swish的融合。


融合为


场景三：非Atlas 推理系列产品，或是Atlas 推理系列产品中的白名单用例场景，支持3维*2维BatchMatMulV2运算融合为2维 * 2维MatMulV2运算，该场景分为动态或静态场景。- 动态场景：
  融合为

- 静态场景：
  融合为


#### 使用约束

- 融合节点为BatchMatmulV2、MatMulV2、MatMul的其中一种。
- 输入不支持INT4/INT8数据类型。
- 针对输入optype为BatchMatMulV2时，比如满足左矩阵为3维且右矩阵为2维。
- 针对输入optype为MatMulV2时，仅支持输入节点的左输入dtype为fp16。
- 动态场景下，仅支持左矩阵和右矩阵都不转置的情况。
- 静态场景下，要求左矩阵不转置，且不支持左右矩阵为NZ格式，当矩阵为3维*2维时，不支持batch*m > max(int64)的大小。
- 静态场景下，针对BatchMatMulV2后接Add/Relu/AddN/Mul算子场景，Batch维度需大于50， M维度需小于32，或者M=1，Batch维度大于1时，图融合规则生效。
- 静态场景下，针对单BatchMatMulV2大Batch场景，Batch维度需大于4096， M维度需小于64，或者M=1，Batch维度大于1时，图融合规则生效。
- Atlas 推理系列产品中，仅在白名单用例下，该图融合规则生效。


#### 支持的型号

Atlas 推理系列产品

Atlas 200I/500 A2 推理产品

Atlas 训练系列产品

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

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