ConvWeightCompressFusionPass
融合模式
对于Cube类运算算子,将Filter通过插入压缩算子进行压缩,或通过插入四选二结构化稀疏算子进行稀疏。该Pass根据用户配置的参数执行压缩或者四选二结构化稀疏。
Cube类算子支持Conv2D、FullyConnection、MatMulV2。
融合成
使用约束
首节点(Conv2D/FullyConnection/MatMulV2)需要满足如下条件。
- 输入dtype必须是int8或者uint8。
- 需要支持AiCore。
- 不支持groups大于1 。
- 需要支持权重压缩。
- filter符合如下两种情况:
- 情况1:filter处对应的节点的算子类型属于 {CONSTANT, CONSTANTOP, FILECONSTANT} 中的一种;或者filter处对应的节点的算子类型为DATA,其输入节点的算子类型属于 {CONSTANT, CONSTANTOP, FILECONSTANT} 中的一种;或者filter处对应的节点的算子类型为DATA,其输入节点也为DATA,此时需要检查更上一层的输入节点,直到找到一个节点,其算子类型属于 {CONSTANT, CONSTANTOP, FILECONSTANT}中的一种。注意:算子类型为DATA的节点个数有数量限制。
- 情况2:filter处对应的输入节点需要包含在白名单中,并且该节点的输入为空或者该节点的输入节点的算子类型符合情况1。白名单包括:GroupPadding、ConvBnFilterHost、ConvScaleFilterHost、Concatv2HostCpuOp、RequantHostCpuOp、QuantWeightRollBack、GatherV2、GatherV2D、SwapCo、ReverseV2D、ConcatV2、TransData、Cast、Reshape、TransposeD、ReFormat、SqueezeV2、UnsqueezeV2、Maximum、Add、Mul、Sub、AscendWeightQuant。
父主题: 图融合规则说明