aboutsummaryrefslogtreecommitdiff
path: root/src/backends/neon/NeonBackend.cpp
diff options
context:
space:
mode:
authorAron Virginas-Tar <Aron.Virginas-Tar@arm.com>2018-11-12 18:10:43 +0000
committerAron Virginas-Tar <Aron.Virginas-Tar@arm.com>2018-11-13 14:41:52 +0000
commit56055193e82471a70b82e4eb11a8884c5904af75 (patch)
treebf66d0ba0088d963def8485c7e894b12d7a65b82 /src/backends/neon/NeonBackend.cpp
parent95807cef855738ca481ace30f32ed9f245a098dd (diff)
downloadarmnn-56055193e82471a70b82e4eb11a8884c5904af75.tar.gz
IVGCVSW-2066: Add IMemoryManager and integrate into the backends framework
Change-Id: I93223c8678165cbc3d39f461c36bb8610dc81c05
Diffstat (limited to 'src/backends/neon/NeonBackend.cpp')
-rw-r--r--src/backends/neon/NeonBackend.cpp21
1 files changed, 18 insertions, 3 deletions
diff --git a/src/backends/neon/NeonBackend.cpp b/src/backends/neon/NeonBackend.cpp
index 4d57eda877..cde29983bd 100644
--- a/src/backends/neon/NeonBackend.cpp
+++ b/src/backends/neon/NeonBackend.cpp
@@ -8,11 +8,18 @@
#include "NeonWorkloadFactory.hpp"
#include "NeonLayerSupport.hpp"
-#include <backendsCommon/IBackendContext.hpp>
+#include <aclCommon/BaseMemoryManager.hpp>
+
#include <backendsCommon/BackendRegistry.hpp>
+#include <backendsCommon/IBackendContext.hpp>
+#include <backendsCommon/IMemoryManager.hpp>
+
#include <Optimizer.hpp>
+#include <arm_compute/runtime/Allocator.h>
+
#include <boost/cast.hpp>
+#include <boost/polymorphic_pointer_cast.hpp>
namespace armnn
{
@@ -38,9 +45,17 @@ const BackendId& NeonBackend::GetIdStatic()
return s_Id;
}
-IBackendInternal::IWorkloadFactoryPtr NeonBackend::CreateWorkloadFactory() const
+IBackendInternal::IMemoryManagerUniquePtr NeonBackend::CreateMemoryManager() const
+{
+ return std::make_unique<NeonMemoryManager>(std::make_unique<arm_compute::Allocator>(),
+ BaseMemoryManager::MemoryAffinity::Offset);
+}
+
+IBackendInternal::IWorkloadFactoryPtr NeonBackend::CreateWorkloadFactory(
+ const IBackendInternal::IMemoryManagerSharedPtr& memoryManager) const
{
- return std::make_unique<NeonWorkloadFactory>();
+ return std::make_unique<NeonWorkloadFactory>(
+ boost::polymorphic_pointer_downcast<NeonMemoryManager>(memoryManager));
}
IBackendInternal::IBackendContextPtr NeonBackend::CreateBackendContext(const IRuntime::CreationOptions&) const