blob: ffd583dce540ee4d54b292aa63acc3749358241f [file] [log] [blame]
Teresa Charlinb1f5f702022-07-12 14:16:24 +01001/// Copyright (c) 2022 ARM Limited and Contributors. All rights reserved.
Jan Eilers31a7c892021-01-29 14:18:13 +00002///
3/// SPDX-License-Identifier: MIT
4///
5
6namespace armnn
7{
8/**
9@page delegate TfLite Delegate
10@tableofcontents
11
12
13@section delegateintro About the delegate
14'armnnDelegate' is a library for accelerating certain TensorFlow Lite (TfLite) operators on Arm hardware. It can be
15integrated in TfLite using its delegation mechanism. TfLite will then delegate the execution of operators supported by
16Arm NN to Arm NN.
17
18The main difference to our @ref S6_tf_lite_parser is the amount of operators you can run with it. If none of the active
19backends support an operation in your model you won't be able to execute it with our parser. In contrast to that, TfLite
20only delegates operations to the armnnDelegate if it does support them and otherwise executes them itself. In other
21words, every TfLite model can be executed and every operation in your model that we can accelerate will be accelerated.
22That is the reason why the armnnDelegate is our recommended way to accelerate TfLite models.
23
24If you need help building the armnnDelegate, please take a look at our [build guide](delegate/BuildGuideNative.md).
25An example how to setup TfLite to integrate the armnnDelegate can be found in this
26guide: [Integrate the delegate into python](delegate/IntegrateDelegateIntoPython.md)
27
28
29@section delegatesupport Supported Operators
30This reference guide provides a list of TensorFlow Lite operators the Arm NN SDK currently supports.
31
32@subsection delegatefullysupported Fully supported
33
34The Arm NN SDK TensorFlow Lite delegate currently supports the following operators:
35
36- ABS
37
38- ADD
39
Matthew Sloyanffa34932022-11-04 11:25:27 +000040- ARG_MAX
Jan Eilers31a7c892021-01-29 14:18:13 +000041
Matthew Sloyanffa34932022-11-04 11:25:27 +000042- ARG_MIN
Jan Eilers31a7c892021-01-29 14:18:13 +000043
Matthew Sloyanffa34932022-11-04 11:25:27 +000044- AVERAGE_POOL_2D, Supported Fused Activation: RELU, RELU6, RELU_N1_TO_1, SIGMOID, TANH, NONE
Jan Eilers31a7c892021-01-29 14:18:13 +000045
Matthew Sloyanffa34932022-11-04 11:25:27 +000046- AVERAGE_POOL_3D, Supported Fused Activation: RELU, RELU6, RELU_N1_TO_1, SIGMOID, SIGN_BIT, TANH, NONE
Ryan OShead21abaf2022-06-10 14:49:11 +010047
Ryan OShea49ed0df2022-09-21 16:09:41 +010048- BATCH_MATMUL
49
Matthew Sloyana35b40b2021-02-05 17:22:28 +000050- BATCH_TO_SPACE_ND
51
Sadik Armagan937565b2021-04-21 14:03:28 +010052- CAST
53
Matthew Sloyanffa34932022-11-04 11:25:27 +000054- CONCATENATION, Supported Fused Activation: RELU, RELU6, RELU_N1_TO_1, SIGMOID, TANH, NONE
Jan Eilers31a7c892021-01-29 14:18:13 +000055
Matthew Sloyanffa34932022-11-04 11:25:27 +000056- CONV_2D, Supported Fused Activation: RELU, RELU6, RELU_N1_TO_1, SIGMOID, TANH, NONE
Jan Eilers31a7c892021-01-29 14:18:13 +000057
Matthew Sloyanffa34932022-11-04 11:25:27 +000058- CONV_3D, Supported Fused Activation: RELU, RELU6, RELU_N1_TO_1, SIGMOID, TANH, NONE
Matthew Sloyan81ec9942021-10-12 10:26:30 +010059
Jan Eilers31a7c892021-01-29 14:18:13 +000060- DEPTH_TO_SPACE
61
Matthew Sloyanffa34932022-11-04 11:25:27 +000062- DEPTHWISE_CONV_2D, Supported Fused Activation: RELU, RELU6, RELU_N1_TO_1, SIGMOID, TANH, NONE
Jan Eilers31a7c892021-01-29 14:18:13 +000063
64- DEQUANTIZE
65
66- DIV
67
68- EQUAL
69
70- ELU
71
72- EXP
73
Matthew Sloyanffa34932022-11-04 11:25:27 +000074- EXPAND_DIMS
75
76- FILL
Jan Eilers31a7c892021-01-29 14:18:13 +000077
Sadik Armagan788e2c62021-02-10 16:26:44 +000078- FLOOR
79
Matthew Sloyanffa34932022-11-04 11:25:27 +000080- FLOOR_DIV
81
82- FULLY_CONNECTED, Supported Fused Activation: RELU, RELU6, RELU_N1_TO_1, SIGMOID, TANH, NONE
83
Jan Eilers31a7c892021-01-29 14:18:13 +000084- GATHER
85
Teresa Charlind5c0ed22022-04-25 18:23:41 +010086- GATHER_ND
87
Jan Eilers31a7c892021-01-29 14:18:13 +000088- GREATER
89
Matthew Sloyanffa34932022-11-04 11:25:27 +000090- GREATER_EQUAL
Jan Eilers31a7c892021-01-29 14:18:13 +000091
92- HARD_SWISH
93
Matthew Sloyanffa34932022-11-04 11:25:27 +000094- L2_NORMALIZATION
95
96- L2_POOL_2D
97
Jan Eilers31a7c892021-01-29 14:18:13 +000098- LESS
99
Matthew Sloyanffa34932022-11-04 11:25:27 +0000100- LESS_EQUAL
Jan Eilers31a7c892021-01-29 14:18:13 +0000101
102- LOCAL_RESPONSE_NORMALIZATION
103
Teresa Charlinb1f5f702022-07-12 14:16:24 +0100104- LOG
105
Jan Eilers31a7c892021-01-29 14:18:13 +0000106- LOGICAL_AND
Jan Eilers1121c6b2021-02-19 09:38:03 +0000107
Jan Eilers31a7c892021-01-29 14:18:13 +0000108- LOGICAL_NOT
Jan Eilers1121c6b2021-02-19 09:38:03 +0000109
Jan Eilers31a7c892021-01-29 14:18:13 +0000110- LOGICAL_OR
111
112- LOGISTIC
113
114- LOG_SOFTMAX
115
Jan Eilers1121c6b2021-02-19 09:38:03 +0000116- LSTM
117
Jan Eilers31a7c892021-01-29 14:18:13 +0000118- MAXIMUM
119
Matthew Sloyanffa34932022-11-04 11:25:27 +0000120- MAX_POOL_2D, Supported Fused Activation: RELU, RELU6, RELU_N1_TO_1, SIGMOID, TANH, NONE
Jan Eilers31a7c892021-01-29 14:18:13 +0000121
Matthew Sloyanffa34932022-11-04 11:25:27 +0000122- MAX_POOL_3D, Supported Fused Activation: RELU, RELU6, RELU_N1_TO_1, SIGMOID, SIGN_BIT, TANH, NONE
Ryan OShead21abaf2022-06-10 14:49:11 +0100123
Jan Eilers31a7c892021-01-29 14:18:13 +0000124- MEAN
125
126- MINIMUM
127
Matthew Sloyanaf3a4ef2021-10-22 15:48:12 +0100128- MIRROR_PAD
129
Jan Eilers31a7c892021-01-29 14:18:13 +0000130- MUL
131
132- NEG
133
134- NOT_EQUAL
135
Kevin Mayc7bd7e82021-05-10 12:46:40 +0100136- PACK
137
Jan Eilers31a7c892021-01-29 14:18:13 +0000138- PAD
139
Matthew Sloyanffa34932022-11-04 11:25:27 +0000140- PADV2
141
Jan Eilers1121c6b2021-02-19 09:38:03 +0000142- PRELU
143
Jan Eilers31a7c892021-01-29 14:18:13 +0000144- QUANTIZE
145
Jan Eilers1121c6b2021-02-19 09:38:03 +0000146- RANK
147
148- REDUCE_MAX
149
150- REDUCE_MIN
151
Matthew Sloyanffa34932022-11-04 11:25:27 +0000152- REDUCE_PROD
153
154- RELU
155
156- RELU6
157
158- RELU_N1_TO_1
159
Jan Eilers31a7c892021-01-29 14:18:13 +0000160- RESHAPE
161
162- RESIZE_BILINEAR
163
164- RESIZE_NEAREST_NEIGHBOR
165
Jan Eilers31a7c892021-01-29 14:18:13 +0000166- RSQRT
167
Matthew Sloyane369dbd2021-08-19 12:05:44 +0100168- SHAPE
169
Teresa Charlinb1f5f702022-07-12 14:16:24 +0100170- SIN
171
Jan Eilers31a7c892021-01-29 14:18:13 +0000172- SOFTMAX
173
Matthew Sloyana35b40b2021-02-05 17:22:28 +0000174- SPACE_TO_BATCH_ND
175
Jan Eilers31a7c892021-01-29 14:18:13 +0000176- SPACE_TO_DEPTH
177
178- SPLIT
179
180- SPLIT_V
181
182- SQRT
183
Matthew Sloyanffa34932022-11-04 11:25:27 +0000184- SQUEEZE
185
Jan Eilers1121c6b2021-02-19 09:38:03 +0000186- STRIDED_SLICE
187
Jan Eilers31a7c892021-01-29 14:18:13 +0000188- SUB
189
Jan Eilers1121c6b2021-02-19 09:38:03 +0000190- SUM
191
Jan Eilers31a7c892021-01-29 14:18:13 +0000192- TANH
193
194- TRANSPOSE
195
196- TRANSPOSE_CONV
197
Narumol Prangnawaratbd575b22021-08-31 16:53:54 +0100198- UNIDIRECTIONAL_SEQUENCE_LSTM
199
Kevin Mayc7bd7e82021-05-10 12:46:40 +0100200- UNPACK
201
Jan Eilers31a7c892021-01-29 14:18:13 +0000202More machine learning operators will be supported in future releases.
Colm Donelan09026932022-09-14 18:04:00 +0100203
204@section delegateoptions Delegate Options
205
206The general list of runtime options are described in @subpage runtimeoptions
207
Jan Eilers31a7c892021-01-29 14:18:13 +0000208**/
209}