BatchMatMulV2ReshapeFusionPass
融合模式
针对A或B的shape为1维的场景,使用Reshape将输入重置为2维,融合pattern如下:
融合为
针对A的shape为3维,B的shape为2维的场景,使用Reshape将A输入重置为2维,整体转化为MatMul算子进行计算,融合pattern如下:
融合为
·
使用约束
- 不支持INT4/INT8数据类型,动态场景下,仅支持左矩阵和右矩阵都不转置的情况。
- 不支持左右矩阵为NZ格式。
- 针对第二种图融合场景,即左矩阵shape为3维,右矩阵shape为2维,要求左矩阵trans_flag为False。不支持batch*m超过max(int64)的大小。
- 针对输入optype为MatMulV2时,仅支持输入节点的左输入dtype为fp16 (data_type != DT_FLOAT16)。
- BatchMatMulV2后接Add/Relu/AddN算子场景下,Batch维度大于50, M维度小于32,或者M=1,batch大于1,图融合生效。
- 单BatchMatMulV2场景,Batch维度大于4096, M维度小于64,或者M=1,batch大于1,图融合生效。
Atlas 推理系列产品 的非UB融合场景,支持白名单用例使能该图融合。Atlas 训练系列产品 的非UB融合场景,支持白名单用例使能该图融合。
支持的型号
父主题: 图融合规则说明