IVGCVSW-3607 Add CreateWorkloadFactory with TensorHandleFactoryRegistry
authorNarumol Prangnawarat <narumol.prangnawarat@arm.com>
Tue, 13 Aug 2019 09:26:53 +0000 (10:26 +0100)
committerNarumol Prangnawarat <narumol.prangnawarat@arm.com>
Tue, 13 Aug 2019 10:40:41 +0000 (11:40 +0100)
in IBackendInternal

Signed-off-by: Narumol Prangnawarat <narumol.prangnawarat@arm.com>
Change-Id: Id40b825649d0447058273b8bc4f7133a3ac3c96c

src/armnn/LoadedNetwork.cpp
src/backends/backendsCommon/IBackendInternal.cpp
src/backends/backendsCommon/IBackendInternal.hpp

index a81528a..f5f79f3 100644 (file)
@@ -99,7 +99,7 @@ LoadedNetwork::LoadedNetwork(std::unique_ptr<OptimizedNetwork> 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;
 }
 
index 261613c..01755c4 100644 (file)
@@ -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{};
index f8f9df5..3296d81 100644 (file)
@@ -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;