/// Copyright (c) 2022-2023 ARM Limited and Contributors. All rights reserved. /// /// SPDX-License-Identifier: MIT /// namespace armnn { /** @page delegate TfLite Delegate @section delegateintro About the delegate 'armnnDelegate' is a library for accelerating certain TensorFlow Lite (TfLite) operators on Arm hardware. It can be integrated in TfLite using its delegation mechanism. TfLite will then delegate the execution of operators supported by Arm NN to Arm NN. The main difference to our @ref S6_tf_lite_parser is the amount of operators you can run with it. If none of the active backends support an operation in your model you won't be able to execute it with our parser. In contrast to that, TfLite only delegates operations to the armnnDelegate if it does support them and otherwise executes them itself. In other words, every TfLite model can be executed and every operation in your model that we can accelerate will be accelerated. That is the reason why the armnnDelegate is our recommended way to accelerate TfLite models. If you need help building the armnnDelegate, please take a look at our [build guide](delegate/BuildGuideNative.md). @section delegatesupport Supported Operators This reference guide provides a list of TensorFlow Lite operators the Arm NN SDK currently supports. @section delegatefullysupported Fully supported The Arm NN SDK TensorFlow Lite delegate currently supports the following operators: - ABS - ADD - ARG_MAX - ARG_MIN - AVERAGE_POOL_2D, Supported Fused Activation: RELU, RELU6, RELU_N1_TO_1, SIGMOID, TANH, NONE - AVERAGE_POOL_3D, Supported Fused Activation: RELU, RELU6, RELU_N1_TO_1, SIGMOID, SIGN_BIT, TANH, NONE - BATCH_MATMUL - BATCH_TO_SPACE_ND - BROADCAST_TO - CAST - CEIL - CONCATENATION, Supported Fused Activation: RELU, RELU6, RELU_N1_TO_1, SIGMOID, TANH, NONE - CONV_2D, Supported Fused Activation: RELU, RELU6, RELU_N1_TO_1, SIGMOID, TANH, NONE - CONV_3D, Supported Fused Activation: RELU, RELU6, RELU_N1_TO_1, SIGMOID, TANH, NONE - DEPTH_TO_SPACE - DEPTHWISE_CONV_2D, Supported Fused Activation: RELU, RELU6, RELU_N1_TO_1, SIGMOID, TANH, NONE - DEQUANTIZE - DIV - EQUAL - ELU - EXP - EXPAND_DIMS - FILL - FLOOR - FLOOR_DIV - FULLY_CONNECTED, Supported Fused Activation: RELU, RELU6, RELU_N1_TO_1, SIGMOID, TANH, NONE - GATHER - GATHER_ND - GELU - GREATER - GREATER_EQUAL - HARD_SWISH - L2_NORMALIZATION - L2_POOL_2D - LESS - LESS_EQUAL - LOCAL_RESPONSE_NORMALIZATION - LOG - LOGICAL_AND - LOGICAL_NOT - LOGICAL_OR - LOGISTIC - LOG_SOFTMAX - LSTM - MAXIMUM - MAX_POOL_2D, Supported Fused Activation: RELU, RELU6, RELU_N1_TO_1, SIGMOID, TANH, NONE - MAX_POOL_3D, Supported Fused Activation: RELU, RELU6, RELU_N1_TO_1, SIGMOID, SIGN_BIT, TANH, NONE - MEAN - MINIMUM - MIRROR_PAD - MUL - NEG - NOT_EQUAL - PACK - PAD - PADV2 - POW - PRELU - QUANTIZE - RANK - REDUCE_MAX - REDUCE_MIN - REDUCE_PROD - RELU - RELU6 - RELU_N1_TO_1 - RESHAPE - RESIZE_BILINEAR - RESIZE_NEAREST_NEIGHBOR - REVERSEV2 - RSQRT - SCATTERND - SHAPE - SIN - SOFTMAX - SPACE_TO_BATCH_ND - SPACE_TO_DEPTH - SPLIT - SPLIT_V - SQRT - SQUARE_DIFFERENCE - SQUEEZE - SLICE - STRIDED_SLICE - SUB - SUM - TANH - TILE - TRANSPOSE - TRANSPOSE_CONV - UNIDIRECTIONAL_SEQUENCE_LSTM - 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 @subsection opaquedelegateoptions Opaque Delegate Options In Opaque Delegate, delegate options are passed via ArmNNSettings which is a FlatBuffer of tflite::TFLiteSettings. Arm NN Settings | Possible Values | Description :--------------- ------------- | :----- | :---------- backends | ["GpuAcc"/"CpuAcc"] | A comma separated list without whitespaces of backends which should be used for execution. Falls back to next backend in list if previous does not provide support for operation. fastmath | [true/false] | Allows the use of optimisation techniques e.g. Winograd that will reduce execution time with the possibility of a drop in accuracy. additional_parameters | JSON string of additional Arm NN delegate options | JSON string of additional Arm NN delegate options. The general list of runtime options are described in [Runtime options](\ref runtimeoptions). **/ }