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/reference/RefBackend.cpp | 6 ++++++ src/backends/reference/RefBackend.hpp | 3 +++ src/backends/reference/RefWorkloadFactory.cpp | 8 +++++++- src/backends/reference/RefWorkloadFactory.hpp | 4 ++++ src/backends/reference/workloads/Debug.cpp | 2 +- src/backends/reference/workloads/RefDebugWorkload.cpp | 7 ++++--- src/backends/reference/workloads/RefDebugWorkload.hpp | 7 ++++--- 7 files changed, 29 insertions(+), 8 deletions(-) (limited to 'src/backends/reference') diff --git a/src/backends/reference/RefBackend.cpp b/src/backends/reference/RefBackend.cpp index 8f5e9c4d5e..e4f468c15e 100644 --- a/src/backends/reference/RefBackend.cpp +++ b/src/backends/reference/RefBackend.cpp @@ -56,6 +56,12 @@ IBackendInternal::IMemoryManagerUniquePtr RefBackend::CreateMemoryManager() cons return IMemoryManagerUniquePtr{}; } +IBackendInternal::ISubGraphConverterPtr RefBackend::CreateSubGraphConverter( + const std::shared_ptr& subGraph) const +{ + return ISubGraphConverterPtr{}; +} + IBackendInternal::Optimizations RefBackend::GetOptimizations() const { return Optimizations{}; diff --git a/src/backends/reference/RefBackend.hpp b/src/backends/reference/RefBackend.hpp index 1a0aef58c4..51366221c7 100644 --- a/src/backends/reference/RefBackend.hpp +++ b/src/backends/reference/RefBackend.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/reference/RefWorkloadFactory.cpp b/src/backends/reference/RefWorkloadFactory.cpp index 79293635fb..361a3f1f74 100644 --- a/src/backends/reference/RefWorkloadFactory.cpp +++ b/src/backends/reference/RefWorkloadFactory.cpp @@ -318,4 +318,10 @@ std::unique_ptr RefWorkloadFactory::CreateRsqrt(const RsqrtQueueDescr return MakeWorkload(descriptor, info); } -} // namespace armnn \ No newline at end of file +std::unique_ptr RefWorkloadFactory::CreatePreCompiled(const PreCompiledQueueDescriptor& descriptor, + const WorkloadInfo& info) const +{ + return nullptr; +} + +} // namespace armnn diff --git a/src/backends/reference/RefWorkloadFactory.hpp b/src/backends/reference/RefWorkloadFactory.hpp index f6707f5046..432ac72c6e 100644 --- a/src/backends/reference/RefWorkloadFactory.hpp +++ b/src/backends/reference/RefWorkloadFactory.hpp @@ -167,6 +167,10 @@ 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 diff --git a/src/backends/reference/workloads/Debug.cpp b/src/backends/reference/workloads/Debug.cpp index dfcbbd8e97..cc83c7b4ee 100644 --- a/src/backends/reference/workloads/Debug.cpp +++ b/src/backends/reference/workloads/Debug.cpp @@ -98,4 +98,4 @@ template void Debug(const TensorInfo& inputInfo, const DebugDescriptor& descriptor, const uint8_t* inputData, uint8_t* outputData); -} //namespace armnn +} // namespace armnn diff --git a/src/backends/reference/workloads/RefDebugWorkload.cpp b/src/backends/reference/workloads/RefDebugWorkload.cpp index 17eb8fc143..d9a47c0596 100644 --- a/src/backends/reference/workloads/RefDebugWorkload.cpp +++ b/src/backends/reference/workloads/RefDebugWorkload.cpp @@ -2,11 +2,12 @@ // Copyright © 2017 Arm Ltd. All rights reserved. // SPDX-License-Identifier: MIT // + #include "RefDebugWorkload.hpp" #include "Debug.hpp" - #include "RefWorkloadUtils.hpp" -#include "TypeUtils.hpp" + +#include namespace armnn { @@ -30,4 +31,4 @@ void RefDebugWorkload::Execute() const template class RefDebugWorkload; template class RefDebugWorkload; -} //namespace armnn +} // namespace armnn diff --git a/src/backends/reference/workloads/RefDebugWorkload.hpp b/src/backends/reference/workloads/RefDebugWorkload.hpp index a1231f92d3..c1a3e26ec2 100644 --- a/src/backends/reference/workloads/RefDebugWorkload.hpp +++ b/src/backends/reference/workloads/RefDebugWorkload.hpp @@ -2,12 +2,13 @@ // Copyright © 2017 Arm Ltd. All rights reserved. // SPDX-License-Identifier: MIT // -#pragma once -#include +#pragma once #include +#include + namespace armnn { @@ -30,4 +31,4 @@ public: using RefDebugFloat32Workload = RefDebugWorkload; using RefDebugUint8Workload = RefDebugWorkload; -} //namespace armnn +} // namespace armnn -- cgit v1.2.1