aboutsummaryrefslogtreecommitdiff
path: root/arm_compute/graph
diff options
context:
space:
mode:
authorGunes Bayir <gunes.bayir@arm.com>2021-09-01 16:20:54 +0100
committerGeorgios Pinitas <georgios.pinitas@arm.com>2021-09-07 13:57:06 +0000
commit814bddfd92c568cfb0bcfc23537b7658f29628c4 (patch)
tree1c74063ced2fd5a4be4fe1dc61d9e5d870df4419 /arm_compute/graph
parentaed63ee175e0d64c934389e9d1b2edd0cb1a5cdd (diff)
downloadComputeLibrary-814bddfd92c568cfb0bcfc23537b7658f29628c4.tar.gz
Fuse pad layer with subsequent convolution layer
Fusing occurs only if - the padding is only for height/width - padding pixel value is 0 - padding node output has no accessors Resolves: COMPMID-4702 Signed-off-by: Gunes Bayir <gunes.bayir@arm.com> Change-Id: I0755d5fb0bd3a55d9f10b32ce9da44e7c5a25279 Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/6189 Tested-by: Arm Jenkins <bsgcomp@arm.com> Reviewed-by: Pablo Marquez Tello <pablo.tello@arm.com> Reviewed-by: Georgios Pinitas <georgios.pinitas@arm.com> Comments-Addressed: Georgios Pinitas <georgios.pinitas@arm.com>
Diffstat (limited to 'arm_compute/graph')
-rw-r--r--arm_compute/graph/Utils.h7
-rw-r--r--arm_compute/graph/nodes/ConvolutionLayerNode.h7
-rw-r--r--arm_compute/graph/nodes/DepthwiseConvolutionLayerNode.h7
-rw-r--r--arm_compute/graph/nodes/PadLayerNode.h5
4 files changed, 23 insertions, 3 deletions
diff --git a/arm_compute/graph/Utils.h b/arm_compute/graph/Utils.h
index 43a8eca9e3..a3d9012ee9 100644
--- a/arm_compute/graph/Utils.h
+++ b/arm_compute/graph/Utils.h
@@ -132,6 +132,13 @@ size_t get_dimension_idx(DataLayout data_layout, const DataLayoutDimension data_
* @return A list with the driving node of a given node
*/
std::vector<NodeIdxPair> get_driving_nodes(const INode &node);
+/** Get the list of driver nodes of a given node
+ *
+ * @param[in] node Node to find the driver node of
+ *
+ * @return A list with the driver node of a given node
+ */
+std::vector<NodeIdxPair> get_driver_nodes(const INode &node);
/** Configures tensor
*
* @param[in, out] tensor Tensor to configure
diff --git a/arm_compute/graph/nodes/ConvolutionLayerNode.h b/arm_compute/graph/nodes/ConvolutionLayerNode.h
index e4151c0f17..99effa07dc 100644
--- a/arm_compute/graph/nodes/ConvolutionLayerNode.h
+++ b/arm_compute/graph/nodes/ConvolutionLayerNode.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2018-2019 Arm Limited.
+ * Copyright (c) 2018-2019, 2021 Arm Limited.
*
* SPDX-License-Identifier: MIT
*
@@ -90,6 +90,11 @@ public:
* @param[in] fused_activation Fused activation to set
*/
void set_fused_activation(ActivationLayerInfo fused_activation);
+ /** Sets convolution info
+ *
+ * @param[in] info Convolution info to set
+ */
+ void set_convolution_info(PadStrideInfo info);
/** Computes convolution output descriptor
*
* @param[in] input_descriptor Input descriptor
diff --git a/arm_compute/graph/nodes/DepthwiseConvolutionLayerNode.h b/arm_compute/graph/nodes/DepthwiseConvolutionLayerNode.h
index 59847a92fc..5df86983f0 100644
--- a/arm_compute/graph/nodes/DepthwiseConvolutionLayerNode.h
+++ b/arm_compute/graph/nodes/DepthwiseConvolutionLayerNode.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2018-2019 Arm Limited.
+ * Copyright (c) 2018-2019, 2021 Arm Limited.
*
* SPDX-License-Identifier: MIT
*
@@ -78,6 +78,11 @@ public:
* @param[in] fused_activation Fused activation to set
*/
void set_fused_activation(ActivationLayerInfo fused_activation);
+ /** Sets convolution info
+ *
+ * @param[in] info Convolution info to set
+ */
+ void set_convolution_info(PadStrideInfo info);
/** Computes depthwise convolution output descriptor
*
* @param[in] input_descriptor Input descriptor
diff --git a/arm_compute/graph/nodes/PadLayerNode.h b/arm_compute/graph/nodes/PadLayerNode.h
index 8fcbc52313..d6ff3553da 100644
--- a/arm_compute/graph/nodes/PadLayerNode.h
+++ b/arm_compute/graph/nodes/PadLayerNode.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2018-2020 Arm Limited.
+ * Copyright (c) 2018-2021 Arm Limited.
*
* SPDX-License-Identifier: MIT
*
@@ -58,6 +58,9 @@ public:
TensorDescriptor configure_output(size_t idx) const override;
void accept(INodeVisitor &v) override;
+public:
+ static constexpr NodeType node_type = NodeType::PadLayer;
+
private:
PaddingList _padding;
PixelValue _pad_value;