From 9aed8fb43441228343b925b42464a55042c47ca0 Mon Sep 17 00:00:00 2001 From: Nikhil Raj Date: Wed, 17 Nov 2021 13:16:45 +0000 Subject: IVGCVSW-6040 Update 21.11 Doxygen Documents Signed-off-by: Nikhil Raj Change-Id: Ia36ec98c4bebc27a69103911ea3409cd7db587a5 --- 21.11/classarmnn_1_1_i_runtime.xhtml | 1025 ++++++++++++++++++++++++++++++++++ 1 file changed, 1025 insertions(+) create mode 100644 21.11/classarmnn_1_1_i_runtime.xhtml (limited to '21.11/classarmnn_1_1_i_runtime.xhtml') diff --git a/21.11/classarmnn_1_1_i_runtime.xhtml b/21.11/classarmnn_1_1_i_runtime.xhtml new file mode 100644 index 0000000000..97495f3aa0 --- /dev/null +++ b/21.11/classarmnn_1_1_i_runtime.xhtml @@ -0,0 +1,1025 @@ + + + + + + + + + + + + + +ArmNN: IRuntime Class Reference + + + + + + + + + + + + + + + + +
+
+ + + + ArmNN + + + +
+
+  21.11 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ + +
+ +

#include <IRuntime.hpp>

+ + + + +

+Classes

struct  CreationOptions
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

Status LoadNetwork (NetworkId &networkIdOut, IOptimizedNetworkPtr network)
 Loads a complete network into the IRuntime. 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)
 
TensorInfo GetInputTensorInfo (NetworkId networkId, LayerBindingId layerId) const
 
TensorInfo GetOutputTensorInfo (NetworkId networkId, LayerBindingId layerId) const
 
std::vector< ImportedInputIdImportInputs (NetworkId networkId, const InputTensors &inputTensors)
 ImportInputs separates the importing and mapping of InputTensors from network execution. More...
 
std::vector< ImportedOutputIdImportOutputs (NetworkId networkId, const OutputTensors &outputTensors)
 ImportOutputs separates the importing and mapping of OutputTensors from network execution. More...
 
void ClearImportedInputs (NetworkId networkId, const std::vector< ImportedInputId > inputIds)
 Un-import and delete the imported InputTensor/s This function is not thread safe and must not be used while other threads are calling Execute(). More...
 
void ClearImportedOutputs (NetworkId networkId, const std::vector< ImportedOutputId > outputIds)
 Un-import and delete the imported OutputTensor/s This function is not thread safe and must not be used while other threads are calling Execute(). More...
 
Status EnqueueWorkload (NetworkId networkId, const InputTensors &inputTensors, const OutputTensors &outputTensors)
 Evaluates a network using input in inputTensors and outputs filled into outputTensors. More...
 
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 IRuntime. More...
 
const IDeviceSpecGetDeviceSpec () const
 
std::unique_ptr< IWorkingMemHandleCreateWorkingMemHandle (NetworkId networkId)
 Create a new unique WorkingMemHandle object. More...
 
const std::shared_ptr< IProfilerGetProfiler (NetworkId networkId) const
 Gets the profiler corresponding to the given network id. More...
 
void RegisterDebugCallback (NetworkId networkId, const DebugCallbackFunction &func)
 Registers a callback function to debug layers performing custom computations on intermediate tensors. More...
 
+ + + + + + + +

+Static Public Member Functions

static IRuntimeCreateRaw (const CreationOptions &options)
 
static IRuntimePtr Create (const CreationOptions &options)
 
static void Destroy (IRuntime *runtime)
 
+ + + + + + + +

+Protected Member Functions

 IRuntime ()
 
 IRuntime (const IRuntime::CreationOptions &options)
 
 ~IRuntime ()
 
+ + + +

+Protected Attributes

std::unique_ptr< RuntimeImplpRuntimeImpl
 
+

Detailed Description

+
+

Definition at line 105 of file IRuntime.hpp.

+

Constructor & Destructor Documentation

+ +

◆ IRuntime() [1/2]

+ +
+
+ + + + + +
+ + + + + + + +
IRuntime ()
+
+protected
+
+ +

Definition at line 29 of file Runtime.cpp.

+ +

Referenced by IRuntime::CreateRaw().

+ +
+
+ +

◆ IRuntime() [2/2]

+ +
+
+ + + + + +
+ + + + + + + + +
IRuntime (const IRuntime::CreationOptionsoptions)
+
+protected
+
+ +

Definition at line 31 of file Runtime.cpp.

+ +

References IRuntime::~IRuntime().

+
31 : pRuntimeImpl(new RuntimeImpl(options)) {}
std::unique_ptr< RuntimeImpl > pRuntimeImpl
Definition: IRuntime.hpp:318
+ +
+
+
+ +

◆ ~IRuntime()

+ +
+
+ + + + + +
+ + + + + + + +
~IRuntime ()
+
+protecteddefault
+
+ +

Referenced by IRuntime::IRuntime().

+ +
+
+

Member Function Documentation

+ +

◆ ClearImportedInputs()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void ClearImportedInputs (NetworkId networkId,
const std::vector< ImportedInputIdinputIds 
)
+
+ +

Un-import and delete the imported InputTensor/s This function is not thread safe and must not be used while other threads are calling Execute().

+

Only compatible with AsyncEnabled networks

+ +

Definition at line 90 of file Runtime.cpp.

+ +

References IRuntime::pRuntimeImpl.

+
91 {
92  return pRuntimeImpl->ClearImportedInputs(networkId, inputIds);
93 }
std::unique_ptr< RuntimeImpl > pRuntimeImpl
Definition: IRuntime.hpp:318
+
+
+
+ +

◆ ClearImportedOutputs()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void ClearImportedOutputs (NetworkId networkId,
const std::vector< ImportedOutputIdoutputIds 
)
+
+ +

Un-import and delete the imported OutputTensor/s This function is not thread safe and must not be used while other threads are calling Execute().

+

Only compatible with AsyncEnabled networks

+ +

Definition at line 94 of file Runtime.cpp.

+ +

References IRuntime::pRuntimeImpl.

+
95 {
96  return pRuntimeImpl->ClearImportedOutputs(networkId, outputIds);
97 }
std::unique_ptr< RuntimeImpl > pRuntimeImpl
Definition: IRuntime.hpp:318
+
+
+
+ +

◆ Create()

+ +
+
+ + + + + +
+ + + + + + + + +
IRuntimePtr Create (const CreationOptionsoptions)
+
+static
+
+
Examples:
AsyncExecutionSample.cpp, DynamicSample.cpp, and SimpleSample.cpp.
+
+

Definition at line 40 of file Runtime.cpp.

+ +

References IRuntime::CreateRaw(), and IRuntime::Destroy().

+ +

Referenced by armnn::experimental::AsyncEndToEndTestImpl(), armnn::experimental::AsyncThreadedEndToEndTestImpl(), GetSoftmaxProfilerJson(), InferenceModel< IParser, TDataType >::InferenceModel(), main(), TEST_CASE_FIXTURE(), and TEST_SUITE().

+
41 {
42  return IRuntimePtr(CreateRaw(options), &IRuntime::Destroy);
43 }
std::unique_ptr< IRuntime, void(*)(IRuntime *runtime)> IRuntimePtr
Definition: IRuntime.hpp:31
+
static void Destroy(IRuntime *runtime)
Definition: Runtime.cpp:45
+
static IRuntime * CreateRaw(const CreationOptions &options)
Definition: Runtime.cpp:35
+
+
+
+ +

◆ CreateRaw()

+ +
+
+ + + + + +
+ + + + + + + + +
IRuntime * CreateRaw (const CreationOptionsoptions)
+
+static
+
+ +

Definition at line 35 of file Runtime.cpp.

+ +

References IRuntime::IRuntime().

+ +

Referenced by IRuntime::Create().

+
36 {
37  return new IRuntime(options);
38 }
+
+
+
+ +

◆ CreateWorkingMemHandle()

+ +
+
+ + + + + + + + +
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 125 of file Runtime.cpp.

+ +

References IRuntime::pRuntimeImpl.

+
126 {
127  return pRuntimeImpl->CreateWorkingMemHandle(networkId);
128 }
std::unique_ptr< RuntimeImpl > pRuntimeImpl
Definition: IRuntime.hpp:318
+
+
+
+ +

◆ Destroy()

+ +
+
+ + + + + +
+ + + + + + + + +
void Destroy (IRuntimeruntime)
+
+static
+
+ +

Definition at line 45 of file Runtime.cpp.

+ +

Referenced by IRuntime::Create().

+
46 {
47  delete runtime;
48 }
+
+
+ +

◆ EnqueueWorkload()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
Status EnqueueWorkload (NetworkId networkId,
const InputTensorsinputTensors,
const OutputTensorsoutputTensors 
)
+
+ +

Evaluates a network using input in inputTensors and outputs filled into outputTensors.

+ +

Definition at line 99 of file Runtime.cpp.

+ +

References IRuntime::pRuntimeImpl.

+
102 {
103  return pRuntimeImpl->EnqueueWorkload(networkId, inputTensors, outputTensors);
104 }
std::unique_ptr< RuntimeImpl > pRuntimeImpl
Definition: IRuntime.hpp:318
+
+
+
+ +

◆ Execute()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Status Execute (IWorkingMemHandleworkingMemHandle,
const InputTensorsinputTensors,
const OutputTensorsoutputTensors,
std::vector< ImportedInputIdpreImportedInputs = {},
std::vector< ImportedOutputIdpreImportedOutputs = {} 
)
+
+ +

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 106 of file Runtime.cpp.

+ +

References IRuntime::pRuntimeImpl.

+ +

Referenced by Threadpool::TerminateThreadPool().

+
111 {
112  return pRuntimeImpl->Execute(workingMemHandle, inputTensors, outputTensors, preImportedInputs, preImportedOutputs);
113 }
std::unique_ptr< RuntimeImpl > pRuntimeImpl
Definition: IRuntime.hpp:318
+
+
+
+ +

◆ GetDeviceSpec()

+ +
+
+ + + + + + + +
const IDeviceSpec & GetDeviceSpec () const
+
+ +

Definition at line 120 of file Runtime.cpp.

+ +

References IRuntime::pRuntimeImpl.

+
121 {
122  return pRuntimeImpl->GetDeviceSpec();
123 }
std::unique_ptr< RuntimeImpl > pRuntimeImpl
Definition: IRuntime.hpp:318
+
+
+
+ +

◆ GetInputTensorInfo()

+ +
+
+ + + + + + + + + + + + + + + + + + +
armnn::TensorInfo GetInputTensorInfo (NetworkId networkId,
LayerBindingId layerId 
) const
+
+ +

Definition at line 70 of file Runtime.cpp.

+ +

References IRuntime::pRuntimeImpl.

+
71 {
72  return pRuntimeImpl->GetInputTensorInfo(networkId, layerId);
73 }
std::unique_ptr< RuntimeImpl > pRuntimeImpl
Definition: IRuntime.hpp:318
+
+
+
+ +

◆ GetOutputTensorInfo()

+ +
+
+ + + + + + + + + + + + + + + + + + +
armnn::TensorInfo GetOutputTensorInfo (NetworkId networkId,
LayerBindingId layerId 
) const
+
+ +

Definition at line 75 of file Runtime.cpp.

+ +

References IRuntime::pRuntimeImpl.

+
76 {
77  return pRuntimeImpl->GetOutputTensorInfo(networkId, layerId);
78 }
std::unique_ptr< RuntimeImpl > pRuntimeImpl
Definition: IRuntime.hpp:318
+
+
+
+ +

◆ GetProfiler()

+ +
+
+ + + + + + + + +
const std::shared_ptr< IProfiler > GetProfiler (NetworkId networkId) const
+
+ +

Gets the profiler corresponding to the given network id.

+
Parameters
+ + +
networkIdThe id of the network for which to get the profile.
+
+
+
Returns
A pointer to the requested profiler, or nullptr if not found.
+ +

Definition at line 130 of file Runtime.cpp.

+ +

References IRuntime::pRuntimeImpl.

+
131 {
132  return pRuntimeImpl->GetProfiler(networkId);
133 }
std::unique_ptr< RuntimeImpl > pRuntimeImpl
Definition: IRuntime.hpp:318
+
+
+
+ +

◆ ImportInputs()

+ +
+
+ + + + + + + + + + + + + + + + + + +
std::vector< ImportedInputId > ImportInputs (NetworkId networkId,
const InputTensorsinputTensors 
)
+
+ +

ImportInputs separates the importing and mapping of InputTensors from network execution.

+

Allowing for a set of InputTensors to be imported and mapped once, but used in execution many times. This function is not thread safe and must not be used while other threads are calling Execute(). Only compatible with AsyncEnabled networks

+ +

Definition at line 80 of file Runtime.cpp.

+ +

References IRuntime::pRuntimeImpl.

+
81 {
82  return pRuntimeImpl->ImportInputs(networkId, inputTensors);
83 }
std::unique_ptr< RuntimeImpl > pRuntimeImpl
Definition: IRuntime.hpp:318
+
+
+
+ +

◆ ImportOutputs()

+ +
+
+ + + + + + + + + + + + + + + + + + +
std::vector< ImportedOutputId > ImportOutputs (NetworkId networkId,
const OutputTensorsoutputTensors 
)
+
+ +

ImportOutputs separates the importing and mapping of OutputTensors from network execution.

+

Allowing for a set of OutputTensors to be imported and mapped once, but used in execution many times. This function is not thread safe and must not be used while other threads are calling Execute(). Only compatible with AsyncEnabled networks

+ +

Definition at line 85 of file Runtime.cpp.

+ +

References IRuntime::pRuntimeImpl.

+
86 {
87  return pRuntimeImpl->ImportOutputs(networkId, outputTensors);
88 }
std::unique_ptr< RuntimeImpl > pRuntimeImpl
Definition: IRuntime.hpp:318
+
+
+
+ +

◆ LoadNetwork() [1/3]

+ +
+
+ + + + + + + + + + + + + + + + + + +
Status LoadNetwork (NetworkIdnetworkIdOut,
IOptimizedNetworkPtr network 
)
+
+ +

Loads a complete network into the IRuntime.

+
Parameters
+ + + +
[out]networkIdOut- Unique identifier for the network is returned in this reference.
[in]network- Complete network to load into the IRuntime. The runtime takes ownership of the network once passed in.
+
+
+
Returns
armnn::Status
+ +

Definition at line 50 of file Runtime.cpp.

+ +

References IRuntime::pRuntimeImpl.

+ +

Referenced by RuntimeImpl::LoadNetwork().

+
51 {
52  return pRuntimeImpl->LoadNetwork(networkIdOut, std::move(network));
53 }
std::unique_ptr< RuntimeImpl > pRuntimeImpl
Definition: IRuntime.hpp:318
+
+
+
+ +

◆ LoadNetwork() [2/3]

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
Status LoadNetwork (NetworkIdnetworkIdOut,
IOptimizedNetworkPtr network,
std::string & errorMessage 
)
+
+ +

Load a complete network into the IRuntime.

+
Parameters
+ + + + +
[out]networkIdOutUnique identifier for the network is returned in this reference.
[in]networkComplete network to load into the IRuntime.
[out]errorMessageError message if there were any errors. The runtime takes ownership of the network once passed in.
+
+
+
Returns
armnn::Status
+ +

Definition at line 55 of file Runtime.cpp.

+ +

References IRuntime::pRuntimeImpl.

+
58 {
59  return pRuntimeImpl->LoadNetwork(networkIdOut, std::move(network), errorMessage);
60 }
std::unique_ptr< RuntimeImpl > pRuntimeImpl
Definition: IRuntime.hpp:318
+
+
+
+ +

◆ LoadNetwork() [3/3]

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Status LoadNetwork (NetworkIdnetworkIdOut,
IOptimizedNetworkPtr network,
std::string & errorMessage,
const INetworkPropertiesnetworkProperties 
)
+
+ +

Definition at line 62 of file Runtime.cpp.

+ +

References IRuntime::pRuntimeImpl.

+
66 {
67  return pRuntimeImpl->LoadNetwork(networkIdOut, std::move(network), errorMessage, networkProperties);
68 }
std::unique_ptr< RuntimeImpl > pRuntimeImpl
Definition: IRuntime.hpp:318
+
+
+
+ +

◆ RegisterDebugCallback()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void RegisterDebugCallback (NetworkId networkId,
const DebugCallbackFunctionfunc 
)
+
+ +

Registers a callback function to debug layers performing custom computations on intermediate tensors.

+
Parameters
+ + + +
networkIdThe id of the network to register the callback.
funccallback function to pass to the debug layer.
+
+
+ +

Definition at line 135 of file Runtime.cpp.

+ +

References IRuntime::pRuntimeImpl.

+
136 {
137  return pRuntimeImpl->RegisterDebugCallback(networkId, func);
138 }
std::unique_ptr< RuntimeImpl > pRuntimeImpl
Definition: IRuntime.hpp:318
+
+
+
+ +

◆ UnloadNetwork()

+ +
+
+ + + + + + + + +
Status UnloadNetwork (NetworkId networkId)
+
+ +

Unloads a network from the IRuntime.

+

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.

Parameters
+ + +
[in]networkId- Unique identifier for the network to be unloaded. Generated in LoadNetwork().
+
+
+
Returns
armnn::Status
+ +

Definition at line 115 of file Runtime.cpp.

+ +

References IRuntime::pRuntimeImpl.

+
116 {
117  return pRuntimeImpl->UnloadNetwork(networkId);
118 }
std::unique_ptr< RuntimeImpl > pRuntimeImpl
Definition: IRuntime.hpp:318
+
+
+
+

Member Data Documentation

+ +

◆ pRuntimeImpl

+ + +
The documentation for this class was generated from the following files: +
+
+ + + + -- cgit v1.2.1