aboutsummaryrefslogtreecommitdiff
path: root/src/armnn/Network.hpp
diff options
context:
space:
mode:
authorDerek Lamberti <derek.lamberti@arm.com>2019-06-13 11:40:08 +0100
committerDerek Lamberti <derek.lamberti@arm.com>2019-06-24 15:00:15 +0000
commit84da38b0f11ca3db0a439e510514be780f3933ff (patch)
tree56532f4842abc1ad00ae57bc20ddc72cada59b4c /src/armnn/Network.hpp
parent9515c7ec4f4535fff2c8f2d3f88974474d3f3468 (diff)
downloadarmnn-84da38b0f11ca3db0a439e510514be780f3933ff.tar.gz
IVGCVSW-3277 Refactor TensorHandle factory API
* Added backend support for multiple types of TensorHandle factories * Refactored the backend API to enable new tensor strategies * Added mechanism to determine memory strategies during optimization * Perform mem-copy only when Direct access is not found * Explicitly deleted the copy-constructor from OutputSlot to prevent accidental local copies that would cause the DisconnectAll to be called by the destructor Change-Id: I7e812c8e5e6c1c20db1c5932749ac70fd93db7f8 Signed-off-by: Derek Lamberti <derek.lamberti@arm.com> Signed-off-by: Matteo Martincigh <matteo.martincigh@arm.com>
Diffstat (limited to 'src/armnn/Network.hpp')
-rw-r--r--src/armnn/Network.hpp24
1 files changed, 24 insertions, 0 deletions
diff --git a/src/armnn/Network.hpp b/src/armnn/Network.hpp
index b90e3c2f8d..8db968a3f9 100644
--- a/src/armnn/Network.hpp
+++ b/src/armnn/Network.hpp
@@ -13,6 +13,7 @@
#include <string>
#include <vector>
+#include <map>
#include <memory>
#include "Layer.hpp"
@@ -229,4 +230,27 @@ private:
std::unique_ptr<Graph> m_Graph;
};
+
+
+struct OptimizationResult
+{
+ bool m_Warning;
+ bool m_Error;
+
+ OptimizationResult()
+ : m_Warning(false)
+ , m_Error(false)
+ {}
+};
+
+using BackendsMap = std::map<BackendId, std::unique_ptr<class IBackendInternal>>;
+
+BackendsMap CreateSupportedBackends(TensorHandleFactoryRegistry& handleFactoryRegistry,
+ struct BackendSettings& backendSettings);
+
+OptimizationResult SelectTensorHandleStrategy(Graph& optGraph,
+ BackendsMap& backends,
+ TensorHandleFactoryRegistry& registry,
+ Optional<std::vector<std::string>&> errMessages);
+
} // namespace armnn