aboutsummaryrefslogtreecommitdiff
path: root/src/backends
diff options
context:
space:
mode:
Diffstat (limited to 'src/backends')
-rw-r--r--src/backends/README.md2
-rw-r--r--src/backends/backendsCommon/BackendRegistry.cpp86
-rw-r--r--src/backends/backendsCommon/BackendRegistry.hpp61
-rw-r--r--src/backends/backendsCommon/CMakeLists.txt2
-rw-r--r--src/backends/backendsCommon/DynamicBackend.hpp3
-rw-r--r--src/backends/backendsCommon/WorkloadFactory.cpp3
-rw-r--r--src/backends/backendsCommon/common.mk1
-rw-r--r--src/backends/backendsCommon/test/BackendRegistryTests.cpp2
-rw-r--r--src/backends/backendsCommon/test/CommonTestUtils.hpp5
-rw-r--r--src/backends/backendsCommon/test/DynamicBackendTests.hpp2
-rw-r--r--src/backends/backendsCommon/test/MockBackend.cpp3
-rw-r--r--src/backends/backendsCommon/test/OptimizeSubgraphViewTests.cpp2
-rw-r--r--src/backends/cl/ClBackend.cpp3
-rw-r--r--src/backends/cl/ClLayerSupport.cpp4
-rw-r--r--src/backends/cl/ClRegistryInitializer.cpp2
-rw-r--r--src/backends/neon/NeonBackend.cpp3
-rw-r--r--src/backends/neon/NeonLayerSupport.cpp6
-rw-r--r--src/backends/neon/NeonRegistryInitializer.cpp2
-rw-r--r--src/backends/reference/RefBackend.cpp3
-rw-r--r--src/backends/reference/RefLayerSupport.cpp2
-rw-r--r--src/backends/reference/RefRegistryInitializer.cpp2
21 files changed, 27 insertions, 172 deletions
diff --git a/src/backends/README.md b/src/backends/README.md
index a75bc9cb28..4c59222097 100644
--- a/src/backends/README.md
+++ b/src/backends/README.md
@@ -125,7 +125,7 @@ The method ```OptimizationViews OptimizeSubgraph(const SubgraphView& subgraph)``
apply specific optimizations to a given sub-graph.
The Arm NN framework then creates instances of the IBackendInternal interface with the help of the
-[BackendRegistry](backendsCommon/BackendRegistry.hpp) singleton.
+[BackendRegistry](../../include/armnn/BackendRegistry.hpp) singleton.
**Important:** the ```IBackendInternal``` object is not guaranteed to have a longer lifetime than
the objects it creates. It is only intended to be a single entry point for the factory functions it has.
diff --git a/src/backends/backendsCommon/BackendRegistry.cpp b/src/backends/backendsCommon/BackendRegistry.cpp
deleted file mode 100644
index 7078304599..0000000000
--- a/src/backends/backendsCommon/BackendRegistry.cpp
+++ /dev/null
@@ -1,86 +0,0 @@
-//
-// Copyright © 2017 Arm Ltd. All rights reserved.
-// SPDX-License-Identifier: MIT
-//
-
-#include "BackendRegistry.hpp"
-#include <armnn/Exceptions.hpp>
-
-namespace armnn
-{
-
-BackendRegistry& BackendRegistryInstance()
-{
- static BackendRegistry instance;
- return instance;
-}
-
-void BackendRegistry::Register(const BackendId& id, BackendRegistry::FactoryFunction factory)
-{
- if (m_Factories.find(id) != m_Factories.end())
- {
- throw InvalidArgumentException(
- std::string(id) + " already registered as IBackend factory",
- CHECK_LOCATION());
- }
-
- m_Factories[id] = factory;
-}
-
-bool BackendRegistry::IsBackendRegistered(const BackendId& id) const
-{
- return (m_Factories.find(id) != m_Factories.end());
-}
-
-BackendRegistry::FactoryFunction BackendRegistry::GetFactory(const BackendId& id) const
-{
- auto it = m_Factories.find(id);
- if (it == m_Factories.end())
- {
- throw InvalidArgumentException(
- std::string(id) + " has no IBackend factory registered",
- CHECK_LOCATION());
- }
-
- return it->second;
-}
-
-size_t BackendRegistry::Size() const
-{
- return m_Factories.size();
-}
-
-BackendIdSet BackendRegistry::GetBackendIds() const
-{
- BackendIdSet result;
- for (const auto& it : m_Factories)
- {
- result.insert(it.first);
- }
- return result;
-}
-
-std::string BackendRegistry::GetBackendIdsAsString() const
-{
- static const std::string delimitator = ", ";
-
- std::stringstream output;
- for (auto& backendId : GetBackendIds())
- {
- if (output.tellp() != std::streampos(0))
- {
- output << delimitator;
- }
- output << backendId;
- }
-
- return output.str();
-}
-
-void BackendRegistry::Swap(BackendRegistry& instance, BackendRegistry::FactoryStorage& other)
-{
- std::swap(instance.m_Factories, other);
-}
-
-
-} // namespace armnn
diff --git a/src/backends/backendsCommon/BackendRegistry.hpp b/src/backends/backendsCommon/BackendRegistry.hpp
deleted file mode 100644
index 82e59d970b..0000000000
--- a/src/backends/backendsCommon/BackendRegistry.hpp
+++ /dev/null
@@ -1,61 +0,0 @@
-//
-// Copyright © 2017 Arm Ltd. All rights reserved.
-// SPDX-License-Identifier: MIT
-//
-#pragma once
-
-#include <armnn/Types.hpp>
-#include <armnn/BackendId.hpp>
-
-#include <memory>
-#include <unordered_map>
-#include <functional>
-
-namespace armnn
-{
-
-class IBackendInternal;
-using IBackendInternalUniquePtr = std::unique_ptr<IBackendInternal>;
-
-class BackendRegistry
-{
-public:
- using PointerType = IBackendInternalUniquePtr;
- using FactoryFunction = std::function<PointerType()>;
-
- void Register(const BackendId& id, FactoryFunction factory);
- bool IsBackendRegistered(const BackendId& id) const;
- FactoryFunction GetFactory(const BackendId& id) const;
- size_t Size() const;
- BackendIdSet GetBackendIds() const;
- std::string GetBackendIdsAsString() const;
-
- BackendRegistry() {}
- virtual ~BackendRegistry() {}
-
- struct StaticRegistryInitializer
- {
- StaticRegistryInitializer(BackendRegistry& instance,
- const BackendId& id,
- FactoryFunction factory)
- {
- instance.Register(id, factory);
- }
- };
-
-protected:
- using FactoryStorage = std::unordered_map<BackendId, FactoryFunction>;
-
- // For testing only
- static void Swap(BackendRegistry& instance, FactoryStorage& other);
-
-private:
- BackendRegistry(const BackendRegistry&) = delete;
- BackendRegistry& operator=(const BackendRegistry&) = delete;
-
- FactoryStorage m_Factories;
-};
-
-BackendRegistry& BackendRegistryInstance();
-
-} // namespace armnn
diff --git a/src/backends/backendsCommon/CMakeLists.txt b/src/backends/backendsCommon/CMakeLists.txt
index fc36365f99..d4947943ae 100644
--- a/src/backends/backendsCommon/CMakeLists.txt
+++ b/src/backends/backendsCommon/CMakeLists.txt
@@ -4,8 +4,6 @@
#
list(APPEND armnnBackendsCommon_sources
- BackendRegistry.cpp
- BackendRegistry.hpp
CpuTensorHandle.cpp
CpuTensorHandleFwd.hpp
CpuTensorHandle.hpp
diff --git a/src/backends/backendsCommon/DynamicBackend.hpp b/src/backends/backendsCommon/DynamicBackend.hpp
index 34c001958d..f888b1e27e 100644
--- a/src/backends/backendsCommon/DynamicBackend.hpp
+++ b/src/backends/backendsCommon/DynamicBackend.hpp
@@ -6,7 +6,8 @@
#pragma once
#include "IBackendInternal.hpp"
-#include "BackendRegistry.hpp"
+
+#include <armnn/BackendRegistry.hpp>
#include <functional>
#include <memory>
diff --git a/src/backends/backendsCommon/WorkloadFactory.cpp b/src/backends/backendsCommon/WorkloadFactory.cpp
index 34e4cbe579..31ad5cb45a 100644
--- a/src/backends/backendsCommon/WorkloadFactory.cpp
+++ b/src/backends/backendsCommon/WorkloadFactory.cpp
@@ -6,15 +6,14 @@
#include "CpuTensorHandle.hpp"
#include "WorkloadFactory.hpp"
-
#include <Layer.hpp>
#include <LayersFwd.hpp>
#include <armnn/Types.hpp>
#include <armnn/LayerSupport.hpp>
#include <armnn/ILayerSupport.hpp>
+#include <armnn/BackendRegistry.hpp>
-#include <backendsCommon/BackendRegistry.hpp>
#include <backendsCommon/WorkloadFactory.hpp>
#include <backendsCommon/IBackendInternal.hpp>
#include <backendsCommon/test/WorkloadTestUtils.hpp>
diff --git a/src/backends/backendsCommon/common.mk b/src/backends/backendsCommon/common.mk
index de0da68149..34040d67f9 100644
--- a/src/backends/backendsCommon/common.mk
+++ b/src/backends/backendsCommon/common.mk
@@ -8,7 +8,6 @@
# file in the root of ArmNN
COMMON_SOURCES := \
- BackendRegistry.cpp \
CpuTensorHandle.cpp \
DynamicBackend.cpp \
DynamicBackendUtils.cpp \
diff --git a/src/backends/backendsCommon/test/BackendRegistryTests.cpp b/src/backends/backendsCommon/test/BackendRegistryTests.cpp
index 283caafaf9..e1ab7ecb82 100644
--- a/src/backends/backendsCommon/test/BackendRegistryTests.cpp
+++ b/src/backends/backendsCommon/test/BackendRegistryTests.cpp
@@ -4,8 +4,8 @@
//
#include <armnn/Types.hpp>
+#include <armnn/BackendRegistry.hpp>
-#include <backendsCommon/BackendRegistry.hpp>
#include <backendsCommon/IBackendInternal.hpp>
#include <boost/test/unit_test.hpp>
diff --git a/src/backends/backendsCommon/test/CommonTestUtils.hpp b/src/backends/backendsCommon/test/CommonTestUtils.hpp
index 58bd6b197f..e96edc8317 100644
--- a/src/backends/backendsCommon/test/CommonTestUtils.hpp
+++ b/src/backends/backendsCommon/test/CommonTestUtils.hpp
@@ -9,8 +9,9 @@
#include <SubgraphView.hpp>
#include <SubgraphViewSelector.hpp>
+#include <armnn/BackendRegistry.hpp>
+
#include <backendsCommon/CpuTensorHandle.hpp>
-#include <backendsCommon/BackendRegistry.hpp>
#include <test/TestUtils.hpp>
@@ -73,4 +74,4 @@ armnn::TensorShape MakeTensorShape(unsigned int batches,
unsigned int channels,
unsigned int height,
unsigned int width,
- armnn::DataLayout layout); \ No newline at end of file
+ armnn::DataLayout layout);
diff --git a/src/backends/backendsCommon/test/DynamicBackendTests.hpp b/src/backends/backendsCommon/test/DynamicBackendTests.hpp
index 4a7ab19d54..2615bdc066 100644
--- a/src/backends/backendsCommon/test/DynamicBackendTests.hpp
+++ b/src/backends/backendsCommon/test/DynamicBackendTests.hpp
@@ -7,10 +7,10 @@
#include <backendsCommon/DynamicBackend.hpp>
#include <backendsCommon/DynamicBackendUtils.hpp>
-#include <backendsCommon/BackendRegistry.hpp>
#include <backendsCommon/CpuTensorHandle.hpp>
#include <armnn/ILayerSupport.hpp>
+#include <armnn/BackendRegistry.hpp>
#include <reference/workloads/RefConvolution2dWorkload.hpp>
diff --git a/src/backends/backendsCommon/test/MockBackend.cpp b/src/backends/backendsCommon/test/MockBackend.cpp
index 043b5125c7..4fb692ca63 100644
--- a/src/backends/backendsCommon/test/MockBackend.cpp
+++ b/src/backends/backendsCommon/test/MockBackend.cpp
@@ -6,9 +6,10 @@
#include "MockBackend.hpp"
#include "MockBackendId.hpp"
+#include <armnn/BackendRegistry.hpp>
+
#include <backendsCommon/IBackendContext.hpp>
#include <backendsCommon/IMemoryManager.hpp>
-#include <backendsCommon/BackendRegistry.hpp>
#include <Optimizer.hpp>
#include <SubgraphViewSelector.hpp>
diff --git a/src/backends/backendsCommon/test/OptimizeSubgraphViewTests.cpp b/src/backends/backendsCommon/test/OptimizeSubgraphViewTests.cpp
index a6e835612b..7cb5ded773 100644
--- a/src/backends/backendsCommon/test/OptimizeSubgraphViewTests.cpp
+++ b/src/backends/backendsCommon/test/OptimizeSubgraphViewTests.cpp
@@ -10,7 +10,7 @@
#include <Graph.hpp>
#include <Network.hpp>
-#include <backendsCommon/BackendRegistry.hpp>
+#include <armnn/BackendRegistry.hpp>
#include <boost/test/unit_test.hpp>
diff --git a/src/backends/cl/ClBackend.cpp b/src/backends/cl/ClBackend.cpp
index 95ffbc48fd..2528a45b03 100644
--- a/src/backends/cl/ClBackend.cpp
+++ b/src/backends/cl/ClBackend.cpp
@@ -10,9 +10,10 @@
#include "ClLayerSupport.hpp"
#include "ClTensorHandleFactory.hpp"
+#include <armnn/BackendRegistry.hpp>
+
#include <aclCommon/BaseMemoryManager.hpp>
-#include <backendsCommon/BackendRegistry.hpp>
#include <backendsCommon/IBackendContext.hpp>
#include <backendsCommon/IMemoryManager.hpp>
diff --git a/src/backends/cl/ClLayerSupport.cpp b/src/backends/cl/ClLayerSupport.cpp
index f9540f27b0..be565a523a 100644
--- a/src/backends/cl/ClLayerSupport.cpp
+++ b/src/backends/cl/ClLayerSupport.cpp
@@ -7,11 +7,11 @@
#include "ClBackendId.hpp"
#include <armnn/Descriptors.hpp>
+#include <armnn/BackendRegistry.hpp>
+
#include <InternalTypes.hpp>
#include <LayerSupportCommon.hpp>
-#include <backendsCommon/BackendRegistry.hpp>
-
#include <boost/core/ignore_unused.hpp>
#if defined(ARMCOMPUTECL_ENABLED)
diff --git a/src/backends/cl/ClRegistryInitializer.cpp b/src/backends/cl/ClRegistryInitializer.cpp
index 4d6f5f4a05..8decd6f689 100644
--- a/src/backends/cl/ClRegistryInitializer.cpp
+++ b/src/backends/cl/ClRegistryInitializer.cpp
@@ -5,7 +5,7 @@
#include "ClBackend.hpp"
-#include <backendsCommon/BackendRegistry.hpp>
+#include <armnn/BackendRegistry.hpp>
namespace
{
diff --git a/src/backends/neon/NeonBackend.cpp b/src/backends/neon/NeonBackend.cpp
index 63529c9693..5b005403f1 100644
--- a/src/backends/neon/NeonBackend.cpp
+++ b/src/backends/neon/NeonBackend.cpp
@@ -9,9 +9,10 @@
#include "NeonLayerSupport.hpp"
#include "NeonTensorHandleFactory.hpp"
+#include <armnn/BackendRegistry.hpp>
+
#include <aclCommon/BaseMemoryManager.hpp>
-#include <backendsCommon/BackendRegistry.hpp>
#include <backendsCommon/IBackendContext.hpp>
#include <backendsCommon/IMemoryManager.hpp>
diff --git a/src/backends/neon/NeonLayerSupport.cpp b/src/backends/neon/NeonLayerSupport.cpp
index cc96f63c1a..bc912ff9df 100644
--- a/src/backends/neon/NeonLayerSupport.cpp
+++ b/src/backends/neon/NeonLayerSupport.cpp
@@ -7,12 +7,12 @@
#include "NeonBackendId.hpp"
#include <armnn/Descriptors.hpp>
-#include <InternalTypes.hpp>
-#include <LayerSupportCommon.hpp>
#include <armnn/Tensor.hpp>
#include <armnn/Types.hpp>
+#include <armnn/BackendRegistry.hpp>
-#include <backendsCommon/BackendRegistry.hpp>
+#include <InternalTypes.hpp>
+#include <LayerSupportCommon.hpp>
#include <boost/core/ignore_unused.hpp>
diff --git a/src/backends/neon/NeonRegistryInitializer.cpp b/src/backends/neon/NeonRegistryInitializer.cpp
index c74acae96b..fd2e84dd5f 100644
--- a/src/backends/neon/NeonRegistryInitializer.cpp
+++ b/src/backends/neon/NeonRegistryInitializer.cpp
@@ -5,7 +5,7 @@
#include "NeonBackend.hpp"
-#include <backendsCommon/BackendRegistry.hpp>
+#include <armnn/BackendRegistry.hpp>
namespace
{
diff --git a/src/backends/reference/RefBackend.cpp b/src/backends/reference/RefBackend.cpp
index 2b56416b31..10cd5e5752 100644
--- a/src/backends/reference/RefBackend.cpp
+++ b/src/backends/reference/RefBackend.cpp
@@ -9,9 +9,10 @@
#include "RefLayerSupport.hpp"
#include "RefTensorHandleFactory.hpp"
+#include <armnn/BackendRegistry.hpp>
+
#include <backendsCommon/IBackendContext.hpp>
#include <backendsCommon/IMemoryManager.hpp>
-#include <backendsCommon/BackendRegistry.hpp>
#include <Optimizer.hpp>
diff --git a/src/backends/reference/RefLayerSupport.cpp b/src/backends/reference/RefLayerSupport.cpp
index c65886ba4d..59721582a3 100644
--- a/src/backends/reference/RefLayerSupport.cpp
+++ b/src/backends/reference/RefLayerSupport.cpp
@@ -12,8 +12,8 @@
#include <armnn/Types.hpp>
#include <armnn/Descriptors.hpp>
+#include <armnn/BackendRegistry.hpp>
-#include <backendsCommon/BackendRegistry.hpp>
#include <backendsCommon/LayerSupportRules.hpp>
#include <backendsCommon/test/WorkloadTestUtils.hpp>
diff --git a/src/backends/reference/RefRegistryInitializer.cpp b/src/backends/reference/RefRegistryInitializer.cpp
index 427c7f01ab..a06bd8d949 100644
--- a/src/backends/reference/RefRegistryInitializer.cpp
+++ b/src/backends/reference/RefRegistryInitializer.cpp
@@ -5,7 +5,7 @@
#include "RefBackend.hpp"
-#include <backendsCommon/BackendRegistry.hpp>
+#include <armnn/BackendRegistry.hpp>
namespace
{