aboutsummaryrefslogtreecommitdiff
path: root/src/backends/backendsCommon
diff options
context:
space:
mode:
Diffstat (limited to 'src/backends/backendsCommon')
-rw-r--r--src/backends/backendsCommon/CMakeLists.txt1
-rw-r--r--src/backends/backendsCommon/IBackendInternal.hpp11
-rw-r--r--src/backends/backendsCommon/IMemoryManager.hpp26
-rw-r--r--src/backends/backendsCommon/test/CMakeLists.txt1
-rw-r--r--src/backends/backendsCommon/test/LayerReleaseConstantDataTest.cpp12
-rw-r--r--src/backends/backendsCommon/test/WorkloadFactoryHelper.hpp12
6 files changed, 54 insertions, 9 deletions
diff --git a/src/backends/backendsCommon/CMakeLists.txt b/src/backends/backendsCommon/CMakeLists.txt
index e6ac01c0ac..1fe9888901 100644
--- a/src/backends/backendsCommon/CMakeLists.txt
+++ b/src/backends/backendsCommon/CMakeLists.txt
@@ -12,6 +12,7 @@ list(APPEND armnnBackendsCommon_sources
IBackendInternal.hpp
IBackendContext.hpp
ILayerSupport.cpp
+ IMemoryManager.hpp
ITensorHandle.hpp
MakeWorkloadHelper.hpp
MemCopyWorkload.cpp
diff --git a/src/backends/backendsCommon/IBackendInternal.hpp b/src/backends/backendsCommon/IBackendInternal.hpp
index 9d649fcfe2..b102d1a1f9 100644
--- a/src/backends/backendsCommon/IBackendInternal.hpp
+++ b/src/backends/backendsCommon/IBackendInternal.hpp
@@ -12,6 +12,7 @@ namespace armnn
{
class IWorkloadFactory;
class IBackendContext;
+class IMemoryManager;
class Optimization;
class ILayerSupport;
@@ -33,8 +34,16 @@ public:
using Optimizations = std::vector<OptimizationPtr>;
using ILayerSupportSharedPtr = std::shared_ptr<ILayerSupport>;
- virtual IWorkloadFactoryPtr CreateWorkloadFactory() const = 0;
+ using IMemoryManagerUniquePtr = std::unique_ptr<IMemoryManager>;
+ using IMemoryManagerSharedPtr = std::shared_ptr<IMemoryManager>;
+
+ virtual IMemoryManagerUniquePtr CreateMemoryManager() const = 0;
+
+ virtual IWorkloadFactoryPtr CreateWorkloadFactory(
+ const IMemoryManagerSharedPtr& memoryManager = nullptr) const = 0;
+
virtual IBackendContextPtr CreateBackendContext(const IRuntime::CreationOptions&) const = 0;
+
virtual Optimizations GetOptimizations() const = 0;
virtual ILayerSupportSharedPtr GetLayerSupport() const = 0;
};
diff --git a/src/backends/backendsCommon/IMemoryManager.hpp b/src/backends/backendsCommon/IMemoryManager.hpp
new file mode 100644
index 0000000000..28b81e79ef
--- /dev/null
+++ b/src/backends/backendsCommon/IMemoryManager.hpp
@@ -0,0 +1,26 @@
+//
+// Copyright © 2017 Arm Ltd. All rights reserved.
+// SPDX-License-Identifier: MIT
+//
+#pragma once
+
+#include <memory>
+
+namespace armnn
+{
+
+class IMemoryManager
+{
+protected:
+ IMemoryManager() {}
+
+public:
+ virtual void Acquire() = 0;
+ virtual void Release() = 0;
+
+ virtual ~IMemoryManager() {}
+};
+
+using IMemoryManagerUniquePtr = std::unique_ptr<IMemoryManager>;
+
+} // namespace armnn \ No newline at end of file
diff --git a/src/backends/backendsCommon/test/CMakeLists.txt b/src/backends/backendsCommon/test/CMakeLists.txt
index ae94ad5462..7419c148db 100644
--- a/src/backends/backendsCommon/test/CMakeLists.txt
+++ b/src/backends/backendsCommon/test/CMakeLists.txt
@@ -32,6 +32,7 @@ list(APPEND armnnBackendsCommonUnitTests_sources
TensorCopyUtils.cpp
TensorCopyUtils.hpp
WorkloadDataValidation.cpp
+ WorkloadFactoryHelper.hpp
WorkloadTestUtils.hpp
)
diff --git a/src/backends/backendsCommon/test/LayerReleaseConstantDataTest.cpp b/src/backends/backendsCommon/test/LayerReleaseConstantDataTest.cpp
index fc32fdcd02..25873d8a49 100644
--- a/src/backends/backendsCommon/test/LayerReleaseConstantDataTest.cpp
+++ b/src/backends/backendsCommon/test/LayerReleaseConstantDataTest.cpp
@@ -35,8 +35,7 @@ BOOST_AUTO_TEST_SUITE(LayerReleaseConstantDataTest)
BOOST_AUTO_TEST_CASE(ReleaseBatchNormalizationLayerConstantDataTest)
{
- Graph graph;
- ClWorkloadFactory factory;
+ Graph graph;
// create the layer we're testing
BatchNormalizationDescriptor layerDesc;
@@ -82,8 +81,7 @@ BOOST_AUTO_TEST_CASE(ReleaseBatchNormalizationLayerConstantDataTest)
BOOST_AUTO_TEST_CASE(ReleaseConvolution2dLayerConstantDataTest)
{
- Graph graph;
- ClWorkloadFactory factory;
+ Graph graph;
// create the layer we're testing
Convolution2dDescriptor layerDesc;
@@ -127,8 +125,7 @@ BOOST_AUTO_TEST_CASE(ReleaseBatchNormalizationLayerConstantDataTest)
BOOST_AUTO_TEST_CASE(ReleaseDepthwiseConvolution2dLayerConstantDataTest)
{
- Graph graph;
- ClWorkloadFactory factory;
+ Graph graph;
// create the layer we're testing
DepthwiseConvolution2dDescriptor layerDesc;
@@ -169,8 +166,7 @@ BOOST_AUTO_TEST_CASE(ReleaseDepthwiseConvolution2dLayerConstantDataTest)
BOOST_AUTO_TEST_CASE(ReleaseFullyConnectedLayerConstantDataTest)
{
- Graph graph;
- ClWorkloadFactory factory;
+ Graph graph;
// create the layer we're testing
FullyConnectedDescriptor layerDesc;
diff --git a/src/backends/backendsCommon/test/WorkloadFactoryHelper.hpp b/src/backends/backendsCommon/test/WorkloadFactoryHelper.hpp
new file mode 100644
index 0000000000..41bf54a939
--- /dev/null
+++ b/src/backends/backendsCommon/test/WorkloadFactoryHelper.hpp
@@ -0,0 +1,12 @@
+//
+// Copyright © 2017 Arm Ltd. All rights reserved.
+// SPDX-License-Identifier: MIT
+//
+#pragma once
+
+namespace
+{
+
+template<typename WorkloadFactoryType> struct WorkloadFactoryHelper {};
+
+} // anonymous namespace \ No newline at end of file