blob: 9a1576e27e0bc13b0229ed158f801175ac9208eb [file] [log] [blame]
<!-- HTML header for doxygen 1.8.17-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.17"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Arm NN: TfLite Delegate</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<img alt="ArmNN" src="Arm_NN_horizontal_blue.png" style="max-width: 15rem; margin-top: .5rem; margin-left 13px"/>
<td id="projectalign" style="padding-left: 0.9em;">
<div id="projectname">
&#160;<span id="projectnumber">24.05</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.17 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('delegate.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="PageDoc"><div class="header">
<div class="headertitle">
<div class="title">TfLite Delegate </div> </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><h1><a class="anchor" id="delegateintro"></a>
About the delegate</h1>
<p>'<a class="el" href="namespacearmnn_delegate.html">armnnDelegate</a>' 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.</p>
<p>The main difference to our <a class="el" href="parsers.html#S6_tf_lite_parser">Arm NN Tf Lite Parser</a> 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 <a class="el" href="namespacearmnn_delegate.html">armnnDelegate</a> 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 <a class="el" href="namespacearmnn_delegate.html">armnnDelegate</a> is our recommended way to accelerate TfLite models.</p>
<p>If you need help building the <a class="el" href="namespacearmnn_delegate.html">armnnDelegate</a>, please take a look at our <a class="el" href="md_delegate__build_guide_native.html">build guide</a>.</p>
<h1><a class="anchor" id="delegatesupport"></a>
Supported Operators</h1>
<p>This reference guide provides a list of TensorFlow Lite operators the Arm NN SDK currently supports.</p>
<h1><a class="anchor" id="delegatefullysupported"></a>
Fully supported</h1>
<p>The Arm NN SDK TensorFlow Lite delegate currently supports the following operators:</p>
<ul>
<li>ABS</li>
<li>ADD</li>
<li>ARG_MAX</li>
<li>ARG_MIN</li>
<li>AVERAGE_POOL_2D, Supported Fused Activation: RELU, RELU6, RELU_N1_TO_1, SIGMOID, TANH, NONE</li>
<li>AVERAGE_POOL_3D, Supported Fused Activation: RELU, RELU6, RELU_N1_TO_1, SIGMOID, SIGN_BIT, TANH, NONE</li>
<li>BATCH_MATMUL</li>
<li>BATCH_TO_SPACE_ND</li>
<li>BROADCAST_TO</li>
<li>CAST</li>
<li>CEIL</li>
<li>CONCATENATION, Supported Fused Activation: RELU, RELU6, RELU_N1_TO_1, SIGMOID, TANH, NONE</li>
<li>CONV_2D, Supported Fused Activation: RELU, RELU6, RELU_N1_TO_1, SIGMOID, TANH, NONE</li>
<li>CONV_3D, Supported Fused Activation: RELU, RELU6, RELU_N1_TO_1, SIGMOID, TANH, NONE</li>
<li>DEPTH_TO_SPACE</li>
<li>DEPTHWISE_CONV_2D, Supported Fused Activation: RELU, RELU6, RELU_N1_TO_1, SIGMOID, TANH, NONE</li>
<li>DEQUANTIZE</li>
<li>DIV</li>
<li>EQUAL</li>
<li>ELU</li>
<li>EXP</li>
<li>EXPAND_DIMS</li>
<li>FILL</li>
<li>FLOOR</li>
<li>FLOOR_DIV</li>
<li>FULLY_CONNECTED, Supported Fused Activation: RELU, RELU6, RELU_N1_TO_1, SIGMOID, TANH, NONE</li>
<li>GATHER</li>
<li>GATHER_ND</li>
<li>GELU</li>
<li>GREATER</li>
<li>GREATER_EQUAL</li>
<li>HARD_SWISH</li>
<li>L2_NORMALIZATION</li>
<li>L2_POOL_2D</li>
<li>LESS</li>
<li>LESS_EQUAL</li>
<li>LOCAL_RESPONSE_NORMALIZATION</li>
<li>LOG</li>
<li>LOGICAL_AND</li>
<li>LOGICAL_NOT</li>
<li>LOGICAL_OR</li>
<li>LOGISTIC</li>
<li>LOG_SOFTMAX</li>
<li>LSTM</li>
<li>MAXIMUM</li>
<li>MAX_POOL_2D, Supported Fused Activation: RELU, RELU6, RELU_N1_TO_1, SIGMOID, TANH, NONE</li>
<li>MAX_POOL_3D, Supported Fused Activation: RELU, RELU6, RELU_N1_TO_1, SIGMOID, SIGN_BIT, TANH, NONE</li>
<li>MEAN</li>
<li>MINIMUM</li>
<li>MIRROR_PAD</li>
<li>MUL</li>
<li>NEG</li>
<li>NOT_EQUAL</li>
<li>PACK</li>
<li>PAD</li>
<li>PADV2</li>
<li>POW</li>
<li>PRELU</li>
<li>QUANTIZE</li>
<li>RANK</li>
<li>REDUCE_MAX</li>
<li>REDUCE_MIN</li>
<li>REDUCE_PROD</li>
<li>RELU</li>
<li>RELU6</li>
<li>RELU_N1_TO_1</li>
<li>RESHAPE</li>
<li>RESIZE_BILINEAR</li>
<li>RESIZE_NEAREST_NEIGHBOR</li>
<li>REVERSEV2</li>
<li>RSQRT</li>
<li>SCATTERND</li>
<li>SHAPE</li>
<li>SIN</li>
<li>SOFTMAX</li>
<li>SPACE_TO_BATCH_ND</li>
<li>SPACE_TO_DEPTH</li>
<li>SPLIT</li>
<li>SPLIT_V</li>
<li>SQRT</li>
<li>SQUARE_DIFFERENCE</li>
<li>SQUEEZE</li>
<li>SLICE</li>
<li>STRIDED_SLICE</li>
<li>SUB</li>
<li>SUM</li>
<li>TANH</li>
<li>TILE</li>
<li>TRANSPOSE</li>
<li>TRANSPOSE_CONV</li>
<li>UNIDIRECTIONAL_SEQUENCE_LSTM</li>
<li>UNPACK</li>
</ul>
<p>More machine learning operators will be supported in future releases.</p>
<h1><a class="anchor" id="delegateoptions"></a>
Delegate Options</h1>
<p>The general list of runtime options are described in <a class="el" href="runtimeoptions.html#runtimeoptions">Runtime options</a></p>
<h2><a class="anchor" id="opaquedelegateoptions"></a>
Opaque Delegate Options</h2>
<p>In Opaque Delegate, delegate options are passed via ArmNNSettings which is a FlatBuffer of tflite::TFLiteSettings.</p>
<table class="markdownTable">
<tr class="markdownTableHead">
<th class="markdownTableHeadLeft">Arm NN Settings </th><th class="markdownTableHeadLeft">Possible Values </th><th class="markdownTableHeadLeft">Description </th></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyLeft">backends </td><td class="markdownTableBodyLeft">["GpuAcc"/"CpuAcc"] </td><td class="markdownTableBodyLeft">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. </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyLeft">fastmath </td><td class="markdownTableBodyLeft">[true/false] </td><td class="markdownTableBodyLeft">Allows the use of optimisation techniques e.g. Winograd that will reduce execution time with the possibility of a drop in accuracy. </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyLeft">additional_parameters </td><td class="markdownTableBodyLeft">JSON string of additional Arm NN delegate options </td><td class="markdownTableBodyLeft">JSON string of additional Arm NN delegate options. The general list of runtime options are described in <a class="el" href="runtimeoptions.html#runtimeoptions">Runtime options</a>. </td></tr>
</table>
</div></div><!-- contents -->
</div><!-- PageDoc -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="swtools.html">Software Components</a></li>
<li class="footer">Generated on Thu May 16 2024 09:31:54 for Arm NN by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.17 </li>
</ul>
</div>
</body>
</html>