18 #include <unordered_map> 41 std::string& errorMessage)
override;
45 std::string& errorMessage,
83 int GenerateNetworkId();
87 template<
typename Func>
88 void LoadedNetworkFuncSafe(
NetworkId networkId, Func f)
90 std::lock_guard<std::mutex> lockGuard(m_Mutex);
91 auto iter = m_LoadedNetworks.find(networkId);
92 if (iter != m_LoadedNetworks.end())
94 f(iter->second.get());
99 void LoadDynamicBackends(
const std::string& overrideBackendPath);
101 mutable std::mutex m_Mutex;
103 std::unordered_map<NetworkId, std::unique_ptr<LoadedNetwork>> m_LoadedNetworks;
104 std::unordered_map<BackendId, IBackendInternal::IBackendContextPtr> m_BackendContexts;
106 int m_NetworkIdCounter;
111 std::vector<DynamicBackendPtr> m_DynamicBackends;
Runtime(const CreationOptions &options)
Creates a runtime for workload execution.
std::vector< std::pair< LayerBindingId, class Tensor > > OutputTensors
virtual Status UnloadNetwork(NetworkId networkId) override
virtual const IDeviceSpec & GetDeviceSpec() const override
virtual TensorInfo GetOutputTensorInfo(NetworkId networkId, LayerBindingId layerId) const override
std::function< void(LayerGuid guid, unsigned int slotIndex, ITensorHandle *tensorHandle)> DebugCallbackFunction
virtual void RegisterDebugCallback(NetworkId networkId, const DebugCallbackFunction &func) override
friend void RuntimeLoadedNetworksReserve(armnn::Runtime *runtime)
std::vector< std::pair< LayerBindingId, class ConstTensor > > InputTensors
virtual const std::shared_ptr< IProfiler > GetProfiler(NetworkId networkId) const override
virtual TensorInfo GetInputTensorInfo(NetworkId networkId, LayerBindingId layerId) const override
std::unique_ptr< IOptimizedNetwork, void(*)(IOptimizedNetwork *network)> IOptimizedNetworkPtr
armnn::Runtime::CreationOptions::ExternalProfilingOptions options
int LayerBindingId
Type of identifiers for bindable layers (inputs, outputs).
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 Status LoadNetwork(NetworkId &networkIdOut, IOptimizedNetworkPtr network) override
Device specific knowledge to be passed to the optimizer.