23 #include <unordered_map> 27 using LoadedNetworks = std::unordered_map<NetworkId, std::unique_ptr<LoadedNetwork>>;
48 std::string& errorMessage);
52 std::string& errorMessage,
76 std::vector<ImportedInputId> preImportedInputs,
77 std::vector<ImportedOutputId> preImportedOutputs);
116 int GenerateNetworkId();
120 template<
typename Func>
121 void LoadedNetworkFuncSafe(
NetworkId networkId, Func f)
123 std::lock_guard<std::mutex> lockGuard(m_Mutex);
124 auto iter = m_LoadedNetworks.find(networkId);
125 if (iter != m_LoadedNetworks.end())
127 f(iter->second.get());
132 void LoadDynamicBackends(
const std::string& overrideBackendPath);
134 mutable std::mutex m_Mutex;
139 std::unordered_map<BackendId, IBackendInternal::IBackendContextPtr> m_BackendContexts;
141 int m_NetworkIdCounter;
146 std::vector<DynamicBackendPtr> m_DynamicBackends;
armnn::TensorInfo GetInputTensorInfo(NetworkId networkId, LayerBindingId layerId) const
Status Execute(IWorkingMemHandle &workingMemHandle, const InputTensors &inputTensors, const OutputTensors &outputTensors, std::vector< ImportedInputId > preImportedInputs, std::vector< ImportedOutputId > preImportedOutputs)
This is an experimental function.
Status UnloadNetwork(NetworkId networkId)
Unloads a network from the Runtime.
Status LoadNetwork(NetworkId &networkIdOut, IOptimizedNetworkPtr network)
Loads a complete network into the Runtime.
std::vector< ImportedInputId > ImportInputs(NetworkId networkId, const InputTensors &inputTensors)
std::vector< std::pair< LayerBindingId, class ConstTensor > > InputTensors
armnn::TensorInfo GetOutputTensorInfo(NetworkId networkId, LayerBindingId layerId) const
Copyright (c) 2021 ARM Limited and Contributors.
Status EnqueueWorkload(NetworkId networkId, const InputTensors &inputTensors, const OutputTensors &outputTensors)
profiling::IReportStructure IReportStructure
void RegisterDebugCallback(NetworkId networkId, const DebugCallbackFunction &func)
Registers a callback function to debug layers performing custom computations on intermediate tensors...
const std::shared_ptr< IProfiler > GetProfiler(NetworkId networkId) const
Gets the profiler corresponding to the given network id.
std::function< void(LayerGuid guid, unsigned int slotIndex, ITensorHandle *tensorHandle)> DebugCallbackFunction
Define the type of callback for the Debug layer to call.
int LayerBindingId
Type of identifiers for bindable layers (inputs, outputs).
friend profiling::ProfilingService & GetProfilingService(RuntimeImpl *runtime)
const IDeviceSpec & GetDeviceSpec() const
std::vector< std::pair< LayerBindingId, class Tensor > > OutputTensors
std::unique_ptr< IOptimizedNetwork, void(*)(IOptimizedNetwork *network)> IOptimizedNetworkPtr
void ClearImportedInputs(NetworkId networkId, const std::vector< ImportedInputId > inputIds)
Device specific knowledge to be passed to the optimizer.
friend void RuntimeLoadedNetworksReserve(RuntimeImpl *runtime)
RuntimeImpl(const IRuntime::CreationOptions &options)
Creates a runtime for workload execution.
std::vector< ImportedOutputId > ImportOutputs(NetworkId networkId, const OutputTensors &outputTensors)
std::unordered_map< NetworkId, std::unique_ptr< LoadedNetwork > > LoadedNetworks
std::unique_ptr< IWorkingMemHandle > CreateWorkingMemHandle(NetworkId networkId)
Create a new unique WorkingMemHandle object.
void ClearImportedOutputs(NetworkId networkId, const std::vector< ImportedOutputId > outputIds)