diff options
Diffstat (limited to 'src/backends/cl')
-rw-r--r-- | src/backends/cl/CMakeLists.txt | 2 | ||||
-rw-r--r-- | src/backends/cl/ClBackend.cpp | 12 | ||||
-rw-r--r-- | src/backends/cl/ClBackend.hpp | 6 | ||||
-rw-r--r-- | src/backends/cl/ClBackendId.hpp | 12 | ||||
-rw-r--r-- | src/backends/cl/ClLayerSupport.cpp | 18 |
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) { |