From 11bd26133423f5076e74a08752954819de56eb26 Mon Sep 17 00:00:00 2001 From: Narumol Prangnawarat Date: Tue, 13 Aug 2019 10:26:53 +0100 Subject: IVGCVSW-3607 Add CreateWorkloadFactory with TensorHandleFactoryRegistry in IBackendInternal Signed-off-by: Narumol Prangnawarat Change-Id: Id40b825649d0447058273b8bc4f7133a3ac3c96c --- src/armnn/LoadedNetwork.cpp | 4 +++- src/backends/backendsCommon/IBackendInternal.cpp | 6 ++++++ src/backends/backendsCommon/IBackendInternal.hpp | 3 +++ 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/src/armnn/LoadedNetwork.cpp b/src/armnn/LoadedNetwork.cpp index a81528aa65..f5f79f3940 100644 --- a/src/armnn/LoadedNetwork.cpp +++ b/src/armnn/LoadedNetwork.cpp @@ -99,7 +99,7 @@ LoadedNetwork::LoadedNetwork(std::unique_ptr net) { backend->RegisterTensorHandleFactories(m_TensorHandleFactoryRegistry); - auto workloadFactory = backend->CreateWorkloadFactory(); + auto workloadFactory = backend->CreateWorkloadFactory(m_TensorHandleFactoryRegistry); m_WorkloadFactories.emplace( std::make_pair(backendId, std::make_pair(std::move(workloadFactory), nullptr))); } @@ -491,6 +491,7 @@ void LoadedNetwork::AllocateWorkingMemory() memoryManager->Acquire(); } } + m_TensorHandleFactoryRegistry.AquireMemory(); m_IsWorkingMemAllocated = true; } @@ -510,6 +511,7 @@ void LoadedNetwork::FreeWorkingMemory() memoryManager->Release(); } } + m_TensorHandleFactoryRegistry.ReleaseMemory(); m_IsWorkingMemAllocated = false; } diff --git a/src/backends/backendsCommon/IBackendInternal.cpp b/src/backends/backendsCommon/IBackendInternal.cpp index 261613c490..01755c4b92 100644 --- a/src/backends/backendsCommon/IBackendInternal.cpp +++ b/src/backends/backendsCommon/IBackendInternal.cpp @@ -33,6 +33,12 @@ IMemoryManagerUniquePtr IBackendInternal::CreateMemoryManager() const return IMemoryManagerUniquePtr(); } +IBackendInternal::IWorkloadFactoryPtr IBackendInternal::CreateWorkloadFactory( + class TensorHandleFactoryRegistry& tensorHandleFactoryRegistry) const +{ + return IWorkloadFactoryPtr{}; +} + IBackendInternal::IBackendContextPtr IBackendInternal::CreateBackendContext(const IRuntime::CreationOptions&) const { return IBackendContextPtr{}; diff --git a/src/backends/backendsCommon/IBackendInternal.hpp b/src/backends/backendsCommon/IBackendInternal.hpp index f8f9df5beb..3296d81b7c 100644 --- a/src/backends/backendsCommon/IBackendInternal.hpp +++ b/src/backends/backendsCommon/IBackendInternal.hpp @@ -108,6 +108,9 @@ public: virtual IWorkloadFactoryPtr CreateWorkloadFactory( const IMemoryManagerSharedPtr& memoryManager = nullptr) const = 0; + virtual IWorkloadFactoryPtr CreateWorkloadFactory( + class TensorHandleFactoryRegistry& tensorHandleFactoryRegistry) const; + virtual IBackendContextPtr CreateBackendContext(const IRuntime::CreationOptions&) const; virtual ILayerSupportSharedPtr GetLayerSupport() const = 0; -- cgit v1.2.1