1 // Copyright (C) 2018-2019 Intel Corporation
2 // SPDX-License-Identifier: Apache-2.0
7 #include "mkldnn_graph.h"
10 namespace MKLDNNPlugin {
12 class MKLDNNGraphOptimizer {
14 MKLDNNGraphOptimizer();
17 void ApplyCommonGraphOptimizations(MKLDNNGraph& graph);
18 void ApplyImplSpecificGraphOptimizations(MKLDNNGraph& graph);
21 void SLTMTransform(MKLDNNGraph& graph);
22 void MergeGroupConvolution(MKLDNNGraph& graph);
23 void FuseConvolutionAndActivation(MKLDNNGraph &graph);
24 void FuseConvolutionAndDepthwise(MKLDNNGraph &graph);
25 void FuseConvolutionAndDWConvolution(MKLDNNGraph &graph);
26 void FuseBinaryConvolutionAndQuantize(MKLDNNGraph &graph);
27 void FuseBatchNormWithScale(MKLDNNGraph& graph);
28 void FuseConvolutionSumAndConvolutionSumActivation(MKLDNNGraph &graph);
29 void FuseFullyConnectedAndActivation(MKLDNNGraph &graph);
30 void RemoveIdentityOperator(MKLDNNGraph& graph);
32 void RemoveIOScaleShifts(MKLDNNGraph& graph);
33 void DropDoubleReorders(MKLDNNGraph& graph);
35 void AddScaleShiftAfterInt8(MKLDNNGraph &graph);
38 bool IsOneOf(Type type, std::vector<Type> types);
41 } // namespace MKLDNNPlugin