diff options
Diffstat (limited to 'src/backends')
-rw-r--r-- | src/backends/IBackendInternal.hpp | 4 | ||||
-rw-r--r-- | src/backends/cl/ClBackend.cpp | 22 | ||||
-rw-r--r-- | src/backends/cl/ClBackend.hpp | 8 | ||||
-rw-r--r-- | src/backends/neon/NeonBackend.cpp | 23 | ||||
-rw-r--r-- | src/backends/neon/NeonBackend.hpp | 8 | ||||
-rw-r--r-- | src/backends/reference/RefBackend.cpp | 22 | ||||
-rw-r--r-- | src/backends/reference/RefBackend.hpp | 8 |
7 files changed, 72 insertions, 23 deletions
diff --git a/src/backends/IBackendInternal.hpp b/src/backends/IBackendInternal.hpp index 1ccf88ece6..a441abd79f 100644 --- a/src/backends/IBackendInternal.hpp +++ b/src/backends/IBackendInternal.hpp @@ -13,8 +13,8 @@ namespace armnn class IBackendInternal : public IBackend { protected: - IBackendInternal() {} - virtual ~IBackendInternal() {} + IBackendInternal() = default; + ~IBackendInternal() override = default; public: virtual std::unique_ptr<IWorkloadFactory> CreateWorkloadFactory() const = 0; diff --git a/src/backends/cl/ClBackend.cpp b/src/backends/cl/ClBackend.cpp index 5de9d31234..d185c15b72 100644 --- a/src/backends/cl/ClBackend.cpp +++ b/src/backends/cl/ClBackend.cpp @@ -4,11 +4,25 @@ // #include "ClBackend.hpp" +#include <backends/BackendRegistry.hpp> +#include <boost/cast.hpp> namespace armnn { -const std::string ClBackend::s_Id = "arm_compute_cl"; +namespace +{ +static const std::string s_Id = "GpuAcc"; + +static BackendRegistry::Helper g_RegisterHelper{ + s_Id, + []() + { + return IBackendUniquePtr(new ClBackend, &ClBackend::Destroy); + } +}; + +} const std::string& ClBackend::GetId() const { @@ -22,8 +36,12 @@ const ILayerSupport& ClBackend::GetLayerSupport() const std::unique_ptr<IWorkloadFactory> ClBackend::CreateWorkloadFactory() const { - // TODO implement return nullptr; } +void ClBackend::Destroy(IBackend* backend) +{ + delete boost::polymorphic_downcast<ClBackend*>(backend); +} + } // namespace armnn
\ No newline at end of file diff --git a/src/backends/cl/ClBackend.hpp b/src/backends/cl/ClBackend.hpp index 7e67f5e9ad..c43b6a6ce0 100644 --- a/src/backends/cl/ClBackend.hpp +++ b/src/backends/cl/ClBackend.hpp @@ -4,8 +4,7 @@ // #pragma once -#include "backends/IBackendInternal.hpp" - +#include <backends/IBackendInternal.hpp> #include "ClLayerSupport.hpp" namespace armnn @@ -23,10 +22,9 @@ public: std::unique_ptr<IWorkloadFactory> CreateWorkloadFactory() const override; -private: - static const std::string s_Id; + static void Destroy(IBackend* backend); - // TODO initialize +private: ClLayerSupport m_LayerSupport; }; diff --git a/src/backends/neon/NeonBackend.cpp b/src/backends/neon/NeonBackend.cpp index 1137145aa2..b4f1897704 100644 --- a/src/backends/neon/NeonBackend.cpp +++ b/src/backends/neon/NeonBackend.cpp @@ -4,11 +4,26 @@ // #include "NeonBackend.hpp" +#include <backends/BackendRegistry.hpp> +#include <boost/cast.hpp> namespace armnn { -const std::string NeonBackend::s_Id = "arm_compute_neon"; +namespace +{ + +static const std::string s_Id = "CpuAcc"; + +static BackendRegistry::Helper g_RegisterHelper{ + s_Id, + []() + { + return IBackendUniquePtr(new NeonBackend, &NeonBackend::Destroy); + } +}; + +} const std::string& NeonBackend::GetId() const { @@ -22,8 +37,12 @@ const ILayerSupport& NeonBackend::GetLayerSupport() const std::unique_ptr<IWorkloadFactory> NeonBackend::CreateWorkloadFactory() const { - // TODO implement return nullptr; } +void NeonBackend::Destroy(IBackend* backend) +{ + delete boost::polymorphic_downcast<NeonBackend*>(backend); +} + } // namespace armnn
\ No newline at end of file diff --git a/src/backends/neon/NeonBackend.hpp b/src/backends/neon/NeonBackend.hpp index 86fccf0e51..5d4bd5dfcc 100644 --- a/src/backends/neon/NeonBackend.hpp +++ b/src/backends/neon/NeonBackend.hpp @@ -4,8 +4,7 @@ // #pragma once -#include "backends/IBackendInternal.hpp" - +#include <backends/IBackendInternal.hpp> #include "NeonLayerSupport.hpp" namespace armnn @@ -23,10 +22,9 @@ public: std::unique_ptr<IWorkloadFactory> CreateWorkloadFactory() const override; -private: - static const std::string s_Id; + static void Destroy(IBackend* backend); - // TODO initialize +private: NeonLayerSupport m_LayerSupport; }; diff --git a/src/backends/reference/RefBackend.cpp b/src/backends/reference/RefBackend.cpp index 1799abfc33..b671e8bca8 100644 --- a/src/backends/reference/RefBackend.cpp +++ b/src/backends/reference/RefBackend.cpp @@ -4,11 +4,25 @@ // #include "RefBackend.hpp" +#include <backends/BackendRegistry.hpp> +#include <boost/cast.hpp> namespace armnn { -const std::string RefBackend::s_Id = "arm_reference"; +namespace +{ +const std::string s_Id = "CpuRef"; + +static BackendRegistry::Helper s_RegisterHelper{ + s_Id, + []() + { + return IBackendUniquePtr(new RefBackend, &RefBackend::Destroy); + } +}; + +} const std::string& RefBackend::GetId() const { @@ -22,8 +36,12 @@ const ILayerSupport& RefBackend::GetLayerSupport() const std::unique_ptr<IWorkloadFactory> RefBackend::CreateWorkloadFactory() const { - // TODO implement return nullptr; } +void RefBackend::Destroy(IBackend* backend) +{ + delete boost::polymorphic_downcast<RefBackend*>(backend); +} + } // namespace armnn
\ No newline at end of file diff --git a/src/backends/reference/RefBackend.hpp b/src/backends/reference/RefBackend.hpp index c3797158a6..e4a11f10c9 100644 --- a/src/backends/reference/RefBackend.hpp +++ b/src/backends/reference/RefBackend.hpp @@ -4,8 +4,7 @@ // #pragma once -#include "backends/IBackendInternal.hpp" - +#include <backends/IBackendInternal.hpp> #include "RefLayerSupport.hpp" namespace armnn @@ -23,10 +22,9 @@ public: std::unique_ptr<IWorkloadFactory> CreateWorkloadFactory() const override; -private: - static const std::string s_Id; + static void Destroy(IBackend* backend); - // TODO initialize +private: RefLayerSupport m_LayerSupport; }; |