diff options
author | Aron Virginas-Tar <Aron.Virginas-Tar@arm.com> | 2018-11-12 18:10:43 +0000 |
---|---|---|
committer | Aron Virginas-Tar <Aron.Virginas-Tar@arm.com> | 2018-11-13 14:41:52 +0000 |
commit | 56055193e82471a70b82e4eb11a8884c5904af75 (patch) | |
tree | bf66d0ba0088d963def8485c7e894b12d7a65b82 /src/backends/reference | |
parent | 95807cef855738ca481ace30f32ed9f245a098dd (diff) | |
download | armnn-56055193e82471a70b82e4eb11a8884c5904af75.tar.gz |
IVGCVSW-2066: Add IMemoryManager and integrate into the backends framework
Change-Id: I93223c8678165cbc3d39f461c36bb8610dc81c05
Diffstat (limited to 'src/backends/reference')
-rw-r--r-- | src/backends/reference/CMakeLists.txt | 1 | ||||
-rw-r--r-- | src/backends/reference/RefBackend.cpp | 9 | ||||
-rw-r--r-- | src/backends/reference/RefBackend.hpp | 7 | ||||
-rw-r--r-- | src/backends/reference/test/CMakeLists.txt | 1 | ||||
-rw-r--r-- | src/backends/reference/test/RefLayerTests.cpp | 2 | ||||
-rw-r--r-- | src/backends/reference/test/RefWorkloadFactoryHelper.hpp | 27 |
6 files changed, 45 insertions, 2 deletions
diff --git a/src/backends/reference/CMakeLists.txt b/src/backends/reference/CMakeLists.txt index ff16f185b4..82880cf524 100644 --- a/src/backends/reference/CMakeLists.txt +++ b/src/backends/reference/CMakeLists.txt @@ -11,6 +11,7 @@ list(APPEND armnnRefBackend_sources RefLayerSupport.hpp RefWorkloadFactory.cpp RefWorkloadFactory.hpp + ) add_library(armnnRefBackend OBJECT ${armnnRefBackend_sources}) diff --git a/src/backends/reference/RefBackend.cpp b/src/backends/reference/RefBackend.cpp index 7c9240479b..8f5e9c4d5e 100644 --- a/src/backends/reference/RefBackend.cpp +++ b/src/backends/reference/RefBackend.cpp @@ -9,6 +9,7 @@ #include "RefLayerSupport.hpp" #include <backendsCommon/IBackendContext.hpp> +#include <backendsCommon/IMemoryManager.hpp> #include <backendsCommon/BackendRegistry.hpp> #include <Optimizer.hpp> @@ -39,7 +40,8 @@ const BackendId& RefBackend::GetIdStatic() return s_Id; } -IBackendInternal::IWorkloadFactoryPtr RefBackend::CreateWorkloadFactory() const +IBackendInternal::IWorkloadFactoryPtr RefBackend::CreateWorkloadFactory( + const IBackendInternal::IMemoryManagerSharedPtr& memoryManager) const { return std::make_unique<RefWorkloadFactory>(); } @@ -49,6 +51,11 @@ IBackendInternal::IBackendContextPtr RefBackend::CreateBackendContext(const IRun return IBackendContextPtr{}; } +IBackendInternal::IMemoryManagerUniquePtr RefBackend::CreateMemoryManager() const +{ + return IMemoryManagerUniquePtr{}; +} + IBackendInternal::Optimizations RefBackend::GetOptimizations() const { return Optimizations{}; diff --git a/src/backends/reference/RefBackend.hpp b/src/backends/reference/RefBackend.hpp index 12d56ffab4..1a0aef58c4 100644 --- a/src/backends/reference/RefBackend.hpp +++ b/src/backends/reference/RefBackend.hpp @@ -18,8 +18,13 @@ public: static const BackendId& GetIdStatic(); const BackendId& GetId() const override { return GetIdStatic(); } - IBackendInternal::IWorkloadFactoryPtr CreateWorkloadFactory() const override; + IBackendInternal::IMemoryManagerUniquePtr CreateMemoryManager() const override; + + IBackendInternal::IWorkloadFactoryPtr CreateWorkloadFactory( + const IBackendInternal::IMemoryManagerSharedPtr& memoryManager = nullptr) const override; + IBackendInternal::IBackendContextPtr CreateBackendContext(const IRuntime::CreationOptions&) const override; + IBackendInternal::Optimizations GetOptimizations() const override; IBackendInternal::ILayerSupportSharedPtr GetLayerSupport() const override; }; diff --git a/src/backends/reference/test/CMakeLists.txt b/src/backends/reference/test/CMakeLists.txt index aee621614f..8fa9b5cdaf 100644 --- a/src/backends/reference/test/CMakeLists.txt +++ b/src/backends/reference/test/CMakeLists.txt @@ -11,6 +11,7 @@ list(APPEND armnnRefBackendUnitTests_sources RefLayerTests.cpp RefOptimizedNetworkTests.cpp RefRuntimeTests.cpp + RefWorkloadFactoryHelper.hpp ) add_library(armnnRefBackendUnitTests OBJECT ${armnnRefBackendUnitTests_sources}) diff --git a/src/backends/reference/test/RefLayerTests.cpp b/src/backends/reference/test/RefLayerTests.cpp index 703ec58208..95ddbadbcc 100644 --- a/src/backends/reference/test/RefLayerTests.cpp +++ b/src/backends/reference/test/RefLayerTests.cpp @@ -3,6 +3,8 @@ // SPDX-License-Identifier: MIT // +#include "RefWorkloadFactoryHelper.hpp" + #include <test/TensorHelpers.hpp> #include <test/UnitTests.hpp> diff --git a/src/backends/reference/test/RefWorkloadFactoryHelper.hpp b/src/backends/reference/test/RefWorkloadFactoryHelper.hpp new file mode 100644 index 0000000000..500511157f --- /dev/null +++ b/src/backends/reference/test/RefWorkloadFactoryHelper.hpp @@ -0,0 +1,27 @@ +// +// Copyright © 2017 Arm Ltd. All rights reserved. +// SPDX-License-Identifier: MIT +// + +#pragma once + +#include <backendsCommon/test/WorkloadFactoryHelper.hpp> + +#include <reference/RefBackend.hpp> +#include <reference/RefWorkloadFactory.hpp> + +namespace +{ + +template<> +struct WorkloadFactoryHelper<armnn::RefWorkloadFactory> +{ + static armnn::RefWorkloadFactory GetFactory() + { + return armnn::RefWorkloadFactory(); + } +}; + +using RefWorkloadFactoryHelper = WorkloadFactoryHelper<armnn::RefWorkloadFactory>; + +} // anonymous namespace |