From 56055193e82471a70b82e4eb11a8884c5904af75 Mon Sep 17 00:00:00 2001 From: Aron Virginas-Tar Date: Mon, 12 Nov 2018 18:10:43 +0000 Subject: IVGCVSW-2066: Add IMemoryManager and integrate into the backends framework Change-Id: I93223c8678165cbc3d39f461c36bb8610dc81c05 --- src/backends/reference/CMakeLists.txt | 1 + src/backends/reference/RefBackend.cpp | 9 +++++++- src/backends/reference/RefBackend.hpp | 7 +++++- src/backends/reference/test/CMakeLists.txt | 1 + src/backends/reference/test/RefLayerTests.cpp | 2 ++ .../reference/test/RefWorkloadFactoryHelper.hpp | 27 ++++++++++++++++++++++ 6 files changed, 45 insertions(+), 2 deletions(-) create mode 100644 src/backends/reference/test/RefWorkloadFactoryHelper.hpp (limited to 'src/backends/reference') 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 +#include #include #include @@ -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(); } @@ -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 #include 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 + +#include +#include + +namespace +{ + +template<> +struct WorkloadFactoryHelper +{ + static armnn::RefWorkloadFactory GetFactory() + { + return armnn::RefWorkloadFactory(); + } +}; + +using RefWorkloadFactoryHelper = WorkloadFactoryHelper; + +} // anonymous namespace -- cgit v1.2.1