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/cl/ClBackend.cpp | 6 ++++++ src/backends/cl/ClBackend.hpp | 3 +++ src/backends/cl/ClWorkloadFactory.cpp | 6 ++++++ src/backends/cl/ClWorkloadFactory.hpp | 3 +++ src/backends/cl/test/ClMemCopyTests.cpp | 12 ++++++++---- 5 files changed, 26 insertions(+), 4 deletions(-) (limited to 'src/backends/cl') diff --git a/src/backends/cl/ClBackend.cpp b/src/backends/cl/ClBackend.cpp index 2b82c185f0..2f9dfa9755 100644 --- a/src/backends/cl/ClBackend.cpp +++ b/src/backends/cl/ClBackend.cpp @@ -63,6 +63,12 @@ ClBackend::CreateBackendContext(const IRuntime::CreationOptions& options) const return IBackendContextPtr{new ClBackendContext{options}}; } +IBackendInternal::ISubGraphConverterPtr ClBackend::CreateSubGraphConverter( + const std::shared_ptr& subGraph) const +{ + return ISubGraphConverterPtr{}; +} + IBackendInternal::Optimizations ClBackend::GetOptimizations() const { return Optimizations{}; diff --git a/src/backends/cl/ClBackend.hpp b/src/backends/cl/ClBackend.hpp index ef98da08a4..84b5b9a9d2 100644 --- a/src/backends/cl/ClBackend.hpp +++ b/src/backends/cl/ClBackend.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/cl/ClWorkloadFactory.cpp b/src/backends/cl/ClWorkloadFactory.cpp index af47f65d29..28011cfd7b 100644 --- a/src/backends/cl/ClWorkloadFactory.cpp +++ b/src/backends/cl/ClWorkloadFactory.cpp @@ -356,4 +356,10 @@ std::unique_ptr ClWorkloadFactory::CreateRsqrt(const RsqrtQueueDescri return MakeWorkload(descriptor, info); } +std::unique_ptr ClWorkloadFactory::CreatePreCompiled(const PreCompiledQueueDescriptor& descriptor, + const WorkloadInfo& info) const +{ + return MakeWorkload(descriptor, info); +} + } // namespace armnn diff --git a/src/backends/cl/ClWorkloadFactory.hpp b/src/backends/cl/ClWorkloadFactory.hpp index 85cbd91e11..286e897472 100644 --- a/src/backends/cl/ClWorkloadFactory.hpp +++ b/src/backends/cl/ClWorkloadFactory.hpp @@ -150,6 +150,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: template static std::unique_ptr MakeWorkload(const QueueDescriptorType& descriptor, diff --git a/src/backends/cl/test/ClMemCopyTests.cpp b/src/backends/cl/test/ClMemCopyTests.cpp index 93d8dd5662..3cd9af7910 100644 --- a/src/backends/cl/test/ClMemCopyTests.cpp +++ b/src/backends/cl/test/ClMemCopyTests.cpp @@ -17,25 +17,29 @@ BOOST_AUTO_TEST_SUITE(ClMemCopy) BOOST_AUTO_TEST_CASE(CopyBetweenCpuAndGpu) { - LayerTestResult result = MemCopyTest(false); + LayerTestResult result = + MemCopyTest(false); BOOST_TEST(CompareTensors(result.output, result.outputExpected)); } BOOST_AUTO_TEST_CASE(CopyBetweenGpuAndCpu) { - LayerTestResult result = MemCopyTest(false); + LayerTestResult result = + MemCopyTest(false); BOOST_TEST(CompareTensors(result.output, result.outputExpected)); } BOOST_AUTO_TEST_CASE(CopyBetweenCpuAndGpuWithSubtensors) { - LayerTestResult result = MemCopyTest(true); + LayerTestResult result = + MemCopyTest(true); BOOST_TEST(CompareTensors(result.output, result.outputExpected)); } BOOST_AUTO_TEST_CASE(CopyBetweenGpuAndCpuWithSubtensors) { - LayerTestResult result = MemCopyTest(true); + LayerTestResult result = + MemCopyTest(true); BOOST_TEST(CompareTensors(result.output, result.outputExpected)); } -- cgit v1.2.1