昇腾社区首页
中文
注册
开发者
下载

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图融合。