aboutsummaryrefslogtreecommitdiff
path: root/src/armnn/AsyncNetwork.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/armnn/AsyncNetwork.hpp')
-rw-r--r--src/armnn/AsyncNetwork.hpp106
1 files changed, 0 insertions, 106 deletions
diff --git a/src/armnn/AsyncNetwork.hpp b/src/armnn/AsyncNetwork.hpp
deleted file mode 100644
index 9bdc7eebd7..0000000000
--- a/src/armnn/AsyncNetwork.hpp
+++ /dev/null
@@ -1,106 +0,0 @@
-//
-// Copyright © 2021 Arm Ltd and Contributors. All rights reserved.
-// SPDX-License-Identifier: MIT
-//
-
-#pragma once
-
-#include <armnn/IAsyncNetwork.hpp>
-#include <armnn/Tensor.hpp>
-#include <armnn/Types.hpp>
-
-#include "LayerFwd.hpp"
-#include "Network.hpp"
-#include "Profiling.hpp"
-#include "WorkingMemHandle.hpp"
-
-#include <armnn/backends/IBackendInternal.hpp>
-#include <backendsCommon/TensorHandleFactoryRegistry.hpp>
-#include <backendsCommon/Workload.hpp>
-#include <backendsCommon/WorkloadFactory.hpp>
-#include <ProfilingService.hpp>
-#include <TimelineUtilityMethods.hpp>
-
-#include <unordered_map>
-
-namespace armnn
-{
-
-namespace experimental
-{
-
-class AsyncNetworkImpl final
-{
-public:
- using WorkloadQueue = std::vector<std::unique_ptr<IWorkload>>;
-
- AsyncNetworkImpl(std::unique_ptr<IOptimizedNetwork> net,
- const INetworkProperties &networkProperties,
- profiling::ProfilingService &profilingService);
-
- ~AsyncNetworkImpl() { FreeWorkingMemory(); }
-
- TensorInfo GetInputTensorInfo(LayerBindingId layerId) const;
- TensorInfo GetOutputTensorInfo(LayerBindingId layerId) const;
-
- /// Thread safe execution of the network. Returns once execution is complete.
- /// Will block until this and any other thread using the same workingMem object completes.
- virtual Status Execute(const InputTensors& inputTensors,
- const OutputTensors& outputTensors,
- IWorkingMemHandle& workingMemHandle);
-
- /// Create a new unique WorkingMemHandle object. Create multiple handles if you wish to have
- /// overlapped Execution by calling this function from different threads.
- std::unique_ptr<IWorkingMemHandle> CreateWorkingMemHandle();
-
- /// Get the profiler used for this network
- std::shared_ptr<IProfiler> GetProfiler() const;
-
- /// Register a debug callback function to be used with this network
- void RegisterDebugCallback(const DebugCallbackFunction& func);
-
-private:
- void FreeWorkingMemory();
-
- void CollectInputTensorHandles(std::unordered_map<LayerGuid, std::vector<ITensorHandle*> >& tensorHandles,
- std::vector<ITensorHandle*>& inputs,
- const armnn::Layer* layer,
- const TensorHandleFactoryRegistry& registry,
- const bool isMemoryManaged = false);
-
- void CreateOutputTensorHandles(std::unordered_map<LayerGuid, std::vector<ITensorHandle*> >& tensorHandles,
- std::vector<ITensorHandle*>& outputs,
- const armnn::Layer* layer,
- const TensorHandleFactoryRegistry& registry,
- const bool isMemoryManaged = false);
-
- void EnqueueInput(const BindableLayer& layer, const ConstTensor& inputTensor, WorkingMemHandle& handle);
-
- void EnqueueOutput(const BindableLayer& layer, const Tensor& outputTensor, WorkingMemHandle& handle);
-
- using BackendPtrMap = std::unordered_map<BackendId, IBackendInternalUniquePtr>;
-
- using WorkloadFactoryWithMemoryManager =
- std::pair<IBackendInternal::IWorkloadFactoryPtr, IBackendInternal::IMemoryManagerSharedPtr>;
-
- using WorkloadFactoryMap = std::unordered_map<BackendId, WorkloadFactoryWithMemoryManager>;
-
- const IWorkloadFactory& GetWorkloadFactory(const Layer& layer) const;
-
- BackendPtrMap m_Backends;
- WorkloadFactoryMap m_WorkloadFactories;
-
- std::unique_ptr<IOptimizedNetwork> m_OptimizedNetwork;
- INetworkProperties m_NetworkProperties;
- WorkloadQueue m_WorkloadQueue;
- std::shared_ptr<IProfiler> m_Profiler;
-
- TensorHandleFactoryRegistry m_TensorHandleFactoryRegistry;
-
- /// Profiling Service Instance
- profiling::ProfilingService& m_ProfilingService;
-};
-
-} // end experimental namespace
-
-} // end armnn namespace