diff options
author | Derek Lamberti <derek.lamberti@arm.com> | 2019-06-13 11:40:08 +0100 |
---|---|---|
committer | Derek Lamberti <derek.lamberti@arm.com> | 2019-06-24 15:00:15 +0000 |
commit | 84da38b0f11ca3db0a439e510514be780f3933ff (patch) | |
tree | 56532f4842abc1ad00ae57bc20ddc72cada59b4c /src/armnn/Network.hpp | |
parent | 9515c7ec4f4535fff2c8f2d3f88974474d3f3468 (diff) | |
download | armnn-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.hpp | 24 |
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 |