StrideHoistingPass
融合模式
该融合主要是根据不同的图结构插入ReadSelect算子;如果匹配到Conv2D,会修改Conv2D的shape和属性。最终目的是让计算量减半。
场景一:
场景二:
场景三:
场景四:
场景五:
使用约束
- 场景一、二、五的约束如下
- 节点1到节点n1的路径长度和节点1到节点n2的路径长度都小于10,且节点2到节点n1或者节点3到节点n2的路径上至少有一个Conv2D,无Conv2D的路径上,节点1需与Eltwise/AscendRequantS16直连(融合后,会在节点1与Eltwise/AscendRequantS16之间插入ReadSelect)。且该Conv2D的属性有如下要求。
表1 Conv2D属性要求 第二个输出filter的H和W维度值
算子描述stride参数中H和W维度值
算子描述pads参数中H和W维度值
算子描述dilations参数中H和W维度值
3
1
1
1
5
1
2
1
- 路径上所有节点需要在白名单中,白名单包括CONV2D、ELTWISE、RELU、LEAKY_RELU、ASCEND_QUANT、ASCEND_DEQUANT、ASCEND_REQUANT、ASCEND_REQUANTS16、ASCEND_DEQUANTS16。
- 节点1到节点n1的路径长度和节点1到节点n2的路径长度都小于10,且节点2到节点n1或者节点3到节点n2的路径上至少有一个Conv2D,无Conv2D的路径上,节点1需与Eltwise/AscendRequantS16直连(融合后,会在节点1与Eltwise/AscendRequantS16之间插入ReadSelect)。且该Conv2D的属性有如下要求。
- 场景三、四的约束如下
- 图中第一个Conv2D为单输出。
- 图中第一个Conv2D的第一个输入x的H和W轴为静态。
- 所有图中最后一个Conv2D节点的属性有如下要求。
表2 最后一个Conv2D属性要求 第二个输出filter的H和W维度值
算子描述stride参数中H和W维度值
算子描述pads参数中H和W维度值
算子描述dilations参数中H和W维度值
1
2
0
1
支持的型号
父主题: 图融合规则说明