From 4912402497a51c6afe0898b3900f87feefa006a6 Mon Sep 17 00:00:00 2001 From: Matteo Martincigh Date: Fri, 11 Jan 2019 13:25:59 +0000 Subject: IVGCVSW-2454 Merge together the pluggable backends work (was in a separate branch) and master * Brings in all the changes done for the pluggable backends * Added sub-graph support and tests * Added precompiled layer support and tests * Moved BackendSettings to a separate file * Removed the backend-specific code * Ported DebugLayer and associated functionality * Included fixes to make those changes work with master Change-Id: Id7028fa7917527b844628d5aff5732e3d94c0488 --- src/backends/neon/NeonBackend.cpp | 6 ++++++ src/backends/neon/NeonBackend.hpp | 3 +++ src/backends/neon/NeonWorkloadFactory.cpp | 6 ++++++ src/backends/neon/NeonWorkloadFactory.hpp | 3 +++ src/backends/neon/test/NeonMemCopyTests.cpp | 12 ++++++++---- 5 files changed, 26 insertions(+), 4 deletions(-) (limited to 'src/backends/neon') diff --git a/src/backends/neon/NeonBackend.cpp b/src/backends/neon/NeonBackend.cpp index fd2b766500..ce97a1d03c 100644 --- a/src/backends/neon/NeonBackend.cpp +++ b/src/backends/neon/NeonBackend.cpp @@ -63,6 +63,12 @@ IBackendInternal::IBackendContextPtr NeonBackend::CreateBackendContext(const IRu return IBackendContextPtr{}; } +IBackendInternal::ISubGraphConverterPtr NeonBackend::CreateSubGraphConverter( + const std::shared_ptr& subGraph) const +{ + return ISubGraphConverterPtr{}; +} + IBackendInternal::Optimizations NeonBackend::GetOptimizations() const { return Optimizations{}; diff --git a/src/backends/neon/NeonBackend.hpp b/src/backends/neon/NeonBackend.hpp index 127a5a4b62..3b1d186a06 100644 --- a/src/backends/neon/NeonBackend.hpp +++ b/src/backends/neon/NeonBackend.hpp @@ -25,6 +25,9 @@ public: IBackendInternal::IBackendContextPtr CreateBackendContext(const IRuntime::CreationOptions&) const override; + IBackendInternal::ISubGraphConverterPtr CreateSubGraphConverter( + const std::shared_ptr& subGraph) const override; + IBackendInternal::Optimizations GetOptimizations() const override; IBackendInternal::ILayerSupportSharedPtr GetLayerSupport() const override; }; diff --git a/src/backends/neon/NeonWorkloadFactory.cpp b/src/backends/neon/NeonWorkloadFactory.cpp index 65093fb593..3728c86a66 100644 --- a/src/backends/neon/NeonWorkloadFactory.cpp +++ b/src/backends/neon/NeonWorkloadFactory.cpp @@ -324,4 +324,10 @@ std::unique_ptr NeonWorkloadFactory::CreateRsqrt(const RsqrtQueueDesc return MakeWorkloadHelper(descriptor, info); } +std::unique_ptr NeonWorkloadFactory::CreatePreCompiled(const PreCompiledQueueDescriptor& descriptor, + const WorkloadInfo& info) const +{ + return MakeWorkloadHelper(descriptor, info); +} + } // namespace armnn diff --git a/src/backends/neon/NeonWorkloadFactory.hpp b/src/backends/neon/NeonWorkloadFactory.hpp index 9a6308871a..68317ed651 100644 --- a/src/backends/neon/NeonWorkloadFactory.hpp +++ b/src/backends/neon/NeonWorkloadFactory.hpp @@ -151,6 +151,9 @@ public: virtual std::unique_ptr CreateRsqrt(const RsqrtQueueDescriptor& descriptor, const WorkloadInfo& info) const override; + virtual std::unique_ptr CreatePreCompiled(const PreCompiledQueueDescriptor& descriptor, + const WorkloadInfo& info) const override; + private: mutable std::shared_ptr m_MemoryManager; }; diff --git a/src/backends/neon/test/NeonMemCopyTests.cpp b/src/backends/neon/test/NeonMemCopyTests.cpp index f6699a61ba..dbe1f8da3f 100644 --- a/src/backends/neon/test/NeonMemCopyTests.cpp +++ b/src/backends/neon/test/NeonMemCopyTests.cpp @@ -18,25 +18,29 @@ BOOST_AUTO_TEST_SUITE(NeonMemCopy) BOOST_AUTO_TEST_CASE(CopyBetweenCpuAndNeon) { - LayerTestResult result = MemCopyTest(false); + LayerTestResult result = + MemCopyTest(false); BOOST_TEST(CompareTensors(result.output, result.outputExpected)); } BOOST_AUTO_TEST_CASE(CopyBetweenNeonAndCpu) { - LayerTestResult result = MemCopyTest(false); + LayerTestResult result = + MemCopyTest(false); BOOST_TEST(CompareTensors(result.output, result.outputExpected)); } BOOST_AUTO_TEST_CASE(CopyBetweenCpuAndNeonWithSubtensors) { - LayerTestResult result = MemCopyTest(true); + LayerTestResult result = + MemCopyTest(true); BOOST_TEST(CompareTensors(result.output, result.outputExpected)); } BOOST_AUTO_TEST_CASE(CopyBetweenNeonAndCpuWithSubtensors) { - LayerTestResult result = MemCopyTest(true); + LayerTestResult result = + MemCopyTest(true); BOOST_TEST(CompareTensors(result.output, result.outputExpected)); } -- cgit v1.2.1