CMAKE: moved GNA var setting to proper place; removed find_package when build python...
[platform/upstream/dldt.git] / inference-engine / src / hetero_plugin / hetero_graph_splitter.hpp
1 // Copyright (C) 2018-2019 Intel Corporation
2 // SPDX-License-Identifier: Apache-2.0
3 //
4
5 #pragma once
6
7 #include <ie_blob.h>
8 #include <ie_layers.h>
9
10 #include <string>
11 #include <functional>
12 #include <unordered_set>
13 #include <vector>
14 #include <utility>
15
16 namespace InferenceEngine {
17 class ICNNNetwork;
18
19 using LayersSet = std::unordered_set<CNNLayerPtr>;
20
21 /// Split network on subgraphs based on layer affinity
22 ///
23 /// @param network - source network
24 /// @param checkers - list of supported plugins
25 ///
26 /// @return list of subgraphs
27 std::vector<LayersSet>
28 splitGraph(ICNNNetwork& network,
29            const std::vector<std::string>& plugins);
30
31 /// Sort sugraphs topologically, behaviour is undefined if there are circular
32 /// refences between subgraps
33 ///
34 /// @param subgraphs - list of subgraphs
35 void
36 sortSubgraphs(std::vector<LayersSet>& subgraphs);
37
38 }  // namespace InferenceEngine
39