aboutsummaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
authorColm Donelan <colm.donelan@arm.com>2022-09-14 18:04:00 +0100
committerColm Donelan <colm.donelan@arm.com>2022-09-21 20:32:36 +0000
commit09026930f1cf207cddb243c8bc388e2c390ac940 (patch)
treec476612e57c5499d1273e68d9549a024862f17fa /docs
parentde33dda47d4afec985dc84ebf9a7a18a5a27659c (diff)
downloadarmnn-09026930f1cf207cddb243c8bc388e2c390ac940.tar.gz
IVGCVSW-6790 Adding runtime options to Doxygen.
* Add a breakdown of the runtime options to the documentation. * Exclude test classes from Doxygen generation. * Limit the file extension selection for Doxygen generation. * Add the support library to be generated. * Fix some broken markups. Signed-off-by: Colm Donelan <colm.donelan@arm.com> Change-Id: I81896f2d7fff503a1d51d6d4ac3876aa8b84118e
Diffstat (limited to 'docs')
-rw-r--r--docs/05_00_software_components.dox4
-rw-r--r--docs/05_03_delegate.dox5
-rw-r--r--docs/05_04_supportlibrary.dox27
-rw-r--r--docs/05_05_runtimeoptions.dox120
-rw-r--r--docs/Doxyfile53
5 files changed, 167 insertions, 42 deletions
diff --git a/docs/05_00_software_components.dox b/docs/05_00_software_components.dox
index 2d65daed1e..8f3c35d511 100644
--- a/docs/05_00_software_components.dox
+++ b/docs/05_00_software_components.dox
@@ -1,4 +1,4 @@
-/// Copyright (c) 2021 ARM Limited and Contributors. All rights reserved.
+/// Copyright (c) 2022 ARM Limited and Contributors. All rights reserved.
///
/// SPDX-License-Identifier: MIT
///
@@ -12,6 +12,8 @@ On this page you can find all software components contained in the Arm NN reposi
other helpful information in each section.
- @subpage delegate
+ - @subpage supportlibrary
+ - @subpage runtimeoptions
- @subpage parsers
- @subpage md_python_pyarmnn_README
- @subpage serializer
diff --git a/docs/05_03_delegate.dox b/docs/05_03_delegate.dox
index 71754323bc..ee80268469 100644
--- a/docs/05_03_delegate.dox
+++ b/docs/05_03_delegate.dox
@@ -184,5 +184,10 @@ The Arm NN SDK TensorFlow Lite delegate currently supports the following operato
- UNPACK
More machine learning operators will be supported in future releases.
+
+@section delegateoptions Delegate Options
+
+The general list of runtime options are described in @subpage runtimeoptions
+
**/
} \ No newline at end of file
diff --git a/docs/05_04_supportlibrary.dox b/docs/05_04_supportlibrary.dox
new file mode 100644
index 0000000000..689b8af018
--- /dev/null
+++ b/docs/05_04_supportlibrary.dox
@@ -0,0 +1,27 @@
+/// Copyright (c) 2022 ARM Limited and Contributors. All rights reserved.
+///
+/// SPDX-License-Identifier: MIT
+///
+
+namespace armnn
+{
+/**
+@page supportlibrary NNAPI Support Library
+@tableofcontents
+
+
+@section supportlibraryintro About the NNAPI Support Library
+
+If you need help building the Arm NN NNAPI Support Library, please take a look at our [build guide](shim/BuildGuideShimSupportLibrary.md).
+
+
+@section slsupport Supported Operators
+This reference guide provides a list of TensorFlow Lite operators the Arm NN SDK currently supports.
+
+
+@section sloptions Support Library Options
+
+The general list of runtime options are described in @subpage runtimeoptions
+
+**/
+} \ No newline at end of file
diff --git a/docs/05_05_runtimeoptions.dox b/docs/05_05_runtimeoptions.dox
new file mode 100644
index 0000000000..454d4af740
--- /dev/null
+++ b/docs/05_05_runtimeoptions.dox
@@ -0,0 +1,120 @@
+/// Copyright (c) 2022 ARM Limited and Contributors. All rights reserved.
+///
+/// SPDX-License-Identifier: MIT
+///
+
+namespace armnn
+{
+/**
+@page runtimeoptions Runtime options for Arm NN
+@tableofcontents
+
+Across all software interfaces to Arm NN there are a set of common
+configuration parameters. These parameters control how a model is loaded or
+how the inference is executed. The widest set of options are available at
+the lowest, Arm NN C++ interface. They reduce as you move outward to the
+TfLite delegate and NNAPI Support Library. The tables below describe the
+arguments and in which interface they are available.
+
+@subsection deviceselection Compute device selection
+
+The compute device selected is required to be specified across all
+interfaces. The device selection will dictate the availability of some
+parameters and whether some sub graphs are supported.
+
+Interface | Device selection
+:-------- | :----------
+Arm NN | The parameter "const std::vector<BackendId>& backendPreferences" to armnn::Optimize provides a vector of backendId's. If multiple devices are specifed the order of the vector dictates the order in which execution will be attempted. If all or part of the model is not supported by a backend, the next in order will be tried.
+TfLite delegate | armnnDelegate::DelegateOptions Compute device or backend ids: This tells Arm NN which devices will be used to process the inference. A single device can be specified using the armnn::Compute enum. Multiple devices can be specified using a vector of armnn::BackendId. If multiple devices are specifed the order of the vector dictates the order in which execution will be attempted. If all or part of the model is not supported by a backend the next in order will be tried. Valid backend ids are: [EthosNAcc/GpuAcc/CpuAcc/CpuRef]
+Support Library | armnn_driver::DriverOptions Compute device or backend ids: This tells Arm NN which devices will be used to process the inference. A single device can be specified using the armnn::Compute enum. Multiple devices can be specified using a vector of armnn::BackendId. If multiple devices are specifed the order of the vector dictates the order in which execution will be attempted. If all or part of the model is not supported by a backend the next in order will be tried. Valid backend ids are: [EthosNAcc/GpuAcc/CpuAcc/CpuRef]
+
+@subsection runtimeoptions Runtime options
+
+There a several levels at which Arm NN accepts runtime parameters. Some of
+these are specific to an Arm NN instance, some to a loaded network and some
+to the backend on which a network inference is to execute. Each of the
+external interfaces handles these options in different ways.
+
+@subsection instanceoptions Arm NN Instance level options
+
+In the Arm NN C++ interface these options are set by passing an armnn::CreationOptions struct to IRuntime.
+Not all available options are described here.
+
+Arm NN Parameter | Delegate | Support library | Values | Description
+:--------------- | :-------- | :-------------- | :----- | :----------
+m_DynamicBackendsPath | dynamic-backends-path | (Not Available) | String file path | A path in which Arm NN will search for dynamic backends to load.
+m_ProtectedMode | (Not Available) | (Not Available) | ["true"/"false"] | Setting this flag will allow the user to create the Runtime in protected mode. It will run all the inferences on protected memory and will make sure that INetworkProperties::m_ImportEnabled set to true with MemorySource::DmaBufProtected option. This requires that the backend supports Protected Memory and has an allocator capable of allocating Protected Memory associated with it.
+m_CustomAllocatorMap | (Not Available) | (Not Available) | std::map<BackendId, std::shared_ptr<ICustomAllocator>> | A map of Custom Allocator used for allocation of working memory in the backends. Required for Protected Mode in order to correctly allocate Protected Memory
+m_MemoryOptimizerStrategyMap | (Not Available) | (Not Available) | std::map<BackendId, std::shared_ptr<IMemoryOptimizerStrategy>> | A map to define a custom memory optimizer strategy for specific backend Ids.
+m_GpuAccTunedParameters | gpu-tuning-level | cl-tuning-level | ["0"/"1"/"2"/"3"] | 0=UseOnly(default), 1=RapidTuning, 2=NormalTuning, 3=ExhaustiveTuning. Requires option gpu-tuning-file. 1,2 and 3 will create a tuning-file, 0 will apply the tunings from an existing file
+(Not Available) | disable-tflite-runtime-fallback | (Not Available) | ["true"/"false"] | Disable TfLite Runtime fallback in the Arm NN TfLite delegate. An exception will be thrown if unsupported operators are encountered. This option is only for testing purposes.
+armnn::ConfigureLogging | logging-severity | verbose-logging | [Trace/Debug/Info/Warning/Error/Fatal | Set the level of logging information output by Arm NN.
+armnn::IOptimizedNetworkPtr->SerializeToDot | serialize-to-dot | (Not Available) | String file path | Serialize the optimized network to the file specified in "dot" format.
+
+A specific sub-struct of parameters exists to configure external profiling. This is held as a member, m_ProfilingOptions, of CreationOptions
+
+Arm NN Parameter | Delegate | Support library | Values | Description
+:--------------- | :-------- | :-------------- | :----- | :----------
+m_ProfilingOptions.m_EnableProfiling | enable-external-profiling | (Not Available) | ["true"/"false"] | Enable external profiling.
+m_ProfilingOptions.m_TimelineEnabled | timeline-profiling | (Not Available) | ["true"/"false"] | Enable Arm Development studio Timeline events.
+m_ProfilingOptions.m_OutgoingCaptureFile | outgoing-capture-file | (Not Available) | String file path | Path to a file in which outgoing timeline profiling messages will be stored.
+m_ProfilingOptions.m_IncomingCaptureFile | incoming-capture-file | (Not Available) | String file path | Path to a file in which incoming timeline profiling messages will be stored.
+m_ProfilingOptions.m_FileOnly | file-only-external-profiling | (Not Available) | ["true"/"false"] | Enable profiling output to file only.
+m_ProfilingOptions.m_CapturePeriod | counter-capture-period | (Not Available) | Integer (default : 10000) | Value in microseconds of the profiling capture period.
+m_ProfilingOptions.m_FileFormat | profiling-file-format | (Not Available) | String of ["binary"] | The format of the file used for outputting profiling data. Currently on "binary" is supported.
+
+@subsection networkoptions NetworkOptions
+
+During Network creation you can specify several optional parameters via armnn::NetworkOptions.
+
+Arm NN Parameter | Delegate | Support library | Values | Description
+:--------------- | :-------- | :-------------- | :----- | :----------
+ShapeInferenceMethod | infer-output-shape | (Not Available) | ["true"/"false"] | Infers output tensor shape from input tensor shape and validate where applicable.
+AllowExpandedDims | allow-expanded-dims | (Not Available) | ["true"/"false"] | If true will disregard dimensions with a size of 1 when validating tensor shapes. Tensor sizes must still match. This is an Experimental parameter that is incompatible with infer-output-shape.
+profilingEnabled | enable-internal-profiling | enable-internal-profiling | ["true"/"false"] | Enable json profiling in CpuAcc and GpuAcc backends.
+detailsMethod | internal-profiling-detail | (Not Available) | ProfilingDetailsMethod | Set the detail of internale porfiling. Options are DetailsWithEvents and DetailsOnly.
+
+@subsection optimizeroptions OptimizerOptions
+
+OptimizerOptions are a set of parameters specifically targeting the Arm NN optimizer. This executes when a model is being loaded and these parameters are used to tune its operation.
+
+Arm NN Parameter | Delegate | Support library | Values | Description
+:--------------- | :-------- | :-------------- | :----- | :----------
+reduceFp32ToFp16 | reduce-fp32-to-fp16 | (Not available) | ["true"/"false"] | Note This feature works best if all operators of the model are in Fp32. ArmNN will add conversion layers between layers that weren't in Fp32 in the first place or if the operator is not supported in Fp16. The overhead of these conversions can lead to a slower overall performance if too many conversions are required.
+reduceFp32ToBf16 | reduce-fp32-to-bf16 | (Not available) | ["true"/"false"] | This feature works best if all operators of the model are in Fp32. ArmNN will add conversion layers between layers that weren't in Fp32 in the first place or if the operator is not supported in Bf16. The overhead of these conversions can lead to a slower overall performance if too many conversions are required.
+debug | debug-data | (Not available) | ["true"/"false"] | If the debug flag is set a DebugLayer is inserted after each layer. The action of each debug layer is backend specific.
+importEnabled | memory-import | (Not available) | ["true"/"false"] | Instructs the optimizer that this model will be importing it's input tensors. This value must match the MemorySource set for input in INetworkProperties.
+exportEnabled | (Not available) | (Not available) | ["true"/"false"] | Instructs the optimizer that this model will be exporting it's output tensors. This value must match the MemorySource set for output in INetworkProperties.
+
+@subsection modeloptions OptimizerOptions::ModelOptions
+
+Model options is a vector of name value pairs contained inside OptimizerOptions. The options specifically target backends.
+
+@subsection gpuaccmodeloptions GpuAcc backend model options
+
+Arm NN Parameter | Delegate | Support library | Values | Description
+:--------------- | :-------- | :-------------- | :----- | :----------
+FastMathEnabled | enable-fast-math | enable-fast-math | ["true"/"false"] | Enables fast_math options in backends that support it.
+SaveCachedNetwork| save-cached-network |save-cached-network | ["true"/"false"] | Enables saving the cached network to the file given with cached-network-file option.
+CachedNetworkFilePath| cached-network-filepath |cached-network-file | String file path | If non-empty, the given file will be used to load/save cached network. If save-cached-network option is given will save the cached network to given file. If save-cached-network option is not given will load the cached network from given file.
+MLGOTuningFilePath |gpu-mlgo-tuning-file | mlgo-cl-tuned-parameters-file | String file path | If non-empty, the given file will be used to load/save MLGO CL tuned parameters.
+KernelProfilingEnabled | gpu-kernel-profiling-enabled | (Not available) | ["true"/"false"] | Enables GPU kernel profiling
+
+@subsection cpuaccmodeloptions CpuAcc backend model options
+
+Arm NN Parameter | Delegate | Support library | Values | Description
+:--------------- | :-------- | :-------------- | :--- | :----------
+FastMathEnabled | enable-fast-math | enable-fast-math | ["true"/"false"] | Enables fast_math options in backends that support it.
+NumberOfThreads | number-of-threads | number-of-threads | Integer [1-64] | Assign the number of threads used by the CpuAcc backend. Input value must be between 1 and 64. Default is set to 0 (Backend will decide number of threads to use).
+
+@subsection ethosnmodeloptions EthosNAcc backend model options
+
+Arm NN Parameter | Delegate | Support library | Values | Description
+:--------------- | :-------- | :-------------- | :--- | :----------
+DisableWinograd | (Not available) | (Not available) | ["true"/"false"] | Disables Winograd fast convolution.
+StrictPrecision | (Not available) | (Not available) | ["true"/"false"] | When enabled the network is more precise as the Re-quantize operations aren't fused, but it is slower to compile as there will be additional operations. This is currently only supported for the Concat operation.
+SaveCachedNetwork| save-cached-network |save-cached-network | ["true"/"false"] | Enables saving the cached network to the file given with cached-network-file option.
+CachedNetworkFilePath| cached-network-filepath |cached-network-file | String file path | If non-empty, the given file will be used to load/save cached network. If save-cached-network option is given will save the cached network to given file. If save-cached-network option is not given will load the cached network from given file.
+
+**/
+} \ No newline at end of file
diff --git a/docs/Doxyfile b/docs/Doxyfile
index efd34f6b1c..01cc79bca3 100644
--- a/docs/Doxyfile
+++ b/docs/Doxyfile
@@ -822,6 +822,8 @@ INPUT = ./docs/01_00_quick_start.dox \
./docs/05_01_parsers.dox \
./docs/05_02_deserializer_serializer.dox \
./docs/05_03_delegate.dox \
+ ./docs/05_04_supportlibrary.dox \
+ ./docs/05_05_runtimeoptions.dox \
./docs/FAQ.md \
./tests/ImageCSVFileGenerator/README.md \
./tests/ImageTensorGenerator/README.md \
@@ -832,11 +834,14 @@ INPUT = ./docs/01_00_quick_start.dox \
./src/armnnConverter/README.md \
./src/backends/README.md \
./src/dynamic/README.md \
- ./tests/ \
./delegate/include \
./delegate/src/armnn_external_delegate.cpp \
./delegate/BuildGuideNative.md \
./delegate/DelegateQuickStartGuide.md \
+ ./shim/ \
+ ./shim/BuildGuideShimSupportLibrary.md \
+ ./shim/sl/ \
+ ./shim/sl/canonical/ \
./README.md \
./InstallationViaAptRepository.md \
./ContributorGuide.md \
@@ -867,50 +872,14 @@ INPUT_ENCODING = UTF-8
# *.m, *.markdown, *.md, *.mm, *.dox, *.py, *.pyw, *.f90, *.f95, *.f03, *.f08,
# *.f, *.for, *.tcl, *.vhd, *.vhdl, *.ucf and *.qsf.
-FILE_PATTERNS = *.c \
- *.cc \
- *.cxx \
- *.cpp \
- *.c++ \
- *.java \
- *.ii \
- *.ixx \
- *.ipp \
- *.i++ \
+FILE_PATTERNS = *.cpp \
*.inl \
- *.idl \
- *.ddl \
- *.odl \
*.h \
- *.hh \
- *.hxx \
*.hpp \
- *.h++ \
- *.cs \
- *.d \
- *.php \
- *.php4 \
- *.php5 \
- *.phtml \
- *.inc \
- *.m \
- *.markdown \
*.md \
- *.mm \
*.dox \
- *.py \
- *.pyw \
- *.f90 \
- *.f95 \
- *.f03 \
- *.f08 \
- *.f \
- *.for \
- *.tcl \
- *.vhd \
- *.vhdl \
- *.ucf \
- *.qsf
+ *.py
+
# The RECURSIVE tag can be used to specify whether or not subdirectories should
# be searched for input files as well.
@@ -925,7 +894,8 @@ RECURSIVE = YES
# Note that relative paths are relative to the directory from which doxygen is
# run.
-EXCLUDE =
+EXCLUDE = ./include/armnnTestUtils \
+ ./tests/
# The EXCLUDE_SYMLINKS tag can be used to select whether or not files or
# directories that are symbolic links (a Unix file system feature) are excluded
@@ -942,6 +912,7 @@ EXCLUDE_SYMLINKS = NO
# exclude all test directories for example use the pattern */test/*
EXCLUDE_PATTERNS = *.md
+EXCLUDE_PATTERNS += */test/*
# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names
# (namespaces, classes, functions, etc.) that should be excluded from the