From f98d21a244c384c5942e4b261d168f65ecc8a797 Mon Sep 17 00:00:00 2001 From: David Beck Date: Fri, 26 Oct 2018 16:03:03 +0100 Subject: IVGCVSW-1896 : SubGraph selector Change-Id: Iae9a76b10d84d7ba80136b54355f8d37d2df475d --- src/armnn/SubGraphSelector.hpp | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 src/armnn/SubGraphSelector.hpp (limited to 'src/armnn/SubGraphSelector.hpp') diff --git a/src/armnn/SubGraphSelector.hpp b/src/armnn/SubGraphSelector.hpp new file mode 100644 index 0000000000..f96b986a2e --- /dev/null +++ b/src/armnn/SubGraphSelector.hpp @@ -0,0 +1,40 @@ +// +// Copyright © 2017 Arm Ltd. All rights reserved. +// SPDX-License-Identifier: MIT +// +#pragma once + +#include "SubGraph.hpp" +#include +#include + +namespace armnn +{ + +class Layer; +class Graph; + +class SubGraphSelector final +{ +public: + using SubGraphPtr = std::unique_ptr; + using SubGraphs = std::vector; + using LayerSelectorFunction = std::function; + + /// Selects subgraphs of a graph based on the selector function + /// and the algorithm. Since the SubGraphs returns modifiable pointers + /// the input and output slots of the graph: + /// 1) the graph cannot be const + /// 2) the caller need to make sure that the SubGraphs lifetime is + /// shorter than the graph's + static SubGraphs SelectSubGraphs(Graph& graph, + const LayerSelectorFunction& selector); + +private: + // this is a utility class, don't construct or copy + SubGraphSelector() = delete; + SubGraphSelector(const SubGraphSelector&) = delete; + SubGraphSelector & operator=(const SubGraphSelector&) = delete; +}; + +} // namespace armnn -- cgit v1.2.1