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/cl/ClWorkloadFactory.cpp | |
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/cl/ClWorkloadFactory.cpp')
-rw-r--r-- | src/backends/cl/ClWorkloadFactory.cpp | 22 |
1 files changed, 9 insertions, 13 deletions
diff --git a/src/backends/cl/ClWorkloadFactory.cpp b/src/backends/cl/ClWorkloadFactory.cpp index 0862ea163e..567954919d 100644 --- a/src/backends/cl/ClWorkloadFactory.cpp +++ b/src/backends/cl/ClWorkloadFactory.cpp @@ -82,15 +82,15 @@ std::unique_ptr<IWorkload> ClWorkloadFactory::MakeWorkload(const QueueDescriptor } } -ClWorkloadFactory::ClWorkloadFactory() -: m_MemoryManager(std::make_unique<arm_compute::CLBufferAllocator>()) +ClWorkloadFactory::ClWorkloadFactory(const std::shared_ptr<ClMemoryManager>& memoryManager) + : m_MemoryManager(memoryManager) { } std::unique_ptr<ITensorHandle> ClWorkloadFactory::CreateTensorHandle(const TensorInfo& tensorInfo) const { std::unique_ptr<ClTensorHandle> tensorHandle = std::make_unique<ClTensorHandle>(tensorInfo); - tensorHandle->SetMemoryGroup(m_MemoryManager.GetInterLayerMemoryGroup()); + tensorHandle->SetMemoryGroup(m_MemoryManager->GetInterLayerMemoryGroup()); return tensorHandle; } @@ -99,7 +99,7 @@ std::unique_ptr<ITensorHandle> ClWorkloadFactory::CreateTensorHandle(const Tenso DataLayout dataLayout) const { std::unique_ptr<ClTensorHandle> tensorHandle = std::make_unique<ClTensorHandle>(tensorInfo, dataLayout); - tensorHandle->SetMemoryGroup(m_MemoryManager.GetInterLayerMemoryGroup()); + tensorHandle->SetMemoryGroup(m_MemoryManager->GetInterLayerMemoryGroup()); return tensorHandle; } @@ -145,7 +145,7 @@ std::unique_ptr<IWorkload> ClWorkloadFactory::CreateSoftmax(const SoftmaxQueueDe const WorkloadInfo& info) const { return MakeWorkload<ClSoftmaxFloatWorkload, ClSoftmaxUint8Workload>(descriptor, info, - m_MemoryManager.GetIntraLayerManager()); + m_MemoryManager->GetIntraLayerManager()); } std::unique_ptr<IWorkload> ClWorkloadFactory::CreateSplitter(const SplitterQueueDescriptor& descriptor, @@ -164,7 +164,7 @@ std::unique_ptr<armnn::IWorkload> ClWorkloadFactory::CreateFullyConnected( const FullyConnectedQueueDescriptor& descriptor, const WorkloadInfo& info) const { return MakeWorkload<ClFullyConnectedWorkload, ClFullyConnectedWorkload>(descriptor, info, - m_MemoryManager.GetIntraLayerManager()); + m_MemoryManager->GetIntraLayerManager()); } std::unique_ptr<armnn::IWorkload> ClWorkloadFactory::CreatePermute(const PermuteQueueDescriptor& descriptor, @@ -182,7 +182,7 @@ std::unique_ptr<armnn::IWorkload> ClWorkloadFactory::CreatePooling2d(const Pooli std::unique_ptr<armnn::IWorkload> ClWorkloadFactory::CreateConvolution2d(const Convolution2dQueueDescriptor& descriptor, const WorkloadInfo& info) const { - return MakeWorkload<ClConvolution2dWorkload>(descriptor, info, m_MemoryManager.GetIntraLayerManager()); + return MakeWorkload<ClConvolution2dWorkload>(descriptor, info, m_MemoryManager->GetIntraLayerManager()); } std::unique_ptr<IWorkload> ClWorkloadFactory::CreateDepthwiseConvolution2d( @@ -322,20 +322,16 @@ std::unique_ptr<IWorkload> ClWorkloadFactory::CreateBatchToSpaceNd(const BatchTo void ClWorkloadFactory::Release() { - m_MemoryManager.Release(); + m_MemoryManager->Release(); } void ClWorkloadFactory::Acquire() { - m_MemoryManager.Acquire(); + m_MemoryManager->Acquire(); } #else // #if ARMCOMPUTECL_ENABLED -ClWorkloadFactory::ClWorkloadFactory() -{ -} - std::unique_ptr<ITensorHandle> ClWorkloadFactory::CreateTensorHandle(const TensorInfo& tensorInfo) const { return nullptr; |