---
title: MatmulReshapeTransposeFusionPass
description: "该融合将符合图融合pattern的Matmul算子前后的Transpose算子删除，同时交换Matmul算子的两路输入。"
url: https://www.hiascend.com/document/detail/zh/canncommercial/latest/maintenref/graphubfusionref/atlasrr_30_0103.html
sourcePath: /source/zh/canncommercial/900/maintenref/graphubfusionref/atlasrr_30_0103.html
indexId: 7cf25f875ec8bf7634fcdd48023ba42a2224b2436f106e950e4974728b52169478
---
# MatmulReshapeTransposeFusionPass

#### 融合模式

该融合将符合图融合pattern的Matmul算子前后的Transpose算子删除，同时交换Matmul算子的两路输入。

虚线框中的结构可以是一个或者多个。


#### 使用约束

- 算子dtype只支持FP32。
- format只支持ND/NCHW/NHWC。
- Matmul算子左矩阵输入必须为2维，右矩阵输入必须为三维，且右矩阵最后一维shape为1。
- 所有Transpose算子输入必须是3维，且最后一维shape为1，其功能为交换shape前两维，不支持动态shape。
- Matmul算子之前的Reshape算子，进行的操作是删除shape中最后一个1的维度。Matmul算子之后的Reshape算子则是在shape最后增加一个1的维度。
- Matmul算子的属性transpose_x1/transpose_x2必须都是false。
- 第一个Reshape算子之后，至少有一路Matmul+Reshape+Transpose的结构。支持多路Matmul+Reshape+Transpose，要求每一路都满足上述结构，否则不融合。


#### 支持的型号

Atlas 200I/500 A2 推理产品

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

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

Atlas 350 加速卡
