aboutsummaryrefslogtreecommitdiff
path: root/src/graph/mutators/NodeFusionMutator.cpp
diff options
context:
space:
mode:
authorGian Marco Iodice <gianmarco.iodice@arm.com>2019-11-08 12:13:48 +0000
committerGian Marco Iodice <gianmarco.iodice@arm.com>2019-11-12 11:52:32 +0000
commit5dea19e58a5521b05e95375c8618a37072697bc0 (patch)
treeeac3414eb9a5f2290b3bb597e4c6d8e398678355 /src/graph/mutators/NodeFusionMutator.cpp
parenteaa01ab593428bc7267ebbe107b2d813a11b64b5 (diff)
downloadComputeLibrary-5dea19e58a5521b05e95375c8618a37072697bc0.tar.gz
COMPMID-2579: Fuse batch normalization with convolution and depthwise convolution at graph level on NEON
Change-Id: Ib263a680bbd2dc1a4947102ee8d6da76b95f02bf Signed-off-by: Gian Marco Iodice <gianmarco.iodice@arm.com> Reviewed-on: https://review.mlplatform.org/c/2252 Reviewed-by: Georgios Pinitas <georgios.pinitas@arm.com> Reviewed-by: Giorgio Arena <giorgio.arena@arm.com> Comments-Addressed: Arm Jenkins <bsgcomp@arm.com> Tested-by: Arm Jenkins <bsgcomp@arm.com>
Diffstat (limited to 'src/graph/mutators/NodeFusionMutator.cpp')
-rw-r--r--src/graph/mutators/NodeFusionMutator.cpp13
1 files changed, 2 insertions, 11 deletions
diff --git a/src/graph/mutators/NodeFusionMutator.cpp b/src/graph/mutators/NodeFusionMutator.cpp
index 61d9479fca..abd6436d74 100644
--- a/src/graph/mutators/NodeFusionMutator.cpp
+++ b/src/graph/mutators/NodeFusionMutator.cpp
@@ -309,21 +309,12 @@ void NodeFusionMutator::mutate(Graph &g)
return (output_qasymm8 && same_qinfo) || !output_qasymm8;
};
- Target target = g.nodes()[0].get()->output(0)->desc().target;
-
// Fusion mutations
detail::fuse_layer<BatchNormalizationLayerNode, ActivationLayerNode>(g, empty_prec, detail::fuse_node_with_activation<BatchNormalizationLayerNode>, supported_fused_activations);
detail::fuse_layer<ConvolutionLayerNode, ActivationLayerNode>(g, empty_prec, detail::fuse_node_with_activation<ConvolutionLayerNode>, supported_fused_activations);
detail::fuse_layer<DepthwiseConvolutionLayerNode, ActivationLayerNode>(g, qs8_prec, detail::fuse_node_with_activation<DepthwiseConvolutionLayerNode>, supported_fused_activations);
-
- // Currently fuse batch normalization brings performance uplift only on OpenCL with FP32 data type
- // TODO (COMPMID-2524): Fuse batch normalization with convolution and depthwise convolution at graph level for NEON - FP32
- if(target == Target::CL)
- {
- //Depthwise Convolution and Batch Normalization Fusion active only for CL
- detail::fuse_layer<ConvolutionLayerNode, BatchNormalizationLayerNode>(g, empty_prec, detail::fuse_convolution_with_batch_normalization);
- detail::fuse_layer<DepthwiseConvolutionLayerNode, BatchNormalizationLayerNode>(g, empty_prec, detail::fuse_depthwise_convolution_with_batch_normalization);
- }
+ detail::fuse_layer<ConvolutionLayerNode, BatchNormalizationLayerNode>(g, empty_prec, detail::fuse_convolution_with_batch_normalization);
+ detail::fuse_layer<DepthwiseConvolutionLayerNode, BatchNormalizationLayerNode>(g, empty_prec, detail::fuse_depthwise_convolution_with_batch_normalization);
}
} // namespace graph
} // namespace arm_compute