aboutsummaryrefslogtreecommitdiff
path: root/arm_compute/graph2
diff options
context:
space:
mode:
authorGeorgios Pinitas <georgios.pinitas@arm.com>2018-04-03 13:44:29 +0100
committerAnthony Barbier <anthony.barbier@arm.com>2018-11-02 16:49:16 +0000
commitd9eb27597eabe5b7c17520f4f9b3f8a282d72573 (patch)
tree9b2b7d74b0ef83623b18d6d4279a564e5b63d641 /arm_compute/graph2
parenta8ca2b0cfe052c9a28b691317a674f28f495c139 (diff)
downloadComputeLibrary-d9eb27597eabe5b7c17520f4f9b3f8a282d72573.tar.gz
COMPMID-797: Switch to new graph.
- Cleaned up build system Change-Id: If2faa27ee5b31fa8b972836960ab3ef671059c8d Reviewed-on: https://eu-gerrit-1.euhpc.arm.com/126435 Tested-by: Jenkins <bsgcomp@arm.com> Reviewed-by: Pablo Tello <pablo.tello@arm.com>
Diffstat (limited to 'arm_compute/graph2')
-rw-r--r--arm_compute/graph2/Edge.h152
-rw-r--r--arm_compute/graph2/Graph.h262
-rw-r--r--arm_compute/graph2/GraphBuilder.h232
-rw-r--r--arm_compute/graph2/GraphContext.h94
-rw-r--r--arm_compute/graph2/GraphManager.h86
-rw-r--r--arm_compute/graph2/IDeviceBackend.h104
-rw-r--r--arm_compute/graph2/IGraphMutator.h53
-rw-r--r--arm_compute/graph2/IGraphPrinter.h51
-rw-r--r--arm_compute/graph2/INode.h252
-rw-r--r--arm_compute/graph2/INodeVisitor.h216
-rw-r--r--arm_compute/graph2/ITensorAccessor.h41
-rw-r--r--arm_compute/graph2/ITensorHandle.h69
-rw-r--r--arm_compute/graph2/Logger.h62
-rw-r--r--arm_compute/graph2/PassManager.h92
-rw-r--r--arm_compute/graph2/Tensor.h114
-rw-r--r--arm_compute/graph2/TensorDescriptor.h55
-rw-r--r--arm_compute/graph2/TypePrinter.h313
-rw-r--r--arm_compute/graph2/Types.h171
-rw-r--r--arm_compute/graph2/Utils.h99
-rw-r--r--arm_compute/graph2/Workload.h66
-rw-r--r--arm_compute/graph2/algorithms/Algorithms.h29
-rw-r--r--arm_compute/graph2/algorithms/BFS.h123
-rw-r--r--arm_compute/graph2/backends/BackendRegistrar.h61
-rw-r--r--arm_compute/graph2/backends/BackendRegistry.h91
-rw-r--r--arm_compute/graph2/backends/CL/CLDeviceBackend.h70
-rw-r--r--arm_compute/graph2/backends/CL/CLFunctionFactory.h57
-rw-r--r--arm_compute/graph2/backends/CL/CLNodeValidator.h52
-rw-r--r--arm_compute/graph2/backends/CL/CLSubTensorHandle.h71
-rw-r--r--arm_compute/graph2/backends/CL/CLTensorHandle.h68
-rw-r--r--arm_compute/graph2/backends/GLES/GCDeviceBackend.h59
-rw-r--r--arm_compute/graph2/backends/GLES/GCFunctionFactory.h57
-rw-r--r--arm_compute/graph2/backends/GLES/GCNodeValidator.h52
-rw-r--r--arm_compute/graph2/backends/GLES/GCTensorHandle.h68
-rw-r--r--arm_compute/graph2/backends/NEON/NEDeviceBackend.h58
-rw-r--r--arm_compute/graph2/backends/NEON/NEFunctionFactory.h57
-rw-r--r--arm_compute/graph2/backends/NEON/NENodeValidator.h52
-rw-r--r--arm_compute/graph2/backends/NEON/NESubTensorHandle.h71
-rw-r--r--arm_compute/graph2/backends/NEON/NETensorHandle.h68
-rw-r--r--arm_compute/graph2/backends/Utils.h97
-rw-r--r--arm_compute/graph2/backends/ValidateHelpers.h149
-rw-r--r--arm_compute/graph2/detail/ExecutionHelpers.h99
-rw-r--r--arm_compute/graph2/frontend/ILayer.h53
-rw-r--r--arm_compute/graph2/frontend/IStream.h93
-rw-r--r--arm_compute/graph2/frontend/IStreamOperators.h90
-rw-r--r--arm_compute/graph2/frontend/Layers.h471
-rw-r--r--arm_compute/graph2/frontend/Stream.h84
-rw-r--r--arm_compute/graph2/frontend/SubStream.h75
-rw-r--r--arm_compute/graph2/frontend/Types.h69
-rw-r--r--arm_compute/graph2/mutators/DepthConcatSubTensorMutator.h46
-rw-r--r--arm_compute/graph2/mutators/GraphMutators.h32
-rw-r--r--arm_compute/graph2/mutators/InPlaceOperationMutator.h43
-rw-r--r--arm_compute/graph2/mutators/NodeFusionMutator.h52
-rw-r--r--arm_compute/graph2/mutators/SplitLayerSubTensorMutator.h46
-rw-r--r--arm_compute/graph2/nodes/ActivationLayerNode.h60
-rw-r--r--arm_compute/graph2/nodes/BatchNormalizationLayerNode.h72
-rw-r--r--arm_compute/graph2/nodes/ConstNode.h55
-rw-r--r--arm_compute/graph2/nodes/ConvolutionLayerNode.h84
-rw-r--r--arm_compute/graph2/nodes/DepthConcatenateLayerNode.h78
-rw-r--r--arm_compute/graph2/nodes/DepthwiseConvolutionLayerNode.h84
-rw-r--r--arm_compute/graph2/nodes/EltwiseLayerNode.h60
-rw-r--r--arm_compute/graph2/nodes/FlattenLayerNode.h49
-rw-r--r--arm_compute/graph2/nodes/FullyConnectedLayerNode.h75
-rw-r--r--arm_compute/graph2/nodes/InputNode.h55
-rw-r--r--arm_compute/graph2/nodes/Nodes.h44
-rw-r--r--arm_compute/graph2/nodes/NodesFwd.h51
-rw-r--r--arm_compute/graph2/nodes/NormalizationLayerNode.h60
-rw-r--r--arm_compute/graph2/nodes/OutputNode.h49
-rw-r--r--arm_compute/graph2/nodes/PoolingLayerNode.h68
-rw-r--r--arm_compute/graph2/nodes/ReshapeLayerNode.h55
-rw-r--r--arm_compute/graph2/nodes/SoftmaxLayerNode.h60
-rw-r--r--arm_compute/graph2/nodes/SplitLayerNode.h79
-rw-r--r--arm_compute/graph2/printers/DotGraphPrinter.h105
-rw-r--r--arm_compute/graph2/printers/Printers.h29
73 files changed, 0 insertions, 6519 deletions
diff --git a/arm_compute/graph2/Edge.h b/arm_compute/graph2/Edge.h
deleted file mode 100644
index e82bcb295a..0000000000
--- a/arm_compute/graph2/Edge.h
+++ /dev/null
@@ -1,152 +0,0 @@
-/*
- * Copyright (c) 2018 ARM Limited.
- *
- * SPDX-License-Identifier: MIT
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to
- * deal in the Software without restriction, including without limitation the
- * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
- * sell copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-#ifndef __ARM_COMPUTE_GRAPH2_EDGE_H__
-#define __ARM_COMPUTE_GRAPH2_EDGE_H__
-
-#include "arm_compute/graph2/INode.h"
-#include "arm_compute/graph2/Tensor.h"
-#include "arm_compute/graph2/Types.h"
-
-namespace arm_compute
-{
-namespace graph2
-{
-// Forward declarations
-class Graph;
-
-/** Graph Edge */
-class Edge final
-{
-public:
- /** Default Constructor
- *
- * @param[in] id Edge id
- * @param[in] producer Producer node id
- * @param[in] producer_idx Producer node output index
- * @param[in] consumer Consumer node id
- * @param[in] consumer_idx Consumer node input index
- * @param[in] tensor Tensor associated with the edge
- */
- Edge(EdgeID id, INode *producer, unsigned int producer_idx, INode *consumer, unsigned int consumer_idx, Tensor *tensor)
- : _id(id), _producer(producer), _consumer(consumer), _producer_idx(producer_idx), _consumer_idx(consumer_idx), _tensor(tensor)
-
- {
- }
- /** Returns edge id
- *
- * @return Edge id
- */
- EdgeID id() const
- {
- return _id;
- }
- /** Returns producer node id
- *
- * @return Producer node id
- */
- NodeID producer_id() const
- {
- return (_producer == nullptr) ? EmptyNodeID : _producer->id();
- }
- /** Returns sink node id
- *
- * @return Sink node id
- */
- NodeID consumer_id() const
- {
- return (_consumer == nullptr) ? EmptyNodeID : _consumer->id();
- }
- /** Returns producer node
- *
- * @return Producer node
- */
- INode *producer() const
- {
- return _producer;
- }
- /** Returns consumer node
- *
- * @return Consumer node
- */
- INode *consumer() const
- {
- return _consumer;
- }
- /** Returns the index of the output that produces the result in the producer node
- *
- * @return Producer node output index
- */
- unsigned int producer_idx() const
- {
- return _producer_idx;
- }
- /** Returns the index of the input that consumes the result in the consumer node
- *
- * @return Consumer node input index
- */
- unsigned int consumer_idx() const
- {
- return _consumer_idx;
- }
- /** Returns the tensor associated with this edge
- *
- * @return Tensor id
- */
- Tensor *tensor() const
- {
- return _tensor;
- }
- /** Returns the tensor id associated with this edge
- *
- * @return Tensor id
- */
- TensorID tensor_id() const
- {
- return (_tensor == nullptr) ? NullTensorID : _tensor->id();
- }
- /** Bind the edge to another tensor
- *
- * @note If tensor is nullptr then nothing happens
- *
- * @param[in] tensor Tensor to bind the edge to
- */
- void update_bound_tensor(Tensor *tensor)
- {
- _tensor = (tensor != nullptr) ? tensor : _tensor;
- }
-
-private:
- friend class Graph;
-
-private:
- EdgeID _id;
- INode *_producer;
- INode *_consumer;
- unsigned int _producer_idx;
- unsigned int _consumer_idx;
- Tensor *_tensor;
-};
-} // namespace graph2
-} // namespace arm_compute
-#endif /* __ARM_COMPUTE_GRAPH2_EDGE_H__ */
diff --git a/arm_compute/graph2/Graph.h b/arm_compute/graph2/Graph.h
deleted file mode 100644
index a601598e97..0000000000
--- a/arm_compute/graph2/Graph.h
+++ /dev/null
@@ -1,262 +0,0 @@
-/*
- * Copyright (c) 2018 ARM Limited.
- *
- * SPDX-License-Identifier: MIT
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to
- * deal in the Software without restriction, including without limitation the
- * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
- * sell copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-#ifndef __ARM_COMPUTE_GRAPH2_GRAPH_H__
-#define __ARM_COMPUTE_GRAPH2_GRAPH_H__
-
-#include "arm_compute/graph2/Edge.h"
-#include "arm_compute/graph2/INode.h"
-#include "arm_compute/graph2/Tensor.h"
-#include "arm_compute/graph2/Types.h"
-
-#include "support/Mutex.h"
-#include "support/ToolchainSupport.h"
-
-#include <map>
-#include <memory>
-#include <string>
-#include <thread>
-#include <utility>
-#include <vector>
-
-namespace arm_compute
-{
-namespace graph2
-{
-/** Graph class
- *
- * Represents a multiple source - multiple sink directed graph
- */
-class Graph final
-{
-public:
- Graph() = default;
- /** Constructor
- *
- * @param[in] id Graph identification number. Can be used to differentiate between graphs. Default value 0
- * @param[in] name Graph name. Default value empty string
- */
- Graph(GraphID id, std::string name);
- /** Prevent instances of this class from being copied (As this class contains pointers) */
- Graph(const Graph &) = delete;
- /** Prevent instances of this class from being copy assigned (As this class contains pointers) */
- Graph &operator=(const Graph &) = delete;
- /** Allow instances of this class to be moved */
- Graph(Graph &&) = default;
- /** Allow instances of this class to be move assigned */
- Graph &operator=(Graph &&) = default;
- /** Adds a node to the graph
- *
- * @note Models a single output node
- *
- * @tparam NT Node operation
- * @tparam Ts Arguments to operation
- *
- * @param args Node arguments
- *
- * @return ID of the node
- */
- template <typename NT, typename... Ts>
- NodeID add_node(Ts &&... args);
- /** Remove the node with the given ID
- *
- * @param[in] nid ID of the node to remove
- *
- * @return True if the removal took place else false
- */
- bool remove_node(NodeID nid);
- /** Adds a connection between two nodes
- *
- * @param[in] source ID of the source node
- * @param[in] source_idx Output index of the source node
- * @param[in] sink ID of the sink node
- * @param[in] sink_idx Input index of the sink node
- *
- * @return ID of this connection
- */
- EdgeID add_connection(NodeID source, size_t source_idx, NodeID sink, size_t sink_idx);
- /** Removes an edge (connection)
- *
- * @param[in] eid Connection to remove
- *
- * @return True if the removal took place else false
- */
- bool remove_connection(EdgeID eid);
- /** Returns graph name
- *
- * @return Graph name
- */
- std::string name() const;
- /** Returns graph id
- *
- * @return Graph id
- */
- GraphID id() const;
- /** Returns graph input nodes
- *
- * @return vector containing the graph inputs
- */
- const std::vector<NodeID> &inputs();
- /** Returns nodes of graph
- *
- * @warning Nodes can be nullptr if they have been removed during the mutation steps of the graph
- *
- * @return Nodes of graph
- */
- std::vector<std::unique_ptr<INode>> &nodes();
- /** Returns nodes of graph
- *
- * @warning Nodes can be nullptr if they have been removed during the mutation steps of the graph
- *
- * @return Nodes of graph
- */
- const std::vector<std::unique_ptr<INode>> &nodes() const;
- /** Returns edges of graph
- *
- * @warning Edges can be nullptr if they have been removed during the mutation steps of the graph
- *
- * @return Edges of graph
- */
- const std::vector<std::unique_ptr<Edge>> &edges() const;
- /** Returns tensors of graph
- *
- * @warning Tensor can be nullptr if they have been removed during the mutation steps of the graph
- *
- * @return Tensors of graph
- */
- std::vector<std::unique_ptr<Tensor>> &tensors();
- /** Returns tensors of graph
- *
- * @warning Tensor can be nullptr if they have been removed during the mutation steps of the graph
- *
- * @return Tensors of graph
- */
- const std::vector<std::unique_ptr<Tensor>> &tensors() const;
- /** Get node object given its id
- *
- * @warning Can be nullptr if node was removed during the mutation steps of the graph
- *
- * @param[in] id Node ID
- *
- * @return The actual node object
- */
- const INode *node(NodeID id) const;
- /** Get node object given its id
- *
- * @warning Can be nullptr if node was removed during the mutation steps of the graph
- *
- * @param[in] id Node ID
- *
- * @return The actual node object
- */
- INode *node(NodeID id);
- /** Get edge object given its id
- *
- * @warning Can be nullptr if node was removed during the mutation steps of the graph
- *
- * @param[in] id Edge ID
- *
- * @return The actual edge object
- */
- const Edge *edge(EdgeID id) const;
- /** Get edge object given its id
- *
- * @warning Can be nullptr if node was removed during the mutation steps of the graph
- *
- * @param[in] id Edge ID
- *
- * @return The actual edge object
- */
- Edge *edge(EdgeID id);
- /** Get tensor object given its id
- *
- * @warning Can be nullptr if tensor was removed during the mutation steps of the graph
- *
- * @param[in] id Tensor ID
- *
- * @return The actual tensor object
- */
- const Tensor *tensor(TensorID id) const;
- /** Get tensor object given its id
- *
- * @warning Can be nullptr if tensor was removed during the mutation steps of the graph
- *
- * @param[in] id Tensor ID
- *
- * @return The actual tensor object
- */
- Tensor *tensor(TensorID id);
-
-private:
- /** Creates a tensor object
- *
- * @param[in] desc Tensor descriptor
- *
- * @return Tensor ID
- */
- TensorID create_tensor(TensorDescriptor desc = TensorDescriptor());
-
-private:
- GraphID _id = GraphID(0); /**< Graph id */
- std::string _name = {}; /**< Graph name */
- std::vector<std::unique_ptr<INode>> _nodes = {}; /**< Graph nodes */
- std::vector<std::unique_ptr<Edge>> _edges = {}; /**< Graph edges */
- std::vector<std::unique_ptr<Tensor>> _tensors = {}; /**< Graph tensors */
- std::map<NodeType, std::vector<NodeID>> _tagged_nodes = {}; /**< Graph nodes map with the node type as key */
- arm_compute::Mutex _mtx = {}; /**< Mutex used for graph construction */
-};
-
-template <typename NT, typename... Ts>
-inline NodeID Graph::add_node(Ts &&... args)
-{
- std::lock_guard<arm_compute::Mutex> lock(_mtx);
-
- // Create node
- NodeID nid = _nodes.size();
- auto node = support::cpp14::make_unique<NT>(std::forward<Ts>(args)...);
- node->set_graph(this);
- node->set_id(nid);
-
- // Keep track of input nodes
- if(node->type() == NodeType::Input)
- {
- _tagged_nodes[NodeType::Input].push_back(nid);
- }
-
- // Associate a new tensor with each output
- for(auto &output : node->_outputs)
- {
- output = create_tensor();
- }
-
- // Propagate node shape if possible
- node->forward_descriptors();
-
- // Add node to the graph nodes
- _nodes.push_back(std::move(node));
-
- return nid;
-}
-} // namespace graph2
-} // namespace arm_compute
-#endif /* __ARM_COMPUTE_GRAPH2_GRAPH_H__ */
diff --git a/arm_compute/graph2/GraphBuilder.h b/arm_compute/graph2/GraphBuilder.h
deleted file mode 100644
index f9fb251fc5..0000000000
--- a/arm_compute/graph2/GraphBuilder.h
+++ /dev/null
@@ -1,232 +0,0 @@
-/*
- * Copyright (c) 2018 ARM Limited.
- *
- * SPDX-License-Identifier: MIT
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to
- * deal in the Software without restriction, including without limitation the
- * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
- * sell copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-#ifndef __ARM_COMPUTE_GRAPH2_GRAPH_BUILDER_H__
-#define __ARM_COMPUTE_GRAPH2_GRAPH_BUILDER_H__
-
-#include "arm_compute/graph2/ITensorAccessor.h"
-#include "arm_compute/graph2/Types.h"
-
-namespace arm_compute
-{
-namespace graph2
-{
-// Forward declaration
-class Graph;
-
-/** Graph builder class
- *
- * Builds and compiles a graph
- */
-class GraphBuilder final
-{
-public:
- /** Adds a Const node to the graph
- *
- * @param[in] g Graph to add the node to
- * @param[in] params Common node parameters
- * @param[in] desc Tensor descriptor of the node
- * @param[in] accessor (Optional) Accessor of the const node data
- *
- * @return Node ID of the created node, EmptyNodeID in case of error
- */
- static NodeID add_const_node(Graph &g, NodeParams params, TensorDescriptor desc, ITensorAccessorUPtr accessor = nullptr);
- /** Adds an input layer node to the graph
- *
- * @param[in] g Graph to add the node to
- * @param[in] params Common node parameters
- * @param[in] desc Tensor descriptor of the Tensor
- * @param[in] accessor (Optional) Accessor of the input node data
- *
- * @return Node ID of the created node, EmptyNodeID in case of error
- */
- static NodeID add_input_node(Graph &g, NodeParams params, TensorDescriptor desc, ITensorAccessorUPtr accessor = nullptr);
- /** Adds an output layer node to the graph
- *
- * @param[in] g Graph to add the node to
- * @param[in] params Common node parameters
- * @param[in] input Input to the output node as a NodeID-Index pair
- * @param[in] accessor (Optional) Accessor of the output node data
- *
- * @return Node ID of the created node, EmptyNodeID in case of error
- */
- static NodeID add_output_node(Graph &g, NodeParams params, NodeIdxPair input, ITensorAccessorUPtr accessor = nullptr);
- /** Adds an activation layer node to the graph
- *
- * @param[in] g Graph to add the node to
- * @param[in] params Common node parameters
- * @param[in] input Input to the activation layer node as a NodeID-Index pair
- * @param[in] act_info Activation layer information
- *
- * @return Node ID of the created node, EmptyNodeID in case of error
- */
- static NodeID add_activation_node(Graph &g, NodeParams params, NodeIdxPair input, ActivationLayerInfo act_info);
- /** Adds a batch normalization layer node to the graph
- *
- * @param[in] g Graph to add the node to
- * @param[in] params Common node parameters
- * @param[in] input Input to the batch normalization layer node as a NodeID-Index pair
- * @param[in] epsilon Epsilon parameter
- * @param[in] mean_accessor Const Node ID that contains the mean values
- * @param[in] var_accessor Const Node ID that contains the variance values
- * @param[in] beta_accessor Const Node ID that contains the beta values. Can be EmptyNodeID
- * @param[in] gamma_accessor Const Node ID that contains the gamma values. Can be EmptyNodeID
- *
- * @return Node ID of the created node, EmptyNodeID in case of error
- */
- static NodeID add_batch_normalization_node(Graph &g, NodeParams params, NodeIdxPair input, float epsilon,
- ITensorAccessorUPtr mean_accessor = nullptr, ITensorAccessorUPtr var_accessor = nullptr,
- ITensorAccessorUPtr beta_accessor = nullptr, ITensorAccessorUPtr gamma_accessor = nullptr);
- /** Adds a convolution layer node to the graph
- *
- * @param[in] g Graph to add the node to
- * @param[in] params Common node parameters
- * @param[in] input Input to the convolution layer node as a NodeID-Index pair
- * @param[in] kernel_spatial_extend Spatial extend of convolution kernels
- * @param[in] depth Number of convolution kernels
- * @param[in] conv_info Convolution layer information
- * @param[in] num_groups (Optional) Number of groups for a grouped convolution. Defaults to 1
- * @param[in] method (Optional) Convolution method to use
- * @param[in] weights_accessor (Optional) Accessor of the weights node data
- * @param[in] bias_accessor (Optional) Accessor of the bias node data
- *
- * @return Node ID of the created node, EmptyNodeID in case of error
- */
- static NodeID add_convolution_node(Graph &g, NodeParams params, NodeIdxPair input,
- Size2D kernel_spatial_extend, unsigned int depth, PadStrideInfo conv_info,
- unsigned int num_groups = 1, ConvolutionMethod method = ConvolutionMethod::DEFAULT,
- ITensorAccessorUPtr weights_accessor = nullptr, ITensorAccessorUPtr bias_accessor = nullptr);
- /** Adds a depth concatenate node to the graph
- *
- * @param[in] g Graph to add the node to
- * @param[in] params Common node parameters
- * @param[in] inputs Inputs to the depth concatenate layer node as a NodeID-Index pair
- *
- * @return Node ID of the created node, EmptyNodeID in case of error
- */
- static NodeID add_depth_concatenate_node(Graph &g, NodeParams params, std::vector<NodeIdxPair> inputs);
- /** Adds a depth-wise convolution layer node to the graph
- *
- * @param[in] g Graph to add the node to
- * @param[in] params Common node parameters
- * @param[in] input Input to the depthwise convolution layer node as a NodeID-Index pair
- * @param[in] kernel_spatial_extend Spatial extend of convolution kernels
- * @param[in] conv_info Convolution layer information
- * @param[in] method (Optional) Convolution method to use
- * @param[in] weights_accessor (Optional) Accessor of the weights node data
- * @param[in] bias_accessor (Optional) Accessor of the bias node data
- *
- * @return Node ID of the created node, EmptyNodeID in case of error
- */
- static NodeID add_depthwise_convolution_node(Graph &g, NodeParams params, NodeIdxPair input,
- Size2D kernel_spatial_extend, PadStrideInfo conv_info,
- DepthwiseConvolutionMethod method = DepthwiseConvolutionMethod::DEFAULT,
- ITensorAccessorUPtr weights_accessor = nullptr, ITensorAccessorUPtr bias_accessor = nullptr);
- /** Adds an element-wise layer node to the graph
- *
- * @param[in] g Graph to add the node to
- * @param[in] params Common node parameters
- * @param[in] input0 First input to the element-wise operation layer node as a NodeID-Index pair
- * @param[in] input1 Second input to the element-wise operation layer node as a NodeID-Index pair
- * @param[in] operation Element-wise operation to perform
- *
- * @return Node ID of the created node, EmptyNodeID in case of error
- */
- static NodeID add_elementwise_node(Graph &g, NodeParams params, NodeIdxPair input0, NodeIdxPair input1, EltwiseOperation operation);
- /** Adds a flatten layer node to the graph
- *
- * @param[in] g Graph to add the node to
- * @param[in] params Common node parameters
- * @param[in] input Input to the flatten layer node as a NodeID-Index pair
- *
- * @return Node ID of the created node, EmptyNodeID in case of error
- */
- static NodeID add_flatten_node(Graph &g, NodeParams params, NodeIdxPair input);
- /** Adds a fully connected layer node to the graph
- *
- * @param[in] g Graph to add the layer to
- * @param[in] params Common node parameters
- * @param[in] input Input to the fully connected layer node as a NodeID-Index pair
- * @param[in] num_outputs Number of output neurons
- * @param[in] weights_accessor (Optional) Accessor of the weights node data
- * @param[in] bias_accessor (Optional) Accessor of the bias node data
- *
- * @return Node ID of the created node, EmptyNodeID in case of error
- */
- static NodeID add_fully_connected_layer(Graph &g, NodeParams params, NodeIdxPair input, unsigned int num_outputs,
- ITensorAccessorUPtr weights_accessor = nullptr, ITensorAccessorUPtr bias_accessor = nullptr);
- /** Adds a normalization layer node to the graph
- *
- * @param[in] g Graph to add the node to
- * @param[in] params Common node parameters
- * @param[in] input Input to the normalization layer node as a NodeID-Index pair
- * @param[in] norm_info Normalization layer information
- *
- * @return Node ID of the created node, EmptyNodeID in case of error
- */
- static NodeID add_normalization_node(Graph &g, NodeParams params, NodeIdxPair input, NormalizationLayerInfo norm_info);
- /** Adds a pooling layer node to the graph
- *
- * @param[in] g Graph to add the node to
- * @param[in] params Common node parameters
- * @param[in] input Input to the pooling layer node as a NodeID-Index pair
- * @param[in] pool_info Pooling layer information
- *
- * @return Node ID of the created node, EmptyNodeID in case of error
- */
- static NodeID add_pooling_node(Graph &g, NodeParams params, NodeIdxPair input, PoolingLayerInfo pool_info);
- /** Adds a reshape layer node to the graph
- *
- * @param[in] g Graph to add the node to
- * @param[in] params Common node parameters
- * @param[in] input Input to the reshape layer node as a NodeID-Index pair
- * @param[in] shape Output reshaped shape
- *
- * @return Node ID of the created node, EmptyNodeID in case of error
- */
- static NodeID add_reshape_node(Graph &g, NodeParams params, NodeIdxPair input, TensorShape shape);
- /** Adds a softmax node to the graph
- *
- * @param[in] g Graph to add the node to
- * @param[in] params Common node parameters
- * @param[in] input Input to the softmax layer node as a NodeID-Index pair
- * @param[in] beta Beta parameter
- *
- * @return Node ID of the created node, EmptyNodeID in case of error
- */
- static NodeID add_softmax_node(Graph &g, NodeParams params, NodeIdxPair input, float beta = 1.f);
- /** Adds a split node to the graph
- *
- * @param[in] g Graph to add the node to
- * @param[in] params Common node parameters
- * @param[in] input Input to the split layer node as a NodeID-Index pair
- * @param[in] num_splits Number of different splits
- * @param[in] axis (Optional) Split axis. Defaults to 0
- *
- * @return Node ID of the created node, EmptyNodeID in case of error
- */
- static NodeID add_split_node(Graph &g, NodeParams params, NodeIdxPair input, unsigned int num_splits, unsigned int axis = 0);
-};
-} // namespace graph2
-} // namespace arm_compute
-#endif /* __ARM_COMPUTE_GRAPH2_GRAPH_BUILDER_H__ */
diff --git a/arm_compute/graph2/GraphContext.h b/arm_compute/graph2/GraphContext.h
deleted file mode 100644
index f38e25dd61..0000000000
--- a/arm_compute/graph2/GraphContext.h
+++ /dev/null
@@ -1,94 +0,0 @@
-/*
- * Copyright (c) 2018 ARM Limited.
- *
- * SPDX-License-Identifier: MIT
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to
- * deal in the Software without restriction, including without limitation the
- * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
- * sell copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-#ifndef __ARM_COMPUTE_GRAPH2_GRAPH_CONTEXT_H__
-#define __ARM_COMPUTE_GRAPH2_GRAPH_CONTEXT_H__
-
-#include "arm_compute/graph2/Types.h"
-
-#include "arm_compute/runtime/IMemoryManager.h"
-
-#include <map>
-#include <memory>
-
-namespace arm_compute
-{
-namespace graph2
-{
-/** Contains structs required for memory management */
-struct MemoryManagerContext
-{
- Target target = { Target::UNSPECIFIED }; /**< Target */
- std::shared_ptr<arm_compute::IMemoryManager> mm = { nullptr }; /**< Memory manager */
-};
-
-/** Graph context **/
-class GraphContext final
-{
-public:
- /** Constructor */
- GraphContext();
- /** Prevent instances of this class from being copied (As this class contains pointers) */
- GraphContext(const GraphContext &) = delete;
- /** Default move constructor */
- GraphContext(GraphContext &&) = default;
- /** Prevent instances of this class from being copied (As this class contains pointers) */
- GraphContext &operator=(const GraphContext &) = delete;
- /** Default move assignment operator */
- GraphContext &operator=(GraphContext &&) = default;
- /** Graph configuration accessor
- *
- * @note Every alteration has to be done before graph finalization
- *
- * @return The graph configuration
- */
- const GraphConfig &config() const;
- /** Sets graph configuration
- *
- * @param[in] config Configuration to use
- */
- void set_config(const GraphConfig &config);
- /** Inserts a memory manager context
- *
- * @param[in] memory_ctx Memory manage context
- *
- * @return If the insertion succeeded else false
- */
- bool insert_memory_management_ctx(MemoryManagerContext &&memory_ctx);
- /** Gets a memory manager context for a given target
- *
- * @param[in] target To retrieve the management context
- *
- * @return Management context for the target if exists else nullptr
- */
- MemoryManagerContext *memory_management_ctx(Target target);
- /** Finalizes memory managers in graph context */
- void finalize();
-
-private:
- GraphConfig _config; /**< Graph configuration */
- std::map<Target, MemoryManagerContext> _memory_managers; /**< Memory managers for each target */
-};
-} // namespace graph2
-} // namespace arm_compute
-#endif /* __ARM_COMPUTE_GRAPH2_GRAPH_CONTEXT_H__ */
diff --git a/arm_compute/graph2/GraphManager.h b/arm_compute/graph2/GraphManager.h
deleted file mode 100644
index 0d5835f6a4..0000000000
--- a/arm_compute/graph2/GraphManager.h
+++ /dev/null
@@ -1,86 +0,0 @@
-/*
- * Copyright (c) 2018 ARM Limited.
- *
- * SPDX-License-Identifier: MIT
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to
- * deal in the Software without restriction, including without limitation the
- * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
- * sell copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-#ifndef __ARM_COMPUTE_GRAPH2_GRAPH_MANAGER_H__
-#define __ARM_COMPUTE_GRAPH2_GRAPH_MANAGER_H__
-
-#include "arm_compute/graph2/Types.h"
-#include "arm_compute/graph2/Workload.h"
-
-#include <map>
-
-namespace arm_compute
-{
-namespace graph2
-{
-// Forward declaration
-class Graph;
-class GraphContext;
-class PassManager;
-
-/** Graph manager class
- *
- * Manages a list of graphs along with their resources
- */
-class GraphManager final
-{
-public:
- /** Default Constructor **/
- GraphManager();
- /** Prevent instances of this class from being copied (As this class contains pointers) */
- GraphManager(const GraphManager &) = delete;
- /** Default move constructor */
- GraphManager(GraphManager &&) = default;
- /** Prevent instances of this class from being copied (As this class contains pointers) */
- GraphManager &operator=(const GraphManager &) = delete;
- /** Default move assignment operator */
- GraphManager &operator=(GraphManager &&) = default;
- /** Finalizes a given graph
- *
- * @warning At this given time finalize_graph will alter the passed graph,
- * plan is to avoid by copying the graph structure,
- * or provide another entry-point for this functionality as it will increase the memory requirements
- *
- * @param[in] graph Graph to finalize
- * @param[in] ctx Graph context
- * @param[in] pm Pass manager to use for any optimization passes
- * @param[in] target Execution target (Single target execution is currently supported)
- */
- void finalize_graph(Graph &graph, GraphContext &ctx, PassManager &pm, Target target);
- /** Executes a graph
- *
- * @param[in] graph Graph to execute
- */
- void execute_graph(Graph &graph);
- /** Invalidates the graph execution workload
- *
- * @param[in] graph Graph to invalidate
- */
- void invalidate_graph(Graph &graph);
-
-private:
- std::map<GraphID, ExecutionWorkload> _workloads = {}; /**< Graph workloads */
-};
-} // namespace graph2
-} // namespace arm_compute
-#endif /* __ARM_COMPUTE_GRAPH2_GRAPH_MANAGER_H__ */
diff --git a/arm_compute/graph2/IDeviceBackend.h b/arm_compute/graph2/IDeviceBackend.h
deleted file mode 100644
index f0d6297b7b..0000000000
--- a/arm_compute/graph2/IDeviceBackend.h
+++ /dev/null
@@ -1,104 +0,0 @@
-/*
- * Copyright (c) 2018 ARM Limited.
- *
- * SPDX-License-Identifier: MIT
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to
- * deal in the Software without restriction, including without limitation the
- * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
- * sell copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-#ifndef __ARM_COMPUTE_GRAPH2_IDEVICEBACKEND_H__
-#define __ARM_COMPUTE_GRAPH2_IDEVICEBACKEND_H__
-
-#include "arm_compute/graph2/ITensorHandle.h"
-#include "arm_compute/graph2/Types.h"
-#include "arm_compute/runtime/IFunction.h"
-#include "arm_compute/runtime/IMemoryManager.h"
-
-#include <memory>
-
-namespace arm_compute
-{
-namespace graph2
-{
-// Forward declarations
-class Graph;
-class GraphContext;
-class Tensor;
-class INode;
-
-namespace backends
-{
-/** Device backend interface */
-class IDeviceBackend
-{
-public:
- /** Virtual Destructor */
- virtual ~IDeviceBackend() = default;
- /** Initializes the backend */
- virtual void initialize_backend() = 0;
- /** Setups the given graph context
- *
- * @param[in] ctx Graph context
- */
- virtual void setup_backend_context(GraphContext &ctx) = 0;
- /** Create a backend Tensor
- *
- * @param[in] tensor The tensor we want to create a backend tensor for
- *
- * @return Backend tensor handle
- */
- virtual std::unique_ptr<ITensorHandle> create_tensor(const Tensor &tensor) = 0;
- /** Create a backend Sub-Tensor
- *
- * @param[in] parent Parent sub-tensor handle
- * @param[in] shape Shape of the sub-tensor
- * @param[in] coords Starting coordinates of the sub-tensor
- * @param[in] extend_parent Extends parent shape if true
- *
- * @return Backend sub-tensor handle
- */
- virtual std::unique_ptr<ITensorHandle> create_subtensor(ITensorHandle *parent, TensorShape shape, Coordinates coords, bool extend_parent) = 0;
- /** Configure a backend Node
- *
- * @note This creates an appropriate configured backend function for the given node
- *
- * @param[in] node The node we want to configure
- * @param[in] ctx Context to use
- *
- * @return Backend execution function
- */
- virtual std::unique_ptr<arm_compute::IFunction> configure_node(INode &node, GraphContext &ctx) = 0;
- /** Validate a node
- *
- * @param[in] node The node we want to validate
- *
- * @return An error status
- */
- virtual Status validate_node(INode &node) = 0;
- /** Create a backend memory manager given its affinity
- *
- * @param[in] affinity Memory Manager affinity
- *
- * @return Memory manager
- */
- virtual std::shared_ptr<arm_compute::IMemoryManager> create_memory_manager(MemoryManagerAffinity affinity) = 0;
-};
-} // namespace backends
-} // namespace graph2
-} // namespace arm_compute
-#endif //__ARM_COMPUTE_GRAPH2_IDEVICEBACKEND_H__
diff --git a/arm_compute/graph2/IGraphMutator.h b/arm_compute/graph2/IGraphMutator.h
deleted file mode 100644
index 50151c87ce..0000000000
--- a/arm_compute/graph2/IGraphMutator.h
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * Copyright (c) 2018 ARM Limited.
- *
- * SPDX-License-Identifier: MIT
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to
- * deal in the Software without restriction, including without limitation the
- * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
- * sell copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-#ifndef __ARM_COMPUTE_GRAPH2_IGRAPHMUTATOR_H__
-#define __ARM_COMPUTE_GRAPH2_IGRAPHMUTATOR_H__
-
-namespace arm_compute
-{
-namespace graph2
-{
-// Forward declarations
-class Graph;
-
-/** Graph mutator interface */
-class IGraphMutator
-{
-public:
- /** Virtual Destructor */
- virtual ~IGraphMutator() = default;
- /** Walk the graph and perform a specific mutation
- *
- * @param[in, out] g Graph to walk and mutate
- */
- virtual void mutate(Graph &g) = 0;
- /** Returns mutator name
- *
- * @return Mutator name
- */
- virtual const char *name() = 0;
-};
-} // namespace graph2
-} // namespace arm_compute
-#endif /* __ARM_COMPUTE_GRAPH2_IGRAPHMUTATOR_H__ */
diff --git a/arm_compute/graph2/IGraphPrinter.h b/arm_compute/graph2/IGraphPrinter.h
deleted file mode 100644
index eb85f97a5b..0000000000
--- a/arm_compute/graph2/IGraphPrinter.h
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * Copyright (c) 2018 ARM Limited.
- *
- * SPDX-License-Identifier: MIT
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to
- * deal in the Software without restriction, including without limitation the
- * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
- * sell copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-#ifndef __ARM_COMPUTE_GRAPH2_IGRAPHPRINTER_H__
-#define __ARM_COMPUTE_GRAPH2_IGRAPHPRINTER_H__
-
-#include <ostream>
-
-namespace arm_compute
-{
-namespace graph2
-{
-// Forward declarations
-class Graph;
-
-/** Graph printer interface */
-class IGraphPrinter
-{
-public:
- /** Virtual Destructor */
- virtual ~IGraphPrinter() = default;
- /** Print graph
- *
- * @param[in] g Graph to print
- * @param[out] os Output stream
- */
- virtual void print(const Graph &g, std::ostream &os) = 0;
-};
-} // namespace graph2
-} // namespace arm_compute
-#endif /* __ARM_COMPUTE_GRAPH2_IGRAPHPRINTER_H__ */
diff --git a/arm_compute/graph2/INode.h b/arm_compute/graph2/INode.h
deleted file mode 100644
index ba5620ba0e..0000000000
--- a/arm_compute/graph2/INode.h
+++ /dev/null
@@ -1,252 +0,0 @@
-/*
- * Copyright (c) 2018 ARM Limited.
- *
- * SPDX-License-Identifier: MIT
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to
- * deal in the Software without restriction, including without limitation the
- * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
- * sell copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-#ifndef __ARM_COMPUTE_GRAPH2_INODE_H__
-#define __ARM_COMPUTE_GRAPH2_INODE_H__
-
-#include "arm_compute/core/Error.h"
-#include "arm_compute/graph2/TensorDescriptor.h"
-#include "arm_compute/graph2/Types.h"
-
-#include <set>
-
-namespace arm_compute
-{
-namespace graph2
-{
-// Forward declarations
-class Graph;
-class Edge;
-class INodeVisitor;
-class Tensor;
-
-/** Node interface */
-class INode
-{
-public:
- /** Constructor */
- INode();
- /** Destructor **/
- virtual ~INode() = default;
- /** Prevent instances of this class from being copied (As this class contains pointers) */
- INode(const INode &) = delete;
- /** Prevent instances of this class from being copy assigned (As this class contains pointers) */
- INode &operator=(const INode &) = delete;
- /** Allow instances of this class to be moved */
- INode(INode &&) = default;
- /** Allow instances of this class to be move assigned */
- INode &operator=(INode &&) = default;
- /** Validate node
- *
- * @return Status containing any errors
- */
- virtual Status validate() = 0;
- /** Returns node's type
- *
- * @return Node's type
- */
- virtual NodeType type() const = 0;
- /** Accepts a node visitor
- *
- * @param[in] v Visitor to accept
- */
- virtual void accept(INodeVisitor &v) = 0;
- /** Forwards descriptor information to outputs if possible
- *
- * @return True if descriptor information could be forwarded otherwise false
- */
- virtual bool forward_descriptors() = 0;
- /** Calculates output configuration
- *
- * @param[in] idx Output index to configure
- *
- * @return Output descriptor configuration
- */
- virtual TensorDescriptor configure_output(size_t idx) const = 0;
- /** Returns node's name
- *
- * @return Node name
- */
- std::string name() const;
- /** Returns node's ID
- *
- * @return Node's ID
- */
- NodeID id() const;
- /** Returns node's Graph
- *
- * @return Node's graph
- */
- const Graph *graph() const;
- /** Returns node's Graph
- *
- * @return Node's graph
- */
- Graph *graph();
- /** Sets the graph that this node is registered to
- *
- * @param[in] g Back reference to graph
- */
- void set_graph(Graph *g);
- /** Sets the node id
- *
- * @param[in] id Node id
- */
- void set_id(NodeID id);
- /** Sets common node parameters
- *
- * @param[in] common_params Common node parameters to set
- */
- void set_common_node_parameters(NodeParams common_params);
- /** Sets target preference
- *
- * @note This is not the target that the graph executor might choose, its just an indication
- *
- * @param[in] target Target preference
- */
- void set_requested_target(Target target);
- /** Sets the final execution target
- *
- * @note GraphManager might change this target
- *
- * @param[in] target Final execution target
- */
- void set_assigned_target(Target target);
- /** Sets the output tensor of at a given index
- *
- * @note All edges will get updated
- *
- * @param[in] tid Tensor ID
- * @param[in] idx Output index
- */
- void set_output_tensor(TensorID tid, size_t idx);
- /** Returns inputs of the node
- *
- * @return Inputs of the node
- */
- const std::vector<TensorID> &inputs() const;
- /** Returns outputs of the node
- *
- * @return Outputs of the node
- */
- const std::vector<TensorID> &outputs() const;
- /** Returns input edge set
- *
- * @return Set of input edges
- */
- const std::vector<EdgeID> &input_edges() const;
- /** Returns output edge set
- *
- * @return Set of output edges
- */
- const std::set<EdgeID> &output_edges() const;
- /** Returns the tensor ID of a given input of the node
- *
- * @note Precondition : idx should be a valid input index
- *
- * @param[in] idx Index of the node input
- *
- * @return TensorID of the requested input
- */
- TensorID input_id(size_t idx) const;
- /** Returns the tensor ID of a given output of the node
- *
- * @note Precondition : idx should be a valid output index
- *
- * @param[in] idx Index of the node output
- *
- * @return TensorID of the requested output
- */
- TensorID output_id(size_t idx) const;
- /** Returns the tensor of a given input of the node
- *
- * @note Precondition : idx should be a valid input index
- *
- * @param[in] idx Index of the node input
- *
- * @return Tensor of the requested input
- */
- Tensor *input(size_t idx) const;
- /** Returns the tensor of a given output of the node
- *
- * @note Precondition : idx should be a valid output index
- *
- * @param[in] idx Index of the node output
- *
- * @return Tensor of the requested output
- */
- Tensor *output(size_t idx) const;
- /** Returns the edge ID of a given input of the node
- *
- * @note Precondition : idx should be a valid input index
- *
- * @param[in] idx Index of the node input
- *
- * @return EdgeID of the requested input
- */
- EdgeID input_edge_id(size_t idx) const;
- /** Returns the edge of a given input of the node
- *
- * @note Precondition : idx should be a valid input index
- *
- * @param[in] idx Index of the node input
- *
- * @return Edge of the requested input
- */
- Edge *input_edge(size_t idx) const;
- /** Returns number of inputs of the node
- *
- * @return Number of inputs
- */
- size_t num_inputs() const;
- /** Returns number of outputs of the node
- *
- * @return Number of outputs
- */
- size_t num_outputs() const;
- /** Returns requested target for this node
- *
- * @return Requested execution target
- */
- Target requested_target() const;
- /** Returns assigned target for this node
- *
- * @return Assigned target of this node
- */
- Target assigned_target() const;
-
-protected:
- friend class Graph;
-
-protected:
- Graph *_graph; /**< Backward reference to graph owning the node */
- NodeID _id; /**< Node ID */
- NodeParams _common_params; /**< Node common params */
- std::vector<TensorID> _outputs; /**< Output of the node */
- std::vector<EdgeID> _input_edges; /**< Inputs edge set */
- std::set<EdgeID> _output_edges; /**< Output edge set */
- Target _assigned_target; /**< Assigned target by the Graph executor */
-};
-} // namespace graph2
-} // namespace arm_compute
-#endif /* __ARM_COMPUTE_GRAPH_INODE_H__ */
diff --git a/arm_compute/graph2/INodeVisitor.h b/arm_compute/graph2/INodeVisitor.h
deleted file mode 100644
index 024d83c835..0000000000
--- a/arm_compute/graph2/INodeVisitor.h
+++ /dev/null
@@ -1,216 +0,0 @@
-/*
- * Copyright (c) 2018 ARM Limited.
- *
- * SPDX-License-Identifier: MIT
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to
- * deal in the Software without restriction, including without limitation the
- * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
- * sell copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-#ifndef __ARM_COMPUTE_GRAPH2_INODEVISITOR_H__
-#define __ARM_COMPUTE_GRAPH2_INODEVISITOR_H__
-
-#include "arm_compute/graph2/nodes/NodesFwd.h"
-
-namespace arm_compute
-{
-namespace graph2
-{
-/** Node visitor interface */
-class INodeVisitor
-{
-public:
- /** Default destructor. */
- virtual ~INodeVisitor() = default;
- /** Visit INode.
- *
- * @param[in] n Node to visit.
- */
- virtual void visit(INode &n) = 0;
- /** Visit ActivationLayerNode.
- *
- * @param[in] n Node to visit.
- */
- virtual void visit(ActivationLayerNode &n) = 0;
- /** Visit BatchNormalizationLayerNode.
- *
- * @param[in] n Node to visit.
- */
- virtual void visit(BatchNormalizationLayerNode &n) = 0;
- /** Visit ConstNode.
- *
- * @param[in] n Node to visit.
- */
- virtual void visit(ConstNode &n) = 0;
- /** Visit ConvolutionLayerNode.
- *
- * @param[in] n Node to visit.
- */
- virtual void visit(ConvolutionLayerNode &n) = 0;
- /** Visit DepthConcatenateLayerNode.
- *
- * @param[in] n Node to visit.
- */
- virtual void visit(DepthConcatenateLayerNode &n) = 0;
- /** Visit DepthwiseConvolutionLayerNode.
- *
- * @param[in] n Node to visit.
- */
- virtual void visit(DepthwiseConvolutionLayerNode &n) = 0;
- /** Visit EltwiseLayerNode.
- *
- * @param[in] n Node to visit.
- */
- virtual void visit(EltwiseLayerNode &n) = 0;
- /** Visit FlattenLayerNode.
- *
- * @param[in] n Node to visit.
- */
- virtual void visit(FlattenLayerNode &n) = 0;
- /** Visit FullyConnectedLayerNode.
- *
- * @param[in] n Node to visit.
- */
- virtual void visit(FullyConnectedLayerNode &n) = 0;
- /** Visit InputNode.
- *
- * @param[in] n Node to visit.
- */
- virtual void visit(InputNode &n) = 0;
- /** Visit NormalizationLayerNode.
- *
- * @param[in] n Node to visit.
- */
- virtual void visit(NormalizationLayerNode &n) = 0;
- /** Visit OutputNode.
- *
- * @param[in] n Node to visit.
- */
- virtual void visit(OutputNode &n) = 0;
- /** Visit PoolingLayerNode.
- *
- * @param[in] n Node to visit.
- */
- virtual void visit(PoolingLayerNode &n) = 0;
- /** Visit ReshapeLayerNode.
- *
- * @param[in] n Node to visit.
- */
- virtual void visit(ReshapeLayerNode &n) = 0;
- /** Visit SoftmaxLayerNode.
- *
- * @param[in] n Node to visit.
- */
- virtual void visit(SoftmaxLayerNode &n) = 0;
- /** Visit SplitLayerNode.
- *
- * @param[in] n Node to visit.
- */
- virtual void visit(SplitLayerNode &n) = 0;
-};
-
-/** Default visitor implementation
- *
- * Implements visit methods by calling a default function.
- * Inherit from DefaultNodeVisitor if you don't want to provide specific implementation for all nodes.
- */
-class DefaultNodeVisitor : public INodeVisitor
-{
-public:
- /** Default destructor */
- virtual ~DefaultNodeVisitor() = default;
-
-#ifndef DOXYGEN_SKIP_THIS
- // Inherited methods overridden
- virtual void visit(INode &n) override
- {
- default_visit();
- }
- virtual void visit(ActivationLayerNode &n) override
- {
- default_visit();
- }
- virtual void visit(BatchNormalizationLayerNode &n) override
- {
- default_visit();
- }
- virtual void visit(ConstNode &n) override
- {
- default_visit();
- }
- virtual void visit(ConvolutionLayerNode &n) override
- {
- default_visit();
- }
- virtual void visit(DepthConcatenateLayerNode &n) override
- {
- default_visit();
- }
- virtual void visit(DepthwiseConvolutionLayerNode &n) override
- {
- default_visit();
- }
- virtual void visit(EltwiseLayerNode &n) override
- {
- default_visit();
- }
- virtual void visit(FlattenLayerNode &n) override
- {
- default_visit();
- }
- virtual void visit(FullyConnectedLayerNode &n) override
- {
- default_visit();
- }
- virtual void visit(InputNode &n) override
- {
- default_visit();
- }
- virtual void visit(NormalizationLayerNode &n) override
- {
- default_visit();
- }
- virtual void visit(OutputNode &n) override
- {
- default_visit();
- }
- virtual void visit(PoolingLayerNode &n) override
- {
- default_visit();
- }
- virtual void visit(ReshapeLayerNode &n) override
- {
- default_visit();
- }
- virtual void visit(SoftmaxLayerNode &n) override
- {
- default_visit();
- }
- virtual void visit(SplitLayerNode &n) override
- {
- default_visit();
- }
-#endif /* DOXYGEN_SKIP_THIS */
-
- /** Function to be overloaded by the client and implement default behavior for the
- * non-overloaded visitors
- */
- virtual void default_visit() = 0;
-};
-} // namespace graph2
-} // namespace arm_compute
-#endif /* __ARM_COMPUTE_GRAPH2_INODEVISITOR_H__ */
diff --git a/arm_compute/graph2/ITensorAccessor.h b/arm_compute/graph2/ITensorAccessor.h
deleted file mode 100644
index 1a7277344d..0000000000
--- a/arm_compute/graph2/ITensorAccessor.h
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Copyright (c) 2018 ARM Limited.
- *
- * SPDX-License-Identifier: MIT
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to
- * deal in the Software without restriction, including without limitation the
- * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
- * sell copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-#ifndef __ARM_COMPUTE_GRAPH2_ITENSOR_ACCESSOR_H__
-#define __ARM_COMPUTE_GRAPH2_ITENSOR_ACCESSOR_H__
-
-#include "arm_compute/graph/ITensorAccessor.h"
-
-#include <memory>
-
-namespace arm_compute
-{
-namespace graph2
-{
-// Forward Declarations
-class ITensorHandle;
-using ITensorAccessor = graph::ITensorAccessor;
-using ITensorAccessorUPtr = std::unique_ptr<ITensorAccessor>;
-} // namespace graph2
-} // namespace arm_compute
-#endif /* __ARM_COMPUTE_GRAPH2_SUB_STREAM_H__ */ \ No newline at end of file
diff --git a/arm_compute/graph2/ITensorHandle.h b/arm_compute/graph2/ITensorHandle.h
deleted file mode 100644
index c92a213121..0000000000
--- a/arm_compute/graph2/ITensorHandle.h
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * Copyright (c) 2018 ARM Limited.
- *
- * SPDX-License-Identifier: MIT
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to
- * deal in the Software without restriction, including without limitation the
- * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
- * sell copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-#ifndef __ARM_COMPUTE_GRAPH2_ITENSORHANDLE_H__
-#define __ARM_COMPUTE_GRAPH2_ITENSORHANDLE_H__
-
-#include "arm_compute/core/ITensor.h"
-
-namespace arm_compute
-{
-namespace graph2
-{
-/** Tensor handle interface object */
-class ITensorHandle
-{
-public:
- /** Default virtual destructor */
- virtual ~ITensorHandle() = default;
- /** Allocates backend memory for the handle */
- virtual void allocate() = 0;
- /** Backend tensor object accessor */
- virtual arm_compute::ITensor &tensor() = 0;
- /** Backend tensor object const accessor */
- virtual const arm_compute::ITensor &tensor() const = 0;
- /** Maps backend tensor object
- *
- * @param[in] blocking Flags if the mapping operations should be blocking
- */
- virtual void map(bool blocking) = 0;
- /** Un-maps a backend tensor object */
- virtual void unmap() = 0;
- /** Releases backend tensor if is marked as unused
- *
- *
- * @note This has no effect on sub-tensors
- * @warning Parent tensors don't keep track of sub-tensors,
- * thus if a parent is set as unused then all sub-tensors will be invalidated,
- * on the other hand if a sub-tensor is marked as unused then the parent tensor won't be released
- */
- virtual void release_if_unused() = 0;
- /** Checks if a backing tensor is a sub-tensor object or not
- *
- * @return True if the backend tensor is a sub-tensor else false
- */
- virtual bool is_subtensor() const = 0;
-};
-} // namespace graph2
-} // namespace arm_compute
-#endif /* __ARM_COMPUTE_GRAPH2_ITENSORHANDLE_H__ */
diff --git a/arm_compute/graph2/Logger.h b/arm_compute/graph2/Logger.h
deleted file mode 100644
index f3c263cd3f..0000000000
--- a/arm_compute/graph2/Logger.h
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * Copyright (c) 2018 ARM Limited.
- *
- * SPDX-License-Identifier: MIT
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to
- * deal in the Software without restriction, including without limitation the
- * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
- * sell copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-#ifndef __ARM_COMPUTE_GRAPH2_LOGGER_H__
-#define __ARM_COMPUTE_GRAPH2_LOGGER_H__
-
-#include "arm_compute/core/utils/logging/Macros.h"
-
-/** Create a default core logger
- *
- * @note It will eventually create all default loggers in don't exist
- */
-#define ARM_COMPUTE_CREATE_DEFAULT_GRAPH_LOGGER() \
- do \
- { \
- if(arm_compute::logging::LoggerRegistry::get().logger("GRAPH") == nullptr) \
- { \
- arm_compute::logging::LoggerRegistry::get().create_reserved_loggers(); \
- } \
- } while(false)
-
-#define ARM_COMPUTE_LOG_GRAPH(log_level, x) \
- ARM_COMPUTE_CREATE_DEFAULT_GRAPH_LOGGER(); \
- ARM_COMPUTE_LOG_STREAM("GRAPH", log_level, x)
-
-#define ARM_COMPUTE_LOG_GRAPH_VERBOSE(x) \
- ARM_COMPUTE_CREATE_DEFAULT_GRAPH_LOGGER(); \
- ARM_COMPUTE_LOG_STREAM("GRAPH", arm_compute::logging::LogLevel::VERBOSE, x)
-
-#define ARM_COMPUTE_LOG_GRAPH_INFO(x) \
- ARM_COMPUTE_CREATE_DEFAULT_GRAPH_LOGGER(); \
- ARM_COMPUTE_LOG_STREAM("GRAPH", arm_compute::logging::LogLevel::INFO, x)
-
-#define ARM_COMPUTE_LOG_GRAPH_WARNING(x) \
- ARM_COMPUTE_CREATE_DEFAULT_GRAPH_LOGGER(); \
- ARM_COMPUTE_LOG_STREAM("GRAPH", arm_compute::logging::LogLevel::WARN, x)
-
-#define ARM_COMPUTE_LOG_GRAPH_ERROR(x) \
- ARM_COMPUTE_CREATE_DEFAULT_GRAPH_LOGGER(); \
- ARM_COMPUTE_LOG_STREAM("GRAPH", arm_compute::logging::LogLevel::ERROR, x)
-
-#endif /* __ARM_COMPUTE_GRAPH2_LOGGER_H__ */
diff --git a/arm_compute/graph2/PassManager.h b/arm_compute/graph2/PassManager.h
deleted file mode 100644
index b1db18b4ad..0000000000
--- a/arm_compute/graph2/PassManager.h
+++ /dev/null
@@ -1,92 +0,0 @@
-/*
- * Copyright (c) 2018 ARM Limited.
- *
- * SPDX-License-Identifier: MIT
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to
- * deal in the Software without restriction, including without limitation the
- * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
- * sell copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-#ifndef __ARM_COMPUTE_GRAPH2_PASSMANAGER_H__
-#define __ARM_COMPUTE_GRAPH2_PASSMANAGER_H__
-
-#include "arm_compute/graph2/IGraphMutator.h"
-
-#include <memory>
-#include <vector>
-
-namespace arm_compute
-{
-namespace graph2
-{
-// Forward declarations
-class Graph;
-
-/** Pass manager
- *
- * Responsible for performing the mutating graph passes with a given order
- **/
-class PassManager final
-{
-public:
- /** Constructor */
- PassManager();
- /** Prevent instances of this class from being copied (As this class contains pointers) */
- PassManager(const PassManager &) = delete;
- /** Default move constructor */
- PassManager(PassManager &&) = default;
- /** Prevent instances of this class from being copied (As this class contains pointers) */
- PassManager &operator=(const PassManager &) = delete;
- /** Default move assignment operator */
- PassManager &operator=(PassManager &&) = default;
- /** Mutation passes accessors
- *
- * @return Returns the vector with the mutation passes that are to be executed on a graph
- */
- const std::vector<std::unique_ptr<IGraphMutator>> &passes() const;
- /** Accessor of a pass at a given index
- *
- * @param[in] index Index of the requested pass
- *
- * @return A pointer to the given pass if exists else nullptr
- */
- IGraphMutator *pass(size_t index);
- /** Appends a mutation pass
- *
- * @param[in] pass Pass to append
- */
- void append(std::unique_ptr<IGraphMutator> pass);
- /** Clears all the passes */
- void clear();
- /** Runs all the mutation passes on a given graph
- *
- * @param[in] g Graph to run the mutations on
- */
- void run_all(Graph &g);
- /** Runs a specific mutation pass on a given graph
- *
- * @param[in] g Graph to run the mutation on
- * @param[in] index Index of the mutation to execute
- */
- void run(Graph &g, size_t index);
-
-private:
- std::vector<std::unique_ptr<IGraphMutator>> _passes; /**< Vector of graph passes */
-};
-} // namespace graph2
-} // namespace arm_compute
-#endif /* __ARM_COMPUTE_GRAPH2_PASSMANAGER_H__ */
diff --git a/arm_compute/graph2/Tensor.h b/arm_compute/graph2/Tensor.h
deleted file mode 100644
index fcba854a3e..0000000000
--- a/arm_compute/graph2/Tensor.h
+++ /dev/null
@@ -1,114 +0,0 @@
-/*
- * Copyright (c) 2018 ARM Limited.
- *
- * SPDX-License-Identifier: MIT
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to
- * deal in the Software without restriction, including without limitation the
- * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
- * sell copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-#ifndef __ARM_COMPUTE_GRAPH2_TENSOR_H__
-#define __ARM_COMPUTE_GRAPH2_TENSOR_H__
-
-#include "arm_compute/graph2/Types.h"
-
-#include "arm_compute/graph2/ITensorAccessor.h"
-#include "arm_compute/graph2/ITensorHandle.h"
-#include "arm_compute/graph2/TensorDescriptor.h"
-
-#include <memory>
-
-namespace arm_compute
-{
-namespace graph2
-{
-/** Tensor object **/
-class Tensor final
-{
-public:
- /** Default constructor
- *
- * @param[in] id Tensor ID
- * @param[in] desc Tensor information
- */
- Tensor(TensorID id, TensorDescriptor desc);
- /** Tensor ID accessor
- *
- * @return Tensor ID
- */
- TensorID id() const;
- /** TensorInfo metadata accessor
- *
- * @return Tensor descriptor metadata
- */
- TensorDescriptor &desc();
- /** TensorInfo metadata accessor
- *
- * @return Tensor descriptor metadata
- */
- const TensorDescriptor &desc() const;
- /** Sets the backend tensor
- *
- * @param[in] backend_tensor Backend tensor to set
- */
- void set_handle(std::unique_ptr<ITensorHandle> backend_tensor);
- /** Backend tensor handle accessor
- *
- * @return Backend tensor handle
- */
- ITensorHandle *handle();
- /** Sets the backend tensor accessor
- *
- * @param[in] accessor Accessor to set
- */
- void set_accessor(std::unique_ptr<ITensorAccessor> accessor);
- /** Backend tensor accessor
- *
- * @return Backend tensor accessor
- */
- ITensorAccessor *accessor();
- /** Calls accessor on tensor
- *
- * @return True if the accessor was called else false
- */
- bool call_accessor();
- /** Binds the tensor with an edge
- *
- * @param[in] eid Edge ID that is bound to the tensor
- */
- void bind_edge(EdgeID eid);
- /** Unbinds an edge from a tensor
- *
- * @param[in] eid Edge to unbind
- */
- void unbind_edge(EdgeID eid);
- /** Accessor the edges that are bound with the tensor
- *
- * @return Bound edges
- */
- const std::set<EdgeID> bound_edges() const;
-
-private:
- TensorID _id; /**< Tensor id */
- TensorDescriptor _desc; /**< Tensor metadata */
- std::unique_ptr<ITensorHandle> _handle; /**< Tensor Handle */
- std::unique_ptr<ITensorAccessor> _accessor; /**< Tensor Accessor */
- std::set<EdgeID> _bound_edges; /**< Edges bound to this tensor */
-};
-} // namespace graph2
-} // namespace arm_compute
-#endif /* __ARM_COMPUTE_GRAPH2_TENSOR_H__ */
diff --git a/arm_compute/graph2/TensorDescriptor.h b/arm_compute/graph2/TensorDescriptor.h
deleted file mode 100644
index 1a69dc10e8..0000000000
--- a/arm_compute/graph2/TensorDescriptor.h
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * Copyright (c) 2018 ARM Limited.
- *
- * SPDX-License-Identifier: MIT
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to
- * deal in the Software without restriction, including without limitation the
- * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
- * sell copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-#ifndef __ARM_COMPUTE_GRAPH2_TENSOR_DESCRIPTOR_H__
-#define __ARM_COMPUTE_GRAPH2_TENSOR_DESCRIPTOR_H__
-
-#include "arm_compute/graph2/Types.h"
-
-namespace arm_compute
-{
-namespace graph2
-{
-/** Tensor metadata class */
-struct TensorDescriptor final
-{
- /** Default Constructor **/
- TensorDescriptor() = default;
- /** Constructor
- *
- * @param[in] tensor_shape Tensor shape
- * @param[in] tensor_data_type Tensor data type
- * @param[in] tensor_target Target to allocate the tensor for
- */
- TensorDescriptor(TensorShape tensor_shape, DataType tensor_data_type, Target tensor_target = Target::UNSPECIFIED)
- : shape(tensor_shape), data_type(tensor_data_type), target(tensor_target)
- {
- }
-
- TensorShape shape{}; /**< Tensor shape */
- DataType data_type{ DataType::UNKNOWN }; /**< Data type */
- Target target{ Target::UNSPECIFIED }; /**< Target */
-};
-} // namespace graph2
-} // namespace arm_compute
-#endif /* __ARM_COMPUTE_GRAPH2_TENSOR_DESCRIPTOR_H__ */
diff --git a/arm_compute/graph2/TypePrinter.h b/arm_compute/graph2/TypePrinter.h
deleted file mode 100644
index de675c4633..0000000000
--- a/arm_compute/graph2/TypePrinter.h
+++ /dev/null
@@ -1,313 +0,0 @@
-/*
- * Copyright (c) 2018 ARM Limited.
- *
- * SPDX-License-Identifier: MIT
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to
- * deal in the Software without restriction, including without limitation the
- * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
- * sell copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-#ifndef __ARM_COMPUTE_GRAPH2_TYPE_PRINTER_H__
-#define __ARM_COMPUTE_GRAPH2_TYPE_PRINTER_H__
-
-#include "arm_compute/core/Error.h"
-#include "arm_compute/core/Types.h"
-#include "arm_compute/graph2/Types.h"
-
-namespace arm_compute
-{
-namespace graph2
-{
-/** Formatted output of the Dimensions type. */
-template <typename T>
-inline ::std::ostream &operator<<(::std::ostream &os, const arm_compute::Dimensions<T> &dimensions)
-{
- if(dimensions.num_dimensions() > 0)
- {
- os << dimensions[0];
-
- for(unsigned int d = 1; d < dimensions.num_dimensions(); ++d)
- {
- os << "x" << dimensions[d];
- }
- }
-
- return os;
-}
-
-/** Formatted output of the Size2D type. */
-inline ::std::ostream &operator<<(::std::ostream &os, const Size2D &size)
-{
- os << size.width << "x" << size.height;
-
- return os;
-}
-
-/** Formatted output of the DataType type. */
-inline ::std::ostream &operator<<(::std::ostream &os, const DataType &data_type)
-{
- switch(data_type)
- {
- case DataType::UNKNOWN:
- os << "UNKNOWN";
- break;
- case DataType::U8:
- os << "U8";
- break;
- case DataType::QS8:
- os << "QS8";
- break;
- case DataType::QASYMM8:
- os << "QASYMM8";
- break;
- case DataType::S8:
- os << "S8";
- break;
- case DataType::U16:
- os << "U16";
- break;
- case DataType::S16:
- os << "S16";
- break;
- case DataType::QS16:
- os << "QS16";
- break;
- case DataType::U32:
- os << "U32";
- break;
- case DataType::S32:
- os << "S32";
- break;
- case DataType::U64:
- os << "U64";
- break;
- case DataType::S64:
- os << "S64";
- break;
- case DataType::F16:
- os << "F16";
- break;
- case DataType::F32:
- os << "F32";
- break;
- case DataType::F64:
- os << "F64";
- break;
- case DataType::SIZET:
- os << "SIZET";
- break;
- default:
- ARM_COMPUTE_ERROR("NOT_SUPPORTED!");
- }
-
- return os;
-}
-
-/** Formatted output of the Target. */
-inline ::std::ostream &operator<<(::std::ostream &os, const Target &target)
-{
- switch(target)
- {
- case Target::UNSPECIFIED:
- os << "UNSPECIFIED";
- break;
- case Target::NEON:
- os << "NEON";
- break;
- case Target::CL:
- os << "CL";
- break;
- default:
- ARM_COMPUTE_ERROR("NOT_SUPPORTED!");
- }
-
- return os;
-}
-
-/** Formatted output of the activation function type. */
-inline ::std::ostream &operator<<(::std::ostream &os, const ActivationLayerInfo::ActivationFunction &act_function)
-{
- switch(act_function)
- {
- case ActivationLayerInfo::ActivationFunction::ABS:
- os << "ABS";
- break;
- case ActivationLayerInfo::ActivationFunction::LINEAR:
- os << "LINEAR";
- break;
- case ActivationLayerInfo::ActivationFunction::LOGISTIC:
- os << "LOGISTIC";
- break;
- case ActivationLayerInfo::ActivationFunction::RELU:
- os << "RELU";
- break;
- case ActivationLayerInfo::ActivationFunction::BOUNDED_RELU:
- os << "BOUNDED_RELU";
- break;
- case ActivationLayerInfo::ActivationFunction::LEAKY_RELU:
- os << "LEAKY_RELU";
- break;
- case ActivationLayerInfo::ActivationFunction::SOFT_RELU:
- os << "SOFT_RELU";
- break;
- case ActivationLayerInfo::ActivationFunction::SQRT:
- os << "SQRT";
- break;
- case ActivationLayerInfo::ActivationFunction::LU_BOUNDED_RELU:
- os << "LU_BOUNDED_RELU";
- break;
- case ActivationLayerInfo::ActivationFunction::SQUARE:
- os << "SQUARE";
- break;
- case ActivationLayerInfo::ActivationFunction::TANH:
- os << "TANH";
- break;
- default:
- ARM_COMPUTE_ERROR("NOT_SUPPORTED!");
- }
-
- return os;
-}
-
-inline std::string to_string(const ActivationLayerInfo::ActivationFunction &act_function)
-{
- std::stringstream str;
- str << act_function;
- return str.str();
-}
-
-/** Formatted output of the PoolingType type. */
-inline ::std::ostream &operator<<(::std::ostream &os, const PoolingType &pool_type)
-{
- switch(pool_type)
- {
- case PoolingType::AVG:
- os << "AVG";
- break;
- case PoolingType::MAX:
- os << "MAX";
- break;
- case PoolingType::L2:
- os << "L2";
- break;
- default:
- ARM_COMPUTE_ERROR("NOT_SUPPORTED!");
- }
-
- return os;
-}
-
-/** Formatted output of the NormType type. */
-inline ::std::ostream &operator<<(::std::ostream &os, const NormType &norm_type)
-{
- switch(norm_type)
- {
- case NormType::CROSS_MAP:
- os << "CROSS_MAP";
- break;
- case NormType::IN_MAP_1D:
- os << "IN_MAP_1D";
- break;
- case NormType::IN_MAP_2D:
- os << "IN_MAP_2D";
- break;
- default:
- ARM_COMPUTE_ERROR("NOT_SUPPORTED!");
- }
-
- return os;
-}
-
-/** Formatted output of the EltwiseOperation type. */
-inline ::std::ostream &operator<<(::std::ostream &os, const EltwiseOperation &eltwise_op)
-{
- switch(eltwise_op)
- {
- case EltwiseOperation::ADD:
- os << "ADD";
- break;
- case EltwiseOperation::MUL:
- os << "MUL";
- break;
- case EltwiseOperation::SUB:
- os << "SUB";
- break;
- default:
- ARM_COMPUTE_ERROR("NOT_SUPPORTED!");
- }
-
- return os;
-}
-
-/** Formatted output of the ConvolutionMethod type. */
-inline ::std::ostream &operator<<(::std::ostream &os, const ConvolutionMethod &method)
-{
- switch(method)
- {
- case ConvolutionMethod::DEFAULT:
- os << "DEFAULT";
- break;
- case ConvolutionMethod::DIRECT:
- os << "DIRECT";
- break;
- case ConvolutionMethod::GEMM:
- os << "GEMM";
- break;
- case ConvolutionMethod::WINOGRAD:
- os << "WINOGRAD";
- break;
- default:
- ARM_COMPUTE_ERROR("NOT_SUPPORTED!");
- }
-
- return os;
-}
-
-/** Formatted output of the DepthwiseConvolutionMethod type. */
-inline ::std::ostream &operator<<(::std::ostream &os, const DepthwiseConvolutionMethod &method)
-{
- switch(method)
- {
- case DepthwiseConvolutionMethod::DEFAULT:
- os << "DEFAULT";
- break;
- case DepthwiseConvolutionMethod::GEMV:
- os << "GEMV";
- break;
- case DepthwiseConvolutionMethod::OPTIMIZED_3x3:
- os << "OPTIMIZED_3x3";
- break;
- default:
- ARM_COMPUTE_ERROR("NOT_SUPPORTED!");
- }
-
- return os;
-}
-
-/** Formatted output of the PadStrideInfo type. */
-inline ::std::ostream &operator<<(::std::ostream &os, const PadStrideInfo &pad_stride_info)
-{
- os << pad_stride_info.stride().first << "," << pad_stride_info.stride().second;
- os << ";";
- os << pad_stride_info.pad_left() << "," << pad_stride_info.pad_right() << ","
- << pad_stride_info.pad_top() << "," << pad_stride_info.pad_bottom();
-
- return os;
-}
-} // namespace graph2
-} // namespace arm_compute
-#endif /* __ARM_COMPUTE_GRAPH2_TYPE_PRINTER_H__ */
diff --git a/arm_compute/graph2/Types.h b/arm_compute/graph2/Types.h
deleted file mode 100644
index 2625657393..0000000000
--- a/arm_compute/graph2/Types.h
+++ /dev/null
@@ -1,171 +0,0 @@
-/*
- * Copyright (c) 2018 ARM Limited.
- *
- * SPDX-License-Identifier: MIT
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to
- * deal in the Software without restriction, including without limitation the
- * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
- * sell copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-#ifndef __ARM_COMPUTE_GRAPH2_TYPES_H__
-#define __ARM_COMPUTE_GRAPH2_TYPES_H__
-
-#include "arm_compute/core/Error.h"
-#include "arm_compute/core/Types.h"
-#include "arm_compute/core/utils/strong_type/StrongType.h"
-#include "arm_compute/core/utils/strong_type/StrongTypeAttributes.h"
-
-#include <limits>
-#include <string>
-
-namespace arm_compute
-{
-namespace graph2
-{
-using arm_compute::Status;
-
-using arm_compute::Coordinates;
-using arm_compute::DataType;
-using arm_compute::TensorShape;
-using arm_compute::Size2D;
-
-using arm_compute::ActivationLayerInfo;
-using arm_compute::NormType;
-using arm_compute::NormalizationLayerInfo;
-using arm_compute::PadStrideInfo;
-using arm_compute::PoolingLayerInfo;
-using arm_compute::PoolingType;
-using arm_compute::DimensionRoundingType;
-
-/** TODO (geopin01): Make ids strongly typed */
-using TensorID = unsigned int;
-using NodeID = unsigned int;
-using EdgeID = unsigned int;
-using Activation = arm_compute::ActivationLayerInfo::ActivationFunction;
-
-/**< GraphID strong type */
-using GraphID = strong_type::StrongType<unsigned int, struct graph_id_t, strong_type::Comparable>;
-/* TODO (geopin01): Strong types for NodeID */
-
-/**< Constant TensorID specifying an equivalent of null tensor */
-constexpr TensorID NullTensorID = std::numeric_limits<TensorID>::max();
-/**< Constant NodeID specifying an equivalent of null node */
-constexpr NodeID EmptyNodeID = std::numeric_limits<NodeID>::max();
-/**< Constant EdgeID specifying an equivalent of null edge */
-constexpr EdgeID EmptyEdgeID = std::numeric_limits<EdgeID>::max();
-
-// Forward declarations
-class TensorDescriptor;
-
-/** Graph configuration structure */
-struct GraphConfig
-{
- bool use_function_memory_manager{ false }; /**< Use a memory manager to manage per-funcion auxilary memory */
- bool use_transition_memory_manager{ false }; /**< Use a memory manager to manager transition buffer memory */
- bool use_tuner{ false }; /**< Use a tuner in tunable backends */
- unsigned int num_threads{ 0 }; /**< Number of threads to use (thread capable backends), if 0 the backend will auto-initialize */
-};
-
-/**< Data layout format */
-enum class DataLayout
-{
- NCHW, /** N(Batches), C(Channels), H(Height), W(Width) from slow to fast moving dimension */
- NHWC /** N(Batches), H(Height), W(Width), C(Channels) from slow to fast moving dimension */
-};
-
-/**< Device target types */
-enum class Target
-{
- UNSPECIFIED, /**< Unspecified Target */
- NEON, /**< NEON capable target device */
- CL, /**< OpenCL capable target device */
- GC, /**< GLES compute capable target device */
-};
-
-/** Supported Element-wise operations */
-enum class EltwiseOperation
-{
- ADD, /**< Arithmetic addition */
- SUB, /**< Arithmetic subtraction */
- MUL /**< Arithmetic multiplication */
-};
-
-/** Supported Convolution layer methods */
-enum class ConvolutionMethod
-{
- DEFAULT, /**< Default approach using internal heuristics */
- GEMM, /**< GEMM based convolution */
- DIRECT, /**< Deep direct convolution */
- WINOGRAD /**< Winograd based convolution */
-};
-
-/** Supported Depthwise Convolution layer methods */
-enum class DepthwiseConvolutionMethod
-{
- DEFAULT, /**< Default approach using internal heuristics */
- GEMV, /**< Generic GEMV based depthwise convolution */
- OPTIMIZED_3x3, /**< Optimized 3x3 direct depthwise convolution */
-};
-
-/** Supported nodes */
-enum class NodeType
-{
- ActivationLayer,
- BatchNormalizationLayer,
- ConvolutionLayer,
- DepthConcatenateLayer,
- DepthwiseConvolutionLayer,
- EltwiseLayer,
- FlattenLayer,
- FullyConnectedLayer,
- NormalizationLayer,
- PoolingLayer,
- ReshapeLayer,
- SoftmaxLayer,
- SplitLayer,
-
- Input,
- Output,
- Const,
-};
-
-/** Backend Memory Manager affinity **/
-enum class MemoryManagerAffinity
-{
- Buffer, /**< Affinity at buffer level */
- Offset /**< Affinity at offset level */
-};
-
-/** NodeID-index struct
- *
- * Used to describe connections
- */
-struct NodeIdxPair
-{
- NodeID node_id; /**< Node ID */
- size_t index; /**< Index */
-};
-
-/** Common node parameters */
-struct NodeParams
-{
- std::string name; /**< Node name */
- Target target; /**< Node target */
-};
-} // namespace graph2
-} // namespace arm_compute
-#endif /* __ARM_COMPUTE_GRAPH2_TYPES_H__ */
diff --git a/arm_compute/graph2/Utils.h b/arm_compute/graph2/Utils.h
deleted file mode 100644
index 0295bcb9af..0000000000
--- a/arm_compute/graph2/Utils.h
+++ /dev/null
@@ -1,99 +0,0 @@
-/*
- * Copyright (c) 2018 ARM Limited.
- *
- * SPDX-License-Identifier: MIT
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to
- * deal in the Software without restriction, including without limitation the
- * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
- * sell copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-#ifndef __ARM_COMPUTE_GRAPH2_UTILS_H__
-#define __ARM_COMPUTE_GRAPH2_UTILS_H__
-
-#include "arm_compute/graph2/Graph.h"
-#include "arm_compute/graph2/PassManager.h"
-
-namespace arm_compute
-{
-namespace graph2
-{
-// Forward Declaration
-class GraphContext;
-
-/** Returns the tensor descriptor of a given tensor
- *
- * @param[in] g Graph that the tensor belongs to
- * @param[in] tid Tensor ID
- *
- * @return Tensor descriptor if tensor was found else empty descriptor
- */
-inline TensorDescriptor get_tensor_descriptor(const Graph &g, TensorID tid)
-{
- const Tensor *tensor = g.tensor(tid);
- return (tensor != nullptr) ? tensor->desc() : TensorDescriptor();
-}
-/** Sets an accessor on a given tensor
- *
- * @param[in] tensor Tensor to set the accessor to
- * @param[in] accessor Accessor to set
- *
- * @return True if accessor was set else false
- */
-inline Status set_tensor_accessor(Tensor *tensor, std::unique_ptr<ITensorAccessor> accessor)
-{
- ARM_COMPUTE_RETURN_ERROR_ON(tensor == nullptr);
- tensor->set_accessor(std::move(accessor));
-
- return Status{};
-}
-/** Checks if a specific target is supported
- *
- * @param[in] target Target to check
- *
- * @return True if target is support else false
- */
-bool is_target_supported(Target target);
-/** Returns default target for execution
- *
- * @note If an OpenCL backend exists then OpenCL is returned,
- * else if the NEON backend exists returns NEON as target.
- * If no backends are registered an error is raised.
- *
- * @return Default target
- */
-Target get_default_target();
-/** Forces a single target to all graph constructs
- *
- * @param[in] g Graph to force target on
- * @param[in] target Target to force
- */
-void force_target_to_graph(Graph &g, Target target);
-/** Creates a default @ref PassManager
- *
- * @param[in] target Target to create the pass manager for
- *
- * @return A PassManager with default mutating passes
- */
-PassManager create_default_pass_manager(Target target);
-/** Default setups the graph context if not done manually
- *
- * @param[in] ctx Graph Context
- */
-void setup_default_graph_context(GraphContext &ctx);
-} // namespace graph2
-} // namespace arm_compute
-#endif /* __ARM_COMPUTE_GRAPH2_UTILS_H__ */
diff --git a/arm_compute/graph2/Workload.h b/arm_compute/graph2/Workload.h
deleted file mode 100644
index 85506e350e..0000000000
--- a/arm_compute/graph2/Workload.h
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * Copyright (c) 2018 ARM Limited.
- *
- * SPDX-License-Identifier: MIT
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to
- * deal in the Software without restriction, including without limitation the
- * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
- * sell copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-#ifndef __ARM_COMPUTE_GRAPH2_WORKLOAD_H__
-#define __ARM_COMPUTE_GRAPH2_WORKLOAD_H__
-
-#include "arm_compute/runtime/IFunction.h"
-
-#include <memory>
-#include <vector>
-
-namespace arm_compute
-{
-namespace graph2
-{
-// Forward declarations
-class ITensorHandle;
-class INode;
-class Tensor;
-
-/** Execution task
- *
- * Contains all the information required to execute a given task
- */
-struct ExecutionTask
-{
- // TODO (geopin01) : Support vector of functions?
- std::unique_ptr<arm_compute::IFunction> task = {}; /**< Task to execute */
- INode *node = {}; /**< Node bound to this workload */
- std::vector<ITensorHandle *> commit_handles = {}; /**< Handles needs to sync for this task to execute */
- std::vector<ITensorHandle *> release_handles = {}; /**< Handles that can be released after this node execution */
-
- /** Function operator */
- void operator()();
-};
-
-/** Execution workload */
-struct ExecutionWorkload
-{
- std::vector<Tensor *> inputs = {}; /**< Input handles */
- std::vector<Tensor *> outputs = {}; /**< Output handles */
- std::vector<ExecutionTask> tasks = {}; /**< Execution workload */
-};
-} // namespace graph2
-} // namespace arm_compute
-#endif /* __ARM_COMPUTE_GRAPH2_WORKLOAD_H__ */
diff --git a/arm_compute/graph2/algorithms/Algorithms.h b/arm_compute/graph2/algorithms/Algorithms.h
deleted file mode 100644
index dfc36febe2..0000000000
--- a/arm_compute/graph2/algorithms/Algorithms.h
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * Copyright (c) 2018 ARM Limited.
- *
- * SPDX-License-Identifier: MIT
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to
- * deal in the Software without restriction, including without limitation the
- * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
- * sell copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-#ifndef __ARM_COMPUTE_GRAPH2_ALGORITHMS_H__
-#define __ARM_COMPUTE_GRAPH2_ALGORITHMS_H__
-
-#include "arm_compute/graph2/algorithms/BFS.h"
-
-#endif /* __ARM_COMPUTE_GRAPH2_ALGORITHMS_H__ */
diff --git a/arm_compute/graph2/algorithms/BFS.h b/arm_compute/graph2/algorithms/BFS.h
deleted file mode 100644
index d590658074..0000000000
--- a/arm_compute/graph2/algorithms/BFS.h
+++ /dev/null
@@ -1,123 +0,0 @@
-/*
- * Copyright (c) 2018 ARM Limited.
- *
- * SPDX-License-Identifier: MIT
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to
- * deal in the Software without restriction, including without limitation the
- * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
- * sell copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-#ifndef __ARM_COMPUTE_GRAPH2_ALGORITHM_BFS_H__
-#define __ARM_COMPUTE_GRAPH2_ALGORITHM_BFS_H__
-
-#include "arm_compute/graph2/Graph.h"
-
-#include <list>
-#include <vector>
-
-namespace arm_compute
-{
-namespace graph2
-{
-namespace detail
-{
-/** Checks if all the input dependencies of a node have been visited
- *
- * @param[in] node Node to check
- * @param[in] visited Vector that contains the visited information
- *
- * @return True if all inputs dependencies have been visited else false
- */
-inline bool all_inputs_are_visited(const INode *node, const std::vector<bool> &visited)
-{
- ARM_COMPUTE_ERROR_ON(node == nullptr);
- const Graph *graph = node->graph();
- ARM_COMPUTE_ERROR_ON(graph == nullptr);
-
- bool are_all_visited = true;
- for(const auto &input_edge_id : node->input_edges())
- {
- if(input_edge_id != EmptyNodeID)
- {
- const Edge *input_edge = graph->edge(input_edge_id);
- ARM_COMPUTE_ERROR_ON(input_edge == nullptr);
- ARM_COMPUTE_ERROR_ON(input_edge->producer() == nullptr);
- if(!visited[input_edge->producer_id()])
- {
- are_all_visited = false;
- break;
- }
- }
- }
-
- return are_all_visited;
-}
-} // namespace detail
-
-/** Breadth first search traversal
- *
- * @param g Graph to traverse
- *
- * @return A vector with the node id traversal order
- */
-inline std::vector<NodeID> bfs(Graph &g)
-{
- std::vector<NodeID> bfs_order_vector;
-
- // Created visited vector
- std::vector<bool> visited(g.nodes().size(), false);
-
- // Create BFS queue
- std::list<NodeID> queue;
-
- // Push inputs and mark as visited
- for(auto &input : g.inputs())
- {
- if(input != EmptyNodeID)
- {
- visited[input] = true;
- queue.push_back(input);
- }
- }
-
- // Iterate over vector and edges
- while(!queue.empty())
- {
- // Dequeue a node from queue and process
- NodeID n = queue.front();
- bfs_order_vector.push_back(n);
- queue.pop_front();
-
- const INode *node = g.node(n);
- ARM_COMPUTE_ERROR_ON(node == nullptr);
- for(const auto &eid : node->output_edges())
- {
- const Edge *e = g.edge(eid);
- ARM_COMPUTE_ERROR_ON(e == nullptr);
- if(!visited[e->consumer_id()] && detail::all_inputs_are_visited(e->consumer(), visited))
- {
- visited[e->consumer_id()] = true;
- queue.push_back(e->consumer_id());
- }
- }
- }
-
- return bfs_order_vector;
-}
-} // namespace graph2
-} // namespace arm_compute
-#endif /* __ARM_COMPUTE_GRAPH2_ALGORITHM_BFS_H__ */
diff --git a/arm_compute/graph2/backends/BackendRegistrar.h b/arm_compute/graph2/backends/BackendRegistrar.h
deleted file mode 100644
index f9905a7f8f..0000000000
--- a/arm_compute/graph2/backends/BackendRegistrar.h
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * Copyright (c) 2018 ARM Limited.
- *
- * SPDX-License-Identifier: MIT
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to
- * deal in the Software without restriction, including without limitation the
- * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
- * sell copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-#ifndef ARM_COMPUTE_GRAPH2_BACKEND_REGISTRAR_H__
-#define ARM_COMPUTE_GRAPH2_BACKEND_REGISTRAR_H__
-
-#include "arm_compute/graph2/Types.h"
-#include "arm_compute/graph2/backends/BackendRegistry.h"
-
-#include <utility>
-
-namespace arm_compute
-{
-namespace graph2
-{
-namespace backends
-{
-namespace detail
-{
-/** Helper class to statically register a backend */
-template <typename T>
-class BackendRegistrar final
-{
-public:
- /** Add a new backend to the backend registry
- *
- * @param[in] target Execution target
- */
- BackendRegistrar(Target target);
-};
-
-template <typename T>
-inline BackendRegistrar<T>::BackendRegistrar(Target target)
-{
- BackendRegistry::get().add_backend<T>(target);
-}
-} // namespace detail
-} // namespace backends
-} // namespace graph2
-} // namespace arm_compute
-#endif /* ARM_COMPUTE_GRAPH2_BACKEND_REGISTRAR_H__ */ \ No newline at end of file
diff --git a/arm_compute/graph2/backends/BackendRegistry.h b/arm_compute/graph2/backends/BackendRegistry.h
deleted file mode 100644
index 9481115009..0000000000
--- a/arm_compute/graph2/backends/BackendRegistry.h
+++ /dev/null
@@ -1,91 +0,0 @@
-/*
- * Copyright (c) 2018 ARM Limited.
- *
- * SPDX-License-Identifier: MIT
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to
- * deal in the Software without restriction, including without limitation the
- * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
- * sell copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-#ifndef __ARM_COMPUTE_GRAPH2_BACKEND_REGISTRY_H__
-#define __ARM_COMPUTE_GRAPH2_BACKEND_REGISTRY_H__
-
-#include "arm_compute/graph2/IDeviceBackend.h"
-#include "arm_compute/graph2/Types.h"
-#include "support/ToolchainSupport.h"
-
-#include <map>
-#include <memory>
-
-namespace arm_compute
-{
-namespace graph2
-{
-namespace backends
-{
-/** Registry holding all the supported backends */
-class BackendRegistry final
-{
-public:
- /** Gets backend registry instance
- *
- * @return Backend registry instance
- */
- static BackendRegistry &get();
- /** Finds a backend in the registry
- *
- * @param[in] target Backend target
- *
- * @return Pointer to the backend interface if found, else nullptr
- */
- IDeviceBackend *find_backend(Target target);
- /** Checks if a backend for a given target exists
- *
- * @param[in] target Execution target
- *
- * @return True if exists else false
- */
- bool contains(Target target) const;
- /** Backends accessor
- *
- * @return Map containing the registered backends
- */
- const std::map<Target, std::unique_ptr<IDeviceBackend>> &backends() const;
- /** Registers a backend to the registry
- *
- * @param[in] target Execution target to register for
- */
- template <typename T>
- void add_backend(Target target);
-
-private:
- /** Default Constructor */
- BackendRegistry();
-
-private:
- std::map<Target, std::unique_ptr<IDeviceBackend>> _registered_backends;
-};
-
-template <typename T>
-inline void BackendRegistry::add_backend(Target target)
-{
- _registered_backends[target] = support::cpp14::make_unique<T>();
-}
-} // namespace backends
-} // namespace graph2
-} // namespace arm_compute
-#endif /* __ARM_COMPUTE_GRAPH2_BACKEND_REGISTRY_H__ */
diff --git a/arm_compute/graph2/backends/CL/CLDeviceBackend.h b/arm_compute/graph2/backends/CL/CLDeviceBackend.h
deleted file mode 100644
index 3a70f0b112..0000000000
--- a/arm_compute/graph2/backends/CL/CLDeviceBackend.h
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * Copyright (c) 2018 ARM Limited.
- *
- * SPDX-License-Identifier: MIT
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to
- * deal in the Software without restriction, including without limitation the
- * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
- * sell copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-#ifndef __ARM_COMPUTE_GRAPH2_CLDEVICEBACKEND_H__
-#define __ARM_COMPUTE_GRAPH2_CLDEVICEBACKEND_H__
-
-#include "arm_compute/graph2/IDeviceBackend.h"
-
-#include "arm_compute/runtime/CL/CLBufferAllocator.h"
-#include "arm_compute/runtime/CL/CLTuner.h"
-
-namespace arm_compute
-{
-namespace graph2
-{
-namespace backends
-{
-/** OpenCL device backend */
-class CLDeviceBackend final : public IDeviceBackend
-{
-public:
- /** Default Constructor */
- CLDeviceBackend();
- /** Destructor */
- ~CLDeviceBackend();
- /** Switchs on or off the kernel tuning
- *
- * @note When true the tuner set is used, if no tuner is set a new default one is created
- *
- * @param[in] enable_tuning Enables tuning if false else true
- */
- void set_kernel_tuning(bool enable_tuning);
-
- // Inherited overridden methods
- void initialize_backend() override;
- void setup_backend_context(GraphContext &ctx) override;
- std::unique_ptr<ITensorHandle> create_tensor(const Tensor &tensor) override;
- std::unique_ptr<ITensorHandle> create_subtensor(ITensorHandle *parent, TensorShape shape, Coordinates coords, bool extend_parent) override;
- std::unique_ptr<arm_compute::IFunction> configure_node(INode &node, GraphContext &ctx) override;
- Status validate_node(INode &node) override;
- std::shared_ptr<arm_compute::IMemoryManager> create_memory_manager(MemoryManagerAffinity affinity) override;
-
-private:
- CLTuner _tuner; /**< CL kernel tuner */
- CLBufferAllocator _allocator; /**< CL buffer affinity allocator */
-};
-} // namespace backends
-} // namespace graph2
-} // namespace arm_compute
-#endif //__ARM_COMPUTE_GRAPH2_CLDEVICEBACKEND_H__
diff --git a/arm_compute/graph2/backends/CL/CLFunctionFactory.h b/arm_compute/graph2/backends/CL/CLFunctionFactory.h
deleted file mode 100644
index 94fd2b8be1..0000000000
--- a/arm_compute/graph2/backends/CL/CLFunctionFactory.h
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * Copyright (c) 2018 ARM Limited.
- *
- * SPDX-License-Identifier: MIT
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to
- * deal in the Software without restriction, including without limitation the
- * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
- * sell copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-#ifndef __ARM_COMPUTE_GRAPH2_CLFUNCTIONFACTORY_H__
-#define __ARM_COMPUTE_GRAPH2_CLFUNCTIONFACTORY_H__
-
-#include "arm_compute/runtime/IFunction.h"
-
-#include <memory>
-
-namespace arm_compute
-{
-namespace graph2
-{
-// Forward declarations
-class INode;
-class GraphContext;
-
-namespace backends
-{
-/** Factory for generating OpenCL backend functions **/
-class CLFunctionFactory final
-{
-public:
- /** Create a backend execution function depending on the node type
- *
- * @param[in] node Node to create the backend function for
- * @param[in] ctx Context to use
- *
- * @return Backend function
- */
- static std::unique_ptr<arm_compute::IFunction> create(INode *node, GraphContext &ctx);
-};
-} // namespace backends
-} // namespace graph2
-} // namespace arm_compute
-#endif //__ARM_COMPUTE_GRAPH2_CLFUNCTIONFACTORY_H__
diff --git a/arm_compute/graph2/backends/CL/CLNodeValidator.h b/arm_compute/graph2/backends/CL/CLNodeValidator.h
deleted file mode 100644
index 251f705eee..0000000000
--- a/arm_compute/graph2/backends/CL/CLNodeValidator.h
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * Copyright (c) 2018 ARM Limited.
- *
- * SPDX-License-Identifier: MIT
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to
- * deal in the Software without restriction, including without limitation the
- * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
- * sell copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-#ifndef __ARM_COMPUTE_GRAPH2_CLNODEVALIDATOR_H__
-#define __ARM_COMPUTE_GRAPH2_CLNODEVALIDATOR_H__
-
-#include "arm_compute/core/Error.h"
-
-namespace arm_compute
-{
-namespace graph2
-{
-// Forward declarations
-class INode;
-
-namespace backends
-{
-class CLNodeValidator final
-{
-public:
- /** Validate a node
- *
- * @param[in] node Node to validate
- *
- * @return An error status
- */
- static Status validate(INode *node);
-};
-} // namespace backends
-} // namespace graph2
-} // namespace arm_compute
-#endif //__ARM_COMPUTE_GRAPH2_CLNODEVALIDATOR_H__
diff --git a/arm_compute/graph2/backends/CL/CLSubTensorHandle.h b/arm_compute/graph2/backends/CL/CLSubTensorHandle.h
deleted file mode 100644
index 6f3c00c041..0000000000
--- a/arm_compute/graph2/backends/CL/CLSubTensorHandle.h
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
- * Copyright (c) 2018 ARM Limited.
- *
- * SPDX-License-Identifier: MIT
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to
- * deal in the Software without restriction, including without limitation the
- * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
- * sell copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-#ifndef __ARM_COMPUTE_GRAPH2_CLSUBTENSORHANDLE_H__
-#define __ARM_COMPUTE_GRAPH2_CLSUBTENSORHANDLE_H__
-
-#include "arm_compute/graph2/ITensorHandle.h"
-
-#include "arm_compute/runtime/CL/CLSubTensor.h"
-
-namespace arm_compute
-{
-namespace graph2
-{
-namespace backends
-{
-/** OpenCL Sub-Tensor handle interface object **/
-class CLSubTensorHandle final : public ITensorHandle
-{
-public:
- /** Default constructor
- *
- * @param[in] parent_handle Parent tensor handle
- * @param[in] shape Sub-Tensor shape
- * @param[in] coords Starting coordinates
- * @param[in] extend_parent Extends parent shape if true
- */
- CLSubTensorHandle(ITensorHandle *parent_handle, const TensorShape &shape, const Coordinates &coords, bool extend_parent = false);
- /** Destructor: free the tensor's memory */
- ~CLSubTensorHandle() = default;
- /** Allow instances of this class to be move constructed */
- CLSubTensorHandle(CLSubTensorHandle &&) = default;
- /** Allow instances of this class to be moved */
- CLSubTensorHandle &operator=(CLSubTensorHandle &&) = default;
-
- // Inherited overridden methods
- void allocate() override;
- arm_compute::ITensor &tensor() override;
- const arm_compute::ITensor &tensor() const override;
- void map(bool blocking) override;
- void unmap() override;
- void release_if_unused() override;
- bool is_subtensor() const override;
-
-private:
- arm_compute::CLSubTensor _sub_tensor; /**< Backend Sub-Tensor */
-};
-} // namespace backends
-} // namespace graph2
-} // namespace arm_compute
-#endif /* __ARM_COMPUTE_GRAPH2_CLSUBTENSORHANDLE_H__ */
diff --git a/arm_compute/graph2/backends/CL/CLTensorHandle.h b/arm_compute/graph2/backends/CL/CLTensorHandle.h
deleted file mode 100644
index 0b20d1d8fc..0000000000
--- a/arm_compute/graph2/backends/CL/CLTensorHandle.h
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- * Copyright (c) 2018 ARM Limited.
- *
- * SPDX-License-Identifier: MIT
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to
- * deal in the Software without restriction, including without limitation the
- * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
- * sell copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-#ifndef __ARM_COMPUTE_GRAPH2_CLTENSORHANDLE_H__
-#define __ARM_COMPUTE_GRAPH2_CLTENSORHANDLE_H__
-
-#include "arm_compute/graph2/ITensorHandle.h"
-
-#include "arm_compute/runtime/CL/CLTensor.h"
-
-namespace arm_compute
-{
-namespace graph2
-{
-namespace backends
-{
-/** OpenCL Tensor handle interface object **/
-class CLTensorHandle final : public ITensorHandle
-{
-public:
- /** Default Constructor
- *
- * @param[in] info Tensor metadata
- */
- CLTensorHandle(const ITensorInfo &info);
- /** Destructor: free the tensor's memory */
- ~CLTensorHandle() = default;
- /** Allow instances of this class to be move constructed */
- CLTensorHandle(CLTensorHandle &&) = default;
- /** Allow instances of this class to be moved */
- CLTensorHandle &operator=(CLTensorHandle &&) = default;
-
- // Inherited overridden methods
- void allocate() override;
- arm_compute::ITensor &tensor() override;
- const arm_compute::ITensor &tensor() const override;
- void map(bool blocking) override;
- void unmap() override;
- void release_if_unused() override;
- bool is_subtensor() const override;
-
-private:
- arm_compute::CLTensor _tensor; /**< Backend Tensor */
-};
-} // namespace backends
-} // namespace graph2
-} // namespace arm_compute
-#endif /* __ARM_COMPUTE_GRAPH2_CLTENSORHANDLE_H__ */
diff --git a/arm_compute/graph2/backends/GLES/GCDeviceBackend.h b/arm_compute/graph2/backends/GLES/GCDeviceBackend.h
deleted file mode 100644
index 22ba91496b..0000000000
--- a/arm_compute/graph2/backends/GLES/GCDeviceBackend.h
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * Copyright (c) 2018 ARM Limited.
- *
- * SPDX-License-Identifier: MIT
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to
- * deal in the Software without restriction, including without limitation the
- * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
- * sell copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-#ifndef __ARM_COMPUTE_GRAPH2_GCDEVICEBACKEND_H__
-#define __ARM_COMPUTE_GRAPH2_GCDEVICEBACKEND_H__
-
-#include "arm_compute/graph2/IDeviceBackend.h"
-
-#include "arm_compute/runtime/GLES_COMPUTE/GCBufferAllocator.h"
-
-namespace arm_compute
-{
-namespace graph2
-{
-namespace backends
-{
-/** GLES Compute device backend */
-class GCDeviceBackend final : public IDeviceBackend
-{
-public:
- /** Default Constructor */
- GCDeviceBackend();
-
- // Inherited overridden methods
- void initialize_backend() override;
- void setup_backend_context(GraphContext &ctx) override;
- std::unique_ptr<ITensorHandle> create_tensor(const Tensor &tensor) override;
- std::unique_ptr<ITensorHandle> create_subtensor(ITensorHandle *parent, TensorShape shape, Coordinates coords, bool extend_parent) override;
- std::unique_ptr<arm_compute::IFunction> configure_node(INode &node, GraphContext &ctx) override;
- Status validate_node(INode &node) override;
- std::shared_ptr<arm_compute::IMemoryManager> create_memory_manager(MemoryManagerAffinity affinity) override;
-
-private:
- GCBufferAllocator _allocator; /**< GLES buffer affinity allocator */
-};
-} // namespace backends
-} // namespace graph2
-} // namespace arm_compute
-#endif //__ARM_COMPUTE_GRAPH2_GCDEVICEBACKEND_H__
diff --git a/arm_compute/graph2/backends/GLES/GCFunctionFactory.h b/arm_compute/graph2/backends/GLES/GCFunctionFactory.h
deleted file mode 100644
index 4f7b2f451a..0000000000
--- a/arm_compute/graph2/backends/GLES/GCFunctionFactory.h
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * Copyright (c) 2018 ARM Limited.
- *
- * SPDX-License-Identifier: MIT
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to
- * deal in the Software without restriction, including without limitation the
- * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
- * sell copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-#ifndef __ARM_COMPUTE_GRAPH2_GCFUNCTIONFACTORY_H__
-#define __ARM_COMPUTE_GRAPH2_GCFUNCTIONFACTORY_H__
-
-#include "arm_compute/runtime/IFunction.h"
-
-#include <memory>
-
-namespace arm_compute
-{
-namespace graph2
-{
-// Forward declarations
-class INode;
-class GraphContext;
-
-namespace backends
-{
-/** Factory for generating GLES compute backend functions **/
-class GCFunctionFactory final
-{
-public:
- /** Create a backend execution function depending on the node type
- *
- * @param[in] node Node to create the backend function for
- * @param[in] ctx Context to use
- *
- * @return Backend function
- */
- static std::unique_ptr<arm_compute::IFunction> create(INode *node, GraphContext &ctx);
-};
-} // namespace backends
-} // namespace graph2
-} // namespace arm_compute
-#endif //__ARM_COMPUTE_GRAPH2_GCFUNCTIONFACTORY_H__
diff --git a/arm_compute/graph2/backends/GLES/GCNodeValidator.h b/arm_compute/graph2/backends/GLES/GCNodeValidator.h
deleted file mode 100644
index 16b225b282..0000000000
--- a/arm_compute/graph2/backends/GLES/GCNodeValidator.h
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * Copyright (c) 2018 ARM Limited.
- *
- * SPDX-License-Identifier: MIT
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to
- * deal in the Software without restriction, including without limitation the
- * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
- * sell copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-#ifndef __ARM_COMPUTE_GRAPH2_GCNODEVALIDATOR_H__
-#define __ARM_COMPUTE_GRAPH2_GCNODEVALIDATOR_H__
-
-#include "arm_compute/core/Error.h"
-
-namespace arm_compute
-{
-namespace graph2
-{
-// Forward declarations
-class INode;
-
-namespace backends
-{
-class GCNodeValidator final
-{
-public:
- /** Validate a node
- *
- * @param[in] node Node to validate
- *
- * @return An error status
- */
- static Status validate(INode *node);
-};
-} // namespace backends
-} // namespace graph2
-} // namespace arm_compute
-#endif //__ARM_COMPUTE_GRAPH2_GCNODEVALIDATOR_H__
diff --git a/arm_compute/graph2/backends/GLES/GCTensorHandle.h b/arm_compute/graph2/backends/GLES/GCTensorHandle.h
deleted file mode 100644
index 281adee428..0000000000
--- a/arm_compute/graph2/backends/GLES/GCTensorHandle.h
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- * Copyright (c) 2018 ARM Limited.
- *
- * SPDX-License-Identifier: MIT
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to
- * deal in the Software without restriction, including without limitation the
- * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
- * sell copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-#ifndef __ARM_COMPUTE_GRAPH2_GCTENSORHANDLE_H__
-#define __ARM_COMPUTE_GRAPH2_GCTENSORHANDLE_H__
-
-#include "arm_compute/graph2/ITensorHandle.h"
-
-#include "arm_compute/runtime/GLES_COMPUTE/GCTensor.h"
-
-namespace arm_compute
-{
-namespace graph2
-{
-namespace backends
-{
-/** GLES compute tensor handle interface object **/
-class GCTensorHandle final : public ITensorHandle
-{
-public:
- /** Default Constructor
- *
- * @param[in] info Tensor metadata
- */
- GCTensorHandle(const ITensorInfo &info);
- /** Destructor: free the tensor's memory */
- ~GCTensorHandle() = default;
- /** Allow instances of this class to be move constructed */
- GCTensorHandle(GCTensorHandle &&) = default;
- /** Allow instances of this class to be moved */
- GCTensorHandle &operator=(GCTensorHandle &&) = default;
-
- // Inherited overridden methods
- void allocate() override;
- arm_compute::ITensor &tensor() override;
- const arm_compute::ITensor &tensor() const override;
- void map(bool blocking) override;
- void unmap() override;
- void release_if_unused() override;
- bool is_subtensor() const override;
-
-private:
- arm_compute::GCTensor _tensor; /**< Backend Tensor */
-};
-} // namespace backends
-} // namespace graph2
-} // namespace arm_compute
-#endif /* __ARM_COMPUTE_GRAPH2_GCTENSORHANDLE_H__ */
diff --git a/arm_compute/graph2/backends/NEON/NEDeviceBackend.h b/arm_compute/graph2/backends/NEON/NEDeviceBackend.h
deleted file mode 100644
index e81e9d921e..0000000000
--- a/arm_compute/graph2/backends/NEON/NEDeviceBackend.h
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * Copyright (c) 2018 ARM Limited.
- *
- * SPDX-License-Identifier: MIT
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to
- * deal in the Software without restriction, including without limitation the
- * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
- * sell copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-#ifndef __ARM_COMPUTE_GRAPH2_NEDEVICEBACKEND_H__
-#define __ARM_COMPUTE_GRAPH2_NEDEVICEBACKEND_H__
-
-#include "arm_compute/graph2/IDeviceBackend.h"
-
-#include "arm_compute/runtime/Allocator.h"
-
-namespace arm_compute
-{
-namespace graph2
-{
-namespace backends
-{
-/** NEON device backend */
-class NEDeviceBackend final : public IDeviceBackend
-{
-public:
- NEDeviceBackend();
-
- // Inherited overridden methods
- void initialize_backend() override;
- void setup_backend_context(GraphContext &ctx) override;
- std::unique_ptr<ITensorHandle> create_tensor(const Tensor &tensor) override;
- std::unique_ptr<ITensorHandle> create_subtensor(ITensorHandle *parent, TensorShape shape, Coordinates coords, bool extend_parent) override;
- std::unique_ptr<arm_compute::IFunction> configure_node(INode &node, GraphContext &ctx) override;
- Status validate_node(INode &node) override;
- std::shared_ptr<arm_compute::IMemoryManager> create_memory_manager(MemoryManagerAffinity affinity) override;
-
-private:
- Allocator _allocator; /**< NEON backend allocator */
-};
-} // namespace backends
-} // namespace graph2
-} // namespace arm_compute
-#endif //__ARM_COMPUTE_GRAPH2_NEDEVICEBACKEND_H__
diff --git a/arm_compute/graph2/backends/NEON/NEFunctionFactory.h b/arm_compute/graph2/backends/NEON/NEFunctionFactory.h
deleted file mode 100644
index 09ca49ae6c..0000000000
--- a/arm_compute/graph2/backends/NEON/NEFunctionFactory.h
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * Copyright (c) 2018 ARM Limited.
- *
- * SPDX-License-Identifier: MIT
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to
- * deal in the Software without restriction, including without limitation the
- * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
- * sell copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-#ifndef __ARM_COMPUTE_GRAPH2_NEFUNCTIONFACTORY_H__
-#define __ARM_COMPUTE_GRAPH2_NEFUNCTIONFACTORY_H__
-
-#include "arm_compute/runtime/IFunction.h"
-
-#include <memory>
-
-namespace arm_compute
-{
-namespace graph2
-{
-// Forward declarations
-class INode;
-class GraphContext;
-
-namespace backends
-{
-/** Factory for generating NEON backend functions **/
-class NEFunctionFactory final
-{
-public:
- /** Create a backend execution function depending on the node type
- *
- * @param[in] node Node to create the backend function for
- * @param[in] ctx Context to use
- *
- * @return Backend function
- */
- static std::unique_ptr<arm_compute::IFunction> create(INode *node, GraphContext &ctx);
-};
-} // namespace backends
-} // namespace graph2
-} // namespace arm_compute
-#endif //__ARM_COMPUTE_GRAPH2_NEFUNCTIONFACTORY_H__
diff --git a/arm_compute/graph2/backends/NEON/NENodeValidator.h b/arm_compute/graph2/backends/NEON/NENodeValidator.h
deleted file mode 100644
index d39ab15a27..0000000000
--- a/arm_compute/graph2/backends/NEON/NENodeValidator.h
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * Copyright (c) 2018 ARM Limited.
- *
- * SPDX-License-Identifier: MIT
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to
- * deal in the Software without restriction, including without limitation the
- * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
- * sell copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-#ifndef __ARM_COMPUTE_GRAPH2_NENODEVALIDATOR_H__
-#define __ARM_COMPUTE_GRAPH2_NENODEVALIDATOR_H__
-
-#include "arm_compute/core/Error.h"
-
-namespace arm_compute
-{
-namespace graph2
-{
-// Forward declarations
-class INode;
-
-namespace backends
-{
-class NENodeValidator final
-{
-public:
- /** Validate a node
- *
- * @param[in] node Node to validate
- *
- * @return An error status
- */
- static Status validate(INode *node);
-};
-} // namespace backends
-} // namespace graph2
-} // namespace arm_compute
-#endif //__ARM_COMPUTE_GRAPH2_NENODEVALIDATOR_H__
diff --git a/arm_compute/graph2/backends/NEON/NESubTensorHandle.h b/arm_compute/graph2/backends/NEON/NESubTensorHandle.h
deleted file mode 100644
index d62b66f343..0000000000
--- a/arm_compute/graph2/backends/NEON/NESubTensorHandle.h
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
- * Copyright (c) 2018 ARM Limited.
- *
- * SPDX-License-Identifier: MIT
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to
- * deal in the Software without restriction, including without limitation the
- * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
- * sell copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-#ifndef __ARM_COMPUTE_GRAPH2_NESUBTENSORHANDLE_H__
-#define __ARM_COMPUTE_GRAPH2_NESUBTENSORHANDLE_H__
-
-#include "arm_compute/graph2/ITensorHandle.h"
-
-#include "arm_compute/runtime/SubTensor.h"
-
-namespace arm_compute
-{
-namespace graph2
-{
-namespace backends
-{
-/** NEON Sub-Tensor handle interface object **/
-class NESubTensorHandle final : public ITensorHandle
-{
-public:
- /** Default constructor
- *
- * @param[in] parent_handle Parent tensor handle
- * @param[in] shape Sub-Tensor shape
- * @param[in] coords Starting coordinates
- * @param[in] extend_parent Extends parent shape if true
- */
- NESubTensorHandle(ITensorHandle *parent_handle, const TensorShape &shape, const Coordinates &coords, bool extend_parent = false);
- /** Destructor: free the tensor's memory */
- ~NESubTensorHandle() = default;
- /** Allow instances of this class to be move constructed */
- NESubTensorHandle(NESubTensorHandle &&) = default;
- /** Allow instances of this class to be moved */
- NESubTensorHandle &operator=(NESubTensorHandle &&) = default;
-
- // Inherited overridden methods
- void allocate() override;
- arm_compute::ITensor &tensor() override;
- const arm_compute::ITensor &tensor() const override;
- void map(bool blocking) override;
- void unmap() override;
- void release_if_unused() override;
- bool is_subtensor() const override;
-
-private:
- arm_compute::SubTensor _sub_tensor; /**< Backend Sub-Tensor */
-};
-} // namespace backends
-} // namespace graph2
-} // namespace arm_compute
-#endif /* __ARM_COMPUTE_GRAPH2_NESUBTENSORHANDLE_H__ */
diff --git a/arm_compute/graph2/backends/NEON/NETensorHandle.h b/arm_compute/graph2/backends/NEON/NETensorHandle.h
deleted file mode 100644
index 23fd7ccc69..0000000000
--- a/arm_compute/graph2/backends/NEON/NETensorHandle.h
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- * Copyright (c) 2018 ARM Limited.
- *
- * SPDX-License-Identifier: MIT
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to
- * deal in the Software without restriction, including without limitation the
- * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
- * sell copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-#ifndef __ARM_COMPUTE_GRAPH2_NETENSORHANDLE_H__
-#define __ARM_COMPUTE_GRAPH2_NETENSORHANDLE_H__
-
-#include "arm_compute/graph2/ITensorHandle.h"
-
-#include "arm_compute/runtime/Tensor.h"
-
-namespace arm_compute
-{
-namespace graph2
-{
-namespace backends
-{
-/** NEON Tensor handle interface object **/
-class NETensorHandle final : public ITensorHandle
-{
-public:
- /** Default Constructor
- *
- * @param[in] info Tensor metadata
- */
- NETensorHandle(const ITensorInfo &info);
- /** Destructor: free the tensor's memory */
- ~NETensorHandle() = default;
- /** Allow instances of this class to be move constructed */
- NETensorHandle(NETensorHandle &&) = default;
- /** Allow instances of this class to be moved */
- NETensorHandle &operator=(NETensorHandle &&) = default;
-
- // Inherited overridden methods
- void allocate() override;
- arm_compute::ITensor &tensor() override;
- const arm_compute::ITensor &tensor() const override;
- void map(bool blocking) override;
- void unmap() override;
- void release_if_unused() override;
- bool is_subtensor() const override;
-
-private:
- arm_compute::Tensor _tensor; /**< Backend Tensor */
-};
-} // namespace backends
-} // namespace graph2
-} // namespace arm_compute
-#endif /* __ARM_COMPUTE_GRAPH2_NETENSORHANDLE_H__ */
diff --git a/arm_compute/graph2/backends/Utils.h b/arm_compute/graph2/backends/Utils.h
deleted file mode 100644
index bba75757eb..0000000000
--- a/arm_compute/graph2/backends/Utils.h
+++ /dev/null
@@ -1,97 +0,0 @@
-/*
- * Copyright (c) 2018 ARM Limited.
- *
- * SPDX-License-Identifier: MIT
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to
- * deal in the Software without restriction, including without limitation the
- * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
- * sell copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-#ifndef __ARM_COMPUTE_GRAPH2_BACKENDS_UTILS_H__
-#define __ARM_COMPUTE_GRAPH2_BACKENDS_UTILS_H__
-
-#include "arm_compute/graph2/GraphContext.h"
-#include "arm_compute/runtime/IMemoryManager.h"
-
-namespace arm_compute
-{
-namespace graph2
-{
-namespace backends
-{
-/** Creates and configures a named function
- *
- * @param[in] name Name of the function
- * @param[in] args Function arguments
- *
- * @return A configured backend function
- */
-template <typename FunctionType, typename FunctionNameType, typename... ParameterType>
-std::pair<std::unique_ptr<arm_compute::IFunction>, FunctionNameType> create_named_function(FunctionNameType name, ParameterType... args)
-{
- auto f = arm_compute::support::cpp14::make_unique<FunctionType>();
- f->configure(std::forward<ParameterType>(args)...);
- return std::make_pair(std::move(f), name);
-}
-
-/** Creates and configures a named function
- *
- * @param[in] name Name of the function
- * @param[in] mm Memory manager to use
- * @param[in] args Function arguments
- *
- * @return A configured backend function
- */
-template <typename FunctionType, typename FunctionNameType, typename MemoryManagerType, typename... ParameterType>
-std::pair<std::unique_ptr<arm_compute::IFunction>, FunctionNameType> create_named_memory_managed_function(FunctionNameType name,
- MemoryManagerType mm,
- ParameterType... args)
-{
- auto f = arm_compute::support::cpp14::make_unique<FunctionType>(mm);
- f->configure(std::forward<ParameterType>(args)...);
- return std::make_pair(std::move(f), name);
-}
-
-/** Checks if an operation is in place
- *
- * @param[in] input Pointer to input
- * @param[in] output Pointer to output
- *
- * @return True if output is nullptr or input is equal to the output, else false
- */
-inline bool is_in_place_operation(void *input, void *output)
-{
- return (output == nullptr) || (input == output);
-}
-
-/** Returns the memory manager for a given target
- *
- * @param[in] ctx Graph context containing memory management metadata
- * @param[in] target Target to retrieve the memory manager from
- *
- * @return The memory manager for the given target else false
- */
-inline std::shared_ptr<IMemoryManager> get_memory_manager(GraphContext &ctx, Target target)
-{
- bool enabled = ctx.config().use_function_memory_manager && (ctx.memory_management_ctx(target) != nullptr);
- return enabled ? ctx.memory_management_ctx(target)->mm : nullptr;
-}
-} // namespace backends
-} // namespace graph2
-} // namespace arm_compute
-
-#endif /* __ARM_COMPUTE_GRAPH2_BACKENDS_UTILS_H__ */
diff --git a/arm_compute/graph2/backends/ValidateHelpers.h b/arm_compute/graph2/backends/ValidateHelpers.h
deleted file mode 100644
index 0c93f0f138..0000000000
--- a/arm_compute/graph2/backends/ValidateHelpers.h
+++ /dev/null
@@ -1,149 +0,0 @@
-/*
- * Copyright (c) 2018 ARM Limited.
- *
- * SPDX-License-Identifier: MIT
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to
- * deal in the Software without restriction, including without limitation the
- * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
- * sell copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-#ifndef __ARM_COMPUTE_GRAPH2_BACKENDS_DETAIL_VALIDATE_HELPERS_H__
-#define __ARM_COMPUTE_GRAPH2_BACKENDS_DETAIL_VALIDATE_HELPERS_H__
-
-#include "arm_compute/graph2/Logger.h"
-#include "arm_compute/graph2/Tensor.h"
-#include "arm_compute/graph2/Types.h"
-#include "arm_compute/graph2/nodes/Nodes.h"
-
-#include "arm_compute/core/Error.h"
-#include "arm_compute/core/ITensorInfo.h"
-
-namespace arm_compute
-{
-namespace graph2
-{
-namespace backends
-{
-namespace detail
-{
-/** Returns backing tensor info of a given tensor
- *
- * @param[in] tensor Tensor to extract the backing tensor from
- *
- * @return Backing tensor tensor info if present else nullptr
- */
-inline arm_compute::ITensorInfo *get_backing_tensor_info(arm_compute::graph2::Tensor *tensor)
-{
- return ((tensor == nullptr) || (tensor->handle() == nullptr)) ? nullptr : tensor->handle()->tensor().info();
-}
-
-/** Validates a Convolution layer node
- *
- * @tparam ConvolutionLayer Default Convolution layer function type
- * @tparam DirectConvolutionLayer Direct Convolution layer function type
- * @tparam GEMMConvolutionLayer GEMM Convolution layer function type
- * @tparam WinogradConvolutionLayer Winograd Convolution layer function type
- *
- * @param[in] node Node to validate
- *
- * @return Status
- */
-template <typename ConvolutionLayer, typename DirectConvolutionLayer, typename GEMMConvolutionLayer, typename WinogradConvolutionLayer>
-Status validate_convolution_layer(ConvolutionLayerNode &node)
-{
- ARM_COMPUTE_LOG_GRAPH_VERBOSE("Validating ConvolutionLayer node with ID : " << node.id() << " and Name: " << node.name() << std::endl);
- ARM_COMPUTE_RETURN_ERROR_ON(node.num_inputs() != 3);
- ARM_COMPUTE_RETURN_ERROR_ON(node.num_outputs() != 1);
-
- // Extract IO and info
- arm_compute::ITensorInfo *input = get_backing_tensor_info(node.input(0));
- arm_compute::ITensorInfo *weights = get_backing_tensor_info(node.input(1));
- arm_compute::ITensorInfo *biases = get_backing_tensor_info(node.input(2));
- arm_compute::ITensorInfo *output = get_backing_tensor_info(node.output(0));
- const PadStrideInfo conv_info = node.convolution_info();
- const ConvolutionMethod conv_algorithm = node.convolution_method();
-
- // Validate function
- Status status{};
- switch(conv_algorithm)
- {
- case ConvolutionMethod::DIRECT:
- status = DirectConvolutionLayer::validate(input, weights, biases, output, conv_info);
- break;
- case ConvolutionMethod::GEMM:
- status = GEMMConvolutionLayer::validate(input, weights, biases, output, conv_info);
- break;
- case ConvolutionMethod::WINOGRAD:
- status = WinogradConvolutionLayer::validate(input, weights, biases, output, conv_info);
- break;
- default:
- break;
- }
-
- // If validation fails try the Default approach
- if(!bool(status) || (conv_algorithm == ConvolutionMethod::DEFAULT))
- {
- status = ConvolutionLayer::validate(input, weights, biases, output, conv_info);
- if(bool(status))
- {
- ARM_COMPUTE_LOG_GRAPH_INFO("Switched ConvolutionLayer method of node with ID : "
- << node.id() << " and Name: " << node.name() << std::endl);
- node.set_convolution_method(ConvolutionMethod::DEFAULT);
- }
- }
-
- return status;
-}
-
-/** Validates a Depthwise Convolution layer node
- *
- * @tparam DepthwiseConvolutionLayer Default Depthwise Convolution layer type
- * @tparam DepthwiseConvolutionLayer3x3 Optimized 3x3 Depthwise Convolution layer type
- *
- * @param[in] node Node to validate
- *
- * @return Status
- */
-template <typename DepthwiseConvolutionLayer, typename DepthwiseConvolutionLayer3x3>
-Status validate_depthwise_convolution_layer(DepthwiseConvolutionLayerNode &node)
-{
- ARM_COMPUTE_LOG_GRAPH_VERBOSE("Validating DepthwiseConvolutionLayer node with ID : " << node.id() << " and Name: " << node.name() << std::endl);
- ARM_COMPUTE_RETURN_ERROR_ON(node.num_inputs() != 3);
- ARM_COMPUTE_RETURN_ERROR_ON(node.num_outputs() != 1);
-
- // Extract IO and info
- arm_compute::ITensorInfo *weights = detail::get_backing_tensor_info(node.input(1));
- const DepthwiseConvolutionMethod dwc_algorithm = node.depthwise_convolution_method();
- ARM_COMPUTE_ERROR_ON(weights == nullptr);
-
- // TODO (geopin01) : Switch when validation is implemented
- // Validate function
- if((dwc_algorithm == DepthwiseConvolutionMethod::OPTIMIZED_3x3) && (weights->tensor_shape().x() != 3))
- {
- ARM_COMPUTE_LOG_GRAPH_INFO("Switched DepthwiseConvolutionLayer method of node with ID : "
- << node.id() << " and Name: " << node.name() << std::endl);
- node.set_depthwise_convolution_method(DepthwiseConvolutionMethod::DEFAULT);
- }
-
- return Status{};
-}
-} // namespace detail
-} // namespace backends
-} // namespace graph2
-} // namespace arm_compute
-
-#endif /* __ARM_COMPUTE_GRAPH2_BACKENDS_DETAIL_VALIDATE_HELPERS_H__ */
diff --git a/arm_compute/graph2/detail/ExecutionHelpers.h b/arm_compute/graph2/detail/ExecutionHelpers.h
deleted file mode 100644
index bc3cfd5d72..0000000000
--- a/arm_compute/graph2/detail/ExecutionHelpers.h
+++ /dev/null
@@ -1,99 +0,0 @@
-/*
- * Copyright (c) 2018 ARM Limited.
- *
- * SPDX-License-Identifier: MIT
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to
- * deal in the Software without restriction, including without limitation the
- * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
- * sell copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-#ifndef __ARM_COMPUTE_GRAPH2_DETAIL_EXECUTION_HELPERS_H__
-#define __ARM_COMPUTE_GRAPH2_DETAIL_EXECUTION_HELPERS_H__
-
-#include "arm_compute/graph2/Types.h"
-
-namespace arm_compute
-{
-namespace graph2
-{
-// Forward declarations
-class Graph;
-class GraphContext;
-class ExecutionWorkload;
-class Tensor;
-
-namespace detail
-{
-/** Initializes the available backends **/
-void default_initialize_backends();
-/** Configures all nodes of a graph
- *
- * @param[in] g Graph to configure
- */
-void configure_all_tensors(Graph &g);
-/** Allocates all tensors of a graph
- *
- * @param[in] g Graph to allocate the tensors
- */
-void allocate_all_tensors(Graph &g);
-/** Validates all nodes
- *
- * @param[in] g Graph to validate
- */
-void validate_all_nodes(Graph &g);
-/** Configures all nodes of graph
- *
- * @param[in] g Graph to configure the nodes
- * @param[in] ctx Graph context to use
- *
- * @return The execution workload
- */
-ExecutionWorkload configure_all_nodes(Graph &g, GraphContext &ctx);
-/** Release the memory of all unused const nodes
- *
- * @param[in] g Graph to release the memory from
- */
-void release_unused_tensors(Graph &g);
-/** Calls accessor of a given tensor
- *
- * @param[in] tensor The tensor of which the accessor should be called
- */
-void call_tensor_accessor(Tensor *tensor);
-/** Call all const node accessors
- *
- * @param[in] g Graph containing the const nodes
- */
-void call_all_const_node_accessors(Graph &g);
-/** Call all input node accessors
- *
- * @param[in] workload Workload to execute
- */
-void call_all_input_node_accessors(ExecutionWorkload &workload);
-/** Call all output node accessors
- *
- * @param[in] workload Workload to execute
- */
-void call_all_output_node_accessors(ExecutionWorkload &workload);
-/** Executes all tasks of a workload
- *
- * @param[in] workload Workload to execute
- */
-void call_all_tasks(ExecutionWorkload &workload);
-} // namespace detail
-} // namespace graph2
-} // namespace arm_compute
-#endif /* __ARM_COMPUTE_GRAPH2_DETAIL_EXECUTION_HELPERS_H__ */
diff --git a/arm_compute/graph2/frontend/ILayer.h b/arm_compute/graph2/frontend/ILayer.h
deleted file mode 100644
index f8f6a5d47e..0000000000
--- a/arm_compute/graph2/frontend/ILayer.h
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * Copyright (c) 2018 ARM Limited.
- *
- * SPDX-License-Identifier: MIT
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to
- * deal in the Software without restriction, including without limitation the
- * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
- * sell copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-#ifndef __ARM_COMPUTE_GRAPH2_ILAYER_H__
-#define __ARM_COMPUTE_GRAPH2_ILAYER_H__
-
-namespace arm_compute
-{
-namespace graph2
-{
-namespace frontend
-{
-// Forward declarations
-class IStream;
-
-/** ILayer interface */
-class ILayer
-{
-public:
- /** Default destructor */
- virtual ~ILayer() = default;
- /** Create layer and add to the given stream.
- *
- * @param[in] s Stream to add layer to.
- *
- * @return ID of the created node.
- */
- virtual NodeID create_layer(IStream &s) = 0;
-};
-} // namespace frontend
-} // namespace graph2
-} // namespace arm_compute
-#endif /* __ARM_COMPUTE_GRAPH2_ILAYER_H__ */
diff --git a/arm_compute/graph2/frontend/IStream.h b/arm_compute/graph2/frontend/IStream.h
deleted file mode 100644
index 110be5230d..0000000000
--- a/arm_compute/graph2/frontend/IStream.h
+++ /dev/null
@@ -1,93 +0,0 @@
-/*
- * Copyright (c) 2018 ARM Limited.
- *
- * SPDX-License-Identifier: MIT
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to
- * deal in the Software without restriction, including without limitation the
- * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
- * sell copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-#ifndef __ARM_COMPUTE_GRAPH2_ISTREAM_H__
-#define __ARM_COMPUTE_GRAPH2_ISTREAM_H__
-
-#include "arm_compute/graph2/frontend/Types.h"
-
-namespace arm_compute
-{
-namespace graph2
-{
-// Forward declarations
-class Graph;
-
-namespace frontend
-{
-// Forward declarations
-class ILayer;
-
-/** Stream interface **/
-class IStream
-{
-public:
- virtual ~IStream() = default;
- /** Adds a layer to the stream
- *
- * @param[in] layer Layer to add
- */
- virtual void add_layer(ILayer &layer) = 0;
- /** Returns the underlying graph
- *
- * @return Underlying graph
- */
- virtual Graph &graph() = 0;
- /** Returns the underlying graph
- *
- * @return Underlying graph
- */
- virtual const Graph &graph() const = 0;
- /** Returns the tail node of the Stream
- *
- * @return Tail Node ID
- */
- NodeID tail_node()
- {
- return _tail_node;
- }
- /** Returns the stream hints that are currently used
- *
- * @return Stream hints
- */
- StreamHints &hints()
- {
- return _hints;
- }
- /** Forwards tail of stream to a given nid
- *
- * @param[in] nid NodeID of the updated tail node
- */
- void forward_tail(NodeID nid)
- {
- _tail_node = (nid != NullTensorID) ? nid : _tail_node;
- }
-
-protected:
- StreamHints _hints = {}; /**< Execution and algorithmic hints */
- NodeID _tail_node = { EmptyNodeID }; /**< NodeID pointing to the last(tail) node of the graph */
-};
-} // namespace frontend
-} // namespace graph2
-} // namespace arm_compute
-#endif /* __ARM_COMPUTE_GRAPH2_ISTREAM_H__ */
diff --git a/arm_compute/graph2/frontend/IStreamOperators.h b/arm_compute/graph2/frontend/IStreamOperators.h
deleted file mode 100644
index 1798e4a4ab..0000000000
--- a/arm_compute/graph2/frontend/IStreamOperators.h
+++ /dev/null
@@ -1,90 +0,0 @@
-/*
- * Copyright (c) 2018 ARM Limited.
- *
- * SPDX-License-Identifier: MIT
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to
- * deal in the Software without restriction, including without limitation the
- * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
- * sell copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-#ifndef __ARM_COMPUTE_GRAPH2_ISTREAM_OPERATORS_H__
-#define __ARM_COMPUTE_GRAPH2_ISTREAM_OPERATORS_H__
-
-#include "arm_compute/graph2/frontend/IStream.h"
-#include "arm_compute/graph2/frontend/Types.h"
-
-namespace arm_compute
-{
-namespace graph2
-{
-namespace frontend
-{
-// Forward declarations
-class ILayer;
-
-/** Overloaded stream operator to add a node to the graph
- *
- * @param[in, out] s Stream to add the tensor
- * @param[in] layer Layer to be added
- *
- * @return Updated stream
- */
-inline IStream &operator<<(IStream &s, ILayer &&layer)
-{
- s.add_layer(layer);
- return s;
-}
-/** Overloaded stream operator to provide a target hint to the graph
- *
- * @param[in, out] s Stream to provide the hint to
- * @param[in] target_hint Target hint to be considered
- *
- * @return Updated stream
- */
-inline IStream &operator<<(IStream &s, Target target_hint)
-{
- s.hints().target_hint = target_hint;
- return s;
-}
-/** Overloaded stream operator to provide a convolution method hint to the graph
- *
- * @param[in, out] s Stream to provide the hint to
- * @param[in] convolution_method_hint Convolution method hint to be considered
- *
- * @return Updated stream
- */
-inline IStream &operator<<(IStream &s, ConvolutionMethod convolution_method_hint)
-{
- s.hints().convolution_method_hint = convolution_method_hint;
- return s;
-}
-/** Overloaded stream operator to provide a depthwise convolution method hint to the graph
- *
- * @param[in, out] s Stream to provide the hint to
- * @param[in] depthwise_convolution_method_hint Depthwise Convolution method hint to be considered
- *
- * @return Updated stream
- */
-inline IStream &operator<<(IStream &s, DepthwiseConvolutionMethod depthwise_convolution_method_hint)
-{
- s.hints().depthwise_convolution_method_hint = depthwise_convolution_method_hint;
- return s;
-}
-} // namespace frontend
-} // namespace graph2
-} // namespace arm_compute
-#endif /* __ARM_COMPUTE_GRAPH2_ISTREAM_OPERATORS_H__ */
diff --git a/arm_compute/graph2/frontend/Layers.h b/arm_compute/graph2/frontend/Layers.h
deleted file mode 100644
index 779b471b52..0000000000
--- a/arm_compute/graph2/frontend/Layers.h
+++ /dev/null
@@ -1,471 +0,0 @@
-/*
- * Copyright (c) 2018 ARM Limited.
- *
- * SPDX-License-Identifier: MIT
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to
- * deal in the Software without restriction, including without limitation the
- * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
- * sell copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-#ifndef __ARM_COMPUTE_GRAPH2_LAYERS_H__
-#define __ARM_COMPUTE_GRAPH2_LAYERS_H__
-
-#include "arm_compute/graph2/GraphBuilder.h"
-#include "arm_compute/graph2/Types.h"
-#include "arm_compute/graph2/frontend/ILayer.h"
-#include "arm_compute/graph2/frontend/IStream.h"
-#include "arm_compute/graph2/frontend/SubStream.h"
-
-#include "arm_compute/core/utils/misc/Utility.h"
-
-#include <memory>
-#include <string>
-
-namespace arm_compute
-{
-namespace graph2
-{
-namespace frontend
-{
-/** Input Layer */
-class InputLayer final : public ILayer
-{
-public:
- /** Construct an input layer.
- *
- * @param[in] desc Description of input tensor.
- * @param[in] accessor Accessor to get input tensor data from.
- */
- InputLayer(TensorDescriptor desc, ITensorAccessorUPtr accessor)
- : _desc(desc), _accessor(std::move(accessor))
- {
- }
-
- NodeID create_layer(IStream &s) override
- {
- NodeParams common_params = { "", s.hints().target_hint };
- return GraphBuilder::add_input_node(s.graph(), common_params, _desc, std::move(_accessor));
- }
-
-private:
- TensorDescriptor _desc;
- ITensorAccessorUPtr _accessor;
-};
-
-/** Output Layer */
-class OutputLayer final : public ILayer
-{
-public:
- /** Construct an output layer.
- *
- * @param[in] accessor Accessor to give output tensor data to.
- */
- OutputLayer(ITensorAccessorUPtr accessor)
- : _accessor(std::move(accessor))
- {
- }
-
- NodeID create_layer(IStream &s) override
- {
- NodeParams common_params = { "", s.hints().target_hint };
- NodeIdxPair input = { s.tail_node(), 0 };
- return GraphBuilder::add_output_node(s.graph(), common_params, input, std::move(_accessor));
- }
-
-private:
- ITensorAccessorUPtr _accessor;
-};
-
-/** Activation Layer */
-class ActivationLayer final : public ILayer
-{
-public:
- /** Construct an activation layer.
- *
- * @param[in] act_info Activation information
- */
- ActivationLayer(ActivationLayerInfo act_info)
- : _act_info(act_info)
- {
- }
-
- NodeID create_layer(IStream &s) override
- {
- NodeParams common_params = { "", s.hints().target_hint };
- NodeIdxPair input = { s.tail_node(), 0 };
- return GraphBuilder::add_activation_node(s.graph(), common_params, input, _act_info);
- }
-
-private:
- ActivationLayerInfo _act_info;
-};
-
-/** Batchnormalization Layer */
-class BatchNormalizationLayer final : public ILayer
-{
-public:
- /** Construct a batch normalization layer.
- *
- * @param[in] mean Accessor to get mean tensor data from.
- * @param[in] var Accessor to get var tensor data from.
- * @param[in] gamma (Optional) Accessor to get gamma tensor data from. Default: nullptr.
- * @param[in] beta (Optional) Accessor to get beta tensor data from. Default: nullptr.
- * @param[in] epsilon (Optional) Epsilon value. Default: 0.001.
- */
- BatchNormalizationLayer(ITensorAccessorUPtr mean,
- ITensorAccessorUPtr var,
- ITensorAccessorUPtr gamma = nullptr,
- ITensorAccessorUPtr beta = nullptr,
- float epsilon = 0.001f)
- : _mean(std::move(mean)), _var(std::move(var)), _gamma(std::move(gamma)), _beta(std::move(beta)), _epsilon(epsilon)
- {
- }
-
- NodeID create_layer(IStream &s) override
- {
- ARM_COMPUTE_ERROR_ON(_mean == nullptr);
- ARM_COMPUTE_ERROR_ON(_var == nullptr);
-
- NodeParams common_params = { "", s.hints().target_hint };
- NodeIdxPair input = { s.tail_node(), 0 };
- return GraphBuilder::add_batch_normalization_node(s.graph(), common_params, input, _epsilon,
- std::move(_mean), std::move(_var), std::move(_beta), std::move(_gamma));
- }
-
-private:
- ITensorAccessorUPtr _mean;
- ITensorAccessorUPtr _var;
- ITensorAccessorUPtr _gamma;
- ITensorAccessorUPtr _beta;
- float _epsilon;
-};
-
-/** Convolution Layer */
-class ConvolutionLayer final : public ILayer
-{
-public:
- /** Construct a convolution layer.
- *
- * @param[in] conv_width Convolution width.
- * @param[in] conv_height Convolution height.
- * @param[in] ofm Output feature map.
- * @param[in] weights Accessor to get kernel weights from.
- * @param[in] bias Accessor to get kernel bias from.
- * @param[in] conv_info Padding and stride information.
- * @param[in] num_groups (Optional) Number of groups. Default: 1.
- */
- ConvolutionLayer(unsigned int conv_width,
- unsigned int conv_height,
- unsigned int ofm,
- ITensorAccessorUPtr weights,
- ITensorAccessorUPtr bias,
- PadStrideInfo conv_info,
- unsigned int num_groups = 1)
- : _conv_width(conv_width),
- _conv_height(conv_height),
- _ofm(ofm),
- _conv_info(std::move(conv_info)),
- _num_groups(num_groups),
- _weights(std::move(weights)),
- _bias(std::move(bias))
- {
- }
-
- NodeID create_layer(IStream &s) override
- {
- NodeIdxPair input = { s.tail_node(), 0 };
- NodeParams common_params = { "", s.hints().target_hint };
- return GraphBuilder::add_convolution_node(s.graph(), common_params, input,
- Size2D(_conv_width, _conv_height), _ofm, _conv_info, _num_groups,
- s.hints().convolution_method_hint,
- std::move(_weights), std::move(_bias));
- }
-
-private:
- unsigned int _conv_width;
- unsigned int _conv_height;
- unsigned int _ofm;
- const PadStrideInfo _conv_info;
- unsigned int _num_groups;
- ITensorAccessorUPtr _weights;
- ITensorAccessorUPtr _bias;
-};
-
-/** Depthwise Convolution Layer */
-class DepthwiseConvolutionLayer final : public ILayer
-{
-public:
- /** Construct a depthwise convolution layer.
- *
- * @param[in] conv_width Convolution width.
- * @param[in] conv_height Convolution height.
- * @param[in] weights Accessor to get kernel weights from.
- * @param[in] bias Accessor to get kernel bias from.
- * @param[in] conv_info Padding and stride information.
- */
- DepthwiseConvolutionLayer(unsigned int conv_width,
- unsigned int conv_height,
- ITensorAccessorUPtr weights,
- ITensorAccessorUPtr bias,
- PadStrideInfo conv_info)
- : _conv_width(conv_width),
- _conv_height(conv_height),
- _conv_info(std::move(conv_info)),
- _weights(std::move(weights)),
- _bias(std::move(bias))
- {
- }
-
- NodeID create_layer(IStream &s) override
- {
- NodeIdxPair input = { s.tail_node(), 0 };
- NodeParams common_params = { "", s.hints().target_hint };
- return GraphBuilder::add_depthwise_convolution_node(s.graph(), common_params,
- input, Size2D(_conv_width, _conv_height), _conv_info,
- s.hints().depthwise_convolution_method_hint,
- std::move(_weights), std::move(_bias));
- }
-
-private:
- unsigned int _conv_width;
- unsigned int _conv_height;
- const PadStrideInfo _conv_info;
- ITensorAccessorUPtr _weights;
- ITensorAccessorUPtr _bias;
-};
-
-/** Flatten Layer */
-class FlattenLayer final : public ILayer
-{
-public:
- /** Construct a flatten layer. */
- FlattenLayer()
- {
- }
-
- NodeID create_layer(IStream &s) override
- {
- NodeParams common_params = { "", s.hints().target_hint };
- NodeIdxPair input = { s.tail_node(), 0 };
- return GraphBuilder::add_flatten_node(s.graph(), common_params, input);
- }
-};
-
-/** Fully Connected Layer */
-class FullyConnectedLayer final : public ILayer
-{
-public:
- /** Construct a fully connected layer.
- *
- * @param[in] num_outputs Number of outputs.
- * @param[in] weights Accessor to get weights from.
- * @param[in] bias Accessor to get bias from.
- */
- FullyConnectedLayer(unsigned int num_outputs,
- ITensorAccessorUPtr weights,
- ITensorAccessorUPtr bias)
- : _num_outputs(num_outputs), _weights(std::move(weights)), _bias(std::move(bias))
- {
- }
-
- NodeID create_layer(IStream &s) override
- {
- NodeParams common_params = { "", s.hints().target_hint };
- NodeIdxPair input = { s.tail_node(), 0 };
- return GraphBuilder::add_fully_connected_layer(s.graph(), common_params, input, _num_outputs,
- std::move(_weights), std::move(_bias));
- }
-
-private:
- unsigned int _num_outputs;
- ITensorAccessorUPtr _weights;
- ITensorAccessorUPtr _bias;
-};
-
-/** Normalization Layer */
-class NormalizationLayer final : public ILayer
-{
-public:
- /** Construct a normalization layer.
- *
- * @param[in] norm_info Normalization information.
- */
- NormalizationLayer(NormalizationLayerInfo norm_info)
- : _norm_info(norm_info)
- {
- }
-
- NodeID create_layer(IStream &s) override
- {
- NodeParams common_params = { "", s.hints().target_hint };
- NodeIdxPair input = { s.tail_node(), 0 };
- return GraphBuilder::add_normalization_node(s.graph(), common_params, input, _norm_info);
- }
-
-private:
- NormalizationLayerInfo _norm_info;
-};
-
-/** Pooling Layer */
-class PoolingLayer final : public ILayer
-{
-public:
- /** Construct a pooling layer.
- *
- * @param[in] pool_info Pooling information.
- */
- PoolingLayer(PoolingLayerInfo pool_info)
- : _pool_info(pool_info)
- {
- }
-
- NodeID create_layer(IStream &s) override
- {
- NodeParams common_params = { "", s.hints().target_hint };
- NodeIdxPair input = { s.tail_node(), 0 };
- return GraphBuilder::add_pooling_node(s.graph(), common_params, input, _pool_info);
- }
-
-private:
- PoolingLayerInfo _pool_info;
-};
-
-/** Reshape Layer */
-class ReshapeLayer final : public ILayer
-{
-public:
- /** Construct a reshape layer.
- *
- * @param[in] shape Target shape.
- */
- ReshapeLayer(TensorShape shape)
- : _shape(shape)
- {
- }
-
- NodeID create_layer(IStream &s) override
- {
- NodeParams common_params = { "", s.hints().target_hint };
- NodeIdxPair input = { s.tail_node(), 0 };
- return GraphBuilder::add_reshape_node(s.graph(), common_params, input, _shape);
- }
-
-private:
- TensorShape _shape;
-};
-
-/** Softmax Layer */
-class SoftmaxLayer final : public ILayer
-{
-public:
- /** Construct a softmax layer.
- *
- * @param[in] beta (Optional) Beta value. Default 1.0.
- */
- SoftmaxLayer(float beta = 1.0f)
- : _beta(beta)
- {
- }
-
- NodeID create_layer(IStream &s) override
- {
- NodeParams common_params = { "", s.hints().target_hint };
- NodeIdxPair input = { s.tail_node(), 0 };
- return GraphBuilder::add_softmax_node(s.graph(), common_params, input, _beta);
- }
-
-private:
- float _beta;
-};
-
-/** Branch Layer */
-class BranchLayer final : public ILayer
-{
-public:
- /** Construct a branch layer
- *
- * @param[in] merge_method Branch merging method
- * @param[in] sub_stream1 First graph branch
- * @param[in] sub_stream2 Second graph branch
- * @param[in] rest_sub_streams Rest sub-graph branches
- */
- template <typename... Ts>
- BranchLayer(BranchMergeMethod merge_method, SubStream &&sub_stream1, SubStream &&sub_stream2, Ts &&... rest_sub_streams)
- : _branch_merge_method(merge_method), _sub_streams()
- {
- _sub_streams.push_back(arm_compute::support::cpp14::make_unique<SubStream>(std::move(sub_stream1)));
- _sub_streams.push_back(arm_compute::support::cpp14::make_unique<SubStream>(std::move(sub_stream2)));
-
- utility::for_each([&](SubStream && sub_stream)
- {
- _sub_streams.push_back(arm_compute::support::cpp14::make_unique<SubStream>(std::move(sub_stream)));
- },
- std::move(rest_sub_streams)...);
- }
- /** Construct a branch layer
- *
- * @param[in] sub_stream Sub-stream
- */
- template <typename... Ts>
- BranchLayer(SubStream &&sub_stream)
- : _branch_merge_method(BranchMergeMethod::DEPTH_CONCATENATE), _sub_streams()
- {
- _sub_streams.push_back(arm_compute::support::cpp14::make_unique<SubStream>(std::move(sub_stream)));
- }
- NodeID create_layer(IStream &s) override
- {
- NodeID nid = EmptyNodeID;
- NodeParams common_params = { "", s.hints().target_hint };
- if(_sub_streams.size() == 1 && _sub_streams.at(0) != nullptr)
- {
- nid = _sub_streams[0]->tail_node();
- }
- else if(_branch_merge_method == BranchMergeMethod::DEPTH_CONCATENATE)
- {
- // Collect tail nodes and perform DepthConcatenate
- std::vector<NodeIdxPair> nodes;
- for(auto &ss : _sub_streams)
- {
- if(ss && (ss->tail_node() != EmptyNodeID))
- {
- const auto tail_node = s.graph().node(ss->tail_node());
- if(tail_node != nullptr && tail_node->type() != NodeType::Output)
- {
- nodes.push_back({ ss->tail_node(), 0 });
- }
- }
- }
- nid = GraphBuilder::add_depth_concatenate_node(s.graph(), common_params, nodes);
- }
- else
- {
- ARM_COMPUTE_ERROR_ON(_sub_streams.size() != 2);
- NodeIdxPair input0 = { _sub_streams[0]->tail_node(), 0 };
- NodeIdxPair input1 = { _sub_streams[1]->tail_node(), 0 };
- nid = GraphBuilder::add_elementwise_node(s.graph(), common_params, input0, input1, EltwiseOperation::ADD);
- }
- return nid;
- }
-
-private:
- BranchMergeMethod _branch_merge_method;
- std::vector<std::unique_ptr<SubStream>> _sub_streams;
-};
-} // namespace frontend
-} // namespace graph2
-} // namespace arm_compute
-#endif /* __ARM_COMPUTE_GRAPH2_LAYERS_H__ */
diff --git a/arm_compute/graph2/frontend/Stream.h b/arm_compute/graph2/frontend/Stream.h
deleted file mode 100644
index bfefe12225..0000000000
--- a/arm_compute/graph2/frontend/Stream.h
+++ /dev/null
@@ -1,84 +0,0 @@
-/*
- * Copyright (c) 2018 ARM Limited.
- *
- * SPDX-License-Identifier: MIT
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to
- * deal in the Software without restriction, including without limitation the
- * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
- * sell copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-#ifndef __ARM_COMPUTE_GRAPH2_STREAM_H__
-#define __ARM_COMPUTE_GRAPH2_STREAM_H__
-
-#include "arm_compute/graph2/frontend/IStream.h"
-#include "arm_compute/graph2/frontend/IStreamOperators.h"
-#include "arm_compute/graph2/frontend/Types.h"
-
-#include "arm_compute/graph2/Graph.h"
-#include "arm_compute/graph2/GraphContext.h"
-#include "arm_compute/graph2/GraphManager.h"
-
-namespace arm_compute
-{
-namespace graph2
-{
-namespace frontend
-{
-// Forward Declarations
-class ILayer;
-
-/** Stream frontend class to construct simple graphs in a stream fashion */
-class Stream final : public IStream
-{
-public:
- /** Constructor
- *
- * @param[in] id Stream id
- * @param[in] name Stream name
- */
- Stream(size_t id, std::string name);
- /** Prevent instances of this class from being copied (As this class contains pointers) */
- Stream(const Stream &) = delete;
- /** Default move constructor */
- Stream(Stream &&) = default;
- /** Prevent instances of this class from being copied (As this class contains pointers) */
- Stream &operator=(const Stream &) = delete;
- /** Default move assignment operator */
- Stream &operator=(Stream &&) = default;
- /** Finalizes the stream for an execution target
- *
- * @param[in] target Execution target
- * @param[in] config (Optional) Graph configuration to use
- */
- void finalize(Target target, const GraphConfig &config);
- /** Executes the stream **/
- void run();
-
- // Inherited overridden methods
- void add_layer(ILayer &layer) override;
- Graph &graph() override;
- const Graph &graph() const override;
-
-private:
- GraphManager _manager; /**< Graph manager */
- GraphContext _ctx; /**< Graph context to use */
- Graph _g; /**< Internal graph representation of the stream */
-};
-} // namespace frontend
-} // namespace graph2
-} // namespace arm_compute
-#endif /* __ARM_COMPUTE_GRAPH2_STREAM_H__ */ \ No newline at end of file
diff --git a/arm_compute/graph2/frontend/SubStream.h b/arm_compute/graph2/frontend/SubStream.h
deleted file mode 100644
index dee09b76ea..0000000000
--- a/arm_compute/graph2/frontend/SubStream.h
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- * Copyright (c) 2018 ARM Limited.
- *
- * SPDX-License-Identifier: MIT
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to
- * deal in the Software without restriction, including without limitation the
- * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
- * sell copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-#ifndef __ARM_COMPUTE_GRAPH2_SUB_STREAM_H__
-#define __ARM_COMPUTE_GRAPH2_SUB_STREAM_H__
-
-#include "arm_compute/graph2/frontend/IStream.h"
-#include "arm_compute/graph2/frontend/IStreamOperators.h"
-#include "arm_compute/graph2/frontend/Types.h"
-
-#include <memory>
-#include <vector>
-
-namespace arm_compute
-{
-namespace graph2
-{
-// Forward declarations
-class Graph;
-
-namespace frontend
-{
-// Forward declarations
-class ILayer;
-
-/** Sub stream class*/
-class SubStream final : public IStream
-{
-public:
- /** Default Constructor
- *
- * @param[in] s Parent stream
- */
- SubStream(IStream &s);
- /** Prevent instances of this class from being copied (As this class contains pointers) */
- SubStream(const SubStream &) = delete;
- /** Default move constructor */
- SubStream(SubStream &&) = default;
- /** Prevent instances of this class from being copied (As this class contains pointers) */
- SubStream &operator=(const SubStream &) = delete;
- /** Default move assignment operator */
- SubStream &operator=(SubStream &&) = default;
-
- // Inherited overridden methods
- void add_layer(ILayer &layer) override;
- Graph &graph() override;
- const Graph &graph() const override;
-
-private:
- IStream &_s; /**< Parent stream (assume that the lifetime of the parent is longer) */
-};
-} // namespace frontend
-} // namespace graph2
-} // namespace arm_compute
-#endif /* __ARM_COMPUTE_GRAPH2_SUB_STREAM_H__ */
diff --git a/arm_compute/graph2/frontend/Types.h b/arm_compute/graph2/frontend/Types.h
deleted file mode 100644
index d433d1547b..0000000000
--- a/arm_compute/graph2/frontend/Types.h
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * Copyright (c) 2018 ARM Limited.
- *
- * SPDX-License-Identifier: MIT
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to
- * deal in the Software without restriction, including without limitation the
- * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
- * sell copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-#ifndef __ARM_COMPUTE_GRAPH2_STREAM_TYPES_H__
-#define __ARM_COMPUTE_GRAPH2_STREAM_TYPES_H__
-
-#include "arm_compute/graph2/Types.h"
-
-namespace arm_compute
-{
-namespace graph2
-{
-namespace frontend
-{
-// Import types for graph
-using graph2::DataType;
-using graph2::TensorShape;
-
-using graph2::ActivationLayerInfo;
-using graph2::NormalizationLayerInfo;
-using graph2::NormType;
-using graph2::PadStrideInfo;
-using graph2::PoolingLayerInfo;
-using graph2::PoolingType;
-using graph2::Target;
-using graph2::ConvolutionMethod;
-using graph2::DepthwiseConvolutionMethod;
-using graph2::TensorDescriptor;
-using graph2::DimensionRoundingType;
-using graph2::GraphConfig;
-
-/** Branch layer merging method */
-enum class BranchMergeMethod
-{
- DEPTH_CONCATENATE, /**< Concatenate across depth */
- ADD /**< Adds the results of each stream */
-};
-
-/** Hints that can be passed to the stream to expose parameterization */
-struct StreamHints
-{
- Target target_hint = { Target::UNSPECIFIED }; /**< Target execution hint */
- ConvolutionMethod convolution_method_hint = { ConvolutionMethod::DEFAULT }; /**< Convolution method hint */
- DepthwiseConvolutionMethod depthwise_convolution_method_hint = { DepthwiseConvolutionMethod::DEFAULT }; /**< Depthwise Convolution method hint */
-};
-} // namespace frontend
-} // namespace graph2
-} // namespace arm_compute
-#endif /* __ARM_COMPUTE_GRAPH2_STREAM_TYPES_H__ */ \ No newline at end of file
diff --git a/arm_compute/graph2/mutators/DepthConcatSubTensorMutator.h b/arm_compute/graph2/mutators/DepthConcatSubTensorMutator.h
deleted file mode 100644
index bdf2e01edb..0000000000
--- a/arm_compute/graph2/mutators/DepthConcatSubTensorMutator.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Copyright (c) 2018 ARM Limited.
- *
- * SPDX-License-Identifier: MIT
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to
- * deal in the Software without restriction, including without limitation the
- * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
- * sell copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-#ifndef __ARM_COMPUTE_GRAPH2_DEPTH_CONCAT_SUBTENSOR_MUTATOR_H__
-#define __ARM_COMPUTE_GRAPH2_DEPTH_CONCAT_SUBTENSOR_MUTATOR_H__
-
-#include "arm_compute/graph2/IGraphMutator.h"
-
-namespace arm_compute
-{
-namespace graph2
-{
-/** Mutation pass to optimize depth concatenation operations by using sub-tensors
- *
- * @warning Always run as one of the last mutation pass as optimizations might change the parent of sub-tensors.
- **/
-class DepthConcatSubTensorMutator final : public IGraphMutator
-{
-public:
- // Inherited methods overridden
- virtual void mutate(Graph &g) override;
- const char *name() override;
-};
-} // namespace graph2
-} // namespace arm_compute
-#endif /* __ARM_COMPUTE_GRAPH2_DEPTH_CONCAT_SUBTENSOR_MUTATOR_H__ */
diff --git a/arm_compute/graph2/mutators/GraphMutators.h b/arm_compute/graph2/mutators/GraphMutators.h
deleted file mode 100644
index 3275e32961..0000000000
--- a/arm_compute/graph2/mutators/GraphMutators.h
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * Copyright (c) 2018 ARM Limited.
- *
- * SPDX-License-Identifier: MIT
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to
- * deal in the Software without restriction, including without limitation the
- * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
- * sell copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-#ifndef __ARM_COMPUTE_GRAPH2_GRAPH_MUTATORS_H__
-#define __ARM_COMPUTE_GRAPH2_GRAPH_MUTATORS_H__
-
-#include "arm_compute/graph2/mutators/DepthConcatSubTensorMutator.h"
-#include "arm_compute/graph2/mutators/InPlaceOperationMutator.h"
-#include "arm_compute/graph2/mutators/NodeFusionMutator.h"
-#include "arm_compute/graph2/mutators/SplitLayerSubTensorMutator.h"
-
-#endif /* __ARM_COMPUTE_GRAPH2_GRAPH_MUTATORS_H__ */
diff --git a/arm_compute/graph2/mutators/InPlaceOperationMutator.h b/arm_compute/graph2/mutators/InPlaceOperationMutator.h
deleted file mode 100644
index 7e4018a736..0000000000
--- a/arm_compute/graph2/mutators/InPlaceOperationMutator.h
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Copyright (c) 2018 ARM Limited.
- *
- * SPDX-License-Identifier: MIT
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to
- * deal in the Software without restriction, including without limitation the
- * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
- * sell copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-#ifndef __ARM_COMPUTE_GRAPH2_INPLACE_OPERATION_MUTATOR_H__
-#define __ARM_COMPUTE_GRAPH2_INPLACE_OPERATION_MUTATOR_H__
-
-#include "arm_compute/graph2/IGraphMutator.h"
-
-namespace arm_compute
-{
-namespace graph2
-{
-/** Mutation pass to optimize operations that can be performed in-place */
-class InPlaceOperationMutator final : public IGraphMutator
-{
-public:
- // Inherited methods overridden
- virtual void mutate(Graph &g) override;
- const char *name() override;
-};
-} // namespace graph2
-} // namespace arm_compute
-#endif /* __ARM_COMPUTE_GRAPH2_INPLACE_OPERATION_MUTATOR_H__ */
diff --git a/arm_compute/graph2/mutators/NodeFusionMutator.h b/arm_compute/graph2/mutators/NodeFusionMutator.h
deleted file mode 100644
index 4371bd3ebe..0000000000
--- a/arm_compute/graph2/mutators/NodeFusionMutator.h
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * Copyright (c) 2018 ARM Limited.
- *
- * SPDX-License-Identifier: MIT
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to
- * deal in the Software without restriction, including without limitation the
- * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
- * sell copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-#ifndef __ARM_COMPUTE_GRAPH2_NODE_FUSION_MUTATOR_H__
-#define __ARM_COMPUTE_GRAPH2_NODE_FUSION_MUTATOR_H__
-
-#include "arm_compute/graph2/IGraphMutator.h"
-
-namespace arm_compute
-{
-namespace graph2
-{
-namespace detail
-{
-/** Fused batch normalization with activation
- *
- * @param[in] g Graph to perform operation fusion on
- */
-void fuse_batch_norm_with_activation(Graph &g);
-} // namespace detail
-
-/** Mutation pass to fuss nodes */
-class NodeFusionMutator final : public IGraphMutator
-{
-public:
- // Inherited methods overridden
- virtual void mutate(Graph &g) override;
- const char *name() override;
-};
-} // namespace graph2
-} // namespace arm_compute
-#endif /* __ARM_COMPUTE_GRAPH2_NODE_FUSION_MUTATOR_H__ */
diff --git a/arm_compute/graph2/mutators/SplitLayerSubTensorMutator.h b/arm_compute/graph2/mutators/SplitLayerSubTensorMutator.h
deleted file mode 100644
index 82ee509a32..0000000000
--- a/arm_compute/graph2/mutators/SplitLayerSubTensorMutator.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Copyright (c) 2018 ARM Limited.
- *
- * SPDX-License-Identifier: MIT
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to
- * deal in the Software without restriction, including without limitation the
- * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
- * sell copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-#ifndef __ARM_COMPUTE_GRAPH2_SPLIT_LAYER_SUBTENSOR_MUTATOR_H__
-#define __ARM_COMPUTE_GRAPH2_SPLIT_LAYER_SUBTENSOR_MUTATOR_H__
-
-#include "arm_compute/graph2/IGraphMutator.h"
-
-namespace arm_compute
-{
-namespace graph2
-{
-/** Mutation pass to optimize split operations by using sub-tensors
- *
- * @warning This is compulsory to run in case Split layers are present in the model
- **/
-class SplitLayerSubTensorMutator final : public IGraphMutator
-{
-public:
- // Inherited methods overridden
- virtual void mutate(Graph &g) override;
- const char *name() override;
-};
-} // namespace graph2
-} // namespace arm_compute
-#endif /* __ARM_COMPUTE_GRAPH2_SPLIT_LAYER_SUBTENSOR_MUTATOR_H__ */
diff --git a/arm_compute/graph2/nodes/ActivationLayerNode.h b/arm_compute/graph2/nodes/ActivationLayerNode.h
deleted file mode 100644
index cb19c818c5..0000000000
--- a/arm_compute/graph2/nodes/ActivationLayerNode.h
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Copyright (c) 2018 ARM Limited.
- *
- * SPDX-License-Identifier: MIT
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to
- * deal in the Software without restriction, including without limitation the
- * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
- * sell copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-#ifndef __ARM_COMPUTE_GRAPH2_ACTIVATION_LAYER_NODE_H__
-#define __ARM_COMPUTE_GRAPH2_ACTIVATION_LAYER_NODE_H__
-
-#include "arm_compute/graph2/INode.h"
-
-namespace arm_compute
-{
-namespace graph2
-{
-/** Activation Layer node */
-class ActivationLayerNode final : public INode
-{
-public:
- /** Constructor
- *
- * @param[in] info Activation Layer information
- */
- ActivationLayerNode(ActivationLayerInfo info);
- /** Activation metadata accessor
- *
- * @return The activation info of the layer
- */
- ActivationLayerInfo activation_info() const;
-
- // Inherited overridden methods:
- Status validate() override;
- NodeType type() const override;
- bool forward_descriptors() override;
- TensorDescriptor configure_output(size_t idx) const override;
- void accept(INodeVisitor &v) override;
-
-private:
- ActivationLayerInfo _info;
-};
-} // namespace graph2
-} // namespace arm_compute
-#endif /* __ARM_COMPUTE_GRAPH2_ACTIVATION_LAYER_NODE_H__ */
diff --git a/arm_compute/graph2/nodes/BatchNormalizationLayerNode.h b/arm_compute/graph2/nodes/BatchNormalizationLayerNode.h
deleted file mode 100644
index a6e8e2b98e..0000000000
--- a/arm_compute/graph2/nodes/BatchNormalizationLayerNode.h
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- * Copyright (c) 2018 ARM Limited.
- *
- * SPDX-License-Identifier: MIT
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to
- * deal in the Software without restriction, including without limitation the
- * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
- * sell copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-#ifndef __ARM_COMPUTE_GRAPH2_BATCH_NORMALIZATION_LAYER_NODE_H__
-#define __ARM_COMPUTE_GRAPH2_BATCH_NORMALIZATION_LAYER_NODE_H__
-
-#include "arm_compute/graph2/INode.h"
-
-namespace arm_compute
-{
-namespace graph2
-{
-/** Batch Normalization Layer node */
-class BatchNormalizationLayerNode final : public INode
-{
-public:
- /** Constructor
- *
- * @param[in] epsilon (Optional) Epsilon parameter. Defaults to 1.f
- * @param[in] fused_activation (Optional) Fused activation layer. Disabled if not specified
- */
- BatchNormalizationLayerNode(float epsilon = 1.f, ActivationLayerInfo fused_activation = ActivationLayerInfo());
- /** Epsilon parameter accessor
- *
- * @return Epsilon parameter
- */
- float epsilon() const;
- /** Returns fused activation
- *
- * @return Fused activation
- */
- ActivationLayerInfo fused_activation() const;
- /** Sets fused activation
- *
- * @param[in] fused_activation Fused activation to set
- */
- void set_fused_activation(ActivationLayerInfo fused_activation);
-
- // Inherited overridden methods:
- Status validate() override;
- NodeType type() const override;
- bool forward_descriptors() override;
- TensorDescriptor configure_output(size_t idx) const override;
- void accept(INodeVisitor &v) override;
-
-private:
- float _epsilon;
- ActivationLayerInfo _fused_activation;
-};
-} // namespace graph2
-} // namespace arm_compute
-#endif /* __ARM_COMPUTE_GRAPH2_BATCH_NORMALIZATION_LAYER_NODE_H__ */
diff --git a/arm_compute/graph2/nodes/ConstNode.h b/arm_compute/graph2/nodes/ConstNode.h
deleted file mode 100644
index e1c66176f0..0000000000
--- a/arm_compute/graph2/nodes/ConstNode.h
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * Copyright (c) 2018 ARM Limited.
- *
- * SPDX-License-Identifier: MIT
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to
- * deal in the Software without restriction, including without limitation the
- * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
- * sell copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-#ifndef __ARM_COMPUTE_GRAPH2_CONST_NODE_H__
-#define __ARM_COMPUTE_GRAPH2_CONST_NODE_H__
-
-#include "arm_compute/graph2/INode.h"
-
-namespace arm_compute
-{
-namespace graph2
-{
-/** Const node */
-class ConstNode final : public INode
-{
-public:
- /** Constructor
- *
- * @param[in] desc Tensor descriptor
- */
- ConstNode(TensorDescriptor desc);
-
- // Inherited overridden methods:
- Status validate() override;
- NodeType type() const override;
- bool forward_descriptors() override;
- TensorDescriptor configure_output(size_t idx) const override;
- void accept(INodeVisitor &v) override;
-
-private:
- TensorDescriptor _desc;
-};
-} // namespace graph2
-} // namespace arm_compute
-#endif /* __ARM_COMPUTE_GRAPH2_CONST_NODE_H__ */
diff --git a/arm_compute/graph2/nodes/ConvolutionLayerNode.h b/arm_compute/graph2/nodes/ConvolutionLayerNode.h
deleted file mode 100644
index 6e3c9bef32..0000000000
--- a/arm_compute/graph2/nodes/ConvolutionLayerNode.h
+++ /dev/null
@@ -1,84 +0,0 @@
-/*
- * Copyright (c) 2018 ARM Limited.
- *
- * SPDX-License-Identifier: MIT
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to
- * deal in the Software without restriction, including without limitation the
- * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
- * sell copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-#ifndef __ARM_COMPUTE_GRAPH2_CONVOLUTION_LAYER_NODE_H__
-#define __ARM_COMPUTE_GRAPH2_CONVOLUTION_LAYER_NODE_H__
-
-#include "arm_compute/graph2/INode.h"
-
-namespace arm_compute
-{
-namespace graph2
-{
-/** Convolution Layer node */
-class ConvolutionLayerNode final : public INode
-{
-public:
- /** Constructor
- *
- * @param[in] info Convolution layer attributes
- * @param[in] method (Optional) Convolution method to use
- */
- ConvolutionLayerNode(PadStrideInfo info, ConvolutionMethod method = ConvolutionMethod::DEFAULT);
- /** Sets the convolution layer method to use
- *
- * @param[in] method Method to use for convolution
- */
- void set_convolution_method(ConvolutionMethod method);
- /** Convolution layer method accessor
- *
- * @note This is an indication on which convolution layer implementation to use,
- * if it fails to be created the library's heuristic approach will be used
- *
- * @return Convolution layer method do be used by the node
- */
- ConvolutionMethod convolution_method() const;
- /** Convolution metadata accessor
- *
- * @return Convolution information
- */
- PadStrideInfo convolution_info() const;
- /** Computes convolution output shape
- *
- * @param[in] input_shape Input shape
- * @param[in] weights_shape Weights shape
- * @param[in] info Convolution operation attributes
- *
- * @return Output shape
- */
- static TensorShape compute_output_shape(TensorShape input_shape, TensorShape weights_shape, PadStrideInfo info);
-
- // Inherited overridden methods:
- Status validate() override;
- NodeType type() const override;
- bool forward_descriptors() override;
- TensorDescriptor configure_output(size_t idx) const override;
- void accept(INodeVisitor &v) override;
-
-private:
- PadStrideInfo _info;
- ConvolutionMethod _method;
-};
-} // namespace graph2
-} // namespace arm_compute
-#endif /* __ARM_COMPUTE_GRAPH2_CONVOLUTION_LAYER_NODE_H__ */
diff --git a/arm_compute/graph2/nodes/DepthConcatenateLayerNode.h b/arm_compute/graph2/nodes/DepthConcatenateLayerNode.h
deleted file mode 100644
index 23c31048e9..0000000000
--- a/arm_compute/graph2/nodes/DepthConcatenateLayerNode.h
+++ /dev/null
@@ -1,78 +0,0 @@
-/*
- * Copyright (c) 2018 ARM Limited.
- *
- * SPDX-License-Identifier: MIT
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to
- * deal in the Software without restriction, including without limitation the
- * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
- * sell copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-#ifndef __ARM_COMPUTE_GRAPH2_DEPTH_CONCATENATE_LAYER_NODE_H__
-#define __ARM_COMPUTE_GRAPH2_DEPTH_CONCATENATE_LAYER_NODE_H__
-
-#include "arm_compute/graph2/INode.h"
-
-namespace arm_compute
-{
-namespace graph2
-{
-/** Depth Concatenation Layer node */
-class DepthConcatenateLayerNode final : public INode
-{
-public:
- /** Constructor
- *
- * @param[in] total_nodes Number of nodes that will get concatenated
- */
- DepthConcatenateLayerNode(unsigned int total_nodes);
- /** Computes depth concatenations output shape
- *
- * @param input_shapes Shapes of the inputs
- *
- * @return Expected output shape
- */
- static TensorShape compute_output_shape(const std::vector<TensorShape> &input_shapes);
- /** Disables or not the depth concatenate node
- *
- * @warning This is used when depth concatenate is performed with sub-tensors,
- * where this node is used as a placeholder.
- *
- * @param[in] is_enabled If true a backend function is created to perform the depth concatenation (involves copying),
- * while if false, no function is created and we assume that subtensors are properly set to simulate
- * a no copy operation.
- */
- void set_enabled(bool is_enabled);
- /** Enabled parameter accessor
- *
- * @return True if a backend function is to be created else false
- */
- bool is_enabled() const;
-
- // Inherited overridden methods:
- Status validate() override;
- NodeType type() const override;
- bool forward_descriptors() override;
- TensorDescriptor configure_output(size_t idx) const override;
- void accept(INodeVisitor &v) override;
-
-private:
- unsigned int _total_nodes;
- bool _is_enabled;
-};
-} // namespace graph2
-} // namespace arm_compute
-#endif /* __ARM_COMPUTE_GRAPH2_DEPTH_CONCATENATE_LAYER_NODE_H__ */
diff --git a/arm_compute/graph2/nodes/DepthwiseConvolutionLayerNode.h b/arm_compute/graph2/nodes/DepthwiseConvolutionLayerNode.h
deleted file mode 100644
index d5b8e34554..0000000000
--- a/arm_compute/graph2/nodes/DepthwiseConvolutionLayerNode.h
+++ /dev/null
@@ -1,84 +0,0 @@
-/*
- * Copyright (c) 2018 ARM Limited.
- *
- * SPDX-License-Identifier: MIT
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to
- * deal in the Software without restriction, including without limitation the
- * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
- * sell copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-#ifndef __ARM_COMPUTE_GRAPH2_DEPTHWISE_CONVOLUTION_LAYER_NODE_H__
-#define __ARM_COMPUTE_GRAPH2_DEPTHWISE_CONVOLUTION_LAYER_NODE_H__
-
-#include "arm_compute/graph2/INode.h"
-
-namespace arm_compute
-{
-namespace graph2
-{
-/** Depthwise Convolution Layer node */
-class DepthwiseConvolutionLayerNode final : public INode
-{
-public:
- /** Constructor
- *
- * @param[in] info Convolution layer attributes
- * @param[in] method Depthwise convolution method to use
- */
- DepthwiseConvolutionLayerNode(PadStrideInfo info, DepthwiseConvolutionMethod method = DepthwiseConvolutionMethod::DEFAULT);
- /** Sets the depthwise convolution method to use
- *
- * @param[in] method Depthwise convolution method to use
- */
- void set_depthwise_convolution_method(DepthwiseConvolutionMethod method);
- /** Depthwise convolution layer method accessor
- *
- * @note This is an indication on which depthwise implementation to use,
- * if it fails to be created the generic approach will be used
- *
- * @return Depthwise convolution layer method do be used by the node
- */
- DepthwiseConvolutionMethod depthwise_convolution_method() const;
- /** Convolution metadata accessor
- *
- * @return Convolution information
- */
- PadStrideInfo convolution_info() const;
- /** Computes depthwise convolution output shape
- *
- * @param[in] input_shape Input shape
- * @param[in] weights_shape Weights shape
- * @param[in] info Convolution operation attributes
- *
- * @return Output shape
- */
- static TensorShape compute_output_shape(TensorShape input_shape, TensorShape weights_shape, PadStrideInfo info);
-
- // Inherited overridden methods:
- Status validate() override;
- NodeType type() const override;
- bool forward_descriptors() override;
- TensorDescriptor configure_output(size_t idx) const override;
- void accept(INodeVisitor &v) override;
-
-private:
- PadStrideInfo _info;
- DepthwiseConvolutionMethod _method;
-};
-} // namespace graph2
-} // namespace arm_compute
-#endif /* __ARM_COMPUTE_GRAPH2_DEPTHWISE_CONVOLUTION_LAYER_NODE_H__ */
diff --git a/arm_compute/graph2/nodes/EltwiseLayerNode.h b/arm_compute/graph2/nodes/EltwiseLayerNode.h
deleted file mode 100644
index 48df2b715d..0000000000
--- a/arm_compute/graph2/nodes/EltwiseLayerNode.h
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Copyright (c) 2018 ARM Limited.
- *
- * SPDX-License-Identifier: MIT
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to
- * deal in the Software without restriction, including without limitation the
- * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
- * sell copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-#ifndef __ARM_COMPUTE_GRAPH2_ELTWISE_LAYER_NODE_H__
-#define __ARM_COMPUTE_GRAPH2_ELTWISE_LAYER_NODE_H__
-
-#include "arm_compute/graph2/INode.h"
-
-namespace arm_compute
-{
-namespace graph2
-{
-/** Eltwise Layer node */
-class EltwiseLayerNode final : public INode
-{
-public:
- /** Constructor
- *
- * @param[in] op Element-wise operation to perform
- */
- EltwiseLayerNode(EltwiseOperation op);
- /** Eltwise operation accessor
- *
- * @return Eltwise operation that is to be performed by the node
- */
- EltwiseOperation eltwise_operation() const;
-
- // Inherited overridden methods:
- Status validate() override;
- NodeType type() const override;
- bool forward_descriptors() override;
- TensorDescriptor configure_output(size_t idx) const override;
- void accept(INodeVisitor &v) override;
-
-private:
- EltwiseOperation _op;
-};
-} // namespace graph2
-} // namespace arm_compute
-#endif /* __ARM_COMPUTE_GRAPH2_ELTWISE_LAYER_NODE_H__ */
diff --git a/arm_compute/graph2/nodes/FlattenLayerNode.h b/arm_compute/graph2/nodes/FlattenLayerNode.h
deleted file mode 100644
index 41f6f85045..0000000000
--- a/arm_compute/graph2/nodes/FlattenLayerNode.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * Copyright (c) 2018 ARM Limited.
- *
- * SPDX-License-Identifier: MIT
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to
- * deal in the Software without restriction, including without limitation the
- * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
- * sell copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-#ifndef __ARM_COMPUTE_GRAPH2_FLATTEN_LAYER_NODE_H__
-#define __ARM_COMPUTE_GRAPH2_FLATTEN_LAYER_NODE_H__
-
-#include "arm_compute/graph2/INode.h"
-
-namespace arm_compute
-{
-namespace graph2
-{
-/** Flatten Layer node */
-class FlattenLayerNode final : public INode
-{
-public:
- /** Default Constructor */
- FlattenLayerNode();
-
- // Inherited overridden methods:
- Status validate() override;
- NodeType type() const override;
- bool forward_descriptors() override;
- TensorDescriptor configure_output(size_t idx) const override;
- void accept(INodeVisitor &v) override;
-};
-} // namespace graph2
-} // namespace arm_compute
-#endif /* __ARM_COMPUTE_GRAPH2_FLATTEN_LAYER_NODE_H__ */
diff --git a/arm_compute/graph2/nodes/FullyConnectedLayerNode.h b/arm_compute/graph2/nodes/FullyConnectedLayerNode.h
deleted file mode 100644
index 5c71f4ca69..0000000000
--- a/arm_compute/graph2/nodes/FullyConnectedLayerNode.h
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- * Copyright (c) 2018 ARM Limited.
- *
- * SPDX-License-Identifier: MIT
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to
- * deal in the Software without restriction, including without limitation the
- * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
- * sell copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-#ifndef __ARM_COMPUTE_GRAPH2_FULLY_CONNECTED_LAYER_NODE_H__
-#define __ARM_COMPUTE_GRAPH2_FULLY_CONNECTED_LAYER_NODE_H__
-
-#include "arm_compute/graph2/INode.h"
-
-namespace arm_compute
-{
-namespace graph2
-{
-/** Fully Connected Layer node */
-class FullyConnectedLayerNode final : public INode
-{
-public:
- /** Constructor
- *
- * @param[in] num_outputs Number of neurons in the layer
- */
- FullyConnectedLayerNode(unsigned int num_outputs);
- /** Computes weights shape
- *
- * @warning Works for inputs with 1D batch space
- *
- * @param[in] input_shape Input shape
- * @param[in] num_outputs Number of output neurons
- *
- * @return Weights shape
- */
- static TensorShape compute_weights_shape(TensorShape input_shape, unsigned int num_outputs);
- /** Computes fully connected layer output shape
- *
- * @warning Works for inputs with 1D batch space
- *
- * @param[in] input_shape Input shape
- * @param[in] num_outputs Number of output neurons
- *
- * @return Output shape
- */
- static TensorShape compute_output_shape(TensorShape input_shape, unsigned int num_outputs);
-
- // Inherited overridden methods:
- Status validate() override;
- NodeType type() const override;
- bool forward_descriptors() override;
- TensorDescriptor configure_output(size_t idx) const override;
- void accept(INodeVisitor &v) override;
-
-private:
- unsigned int _num_outputs;
-};
-} // namespace graph2
-} // namespace arm_compute
-#endif /* __ARM_COMPUTE_GRAPH2_FULLY_CONNECTED_LAYER_NODE_H__ */
diff --git a/arm_compute/graph2/nodes/InputNode.h b/arm_compute/graph2/nodes/InputNode.h
deleted file mode 100644
index 667dcfacf0..0000000000
--- a/arm_compute/graph2/nodes/InputNode.h
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * Copyright (c) 2018 ARM Limited.
- *
- * SPDX-License-Identifier: MIT
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to
- * deal in the Software without restriction, including without limitation the
- * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
- * sell copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-#ifndef __ARM_COMPUTE_GRAPH2_INPUT_NODE_H__
-#define __ARM_COMPUTE_GRAPH2_INPUT_NODE_H__
-
-#include "arm_compute/graph2/INode.h"
-
-namespace arm_compute
-{
-namespace graph2
-{
-/** Input Layer node */
-class InputNode final : public INode
-{
-public:
- /** Constructor
- *
- * @param[in] desc Tensor descriptor
- */
- InputNode(TensorDescriptor desc);
-
- // Inherited overridden methods:
- Status validate() override;
- NodeType type() const override;
- bool forward_descriptors() override;
- TensorDescriptor configure_output(size_t idx) const override;
- void accept(INodeVisitor &v) override;
-
-private:
- TensorDescriptor _desc;
-};
-} // namespace graph2
-} // namespace arm_compute
-#endif /* __ARM_COMPUTE_GRAPH2_INPUT_NODE_H__ */
diff --git a/arm_compute/graph2/nodes/Nodes.h b/arm_compute/graph2/nodes/Nodes.h
deleted file mode 100644
index 3786978661..0000000000
--- a/arm_compute/graph2/nodes/Nodes.h
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * Copyright (c) 2018 ARM Limited.
- *
- * SPDX-License-Identifier: MIT
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to
- * deal in the Software without restriction, including without limitation the
- * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
- * sell copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-#ifndef __ARM_COMPUTE_GRAPH2_NODES_H__
-#define __ARM_COMPUTE_GRAPH2_NODES_H__
-
-#include "arm_compute/graph2/nodes/ActivationLayerNode.h"
-#include "arm_compute/graph2/nodes/BatchNormalizationLayerNode.h"
-#include "arm_compute/graph2/nodes/ConstNode.h"
-#include "arm_compute/graph2/nodes/ConvolutionLayerNode.h"
-#include "arm_compute/graph2/nodes/DepthConcatenateLayerNode.h"
-#include "arm_compute/graph2/nodes/DepthwiseConvolutionLayerNode.h"
-#include "arm_compute/graph2/nodes/EltwiseLayerNode.h"
-#include "arm_compute/graph2/nodes/FlattenLayerNode.h"
-#include "arm_compute/graph2/nodes/FullyConnectedLayerNode.h"
-#include "arm_compute/graph2/nodes/InputNode.h"
-#include "arm_compute/graph2/nodes/NormalizationLayerNode.h"
-#include "arm_compute/graph2/nodes/OutputNode.h"
-#include "arm_compute/graph2/nodes/PoolingLayerNode.h"
-#include "arm_compute/graph2/nodes/ReshapeLayerNode.h"
-#include "arm_compute/graph2/nodes/SoftmaxLayerNode.h"
-#include "arm_compute/graph2/nodes/SplitLayerNode.h"
-
-#endif /* __ARM_COMPUTE_GRAPH2_NODES_H__ */
diff --git a/arm_compute/graph2/nodes/NodesFwd.h b/arm_compute/graph2/nodes/NodesFwd.h
deleted file mode 100644
index 08f2454cde..0000000000
--- a/arm_compute/graph2/nodes/NodesFwd.h
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * Copyright (c) 2018 ARM Limited.
- *
- * SPDX-License-Identifier: MIT
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to
- * deal in the Software without restriction, including without limitation the
- * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
- * sell copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-#ifndef __ARM_COMPUTE_GRAPH2_NODES_FWD_H__
-#define __ARM_COMPUTE_GRAPH2_NODES_FWD_H__
-
-namespace arm_compute
-{
-namespace graph2
-{
-// Forward declarations
-class INode;
-class ActivationLayerNode;
-class BatchNormalizationLayerNode;
-class ConstNode;
-class ConvolutionLayerNode;
-class DepthConcatenateLayerNode;
-class DepthwiseConvolutionLayerNode;
-class EltwiseLayerNode;
-class FlattenLayerNode;
-class FullyConnectedLayerNode;
-class InputNode;
-class NormalizationLayerNode;
-class OutputNode;
-class PoolingLayerNode;
-class ReshapeLayerNode;
-class SoftmaxLayerNode;
-class SplitLayerNode;
-} // namespace graph2
-} // namespace arm_compute
-#endif /* __ARM_COMPUTE_GRAPH2_NODES_FWD_H__ */
diff --git a/arm_compute/graph2/nodes/NormalizationLayerNode.h b/arm_compute/graph2/nodes/NormalizationLayerNode.h
deleted file mode 100644
index 78a843a1e7..0000000000
--- a/arm_compute/graph2/nodes/NormalizationLayerNode.h
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Copyright (c) 2018 ARM Limited.
- *
- * SPDX-License-Identifier: MIT
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to
- * deal in the Software without restriction, including without limitation the
- * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
- * sell copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-#ifndef __ARM_COMPUTE_GRAPH2_NORMALIZATION_LAYER_NODE_H__
-#define __ARM_COMPUTE_GRAPH2_NORMALIZATION_LAYER_NODE_H__
-
-#include "arm_compute/graph2/INode.h"
-
-namespace arm_compute
-{
-namespace graph2
-{
-/** Normalization Layer node */
-class NormalizationLayerNode final : public INode
-{
-public:
- /** Constructor
- *
- * @param[in] norm_info Normalization Layer information
- */
- NormalizationLayerNode(NormalizationLayerInfo norm_info);
- /** Normalization info accessor
- *
- * @return Normalization layer info
- */
- NormalizationLayerInfo normalization_info() const;
-
- // Inherited overridden methods:
- Status validate() override;
- NodeType type() const override;
- bool forward_descriptors() override;
- TensorDescriptor configure_output(size_t idx) const override;
- void accept(INodeVisitor &v) override;
-
-private:
- NormalizationLayerInfo _info;
-};
-} // namespace graph2
-} // namespace arm_compute
-#endif /* __ARM_COMPUTE_GRAPH2_NORMALIZATION_LAYER_NODE_H__ */
diff --git a/arm_compute/graph2/nodes/OutputNode.h b/arm_compute/graph2/nodes/OutputNode.h
deleted file mode 100644
index 0c28c84214..0000000000
--- a/arm_compute/graph2/nodes/OutputNode.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * Copyright (c) 2018 ARM Limited.
- *
- * SPDX-License-Identifier: MIT
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to
- * deal in the Software without restriction, including without limitation the
- * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
- * sell copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-#ifndef __ARM_COMPUTE_GRAPH2_OUTPUT_NODE_H__
-#define __ARM_COMPUTE_GRAPH2_OUTPUT_NODE_H__
-
-#include "arm_compute/graph2/INode.h"
-
-namespace arm_compute
-{
-namespace graph2
-{
-/** Output Layer node */
-class OutputNode final : public INode
-{
-public:
- /** Default Constructor */
- OutputNode();
-
- // Inherited overridden methods:
- Status validate() override;
- NodeType type() const override;
- bool forward_descriptors() override;
- TensorDescriptor configure_output(size_t idx) const override;
- void accept(INodeVisitor &v) override;
-};
-} // namespace graph2
-} // namespace arm_compute
-#endif /* __ARM_COMPUTE_GRAPH2_OUTPUT_NODE_H__ */
diff --git a/arm_compute/graph2/nodes/PoolingLayerNode.h b/arm_compute/graph2/nodes/PoolingLayerNode.h
deleted file mode 100644
index 09332a9367..0000000000
--- a/arm_compute/graph2/nodes/PoolingLayerNode.h
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- * Copyright (c) 2018 ARM Limited.
- *
- * SPDX-License-Identifier: MIT
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to
- * deal in the Software without restriction, including without limitation the
- * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
- * sell copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-#ifndef __ARM_COMPUTE_GRAPH2_POOLING_LAYER_NODE_H__
-#define __ARM_COMPUTE_GRAPH2_POOLING_LAYER_NODE_H__
-
-#include "arm_compute/graph2/INode.h"
-
-namespace arm_compute
-{
-namespace graph2
-{
-/** Pooling Layer node */
-class PoolingLayerNode final : public INode
-{
-public:
- /** Constructor
- *
- * @param[in] pool_info Pooling Layer information
- */
- PoolingLayerNode(PoolingLayerInfo pool_info);
- /** Pooling metadata accessor
- *
- * @return Pooling Layer info
- */
- PoolingLayerInfo pooling_info() const;
- /** Computes pooling output shape
- *
- * @param[in] input_shape Input shape
- * @param[in] info Pooling operation attributes
- *
- * @return Output shape
- */
- static TensorShape compute_output_shape(TensorShape input_shape, PoolingLayerInfo info);
-
- // Inherited overridden methods:
- Status validate() override;
- NodeType type() const override;
- bool forward_descriptors() override;
- TensorDescriptor configure_output(size_t idx) const override;
- void accept(INodeVisitor &v) override;
-
-private:
- PoolingLayerInfo _info;
-};
-} // namespace graph2
-} // namespace arm_compute
-#endif /* __ARM_COMPUTE_GRAPH2_POOLING_LAYER_NODE_H__ */
diff --git a/arm_compute/graph2/nodes/ReshapeLayerNode.h b/arm_compute/graph2/nodes/ReshapeLayerNode.h
deleted file mode 100644
index 27d52601da..0000000000
--- a/arm_compute/graph2/nodes/ReshapeLayerNode.h
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * Copyright (c) 2018 ARM Limited.
- *
- * SPDX-License-Identifier: MIT
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to
- * deal in the Software without restriction, including without limitation the
- * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
- * sell copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-#ifndef __ARM_COMPUTE_GRAPH2_RESHAPE_LAYER_NODE_H__
-#define __ARM_COMPUTE_GRAPH2_RESHAPE_LAYER_NODE_H__
-
-#include "arm_compute/graph2/INode.h"
-
-namespace arm_compute
-{
-namespace graph2
-{
-/** Reshape Layer node */
-class ReshapeLayerNode final : public INode
-{
-public:
- /** Constructor
- *
- * @param[in] shape Reshaped tensor shape
- */
- ReshapeLayerNode(TensorShape shape);
-
- // Inherited overridden methods:
- Status validate() override;
- NodeType type() const override;
- bool forward_descriptors() override;
- TensorDescriptor configure_output(size_t idx) const override;
- void accept(INodeVisitor &v) override;
-
-private:
- TensorShape _shape;
-};
-} // namespace graph2
-} // namespace arm_compute
-#endif /* __ARM_COMPUTE_GRAPH2_RESHAPE_LAYER_NODE_H__ */
diff --git a/arm_compute/graph2/nodes/SoftmaxLayerNode.h b/arm_compute/graph2/nodes/SoftmaxLayerNode.h
deleted file mode 100644
index b1091e28fc..0000000000
--- a/arm_compute/graph2/nodes/SoftmaxLayerNode.h
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Copyright (c) 2018 ARM Limited.
- *
- * SPDX-License-Identifier: MIT
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to
- * deal in the Software without restriction, including without limitation the
- * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
- * sell copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-#ifndef __ARM_COMPUTE_GRAPH2_SOFTMAX_LAYER_NODE_H__
-#define __ARM_COMPUTE_GRAPH2_SOFTMAX_LAYER_NODE_H__
-
-#include "arm_compute/graph2/INode.h"
-
-namespace arm_compute
-{
-namespace graph2
-{
-/** Softmax Layer node */
-class SoftmaxLayerNode final : public INode
-{
-public:
- /** Constructor
- *
- * @param[in] beta (Optional) Beta parameter. Defaults to 1
- */
- SoftmaxLayerNode(float beta = 1.f);
- /** Beta parameter accessor
- *
- * @return Beta parameter
- */
- float beta() const;
-
- // Inherited overridden methods:
- Status validate() override;
- NodeType type() const override;
- bool forward_descriptors() override;
- TensorDescriptor configure_output(size_t idx) const override;
- void accept(INodeVisitor &v) override;
-
-private:
- float _beta;
-};
-} // namespace graph2
-} // namespace arm_compute
-#endif /* __ARM_COMPUTE_GRAPH2_SOFTMAX_LAYER_NODE_H__ */
diff --git a/arm_compute/graph2/nodes/SplitLayerNode.h b/arm_compute/graph2/nodes/SplitLayerNode.h
deleted file mode 100644
index 90e6134ac0..0000000000
--- a/arm_compute/graph2/nodes/SplitLayerNode.h
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- * Copyright (c) 2018 ARM Limited.
- *
- * SPDX-License-Identifier: MIT
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to
- * deal in the Software without restriction, including without limitation the
- * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
- * sell copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-#ifndef __ARM_COMPUTE_GRAPH2_SPLIT_LAYER_NODE_H__
-#define __ARM_COMPUTE_GRAPH2_SPLIT_LAYER_NODE_H__
-
-#include "arm_compute/graph2/INode.h"
-
-#include <tuple>
-
-namespace arm_compute
-{
-namespace graph2
-{
-/** Split Layer node */
-class SplitLayerNode final : public INode
-{
-public:
- /** Default Constructor
- *
- * @param[in] num_splits Number of splits
- * @param[in] axis (Optional) Axis to split on. Supported axis >= 2. Defaults to 0
- */
- SplitLayerNode(unsigned int num_splits, unsigned int axis = 0);
- /** Computes split layer output shape
- *
- * @param[in] input_shape Shape of the input
- * @param[in] num_splits Number of splits
- * @param[in] axis Axis to perform the split on
- * @param[in] idx Index of the split
- *
- * @return A pair with the shape of the split and the starting coordinates
- */
- static std::pair<TensorShape, Coordinates> compute_output_shape(TensorShape input_shape, unsigned int num_splits, unsigned int axis, unsigned int idx);
- /** Number of splits accessor
- *
- * @return Number of splits
- */
- unsigned int num_splits() const;
- /** Split axis accessor
- *
- * @return Split axis
- */
- unsigned int axis() const;
-
- // Inherited overridden methods:
- Status validate() override;
- NodeType type() const override;
- bool forward_descriptors() override;
- TensorDescriptor configure_output(size_t idx) const override;
- void accept(INodeVisitor &v) override;
-
-private:
- unsigned int _num_splits;
- unsigned int _axis;
-};
-} // namespace graph2
-} // namespace arm_compute
-#endif /* __ARM_COMPUTE_GRAPH2_SPLIT_LAYER_NODE_H__ */
diff --git a/arm_compute/graph2/printers/DotGraphPrinter.h b/arm_compute/graph2/printers/DotGraphPrinter.h
deleted file mode 100644
index 0efdf772e3..0000000000
--- a/arm_compute/graph2/printers/DotGraphPrinter.h
+++ /dev/null
@@ -1,105 +0,0 @@
-/*
- * Copyright (c) 2018 ARM Limited.
- *
- * SPDX-License-Identifier: MIT
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to
- * deal in the Software without restriction, including without limitation the
- * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
- * sell copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-#ifndef __ARM_COMPUTE_GRAPH2_DOTGRAPHPRINTER_H__
-#define __ARM_COMPUTE_GRAPH2_DOTGRAPHPRINTER_H__
-
-#include "arm_compute/graph2/IGraphPrinter.h"
-
-#include "arm_compute/graph2/INodeVisitor.h"
-
-#include <string>
-
-namespace arm_compute
-{
-namespace graph2
-{
-/** Graph printer visitor. */
-class DotGraphVisitor final : public DefaultNodeVisitor
-{
-public:
- /** Default Constructor **/
- DotGraphVisitor() = default;
- /** Returns the output information of the last visited node
- *
- * @return Information of the last visited node
- */
- const std::string &info() const;
-
- // Reveal parent method
- using DefaultNodeVisitor::visit;
-
- // Inherited methods overridden
- void visit(ActivationLayerNode &n) override;
- void visit(BatchNormalizationLayerNode &n) override;
- void visit(ConvolutionLayerNode &n) override;
- void visit(DepthConcatenateLayerNode &n) override;
- void visit(DepthwiseConvolutionLayerNode &n) override;
- void visit(EltwiseLayerNode &n) override;
- void visit(NormalizationLayerNode &n) override;
- void visit(PoolingLayerNode &n) override;
- void default_visit() override;
-
-private:
- std::string _info{};
-};
-
-/** Graph printer interface */
-class DotGraphPrinter final : public IGraphPrinter
-{
-public:
- // Inherited methods overridden
- void print(const Graph &g, std::ostream &os) override;
-
-private:
- /** Print dot graph header
- *
- * @param[in] g Graph
- * @param[out] os Output stream to use
- */
- void print_header(const Graph &g, std::ostream &os);
- /** Print dot graph footer
- *
- * @param[in] g Graph
- * @param[out] os Output stream to use
- */
- void print_footer(const Graph &g, std::ostream &os);
- /** Prints nodes in dot format
- *
- * @param[in] g Graph
- * @param[out] os Output stream to use
- */
- void print_nodes(const Graph &g, std::ostream &os);
- /** Prints edges in dot format
- *
- * @param[in] g Graph
- * @param[out] os Output stream to use
- */
- void print_edges(const Graph &g, std::ostream &os);
-
-private:
- DotGraphVisitor _dot_node_visitor = {};
-};
-} // namespace graph2
-} // namespace arm_compute
-#endif /* __ARM_COMPUTE_GRAPH2_DOTGRAPHPRINTER_H__ */
diff --git a/arm_compute/graph2/printers/Printers.h b/arm_compute/graph2/printers/Printers.h
deleted file mode 100644
index 0b70139683..0000000000
--- a/arm_compute/graph2/printers/Printers.h
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * Copyright (c) 2018 ARM Limited.
- *
- * SPDX-License-Identifier: MIT
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to
- * deal in the Software without restriction, including without limitation the
- * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
- * sell copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-#ifndef __ARM_COMPUTE_GRAPH2_PRINTERS_H__
-#define __ARM_COMPUTE_GRAPH2_PRINTERS_H__
-
-#include "arm_compute/graph2/printers/DotGraphPrinter.h"
-
-#endif /* __ARM_COMPUTE_GRAPH2_PRINTERS_H__ */