aboutsummaryrefslogtreecommitdiff
path: root/src/backends/cl
diff options
context:
space:
mode:
Diffstat (limited to 'src/backends/cl')
-rw-r--r--src/backends/cl/CMakeLists.txt2
-rw-r--r--src/backends/cl/ClBackend.cpp12
-rw-r--r--src/backends/cl/ClBackend.hpp6
-rw-r--r--src/backends/cl/ClBackendId.hpp12
-rw-r--r--src/backends/cl/ClLayerSupport.cpp18
5 files changed, 37 insertions, 13 deletions
diff --git a/src/backends/cl/CMakeLists.txt b/src/backends/cl/CMakeLists.txt
index d38fb68a0f..1f99017cdd 100644
--- a/src/backends/cl/CMakeLists.txt
+++ b/src/backends/cl/CMakeLists.txt
@@ -6,6 +6,7 @@
list(APPEND armnnClBackend_sources
ClBackend.cpp
ClBackend.hpp
+ ClBackendId.hpp
ClContextControl.cpp
ClContextControl.hpp
ClLayerSupport.cpp
@@ -16,6 +17,7 @@ list(APPEND armnnClBackend_sources
if(ARMCOMPUTECL)
list(APPEND armnnClBackend_sources
+ ClBackendId.hpp
OpenClTimer.cpp
OpenClTimer.hpp
)
diff --git a/src/backends/cl/ClBackend.cpp b/src/backends/cl/ClBackend.cpp
index 29d1b3a402..1bab96b49a 100644
--- a/src/backends/cl/ClBackend.cpp
+++ b/src/backends/cl/ClBackend.cpp
@@ -4,6 +4,7 @@
//
#include "ClBackend.hpp"
+#include "ClBackendId.hpp"
#include "ClWorkloadFactory.hpp"
#include <backends/BackendRegistry.hpp>
@@ -16,7 +17,9 @@ namespace armnn
namespace
{
-static BackendRegistry::Helper g_RegisterHelper{
+static StaticRegistryInitializer<BackendRegistry> g_RegisterHelper
+{
+ BackendRegistryInstance(),
ClBackend::GetIdStatic(),
[]()
{
@@ -28,15 +31,10 @@ static BackendRegistry::Helper g_RegisterHelper{
const BackendId& ClBackend::GetIdStatic()
{
- static const BackendId s_Id{"GpuAcc"};
+ static const BackendId s_Id{ClBackendId()};
return s_Id;
}
-const ILayerSupport& ClBackend::GetLayerSupport() const
-{
- return m_LayerSupport;
-}
-
std::unique_ptr<IWorkloadFactory> ClBackend::CreateWorkloadFactory() const
{
return std::make_unique<ClWorkloadFactory>();
diff --git a/src/backends/cl/ClBackend.hpp b/src/backends/cl/ClBackend.hpp
index 1a99b7652b..49a7a466c4 100644
--- a/src/backends/cl/ClBackend.hpp
+++ b/src/backends/cl/ClBackend.hpp
@@ -5,7 +5,6 @@
#pragma once
#include <backends/IBackendInternal.hpp>
-#include "ClLayerSupport.hpp"
namespace armnn
{
@@ -19,14 +18,9 @@ public:
static const BackendId& GetIdStatic();
const BackendId& GetId() const override { return GetIdStatic(); }
- const ILayerSupport& GetLayerSupport() const override;
-
std::unique_ptr<IWorkloadFactory> CreateWorkloadFactory() const override;
static void Destroy(IBackend* backend);
-
-private:
- ClLayerSupport m_LayerSupport;
};
} // namespace armnn \ No newline at end of file
diff --git a/src/backends/cl/ClBackendId.hpp b/src/backends/cl/ClBackendId.hpp
new file mode 100644
index 0000000000..3f8fec2a69
--- /dev/null
+++ b/src/backends/cl/ClBackendId.hpp
@@ -0,0 +1,12 @@
+//
+// Copyright © 2017 Arm Ltd. All rights reserved.
+// SPDX-License-Identifier: MIT
+//
+#pragma once
+
+namespace armnn
+{
+
+constexpr const char * ClBackendId() { return "GpuAcc"; }
+
+} // namespace armnn
diff --git a/src/backends/cl/ClLayerSupport.cpp b/src/backends/cl/ClLayerSupport.cpp
index 6a49a80c7f..3ca8bb5c46 100644
--- a/src/backends/cl/ClLayerSupport.cpp
+++ b/src/backends/cl/ClLayerSupport.cpp
@@ -4,11 +4,14 @@
//
#include "ClLayerSupport.hpp"
+#include "ClBackendId.hpp"
#include <armnn/Descriptors.hpp>
#include <armnn/InternalTypes.hpp>
#include <armnn/LayerSupportCommon.hpp>
+#include <backends/LayerSupportRegistry.hpp>
+
#include <boost/core/ignore_unused.hpp>
#ifdef ARMCOMPUTECL_ENABLED
@@ -40,6 +43,21 @@ namespace armnn
namespace
{
+ILayerSupportSharedPtr GetLayerSupportPointer()
+{
+ static ILayerSupportSharedPtr instance{new ClLayerSupport};
+ return instance;
+}
+
+static StaticRegistryInitializer<LayerSupportRegistry> g_RegisterHelper{
+ LayerSupportRegistryInstance(),
+ ClBackendId(),
+ []()
+ {
+ return GetLayerSupportPointer();
+ }
+};
+
template<unsigned int FilterSize>
bool IsMatchingSize2d(const TensorInfo& weightInfo)
{