From 29c75de868ac3a86a70b25f8da0d0c7e47d40803 Mon Sep 17 00:00:00 2001 From: David Beck Date: Tue, 23 Oct 2018 13:35:58 +0100 Subject: IVGCVSW-2067 : dynamically create workload factories based on the backends in the network Change-Id: Ide594db8c79ff67642721d8bad47624b88621fbd --- src/backends/reference/RefBackend.cpp | 9 ++------- src/backends/reference/RefBackend.hpp | 4 +--- src/backends/reference/RefWorkloadFactory.cpp | 3 ++- src/backends/reference/RefWorkloadFactory.hpp | 6 ++++-- 4 files changed, 9 insertions(+), 13 deletions(-) (limited to 'src/backends/reference') diff --git a/src/backends/reference/RefBackend.cpp b/src/backends/reference/RefBackend.cpp index 9afb42d59f..34348fa120 100644 --- a/src/backends/reference/RefBackend.cpp +++ b/src/backends/reference/RefBackend.cpp @@ -23,7 +23,7 @@ static StaticRegistryInitializer g_RegisterHelper RefBackend::GetIdStatic(), []() { - return IBackendUniquePtr(new RefBackend, &RefBackend::Destroy); + return IBackendInternalUniquePtr(new RefBackend); } }; @@ -35,14 +35,9 @@ const BackendId& RefBackend::GetIdStatic() return s_Id; } -std::unique_ptr RefBackend::CreateWorkloadFactory() const +IBackendInternal::IWorkloadFactoryPtr RefBackend::CreateWorkloadFactory() const { return std::make_unique(); } -void RefBackend::Destroy(IBackend* backend) -{ - delete boost::polymorphic_downcast(backend); -} - } // namespace armnn \ No newline at end of file diff --git a/src/backends/reference/RefBackend.hpp b/src/backends/reference/RefBackend.hpp index 0cd3cf4dce..7162c9bf40 100644 --- a/src/backends/reference/RefBackend.hpp +++ b/src/backends/reference/RefBackend.hpp @@ -18,9 +18,7 @@ public: static const BackendId& GetIdStatic(); const BackendId& GetId() const override { return GetIdStatic(); } - std::unique_ptr CreateWorkloadFactory() const override; - - static void Destroy(IBackend* backend); + IWorkloadFactoryPtr CreateWorkloadFactory() const override; }; } // namespace armnn \ No newline at end of file diff --git a/src/backends/reference/RefWorkloadFactory.cpp b/src/backends/reference/RefWorkloadFactory.cpp index 048f6cdcc4..783e5fba2e 100644 --- a/src/backends/reference/RefWorkloadFactory.cpp +++ b/src/backends/reference/RefWorkloadFactory.cpp @@ -25,7 +25,8 @@ RefWorkloadFactory::RefWorkloadFactory() { } -bool RefWorkloadFactory::IsLayerSupported(const Layer& layer, boost::optional dataType, +bool RefWorkloadFactory::IsLayerSupported(const Layer& layer, + Optional dataType, std::string& outReasonIfUnsupported) { return IWorkloadFactory::IsLayerSupported(Compute::CpuRef, layer, dataType, outReasonIfUnsupported); diff --git a/src/backends/reference/RefWorkloadFactory.hpp b/src/backends/reference/RefWorkloadFactory.hpp index 1a9227a978..ef2e1abfaa 100644 --- a/src/backends/reference/RefWorkloadFactory.hpp +++ b/src/backends/reference/RefWorkloadFactory.hpp @@ -4,11 +4,12 @@ // #pragma once +#include #include #include #include -#include + namespace armnn { @@ -34,7 +35,8 @@ public: virtual Compute GetCompute() const override { return Compute::CpuRef; } - static bool IsLayerSupported(const Layer& layer, boost::optional dataType, + static bool IsLayerSupported(const Layer& layer, + Optional dataType, std::string& outReasonIfUnsupported); virtual bool SupportsSubTensors() const override { return false; } -- cgit v1.2.1