22.05
|
#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, MemorySource forceImportMemorySource=MemorySource::Undefined) |
std::vector< ImportedOutputId > | ImportOutputs (NetworkId networkId, const OutputTensors &outputTensors, MemorySource forceImportMemorySource=MemorySource::Undefined) |
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, std::vector< ImportedInputId > preImportedInputIds={}, std::vector< ImportedOutputId > preImportedOutputIds={}) |
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 (arm::pipe::IProfilingService &profilingService) override |
void | InitialiseProfilingService (arm::pipe::IProfilingService &profilingService) override |
Friends | |
void | RuntimeLoadedNetworksReserve (RuntimeImpl *runtime) |
arm::pipe::IProfilingService & | 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 320 of file Runtime.cpp.
References DeviceSpec::AddSupportedBackends(), ARMNN_ASSERT, ARMNN_LOG, ARMNN_VERSION, armnn::BackendRegistryInstance(), DeviceSpec::ClearDynamicBackends(), arm::pipe::ConvertExternalProfilingOptions(), 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(), and armnn::warning.
Referenced by RuntimeImpl::GetDeviceSpec().
~RuntimeImpl | ( | ) |
Definition at line 541 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 621 of file Runtime.cpp.
References LoadedNetwork::ClearImportedInputs().
void ClearImportedOutputs | ( | NetworkId | networkId, |
const std::vector< ImportedOutputId > | outputIds | ||
) |
Definition at line 625 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 721 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, | ||
std::vector< ImportedInputId > | preImportedInputIds = {} , |
||
std::vector< ImportedOutputId > | preImportedOutputIds = {} |
||
) |
Definition at line 630 of file Runtime.cpp.
References ARMNN_LOG, ARMNN_SCOPED_PROFILING_EVENT, LoadedNetwork::EnqueueWorkload(), armnn::error, armnn::Failure, LoadedNetwork::FreeWorkingMemory(), ProfilerManager::GetInstance(), LoadedNetwork::GetProfiler(), armnn::GetTimeDuration(), armnn::GetTimeNow(), armnn::info, 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 682 of file Runtime.cpp.
References ARMNN_LOG, ARMNN_SCOPED_PROFILING_EVENT, armnn::error, LoadedNetwork::Execute(), armnn::Failure, ProfilerManager::GetInstance(), IWorkingMemHandle::GetNetworkId(), LoadedNetwork::GetProfiler(), armnn::GetTimeDuration(), armnn::GetTimeNow(), armnn::info, LoadedNetwork::IsAsyncEnabled(), ProfilerManager::RegisterProfiler(), and armnn::Undefined.
|
inline |
Definition at line 90 of file Runtime.hpp.
References RuntimeImpl::CreateWorkingMemHandle(), RuntimeImpl::GetProfiler(), RuntimeImpl::GetProfilingService, RuntimeImpl::InitialiseProfilingService(), 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 599 of file Runtime.cpp.
References LoadedNetwork::GetInputTensorInfo().
Referenced by TEST_SUITE(), and VerifyPostOptimisationStructureTestImpl().
TensorInfo GetOutputTensorInfo | ( | NetworkId | networkId, |
LayerBindingId | layerId | ||
) | const |
Definition at line 604 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 287 of file Runtime.cpp.
Referenced by RuntimeImpl::GetDeviceSpec().
std::vector< ImportedInputId > ImportInputs | ( | NetworkId | networkId, |
const InputTensors & | inputTensors, | ||
MemorySource | forceImportMemorySource = MemorySource::Undefined |
||
) |
Definition at line 609 of file Runtime.cpp.
References LoadedNetwork::ImportInputs().
std::vector< ImportedOutputId > ImportOutputs | ( | NetworkId | networkId, |
const OutputTensors & | outputTensors, | ||
MemorySource | forceImportMemorySource = MemorySource::Undefined |
||
) |
Definition at line 615 of file Runtime.cpp.
References LoadedNetwork::ImportOutputs().
|
override |
Definition at line 314 of file Runtime.cpp.
References ArmNNProfilingServiceInitialiser::InitialiseProfilingService().
Referenced by RuntimeImpl::GetDeviceSpec().
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 163 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 169 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 178 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 752 of file Runtime.cpp.
References DeviceSpec::AddSupportedBackends(), DynamicBackendUtils::CreateDynamicBackends(), DynamicBackendUtils::GetBackendPaths(), DynamicBackendUtils::GetSharedObjects(), LoadedNetwork::RegisterDebugCallback(), and DynamicBackendUtils::RegisterDynamicBackends().
Referenced by RuntimeImpl::GetDeviceSpec().
|
override |
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 229 of file Runtime.cpp.
References ARMNN_LOG, armnn::debug, armnn::Failure, ProfilerManager::GetInstance(), ProfilerManager::RegisterProfiler(), armnn::Success, and armnn::warning.
Referenced by TEST_SUITE(), and RuntimeImpl::~RuntimeImpl().
|
friend |
Definition at line 59 of file TestUtils.cpp.
Referenced by RuntimeImpl::GetDeviceSpec().
|
friend |
Definition at line 36 of file RuntimeTests.cpp.
Referenced by RuntimeImpl::GetDeviceSpec().