21.11
|
#include <Runtime.hpp>
Public Member Functions | |
Status | LoadNetwork (NetworkId &networkIdOut, IOptimizedNetworkPtr network) |
Loads a complete network into the Runtime. More... | |
Status | LoadNetwork (NetworkId &networkIdOut, IOptimizedNetworkPtr network, std::string &errorMessage) |
Load a complete network into the IRuntime. More... | |
Status | LoadNetwork (NetworkId &networkIdOut, IOptimizedNetworkPtr network, std::string &errorMessage, const INetworkProperties &networkProperties) |
armnn::TensorInfo | GetInputTensorInfo (NetworkId networkId, LayerBindingId layerId) const |
armnn::TensorInfo | GetOutputTensorInfo (NetworkId networkId, LayerBindingId layerId) const |
std::vector< ImportedInputId > | ImportInputs (NetworkId networkId, const InputTensors &inputTensors) |
std::vector< ImportedOutputId > | ImportOutputs (NetworkId networkId, const OutputTensors &outputTensors) |
void | ClearImportedInputs (NetworkId networkId, const std::vector< ImportedInputId > inputIds) |
void | ClearImportedOutputs (NetworkId networkId, const std::vector< ImportedOutputId > outputIds) |
Status | EnqueueWorkload (NetworkId networkId, const InputTensors &inputTensors, const OutputTensors &outputTensors) |
Status | Execute (IWorkingMemHandle &workingMemHandle, const InputTensors &inputTensors, const OutputTensors &outputTensors, std::vector< ImportedInputId > preImportedInputs, std::vector< ImportedOutputId > preImportedOutputs) |
This is an experimental function. More... | |
Status | UnloadNetwork (NetworkId networkId) |
Unloads a network from the Runtime. More... | |
const IDeviceSpec & | GetDeviceSpec () const |
const std::shared_ptr< IProfiler > | GetProfiler (NetworkId networkId) const |
Gets the profiler corresponding to the given network id. More... | |
std::unique_ptr< IWorkingMemHandle > | CreateWorkingMemHandle (NetworkId networkId) |
Create a new unique WorkingMemHandle object. More... | |
void | RegisterDebugCallback (NetworkId networkId, const DebugCallbackFunction &func) |
Registers a callback function to debug layers performing custom computations on intermediate tensors. More... | |
RuntimeImpl (const IRuntime::CreationOptions &options) | |
Creates a runtime for workload execution. More... | |
~RuntimeImpl () | |
void | ReportStructure () |
Public Member Functions inherited from IReportStructure | |
virtual | ~IReportStructure () |
Friends | |
void | RuntimeLoadedNetworksReserve (RuntimeImpl *runtime) |
profiling::ProfilingService & | GetProfilingService (RuntimeImpl *runtime) |
Definition at line 30 of file Runtime.hpp.
RuntimeImpl | ( | const IRuntime::CreationOptions & | options | ) |
Creates a runtime for workload execution.
Definition at line 291 of file Runtime.cpp.
References ProfilingService::AddBackendProfilingContext(), DeviceSpec::AddSupportedBackends(), ARMNN_ASSERT, ARMNN_LOG, ARMNN_VERSION, armnn::BackendRegistryInstance(), DeviceSpec::ClearDynamicBackends(), ProfilingService::ConfigureProfilingService(), DynamicBackendUtils::DeregisterDynamicBackends(), armnn::DmaBufProtected, armnn::error, DeviceSpec::GetDynamicBackends(), BackendRegistry::GetFactory(), armnn::GetMemBlockStrategyTypeName(), armnn::GetMemoryOptimizerStrategy(), armnn::GetTimeDuration(), armnn::GetTimeNow(), armnn::HasCapability(), armnn::info, IRuntime::CreationOptions::m_BackendOptions, IRuntime::CreationOptions::m_CustomAllocatorMap, IRuntime::CreationOptions::m_DynamicBackendsPath, IRuntime::CreationOptions::ExternalProfilingOptions::m_EnableProfiling, IRuntime::CreationOptions::m_MemoryOptimizerStrategyMap, IRuntime::CreationOptions::m_ProfilingOptions, IRuntime::CreationOptions::m_ProtectedMode, IRuntime::CreationOptions::ExternalProfilingOptions::m_TimelineEnabled, armnn::ParseOptions(), BackendRegistry::RegisterAllocator(), BackendRegistry::RegisterMemoryOptimizerStrategy(), BackendRegistry::SetProfilingService(), ProfilingService::WaitForProfilingServiceActivation(), and armnn::warning.
Referenced by RuntimeImpl::GetDeviceSpec().
~RuntimeImpl | ( | ) |
Definition at line 503 of file Runtime.cpp.
References ARMNN_LOG, armnn::BackendRegistryInstance(), DeviceSpec::ClearDynamicBackends(), DynamicBackendUtils::DeregisterDynamicBackends(), DeviceSpec::GetDynamicBackends(), armnn::GetTimeDuration(), armnn::GetTimeNow(), armnn::info, BackendRegistry::SetProfilingService(), and RuntimeImpl::UnloadNetwork().
Referenced by RuntimeImpl::GetDeviceSpec().
void ClearImportedInputs | ( | NetworkId | networkId, |
const std::vector< ImportedInputId > | inputIds | ||
) |
Definition at line 579 of file Runtime.cpp.
References LoadedNetwork::ClearImportedInputs().
void ClearImportedOutputs | ( | NetworkId | networkId, |
const std::vector< ImportedOutputId > | outputIds | ||
) |
Definition at line 583 of file Runtime.cpp.
References LoadedNetwork::ClearImportedOutputs().
std::unique_ptr< IWorkingMemHandle > CreateWorkingMemHandle | ( | NetworkId | networkId | ) |
Create a new unique WorkingMemHandle object.
Create multiple handles if you wish to have overlapped Execution by calling this function from different threads.
Definition at line 653 of file Runtime.cpp.
References ARMNN_LOG, ARMNN_SCOPED_PROFILING_EVENT, LoadedNetwork::CreateWorkingMemHandle(), armnn::error, LoadedNetwork::FreeWorkingMemory(), ProfilerManager::GetInstance(), LoadedNetwork::GetProfiler(), LoadedNetwork::IsAsyncEnabled(), ProfilerManager::RegisterProfiler(), and armnn::Undefined.
Referenced by RuntimeImpl::GetDeviceSpec().
Status EnqueueWorkload | ( | NetworkId | networkId, |
const InputTensors & | inputTensors, | ||
const OutputTensors & | outputTensors | ||
) |
Definition at line 588 of file Runtime.cpp.
References ARMNN_LOG, ARMNN_SCOPED_PROFILING_EVENT, LoadedNetwork::EnqueueWorkload(), armnn::error, armnn::Failure, LoadedNetwork::FreeWorkingMemory(), ProfilerManager::GetInstance(), LoadedNetwork::GetProfiler(), LoadedNetwork::IsAsyncEnabled(), ProfilerManager::RegisterProfiler(), and armnn::Undefined.
Referenced by TEST_SUITE(), and VerifyPostOptimisationStructureTestImpl().
Status Execute | ( | IWorkingMemHandle & | workingMemHandle, |
const InputTensors & | inputTensors, | ||
const OutputTensors & | outputTensors, | ||
std::vector< ImportedInputId > | preImportedInputs, | ||
std::vector< ImportedOutputId > | preImportedOutputs | ||
) |
This is an experimental function.
Evaluates a network using input in inputTensors and outputs filled into outputTensors. This function performs a 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.
Definition at line 621 of file Runtime.cpp.
References ARMNN_LOG, ARMNN_SCOPED_PROFILING_EVENT, armnn::error, LoadedNetwork::Execute(), armnn::Failure, ProfilerManager::GetInstance(), IWorkingMemHandle::GetNetworkId(), LoadedNetwork::GetProfiler(), LoadedNetwork::IsAsyncEnabled(), ProfilerManager::RegisterProfiler(), and armnn::Undefined.
|
inline |
Definition at line 86 of file Runtime.hpp.
References RuntimeImpl::CreateWorkingMemHandle(), RuntimeImpl::GetProfiler(), RuntimeImpl::GetProfilingService, RuntimeImpl::RegisterDebugCallback(), RuntimeImpl::ReportStructure(), RuntimeImpl::RuntimeImpl(), RuntimeImpl::RuntimeLoadedNetworksReserve, and RuntimeImpl::~RuntimeImpl().
Referenced by TEST_SUITE(), and VerifyPostOptimisationStructureTestImpl().
TensorInfo GetInputTensorInfo | ( | NetworkId | networkId, |
LayerBindingId | layerId | ||
) | const |
Definition at line 559 of file Runtime.cpp.
References LoadedNetwork::GetInputTensorInfo().
Referenced by TEST_SUITE(), and VerifyPostOptimisationStructureTestImpl().
TensorInfo GetOutputTensorInfo | ( | NetworkId | networkId, |
LayerBindingId | layerId | ||
) | const |
Definition at line 564 of file Runtime.cpp.
References LoadedNetwork::GetOutputTensorInfo().
Referenced by TEST_SUITE(), and VerifyPostOptimisationStructureTestImpl().
Gets the profiler corresponding to the given network id.
networkId | The id of the network for which to get the profile. |
Definition at line 264 of file Runtime.cpp.
Referenced by RuntimeImpl::GetDeviceSpec().
std::vector< ImportedInputId > ImportInputs | ( | NetworkId | networkId, |
const InputTensors & | inputTensors | ||
) |
Definition at line 569 of file Runtime.cpp.
References LoadedNetwork::ImportInputs().
std::vector< ImportedOutputId > ImportOutputs | ( | NetworkId | networkId, |
const OutputTensors & | outputTensors | ||
) |
Definition at line 574 of file Runtime.cpp.
References LoadedNetwork::ImportOutputs().
Status LoadNetwork | ( | NetworkId & | networkIdOut, |
IOptimizedNetworkPtr | network | ||
) |
Loads a complete network into the Runtime.
[out] | networkIdOut | - Unique identifier for the network is returned in this reference. |
[in] | network | - Complete network to load into the Runtime. The runtime takes ownership of the network once passed in. |
Definition at line 145 of file Runtime.cpp.
References IRuntime::LoadNetwork().
Referenced by TEST_SUITE(), and VerifyPostOptimisationStructureTestImpl().
Status LoadNetwork | ( | NetworkId & | networkIdOut, |
IOptimizedNetworkPtr | network, | ||
std::string & | errorMessage | ||
) |
Load a complete network into the IRuntime.
[out] | networkIdOut | Unique identifier for the network is returned in this reference. |
[in] | network | Complete network to load into the IRuntime. |
[out] | errorMessage | Error message if there were any errors. The runtime takes ownership of the network once passed in. |
Definition at line 151 of file Runtime.cpp.
References IRuntime::LoadNetwork(), and armnn::Undefined.
Status LoadNetwork | ( | NetworkId & | networkIdOut, |
IOptimizedNetworkPtr | network, | ||
std::string & | errorMessage, | ||
const INetworkProperties & | networkProperties | ||
) |
Definition at line 160 of file Runtime.cpp.
References armnn::Failure, ProfilerManager::GetInstance(), LoadedNetwork::MakeLoadedNetwork(), ProfilerManager::RegisterProfiler(), and armnn::Success.
void RegisterDebugCallback | ( | NetworkId | networkId, |
const DebugCallbackFunction & | func | ||
) |
Registers a callback function to debug layers performing custom computations on intermediate tensors.
networkId | The id of the network to register the callback. |
func | callback function to pass to the debug layer. |
Definition at line 684 of file Runtime.cpp.
References DeviceSpec::AddSupportedBackends(), DynamicBackendUtils::CreateDynamicBackends(), DynamicBackendUtils::GetBackendPaths(), DynamicBackendUtils::GetSharedObjects(), LoadedNetwork::RegisterDebugCallback(), and DynamicBackendUtils::RegisterDynamicBackends().
Referenced by RuntimeImpl::GetDeviceSpec().
|
virtual |
Implements IReportStructure.
Definition at line 276 of file Runtime.cpp.
Referenced by RuntimeImpl::GetDeviceSpec().
Unloads a network from the Runtime.
At the moment this only removes the network from the m_Impl->m_Network. This might need more work in the future to be AndroidNN compliant.
[in] | networkId | Unique identifier for the network to be unloaded. Generated in LoadNetwork(). |
Definition at line 209 of file Runtime.cpp.
References ARMNN_LOG, armnn::debug, armnn::Failure, ProfilerManager::GetInstance(), TimelineUtilityMethods::GetTimelineUtils(), ProfilerManager::RegisterProfiler(), armnn::Success, and armnn::warning.
Referenced by TEST_SUITE(), and RuntimeImpl::~RuntimeImpl().
|
friend |
Definition at line 57 of file TestUtils.cpp.
Referenced by RuntimeImpl::GetDeviceSpec().
|
friend |
Definition at line 30 of file RuntimeTests.cpp.
Referenced by RuntimeImpl::GetDeviceSpec().