aboutsummaryrefslogtreecommitdiff
path: root/src/backends/cl/ClBackend.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/backends/cl/ClBackend.cpp')
-rw-r--r--src/backends/cl/ClBackend.cpp21
1 files changed, 18 insertions, 3 deletions
diff --git a/src/backends/cl/ClBackend.cpp b/src/backends/cl/ClBackend.cpp
index 4ef8d90dfc..2b82c185f0 100644
--- a/src/backends/cl/ClBackend.cpp
+++ b/src/backends/cl/ClBackend.cpp
@@ -9,10 +9,18 @@
#include "ClBackendContext.hpp"
#include "ClLayerSupport.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/CL/CLBufferAllocator.h>
+
+#include <boost/polymorphic_pointer_cast.hpp>
+
namespace armnn
{
@@ -37,9 +45,16 @@ const BackendId& ClBackend::GetIdStatic()
return s_Id;
}
-IBackendInternal::IWorkloadFactoryPtr ClBackend::CreateWorkloadFactory() const
+IBackendInternal::IMemoryManagerUniquePtr ClBackend::CreateMemoryManager() const
+{
+ return std::make_unique<ClMemoryManager>(std::make_unique<arm_compute::CLBufferAllocator>());
+}
+
+IBackendInternal::IWorkloadFactoryPtr ClBackend::CreateWorkloadFactory(
+ const IBackendInternal::IMemoryManagerSharedPtr& memoryManager) const
{
- return std::make_unique<ClWorkloadFactory>();
+ return std::make_unique<ClWorkloadFactory>(
+ boost::polymorphic_pointer_downcast<ClMemoryManager>(memoryManager));
}
IBackendInternal::IBackendContextPtr