23 #include <unordered_map> 27 using LoadedNetworks = std::unordered_map<NetworkId, std::unique_ptr<LoadedNetwork>>;
49 std::string& errorMessage)
override;
53 std::string& errorMessage,
97 int GenerateNetworkId();
101 template<
typename Func>
102 void LoadedNetworkFuncSafe(
NetworkId networkId, Func f)
104 std::lock_guard<std::mutex> lockGuard(m_Mutex);
105 auto iter = m_LoadedNetworks.find(networkId);
106 if (iter != m_LoadedNetworks.end())
108 f(iter->second.get());
113 void LoadDynamicBackends(
const std::string& overrideBackendPath);
115 mutable std::mutex m_Mutex;
120 std::unordered_map<BackendId, IBackendInternal::IBackendContextPtr> m_BackendContexts;
122 int m_NetworkIdCounter;
127 std::vector<DynamicBackendPtr> m_DynamicBackends;
virtual TensorInfo GetOutputTensorInfo(NetworkId networkId, LayerBindingId layerId) const override
virtual const IDeviceSpec & GetDeviceSpec() const override
std::vector< std::pair< LayerBindingId, class ConstTensor > > InputTensors
friend profiling::ProfilingService & GetProfilingService(armnn::Runtime *runtime)
Copyright (c) 2020 ARM Limited.
profiling::IReportStructure IReportStructure
std::function< void(LayerGuid guid, unsigned int slotIndex, ITensorHandle *tensorHandle)> DebugCallbackFunction
Define the type of callback for the Debug layer to call.
virtual const std::shared_ptr< IProfiler > GetProfiler(NetworkId networkId) const override
Gets the profiler corresponding to the given network id.
int LayerBindingId
Type of identifiers for bindable layers (inputs, outputs).
virtual void ReportStructure() override
virtual void RegisterDebugCallback(NetworkId networkId, const DebugCallbackFunction &func) override
Registers a callback function to debug layers performing custom computations on intermediate tensors...
std::vector< std::pair< LayerBindingId, class Tensor > > OutputTensors
std::unique_ptr< IOptimizedNetwork, void(*)(IOptimizedNetwork *network)> IOptimizedNetworkPtr
Device specific knowledge to be passed to the optimizer.
friend void RuntimeLoadedNetworksReserve(armnn::Runtime *runtime)
virtual Status LoadNetwork(NetworkId &networkIdOut, IOptimizedNetworkPtr network) override
Loads a complete network into the Runtime.
virtual Status UnloadNetwork(NetworkId networkId) override
Unloads a network from the Runtime.
std::unordered_map< NetworkId, std::unique_ptr< LoadedNetwork > > LoadedNetworks
Runtime(const CreationOptions &options)
Creates a runtime for workload execution.
virtual Status EnqueueWorkload(NetworkId networkId, const InputTensors &inputTensors, const OutputTensors &outputTensors) override
Evaluates a network using input in inputTensors and outputs filled into outputTensors.
virtual TensorInfo GetInputTensorInfo(NetworkId networkId, LayerBindingId layerId) const override