diff options
author | David Beck <david.beck@arm.com> | 2018-10-23 13:35:58 +0100 |
---|---|---|
committer | Matthew Bentham <matthew.bentham@arm.com> | 2018-10-25 09:49:58 +0100 |
commit | 29c75de868ac3a86a70b25f8da0d0c7e47d40803 (patch) | |
tree | db8dd31d26622ca252f6e2d2c86c7e20a0829e9e /src/backends/neon | |
parent | 5cc8e56b4ca8d58dc11973c49c10a02a2f13580c (diff) | |
download | armnn-29c75de868ac3a86a70b25f8da0d0c7e47d40803.tar.gz |
IVGCVSW-2067 : dynamically create workload factories based on the backends in the network
Change-Id: Ide594db8c79ff67642721d8bad47624b88621fbd
Diffstat (limited to 'src/backends/neon')
-rw-r--r-- | src/backends/neon/NeonBackend.cpp | 9 | ||||
-rw-r--r-- | src/backends/neon/NeonBackend.hpp | 4 | ||||
-rw-r--r-- | src/backends/neon/NeonWorkloadFactory.cpp | 3 | ||||
-rw-r--r-- | src/backends/neon/NeonWorkloadFactory.hpp | 6 |
4 files changed, 9 insertions, 13 deletions
diff --git a/src/backends/neon/NeonBackend.cpp b/src/backends/neon/NeonBackend.cpp index b7102956df..e475f0232b 100644 --- a/src/backends/neon/NeonBackend.cpp +++ b/src/backends/neon/NeonBackend.cpp @@ -23,7 +23,7 @@ static StaticRegistryInitializer<BackendRegistry> g_RegisterHelper NeonBackend::GetIdStatic(), []() { - return IBackendUniquePtr(new NeonBackend, &NeonBackend::Destroy); + return IBackendInternalUniquePtr(new NeonBackend); } }; @@ -35,14 +35,9 @@ const BackendId& NeonBackend::GetIdStatic() return s_Id; } -std::unique_ptr<IWorkloadFactory> NeonBackend::CreateWorkloadFactory() const +IBackendInternal::IWorkloadFactoryPtr NeonBackend::CreateWorkloadFactory() const { return std::make_unique<NeonWorkloadFactory>(); } -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 6280610bda..e1287c784c 100644 --- a/src/backends/neon/NeonBackend.hpp +++ b/src/backends/neon/NeonBackend.hpp @@ -18,9 +18,7 @@ public: static const BackendId& GetIdStatic(); const BackendId& GetId() const override { return GetIdStatic(); } - std::unique_ptr<IWorkloadFactory> 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/neon/NeonWorkloadFactory.cpp b/src/backends/neon/NeonWorkloadFactory.cpp index 0e069a2f64..f0a9e76de1 100644 --- a/src/backends/neon/NeonWorkloadFactory.cpp +++ b/src/backends/neon/NeonWorkloadFactory.cpp @@ -25,7 +25,8 @@ namespace armnn { -bool NeonWorkloadFactory::IsLayerSupported(const Layer& layer, boost::optional<DataType> dataType, +bool NeonWorkloadFactory::IsLayerSupported(const Layer& layer, + Optional<DataType> dataType, std::string& outReasonIfUnsupported) { return IWorkloadFactory::IsLayerSupported(Compute::CpuAcc, layer, dataType, outReasonIfUnsupported); diff --git a/src/backends/neon/NeonWorkloadFactory.hpp b/src/backends/neon/NeonWorkloadFactory.hpp index 64951612c1..d1dd2c85fe 100644 --- a/src/backends/neon/NeonWorkloadFactory.hpp +++ b/src/backends/neon/NeonWorkloadFactory.hpp @@ -4,11 +4,12 @@ // #pragma once +#include <armnn/Optional.hpp> #include <backends/OutputHandler.hpp> #include <backends/aclCommon/memory/BaseMemoryManager.hpp> #include <boost/core/ignore_unused.hpp> -#include <boost/optional.hpp> + namespace armnn { @@ -21,7 +22,8 @@ public: virtual Compute GetCompute() const override { return Compute::CpuAcc; } - static bool IsLayerSupported(const Layer& layer, boost::optional<DataType> dataType, + static bool IsLayerSupported(const Layer& layer, + Optional<DataType> dataType, std::string& outReasonIfUnsupported); virtual bool SupportsSubTensors() const override { return true; } |