aboutsummaryrefslogtreecommitdiff
path: root/21.02/_execute_network_program_options_8cpp_source.xhtml
blob: 198f1769bc4b708813119efc6b14892fd35a3da6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
<!-- Copyright (c) 2020 ARM Limited. -->
<!--                                 -->
<!-- SPDX-License-Identifier: MIT    -->
<!--                                 -->
<!-- HTML header for doxygen 1.8.13-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://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.13"/>
<meta name="robots" content="NOINDEX, NOFOLLOW" />
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>ArmNN: tests/ExecuteNetwork/ExecuteNetworkProgramOptions.cpp Source File</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>
<script type="text/javascript">
  $(document).ready(initResizable);
</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" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="stylesheet.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: 10rem; margin-top: .5rem; margin-left 10px"/>
  <td style="padding-left: 0.5em;">
   <div id="projectname">
   &#160;<span id="projectnumber">21.02</span>
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
</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">
$(document).ready(function(){initNavTree('_execute_network_program_options_8cpp_source.xhtml','');});
</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="header">
  <div class="headertitle">
<div class="title">ExecuteNetworkProgramOptions.cpp</div>  </div>
</div><!--header-->
<div class="contents">
<a href="_execute_network_program_options_8cpp.xhtml">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment">// Copyright © 2020 Arm Ltd and Contributors. All rights reserved.</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment">// SPDX-License-Identifier: MIT</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;</div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_execute_network_program_options_8hpp.xhtml">ExecuteNetworkProgramOptions.hpp</a>&quot;</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_network_execution_utils_8hpp.xhtml">NetworkExecutionUtils/NetworkExecutionUtils.hpp</a>&quot;</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_inference_test_8hpp.xhtml">InferenceTest.hpp</a>&quot;</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;</div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="_backend_registry_8hpp.xhtml">armnn/BackendRegistry.hpp</a>&gt;</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="_exceptions_8hpp.xhtml">armnn/Exceptions.hpp</a>&gt;</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="_assert_8hpp.xhtml">armnn/utility/Assert.hpp</a>&gt;</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="_string_utils_8hpp.xhtml">armnn/utility/StringUtils.hpp</a>&gt;</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="_logging_8hpp.xhtml">armnn/Logging.hpp</a>&gt;</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;</div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="preprocessor">#include &lt;fmt/format.h&gt;</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"><a class="line" href="_execute_network_program_options_8cpp.xhtml#a92f95e137ba2edcad2985993626afe4d">   18</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="_execute_network_program_options_8cpp.xhtml#a92f95e137ba2edcad2985993626afe4d">CheckOption</a>(<span class="keyword">const</span> cxxopts::ParseResult&amp; result,</div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;                 <span class="keyword">const</span> <span class="keywordtype">char</span>* option)</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;{</div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;    <span class="comment">// Check that the given option is valid.</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;    <span class="keywordflow">if</span> (option == <span class="keyword">nullptr</span>)</div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;    {</div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;        <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;    }</div><div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;</div><div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;    <span class="comment">// Check whether &#39;option&#39; is provided.</span></div><div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;    <span class="keywordflow">return</span> ((result.count(option)) ? <span class="keyword">true</span> : <span class="keyword">false</span>);</div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;}</div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno"><a class="line" href="_execute_network_program_options_8cpp.xhtml#aae003ac0bcd37e3d9d7b4998e4faff5d">   31</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="_execute_network_program_options_8cpp.xhtml#aae003ac0bcd37e3d9d7b4998e4faff5d">CheckOptionDependency</a>(<span class="keyword">const</span> cxxopts::ParseResult&amp; result,</div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;                           <span class="keyword">const</span> <span class="keywordtype">char</span>* option,</div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;                           <span class="keyword">const</span> <span class="keywordtype">char</span>* required)</div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;{</div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;    <span class="comment">// Check that the given options are valid.</span></div><div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;    <span class="keywordflow">if</span> (option == <span class="keyword">nullptr</span> || required == <span class="keyword">nullptr</span>)</div><div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;    {</div><div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;        <span class="keywordflow">throw</span> cxxopts::OptionParseException(<span class="stringliteral">&quot;Invalid option to check dependency for&quot;</span>);</div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;    }</div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;    <span class="comment">// Check that if &#39;option&#39; is provided, &#39;required&#39; is also provided.</span></div><div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;    <span class="keywordflow">if</span> (<a class="code" href="_execute_network_program_options_8cpp.xhtml#a92f95e137ba2edcad2985993626afe4d">CheckOption</a>(result, option) &amp;&amp; !result[option].has_default())</div><div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;    {</div><div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="_execute_network_program_options_8cpp.xhtml#a92f95e137ba2edcad2985993626afe4d">CheckOption</a>(result, required) == 0 || result[required].has_default())</div><div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;        {</div><div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;            <span class="keywordflow">throw</span> cxxopts::OptionParseException(</div><div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;                    std::string(<span class="stringliteral">&quot;Option &#39;&quot;</span>) + option + <span class="stringliteral">&quot;&#39; requires option &#39;&quot;</span> + required + <span class="stringliteral">&quot;&#39;.&quot;</span>);</div><div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;        }</div><div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;    }</div><div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;}</div><div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="_execute_network_program_options_8cpp.xhtml#a06da09814964b4b241ca4420e98de8f3">   52</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="_execute_network_program_options_8cpp.xhtml#a06da09814964b4b241ca4420e98de8f3">CheckOptionDependencies</a>(<span class="keyword">const</span> cxxopts::ParseResult&amp; result)</div><div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;{</div><div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;    <a class="code" href="_execute_network_program_options_8cpp.xhtml#aae003ac0bcd37e3d9d7b4998e4faff5d">CheckOptionDependency</a>(result, <span class="stringliteral">&quot;model-path&quot;</span>, <span class="stringliteral">&quot;model-format&quot;</span>);</div><div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;    <a class="code" href="_execute_network_program_options_8cpp.xhtml#aae003ac0bcd37e3d9d7b4998e4faff5d">CheckOptionDependency</a>(result, <span class="stringliteral">&quot;input-tensor-shape&quot;</span>, <span class="stringliteral">&quot;model-path&quot;</span>);</div><div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;    <a class="code" href="_execute_network_program_options_8cpp.xhtml#aae003ac0bcd37e3d9d7b4998e4faff5d">CheckOptionDependency</a>(result, <span class="stringliteral">&quot;tuning-level&quot;</span>, <span class="stringliteral">&quot;tuning-path&quot;</span>);</div><div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;}</div><div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;</div><div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="_execute_network_program_options_8cpp.xhtml#a439bab01676c4e394cd1d6f38721a886">   59</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="_execute_network_program_options_8cpp.xhtml#a439bab01676c4e394cd1d6f38721a886">RemoveDuplicateDevices</a>(std::vector&lt;armnn::BackendId&gt;&amp; computeDevices)</div><div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;{</div><div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;    <span class="comment">// Mark the duplicate devices as &#39;Undefined&#39;.</span></div><div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;    <span class="keywordflow">for</span> (<span class="keyword">auto</span> i = computeDevices.begin(); i != computeDevices.end(); ++i)</div><div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;    {</div><div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;        <span class="keywordflow">for</span> (<span class="keyword">auto</span> j = std::next(i); j != computeDevices.end(); ++j)</div><div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;        {</div><div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;            <span class="keywordflow">if</span> (*j == *i)</div><div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;            {</div><div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;                *j = <a class="code" href="namespacearmnn.xhtml#ae2f04a162585c0a5222a537efd5456aeaec0fc0100c4fc1ce4eea230c3dc10360">armnn::Compute::Undefined</a>;</div><div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;            }</div><div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;        }</div><div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;    }</div><div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;</div><div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;    <span class="comment">// Remove &#39;Undefined&#39; devices.</span></div><div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;    computeDevices.erase(std::remove(computeDevices.begin(), computeDevices.end(), <a class="code" href="namespacearmnn.xhtml#ae2f04a162585c0a5222a537efd5456aeaec0fc0100c4fc1ce4eea230c3dc10360">armnn::Compute::Undefined</a>),</div><div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;                         computeDevices.end());</div><div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;}</div><div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;<span class="comment">/// Takes a vector of backend strings and returns a vector of backendIDs. Removes duplicate entries.</span></div><div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="_execute_network_program_options_8cpp.xhtml#ae6dc4c83daaf027ae1e1948bac9d7f54">   79</a></span>&#160;<span class="comment"></span>std::vector&lt;armnn::BackendId&gt; <a class="code" href="_execute_network_program_options_8cpp.xhtml#ae6dc4c83daaf027ae1e1948bac9d7f54">GetBackendIDs</a>(<span class="keyword">const</span> std::vector&lt;std::string&gt;&amp; backendStrings)</div><div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;{</div><div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;    std::vector&lt;armnn::BackendId&gt; backendIDs;</div><div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;    <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span>&amp; b : backendStrings)</div><div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;    {</div><div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;        backendIDs.push_back(<a class="code" href="classarmnn_1_1_backend_id.xhtml">armnn::BackendId</a>(b));</div><div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;    }</div><div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;</div><div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;    <a class="code" href="_execute_network_program_options_8cpp.xhtml#a439bab01676c4e394cd1d6f38721a886">RemoveDuplicateDevices</a>(backendIDs);</div><div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;</div><div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;    <span class="keywordflow">return</span> backendIDs;</div><div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;}</div><div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;<span class="comment">/// Provides a segfault safe way to get cxxopts option values by checking if the option was defined.</span></div><div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;<span class="comment">/// If the option wasn&#39;t defined it returns an empty object.</span></div><div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;<span class="comment"></span><span class="keyword">template</span>&lt;<span class="keyword">typename</span> optionType&gt;</div><div class="line"><a name="l00095"></a><span class="lineno"><a class="line" href="_execute_network_program_options_8cpp.xhtml#a4569feeee2fd322e2af478e2d77a531c">   95</a></span>&#160;optionType <a class="code" href="_execute_network_program_options_8cpp.xhtml#a4569feeee2fd322e2af478e2d77a531c">GetOptionValue</a>(std::string&amp;&amp; optionName, <span class="keyword">const</span> cxxopts::ParseResult&amp; result)</div><div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;{</div><div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;    optionType out;</div><div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;    <span class="keywordflow">if</span>(result.count(optionName))</div><div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;    {</div><div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;        out = result[optionName].as&lt;optionType&gt;();</div><div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;    }</div><div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;    <span class="keywordflow">return</span> out;</div><div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;}</div><div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;</div><div class="line"><a name="l00105"></a><span class="lineno"><a class="line" href="_execute_network_program_options_8cpp.xhtml#abc97e814c5611819237a071ef184ac80">  105</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="_execute_network_program_options_8cpp.xhtml#abc97e814c5611819237a071ef184ac80">LogAndThrowFatal</a>(std::string errorMessage)</div><div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;{</div><div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;    <span class="keywordflow">throw</span> <a class="code" href="classarmnn_1_1_invalid_argument_exception.xhtml">armnn::InvalidArgumentException</a> (errorMessage);</div><div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;}</div><div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;</div><div class="line"><a name="l00110"></a><span class="lineno"><a class="line" href="_execute_network_program_options_8cpp.xhtml#a8d5885121779cccab1967e42a461dd89">  110</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="_execute_network_program_options_8cpp.xhtml#a8d5885121779cccab1967e42a461dd89">CheckRequiredOptions</a>(<span class="keyword">const</span> cxxopts::ParseResult&amp; result)</div><div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;{</div><div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;</div><div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;    <span class="comment">// For each option in option-group &quot;a) Required</span></div><div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;    std::vector&lt;std::string&gt; requiredOptions{<span class="stringliteral">&quot;compute&quot;</span>,</div><div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;                                             <span class="stringliteral">&quot;model-format&quot;</span>,</div><div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;                                             <span class="stringliteral">&quot;model-path&quot;</span>,</div><div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;                                             <span class="stringliteral">&quot;input-name&quot;</span>,</div><div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;                                             <span class="stringliteral">&quot;output-name&quot;</span>};</div><div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;</div><div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;    <span class="keywordtype">bool</span> requiredMissing = <span class="keyword">false</span>;</div><div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;    <span class="keywordflow">for</span>(<span class="keyword">auto</span> <span class="keyword">const</span>&amp;  str : requiredOptions)</div><div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;    {</div><div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;        <span class="keywordflow">if</span>(!(result.count(str) &gt; 0))</div><div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;        {</div><div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;            <a class="code" href="_logging_8hpp.xhtml#a7b6ad073975f437ec38ca7d20154727f">ARMNN_LOG</a>(error) &lt;&lt; fmt::format(<span class="stringliteral">&quot;The program option &#39;{}&#39; is mandatory but wasn&#39;t provided.&quot;</span>, str);</div><div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;            requiredMissing = <span class="keyword">true</span>;</div><div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;        }</div><div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;    }</div><div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;    <span class="keywordflow">if</span>(requiredMissing)</div><div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;    {</div><div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;        <span class="keywordflow">throw</span> <a class="code" href="classarmnn_1_1_invalid_argument_exception.xhtml">armnn::InvalidArgumentException</a> (<span class="stringliteral">&quot;Some required arguments are missing&quot;</span>);</div><div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;    }</div><div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;}</div><div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;</div><div class="line"><a name="l00135"></a><span class="lineno"><a class="line" href="struct_program_options.xhtml#a2f256c5c35e40765ca21bc976230e724">  135</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="struct_program_options.xhtml#a2f256c5c35e40765ca21bc976230e724">ProgramOptions::ValidateExecuteNetworkParams</a>()</div><div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;{</div><div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;    <a class="code" href="struct_program_options.xhtml#a85f77fe8adc087571402b9e204ad77dd">m_ExNetParams</a>.<a class="code" href="struct_execute_network_params.xhtml#a96a7042f9c83beec8e30088f3d85ed9c">ValidateParams</a>();</div><div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;}</div><div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;</div><div class="line"><a name="l00140"></a><span class="lineno"><a class="line" href="struct_program_options.xhtml#ab6758e6a48ebf606c8f6f4c43b7c9633">  140</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="struct_program_options.xhtml#ab6758e6a48ebf606c8f6f4c43b7c9633">ProgramOptions::ValidateRuntimeOptions</a>()</div><div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;{</div><div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;    <span class="keywordflow">if</span> (<a class="code" href="struct_program_options.xhtml#a521b82f1467d6ede7a11db36f4d0823d">m_RuntimeOptions</a>.<a class="code" href="structarmnn_1_1_i_runtime_1_1_creation_options.xhtml#a30412a91cadff138686eaeb12f5357cc">m_ProfilingOptions</a>.<a class="code" href="structarmnn_1_1_i_runtime_1_1_creation_options_1_1_external_profiling_options.xhtml#a5b304d775657afbf1fb724af57add374">m_TimelineEnabled</a> &amp;&amp;</div><div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;        !<a class="code" href="struct_program_options.xhtml#a521b82f1467d6ede7a11db36f4d0823d">m_RuntimeOptions</a>.<a class="code" href="structarmnn_1_1_i_runtime_1_1_creation_options.xhtml#a30412a91cadff138686eaeb12f5357cc">m_ProfilingOptions</a>.<a class="code" href="structarmnn_1_1_i_runtime_1_1_creation_options_1_1_external_profiling_options.xhtml#a26d42007440bb01a1a6d0ab3b5a657ee">m_EnableProfiling</a>)</div><div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;    {</div><div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;        <a class="code" href="_execute_network_program_options_8cpp.xhtml#abc97e814c5611819237a071ef184ac80">LogAndThrowFatal</a>(<span class="stringliteral">&quot;Timeline profiling requires external profiling to be turned on&quot;</span>);</div><div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160;    }</div><div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;}</div><div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;</div><div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;</div><div class="line"><a name="l00150"></a><span class="lineno"><a class="line" href="struct_program_options.xhtml#a263a38a1c179c73585830a0b0c1b100c">  150</a></span>&#160;<a class="code" href="struct_program_options.xhtml#a263a38a1c179c73585830a0b0c1b100c">ProgramOptions::ProgramOptions</a>() : <a class="code" href="struct_program_options.xhtml#a527ff87c89c802951159885523c5e037">m_CxxOptions</a>{<span class="stringliteral">&quot;ExecuteNetwork&quot;</span>,</div><div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;                                                <span class="stringliteral">&quot;Executes a neural network model using the provided input &quot;</span></div><div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;                                                <span class="stringliteral">&quot;tensor. Prints the resulting output tensor.&quot;</span>}</div><div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;{</div><div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160;    <span class="keywordflow">try</span></div><div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;    {</div><div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;        <span class="comment">// cxxopts doesn&#39;t provide a mechanism to ensure required options are given. There is a</span></div><div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;        <span class="comment">// separate function CheckRequiredOptions() for that.</span></div><div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;        <a class="code" href="struct_program_options.xhtml#a527ff87c89c802951159885523c5e037">m_CxxOptions</a>.add_options(<span class="stringliteral">&quot;a) Required&quot;</span>)</div><div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;                (<span class="stringliteral">&quot;c,compute&quot;</span>,</div><div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;                 <span class="stringliteral">&quot;Which device to run layers on by default. Possible choices: &quot;</span></div><div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;                 + <a class="code" href="namespacearmnn.xhtml#ac2807505b850738bc8a1991ce669dd47">armnn::BackendRegistryInstance</a>().<a class="code" href="classarmnn_1_1_backend_registry.xhtml#ae1de2f7ca1db17f45f97155e239b8b45">GetBackendIdsAsString</a>()</div><div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;                 + <span class="stringliteral">&quot; NOTE: Compute devices need to be passed as a comma separated list without whitespaces &quot;</span></div><div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;                   <span class="stringliteral">&quot;e.g. CpuRef,CpuAcc&quot;</span>,</div><div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;                 cxxopts::value&lt;std::vector&lt;std::string&gt;&gt;())</div><div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;</div><div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;                (<span class="stringliteral">&quot;f,model-format&quot;</span>,</div><div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;                 <span class="stringliteral">&quot;armnn-binary, caffe-binary, caffe-text, onnx-binary, onnx-text, tflite-binary, tensorflow-binary or &quot;</span></div><div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160;                 <span class="stringliteral">&quot;tensorflow-text.&quot;</span>,</div><div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;                 cxxopts::value&lt;std::string&gt;())</div><div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160;</div><div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;                (<span class="stringliteral">&quot;D,armnn-tflite-delegate&quot;</span>,</div><div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;                 <span class="stringliteral">&quot;enable Arm NN TfLite delegate&quot;</span>,</div><div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;                 cxxopts::value&lt;bool&gt;(<a class="code" href="struct_program_options.xhtml#a85f77fe8adc087571402b9e204ad77dd">m_ExNetParams</a>.<a class="code" href="struct_execute_network_params.xhtml#ad9e5bfa84cf85e3ddf24ae6cb124d3d4">m_EnableDelegate</a>)-&gt;default_value(<span class="stringliteral">&quot;false&quot;</span>)-&gt;implicit_value(<span class="stringliteral">&quot;true&quot;</span>))</div><div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160;</div><div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160;                (<span class="stringliteral">&quot;m,model-path&quot;</span>,</div><div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;                 <span class="stringliteral">&quot;Path to model file, e.g. .armnn, .caffemodel, .prototxt, .tflite, .onnx&quot;</span>,</div><div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;                 cxxopts::value&lt;std::string&gt;(<a class="code" href="struct_program_options.xhtml#a85f77fe8adc087571402b9e204ad77dd">m_ExNetParams</a>.<a class="code" href="struct_execute_network_params.xhtml#a4fa312cf0d60fbd3988a7c76ab8e2980">m_ModelPath</a>))</div><div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160;</div><div class="line"><a name="l00179"></a><span class="lineno">  179</span>&#160;                (<span class="stringliteral">&quot;i,input-name&quot;</span>,</div><div class="line"><a name="l00180"></a><span class="lineno">  180</span>&#160;                 <span class="stringliteral">&quot;Identifier of the input tensors in the network separated by comma.&quot;</span>,</div><div class="line"><a name="l00181"></a><span class="lineno">  181</span>&#160;                 cxxopts::value&lt;std::string&gt;())</div><div class="line"><a name="l00182"></a><span class="lineno">  182</span>&#160;</div><div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160;                (<span class="stringliteral">&quot;o,output-name&quot;</span>,</div><div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160;                 <span class="stringliteral">&quot;Identifier of the output tensors in the network separated by comma.&quot;</span>,</div><div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160;                 cxxopts::value&lt;std::string&gt;());</div><div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160;</div><div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160;        <a class="code" href="struct_program_options.xhtml#a527ff87c89c802951159885523c5e037">m_CxxOptions</a>.add_options(<span class="stringliteral">&quot;b) General&quot;</span>)</div><div class="line"><a name="l00188"></a><span class="lineno">  188</span>&#160;                (<span class="stringliteral">&quot;b,dynamic-backends-path&quot;</span>,</div><div class="line"><a name="l00189"></a><span class="lineno">  189</span>&#160;                 <span class="stringliteral">&quot;Path where to load any available dynamic backend from. &quot;</span></div><div class="line"><a name="l00190"></a><span class="lineno">  190</span>&#160;                 <span class="stringliteral">&quot;If left empty (the default), dynamic backends will not be used.&quot;</span>,</div><div class="line"><a name="l00191"></a><span class="lineno">  191</span>&#160;                 cxxopts::value&lt;std::string&gt;(<a class="code" href="struct_program_options.xhtml#a521b82f1467d6ede7a11db36f4d0823d">m_RuntimeOptions</a>.<a class="code" href="structarmnn_1_1_i_runtime_1_1_creation_options.xhtml#ae43cf4b5df0068ee6a9151c98947248b">m_DynamicBackendsPath</a>))</div><div class="line"><a name="l00192"></a><span class="lineno">  192</span>&#160;</div><div class="line"><a name="l00193"></a><span class="lineno">  193</span>&#160;                (<span class="stringliteral">&quot;d,input-tensor-data&quot;</span>,</div><div class="line"><a name="l00194"></a><span class="lineno">  194</span>&#160;                 <span class="stringliteral">&quot;Path to files containing the input data as a flat array separated by whitespace. &quot;</span></div><div class="line"><a name="l00195"></a><span class="lineno">  195</span>&#160;                 <span class="stringliteral">&quot;Several paths can be passed by separating them with a comma. If not specified, the network will be &quot;</span></div><div class="line"><a name="l00196"></a><span class="lineno">  196</span>&#160;                 <span class="stringliteral">&quot;run with dummy data (useful for profiling).&quot;</span>,</div><div class="line"><a name="l00197"></a><span class="lineno">  197</span>&#160;                 cxxopts::value&lt;std::string&gt;()-&gt;default_value(<span class="stringliteral">&quot;&quot;</span>))</div><div class="line"><a name="l00198"></a><span class="lineno">  198</span>&#160;</div><div class="line"><a name="l00199"></a><span class="lineno">  199</span>&#160;                (<span class="stringliteral">&quot;h,help&quot;</span>, <span class="stringliteral">&quot;Display usage information&quot;</span>)</div><div class="line"><a name="l00200"></a><span class="lineno">  200</span>&#160;</div><div class="line"><a name="l00201"></a><span class="lineno">  201</span>&#160;                (<span class="stringliteral">&quot;infer-output-shape&quot;</span>,</div><div class="line"><a name="l00202"></a><span class="lineno">  202</span>&#160;                 <span class="stringliteral">&quot;Infers output tensor shape from input tensor shape and validate where applicable (where supported by &quot;</span></div><div class="line"><a name="l00203"></a><span class="lineno">  203</span>&#160;                 <span class="stringliteral">&quot;parser)&quot;</span>,</div><div class="line"><a name="l00204"></a><span class="lineno">  204</span>&#160;                 cxxopts::value&lt;bool&gt;(<a class="code" href="struct_program_options.xhtml#a85f77fe8adc087571402b9e204ad77dd">m_ExNetParams</a>.<a class="code" href="struct_execute_network_params.xhtml#a2a245a63e87f363df491ad8c35be54c5">m_InferOutputShape</a>)-&gt;default_value(<span class="stringliteral">&quot;false&quot;</span>)-&gt;implicit_value(<span class="stringliteral">&quot;true&quot;</span>))</div><div class="line"><a name="l00205"></a><span class="lineno">  205</span>&#160;</div><div class="line"><a name="l00206"></a><span class="lineno">  206</span>&#160;                (<span class="stringliteral">&quot;iterations&quot;</span>,</div><div class="line"><a name="l00207"></a><span class="lineno">  207</span>&#160;                 <span class="stringliteral">&quot;Number of iterations to run the network for, default is set to 1&quot;</span>,</div><div class="line"><a name="l00208"></a><span class="lineno">  208</span>&#160;                 cxxopts::value&lt;size_t&gt;(<a class="code" href="struct_program_options.xhtml#a85f77fe8adc087571402b9e204ad77dd">m_ExNetParams</a>.<a class="code" href="struct_execute_network_params.xhtml#a6e4eff6a5f40cb026ea76d3c13c96341">m_Iterations</a>)-&gt;default_value(<span class="stringliteral">&quot;1&quot;</span>))</div><div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160;</div><div class="line"><a name="l00210"></a><span class="lineno">  210</span>&#160;                (<span class="stringliteral">&quot;l,dequantize-output&quot;</span>,</div><div class="line"><a name="l00211"></a><span class="lineno">  211</span>&#160;                 <span class="stringliteral">&quot;If this option is enabled, all quantized outputs will be dequantized to float. &quot;</span></div><div class="line"><a name="l00212"></a><span class="lineno">  212</span>&#160;                 <span class="stringliteral">&quot;If unset, default to not get dequantized. &quot;</span></div><div class="line"><a name="l00213"></a><span class="lineno">  213</span>&#160;                 <span class="stringliteral">&quot;Accepted values (true or false)&quot;</span>,</div><div class="line"><a name="l00214"></a><span class="lineno">  214</span>&#160;                 cxxopts::value&lt;bool&gt;(<a class="code" href="struct_program_options.xhtml#a85f77fe8adc087571402b9e204ad77dd">m_ExNetParams</a>.<a class="code" href="struct_execute_network_params.xhtml#a85929a48c5e7b16af8f5bc637e45a37f">m_DequantizeOutput</a>)-&gt;default_value(<span class="stringliteral">&quot;false&quot;</span>)-&gt;implicit_value(<span class="stringliteral">&quot;true&quot;</span>))</div><div class="line"><a name="l00215"></a><span class="lineno">  215</span>&#160;</div><div class="line"><a name="l00216"></a><span class="lineno">  216</span>&#160;                (<span class="stringliteral">&quot;p,print-intermediate-layers&quot;</span>,</div><div class="line"><a name="l00217"></a><span class="lineno">  217</span>&#160;                 <span class="stringliteral">&quot;If this option is enabled, the output of every graph layer will be printed.&quot;</span>,</div><div class="line"><a name="l00218"></a><span class="lineno">  218</span>&#160;                 cxxopts::value&lt;bool&gt;(<a class="code" href="struct_program_options.xhtml#a85f77fe8adc087571402b9e204ad77dd">m_ExNetParams</a>.<a class="code" href="struct_execute_network_params.xhtml#a5acc5b4076604db15ee13ee19fa623c4">m_PrintIntermediate</a>)-&gt;default_value(<span class="stringliteral">&quot;false&quot;</span>)</div><div class="line"><a name="l00219"></a><span class="lineno">  219</span>&#160;                 -&gt;implicit_value(<span class="stringliteral">&quot;true&quot;</span>))</div><div class="line"><a name="l00220"></a><span class="lineno">  220</span>&#160;</div><div class="line"><a name="l00221"></a><span class="lineno">  221</span>&#160;                (<span class="stringliteral">&quot;parse-unsupported&quot;</span>,</div><div class="line"><a name="l00222"></a><span class="lineno">  222</span>&#160;                 <span class="stringliteral">&quot;Add unsupported operators as stand-in layers (where supported by parser)&quot;</span>,</div><div class="line"><a name="l00223"></a><span class="lineno">  223</span>&#160;                 cxxopts::value&lt;bool&gt;(<a class="code" href="struct_program_options.xhtml#a85f77fe8adc087571402b9e204ad77dd">m_ExNetParams</a>.<a class="code" href="struct_execute_network_params.xhtml#a5c7f0c083da98e7b6e9ba79d2fcd985d">m_ParseUnsupported</a>)-&gt;default_value(<span class="stringliteral">&quot;false&quot;</span>)-&gt;implicit_value(<span class="stringliteral">&quot;true&quot;</span>))</div><div class="line"><a name="l00224"></a><span class="lineno">  224</span>&#160;</div><div class="line"><a name="l00225"></a><span class="lineno">  225</span>&#160;                (<span class="stringliteral">&quot;q,quantize-input&quot;</span>,</div><div class="line"><a name="l00226"></a><span class="lineno">  226</span>&#160;                 <span class="stringliteral">&quot;If this option is enabled, all float inputs will be quantized to qasymm8. &quot;</span></div><div class="line"><a name="l00227"></a><span class="lineno">  227</span>&#160;                 <span class="stringliteral">&quot;If unset, default to not quantized. Accepted values (true or false)&quot;</span>,</div><div class="line"><a name="l00228"></a><span class="lineno">  228</span>&#160;                 cxxopts::value&lt;bool&gt;(<a class="code" href="struct_program_options.xhtml#a85f77fe8adc087571402b9e204ad77dd">m_ExNetParams</a>.<a class="code" href="struct_execute_network_params.xhtml#a077f6963fc555d9d42f98cf9ed3e7e03">m_QuantizeInput</a>)-&gt;default_value(<span class="stringliteral">&quot;false&quot;</span>)-&gt;implicit_value(<span class="stringliteral">&quot;true&quot;</span>))</div><div class="line"><a name="l00229"></a><span class="lineno">  229</span>&#160;</div><div class="line"><a name="l00230"></a><span class="lineno">  230</span>&#160;                (<span class="stringliteral">&quot;r,threshold-time&quot;</span>,</div><div class="line"><a name="l00231"></a><span class="lineno">  231</span>&#160;                 <span class="stringliteral">&quot;Threshold time is the maximum allowed time for inference measured in milliseconds. If the actual &quot;</span></div><div class="line"><a name="l00232"></a><span class="lineno">  232</span>&#160;                 <span class="stringliteral">&quot;inference time is greater than the threshold time, the test will fail. By default, no threshold &quot;</span></div><div class="line"><a name="l00233"></a><span class="lineno">  233</span>&#160;                 <span class="stringliteral">&quot;time is used.&quot;</span>,</div><div class="line"><a name="l00234"></a><span class="lineno">  234</span>&#160;                 cxxopts::value&lt;double&gt;(<a class="code" href="struct_program_options.xhtml#a85f77fe8adc087571402b9e204ad77dd">m_ExNetParams</a>.<a class="code" href="struct_execute_network_params.xhtml#a318999172ae5197f56326b12d29104b7">m_ThresholdTime</a>)-&gt;default_value(<span class="stringliteral">&quot;0.0&quot;</span>))</div><div class="line"><a name="l00235"></a><span class="lineno">  235</span>&#160;</div><div class="line"><a name="l00236"></a><span class="lineno">  236</span>&#160;                (<span class="stringliteral">&quot;s,input-tensor-shape&quot;</span>,</div><div class="line"><a name="l00237"></a><span class="lineno">  237</span>&#160;                 <span class="stringliteral">&quot;The shape of the input tensors in the network as a flat array of integers separated by comma.&quot;</span></div><div class="line"><a name="l00238"></a><span class="lineno">  238</span>&#160;                 <span class="stringliteral">&quot;Several shapes can be passed by separating them with a colon (:).&quot;</span>,</div><div class="line"><a name="l00239"></a><span class="lineno">  239</span>&#160;                 cxxopts::value&lt;std::string&gt;())</div><div class="line"><a name="l00240"></a><span class="lineno">  240</span>&#160;</div><div class="line"><a name="l00241"></a><span class="lineno">  241</span>&#160;                (<span class="stringliteral">&quot;v,visualize-optimized-model&quot;</span>,</div><div class="line"><a name="l00242"></a><span class="lineno">  242</span>&#160;                 <span class="stringliteral">&quot;Enables built optimized model visualizer. If unset, defaults to off.&quot;</span>,</div><div class="line"><a name="l00243"></a><span class="lineno">  243</span>&#160;                 cxxopts::value&lt;bool&gt;(<a class="code" href="struct_program_options.xhtml#a85f77fe8adc087571402b9e204ad77dd">m_ExNetParams</a>.<a class="code" href="struct_execute_network_params.xhtml#a7efc68309e76bfefbfa16fe94501b060">m_EnableLayerDetails</a>)-&gt;default_value(<span class="stringliteral">&quot;false&quot;</span>)</div><div class="line"><a name="l00244"></a><span class="lineno">  244</span>&#160;                 -&gt;implicit_value(<span class="stringliteral">&quot;true&quot;</span>))</div><div class="line"><a name="l00245"></a><span class="lineno">  245</span>&#160;</div><div class="line"><a name="l00246"></a><span class="lineno">  246</span>&#160;                (<span class="stringliteral">&quot;w,write-outputs-to-file&quot;</span>,</div><div class="line"><a name="l00247"></a><span class="lineno">  247</span>&#160;                 <span class="stringliteral">&quot;Comma-separated list of output file paths keyed with the binding-id of the output slot. &quot;</span></div><div class="line"><a name="l00248"></a><span class="lineno">  248</span>&#160;                 <span class="stringliteral">&quot;If left empty (the default), the output tensors will not be written to a file.&quot;</span>,</div><div class="line"><a name="l00249"></a><span class="lineno">  249</span>&#160;                 cxxopts::value&lt;std::string&gt;())</div><div class="line"><a name="l00250"></a><span class="lineno">  250</span>&#160;</div><div class="line"><a name="l00251"></a><span class="lineno">  251</span>&#160;                (<span class="stringliteral">&quot;x,subgraph-number&quot;</span>,</div><div class="line"><a name="l00252"></a><span class="lineno">  252</span>&#160;                 <span class="stringliteral">&quot;Id of the subgraph to be executed. Defaults to 0.&quot;</span>,</div><div class="line"><a name="l00253"></a><span class="lineno">  253</span>&#160;                 cxxopts::value&lt;size_t&gt;(<a class="code" href="struct_program_options.xhtml#a85f77fe8adc087571402b9e204ad77dd">m_ExNetParams</a>.<a class="code" href="struct_execute_network_params.xhtml#a2d4582aa74998c397bd064ae73745b62">m_SubgraphId</a>)-&gt;default_value(<span class="stringliteral">&quot;0&quot;</span>))</div><div class="line"><a name="l00254"></a><span class="lineno">  254</span>&#160;</div><div class="line"><a name="l00255"></a><span class="lineno">  255</span>&#160;                (<span class="stringliteral">&quot;y,input-type&quot;</span>,</div><div class="line"><a name="l00256"></a><span class="lineno">  256</span>&#160;                 <span class="stringliteral">&quot;The type of the input tensors in the network separated by comma. &quot;</span></div><div class="line"><a name="l00257"></a><span class="lineno">  257</span>&#160;                 <span class="stringliteral">&quot;If unset, defaults to \&quot;float\&quot; for all defined inputs. &quot;</span></div><div class="line"><a name="l00258"></a><span class="lineno">  258</span>&#160;                 <span class="stringliteral">&quot;Accepted values (float, int or qasymm8).&quot;</span>,</div><div class="line"><a name="l00259"></a><span class="lineno">  259</span>&#160;                 cxxopts::value&lt;std::string&gt;())</div><div class="line"><a name="l00260"></a><span class="lineno">  260</span>&#160;</div><div class="line"><a name="l00261"></a><span class="lineno">  261</span>&#160;                (<span class="stringliteral">&quot;z,output-type&quot;</span>,</div><div class="line"><a name="l00262"></a><span class="lineno">  262</span>&#160;                 <span class="stringliteral">&quot;The type of the output tensors in the network separated by comma. &quot;</span></div><div class="line"><a name="l00263"></a><span class="lineno">  263</span>&#160;                 <span class="stringliteral">&quot;If unset, defaults to \&quot;float\&quot; for all defined outputs. &quot;</span></div><div class="line"><a name="l00264"></a><span class="lineno">  264</span>&#160;                 <span class="stringliteral">&quot;Accepted values (float, int or qasymm8).&quot;</span>,</div><div class="line"><a name="l00265"></a><span class="lineno">  265</span>&#160;                 cxxopts::value&lt;std::string&gt;());</div><div class="line"><a name="l00266"></a><span class="lineno">  266</span>&#160;</div><div class="line"><a name="l00267"></a><span class="lineno">  267</span>&#160;        <a class="code" href="struct_program_options.xhtml#a527ff87c89c802951159885523c5e037">m_CxxOptions</a>.add_options(<span class="stringliteral">&quot;c) Optimization&quot;</span>)</div><div class="line"><a name="l00268"></a><span class="lineno">  268</span>&#160;                (<span class="stringliteral">&quot;bf16-turbo-mode&quot;</span>,</div><div class="line"><a name="l00269"></a><span class="lineno">  269</span>&#160;                 <span class="stringliteral">&quot;If this option is enabled, FP32 layers, &quot;</span></div><div class="line"><a name="l00270"></a><span class="lineno">  270</span>&#160;                 <span class="stringliteral">&quot;weights and biases will be converted to BFloat16 where the backend supports it&quot;</span>,</div><div class="line"><a name="l00271"></a><span class="lineno">  271</span>&#160;                 cxxopts::value&lt;bool&gt;(<a class="code" href="struct_program_options.xhtml#a85f77fe8adc087571402b9e204ad77dd">m_ExNetParams</a>.<a class="code" href="struct_execute_network_params.xhtml#a0b99050baebe1d169392461b3a9be08d">m_EnableBf16TurboMode</a>)</div><div class="line"><a name="l00272"></a><span class="lineno">  272</span>&#160;                 -&gt;default_value(<span class="stringliteral">&quot;false&quot;</span>)-&gt;implicit_value(<span class="stringliteral">&quot;true&quot;</span>))</div><div class="line"><a name="l00273"></a><span class="lineno">  273</span>&#160;</div><div class="line"><a name="l00274"></a><span class="lineno">  274</span>&#160;                (<span class="stringliteral">&quot;enable-fast-math&quot;</span>,</div><div class="line"><a name="l00275"></a><span class="lineno">  275</span>&#160;                 <span class="stringliteral">&quot;Enables fast_math options in backends that support it. Using the fast_math flag can lead to &quot;</span></div><div class="line"><a name="l00276"></a><span class="lineno">  276</span>&#160;                 <span class="stringliteral">&quot;performance improvements but may result in reduced or different precision.&quot;</span>,</div><div class="line"><a name="l00277"></a><span class="lineno">  277</span>&#160;                 cxxopts::value&lt;bool&gt;(<a class="code" href="struct_program_options.xhtml#a85f77fe8adc087571402b9e204ad77dd">m_ExNetParams</a>.<a class="code" href="struct_execute_network_params.xhtml#a66f9597b152215daba3211379dad63d3">m_EnableFastMath</a>)-&gt;default_value(<span class="stringliteral">&quot;false&quot;</span>)-&gt;implicit_value(<span class="stringliteral">&quot;true&quot;</span>))</div><div class="line"><a name="l00278"></a><span class="lineno">  278</span>&#160;</div><div class="line"><a name="l00279"></a><span class="lineno">  279</span>&#160;                (<span class="stringliteral">&quot;number-of-threads&quot;</span>,</div><div class="line"><a name="l00280"></a><span class="lineno">  280</span>&#160;                 <span class="stringliteral">&quot;Assign the number of threads used by the CpuAcc backend. &quot;</span></div><div class="line"><a name="l00281"></a><span class="lineno">  281</span>&#160;                 <span class="stringliteral">&quot;Input value must be between 1 and 64. &quot;</span></div><div class="line"><a name="l00282"></a><span class="lineno">  282</span>&#160;                 <span class="stringliteral">&quot;Default is set to 0 (Backend will decide number of threads to use).&quot;</span>,</div><div class="line"><a name="l00283"></a><span class="lineno">  283</span>&#160;                 cxxopts::value&lt;unsigned int&gt;(<a class="code" href="struct_program_options.xhtml#a85f77fe8adc087571402b9e204ad77dd">m_ExNetParams</a>.<a class="code" href="struct_execute_network_params.xhtml#adc650e032e7fce99f15e2bf903e7167b">m_NumberOfThreads</a>)-&gt;default_value(<span class="stringliteral">&quot;0&quot;</span>))</div><div class="line"><a name="l00284"></a><span class="lineno">  284</span>&#160;</div><div class="line"><a name="l00285"></a><span class="lineno">  285</span>&#160;                (<span class="stringliteral">&quot;save-cached-network&quot;</span>,</div><div class="line"><a name="l00286"></a><span class="lineno">  286</span>&#160;                 <span class="stringliteral">&quot;Enables saving of the cached network to a file given with the cached-network-filepath option. &quot;</span></div><div class="line"><a name="l00287"></a><span class="lineno">  287</span>&#160;                 <span class="stringliteral">&quot;See also --cached-network-filepath&quot;</span>,</div><div class="line"><a name="l00288"></a><span class="lineno">  288</span>&#160;                 cxxopts::value&lt;bool&gt;(<a class="code" href="struct_program_options.xhtml#a85f77fe8adc087571402b9e204ad77dd">m_ExNetParams</a>.<a class="code" href="struct_execute_network_params.xhtml#a9a04b8c7f19a84f63125edec509b6d53">m_SaveCachedNetwork</a>)</div><div class="line"><a name="l00289"></a><span class="lineno">  289</span>&#160;                 -&gt;default_value(<span class="stringliteral">&quot;false&quot;</span>)-&gt;implicit_value(<span class="stringliteral">&quot;true&quot;</span>))</div><div class="line"><a name="l00290"></a><span class="lineno">  290</span>&#160;</div><div class="line"><a name="l00291"></a><span class="lineno">  291</span>&#160;                (<span class="stringliteral">&quot;cached-network-filepath&quot;</span>,</div><div class="line"><a name="l00292"></a><span class="lineno">  292</span>&#160;                 <span class="stringliteral">&quot;If non-empty, the given file will be used to load/save the cached network. &quot;</span></div><div class="line"><a name="l00293"></a><span class="lineno">  293</span>&#160;                 <span class="stringliteral">&quot;If save-cached-network is given then the cached network will be saved to the given file. &quot;</span></div><div class="line"><a name="l00294"></a><span class="lineno">  294</span>&#160;                 <span class="stringliteral">&quot;To save the cached network a file must already exist. &quot;</span></div><div class="line"><a name="l00295"></a><span class="lineno">  295</span>&#160;                 <span class="stringliteral">&quot;If save-cached-network is not given then the cached network will be loaded from the given file. &quot;</span></div><div class="line"><a name="l00296"></a><span class="lineno">  296</span>&#160;                 <span class="stringliteral">&quot;This will remove initial compilation time of kernels and speed up the first execution.&quot;</span>,</div><div class="line"><a name="l00297"></a><span class="lineno">  297</span>&#160;                 cxxopts::value&lt;std::string&gt;(<a class="code" href="struct_program_options.xhtml#a85f77fe8adc087571402b9e204ad77dd">m_ExNetParams</a>.<a class="code" href="struct_execute_network_params.xhtml#a9f8881646a38f828f92d3354930c4165">m_CachedNetworkFilePath</a>)-&gt;default_value(<span class="stringliteral">&quot;&quot;</span>))</div><div class="line"><a name="l00298"></a><span class="lineno">  298</span>&#160;</div><div class="line"><a name="l00299"></a><span class="lineno">  299</span>&#160;                (<span class="stringliteral">&quot;fp16-turbo-mode&quot;</span>,</div><div class="line"><a name="l00300"></a><span class="lineno">  300</span>&#160;                 <span class="stringliteral">&quot;If this option is enabled, FP32 layers, &quot;</span></div><div class="line"><a name="l00301"></a><span class="lineno">  301</span>&#160;                 <span class="stringliteral">&quot;weights and biases will be converted to FP16 where the backend supports it&quot;</span>,</div><div class="line"><a name="l00302"></a><span class="lineno">  302</span>&#160;                 cxxopts::value&lt;bool&gt;(<a class="code" href="struct_program_options.xhtml#a85f77fe8adc087571402b9e204ad77dd">m_ExNetParams</a>.<a class="code" href="struct_execute_network_params.xhtml#a513151623e8d448951a0b94ad1946fbe">m_EnableFp16TurboMode</a>)</div><div class="line"><a name="l00303"></a><span class="lineno">  303</span>&#160;                 -&gt;default_value(<span class="stringliteral">&quot;false&quot;</span>)-&gt;implicit_value(<span class="stringliteral">&quot;true&quot;</span>))</div><div class="line"><a name="l00304"></a><span class="lineno">  304</span>&#160;</div><div class="line"><a name="l00305"></a><span class="lineno">  305</span>&#160;                (<span class="stringliteral">&quot;tuning-level&quot;</span>,</div><div class="line"><a name="l00306"></a><span class="lineno">  306</span>&#160;                 <span class="stringliteral">&quot;Sets the tuning level which enables a tuning run which will update/create a tuning file. &quot;</span></div><div class="line"><a name="l00307"></a><span class="lineno">  307</span>&#160;                 <span class="stringliteral">&quot;Available options are: 1 (Rapid), 2 (Normal), 3 (Exhaustive). &quot;</span></div><div class="line"><a name="l00308"></a><span class="lineno">  308</span>&#160;                 <span class="stringliteral">&quot;Requires tuning-path to be set, default is set to 0 (No tuning run)&quot;</span>,</div><div class="line"><a name="l00309"></a><span class="lineno">  309</span>&#160;                 cxxopts::value&lt;int&gt;(<a class="code" href="struct_program_options.xhtml#a85f77fe8adc087571402b9e204ad77dd">m_ExNetParams</a>.<a class="code" href="struct_execute_network_params.xhtml#ad14d073dddd554025957ef73ac183649">m_TuningLevel</a>)-&gt;default_value(<span class="stringliteral">&quot;0&quot;</span>))</div><div class="line"><a name="l00310"></a><span class="lineno">  310</span>&#160;</div><div class="line"><a name="l00311"></a><span class="lineno">  311</span>&#160;                (<span class="stringliteral">&quot;tuning-path&quot;</span>,</div><div class="line"><a name="l00312"></a><span class="lineno">  312</span>&#160;                 <span class="stringliteral">&quot;Path to tuning file. Enables use of CL tuning&quot;</span>,</div><div class="line"><a name="l00313"></a><span class="lineno">  313</span>&#160;                 cxxopts::value&lt;std::string&gt;(<a class="code" href="struct_program_options.xhtml#a85f77fe8adc087571402b9e204ad77dd">m_ExNetParams</a>.<a class="code" href="struct_execute_network_params.xhtml#aaa966b4792eae29d659a78cd6faf1a68">m_TuningPath</a>))</div><div class="line"><a name="l00314"></a><span class="lineno">  314</span>&#160;</div><div class="line"><a name="l00315"></a><span class="lineno">  315</span>&#160;                (<span class="stringliteral">&quot;MLGOTuningFilePath&quot;</span>,</div><div class="line"><a name="l00316"></a><span class="lineno">  316</span>&#160;                <span class="stringliteral">&quot;Path to tuning file. Enables use of CL MLGO tuning&quot;</span>,</div><div class="line"><a name="l00317"></a><span class="lineno">  317</span>&#160;                cxxopts::value&lt;std::string&gt;(<a class="code" href="struct_program_options.xhtml#a85f77fe8adc087571402b9e204ad77dd">m_ExNetParams</a>.<a class="code" href="struct_execute_network_params.xhtml#ac609a217f4de4c647422dbb358a5f2ef">m_MLGOTuningFilePath</a>));</div><div class="line"><a name="l00318"></a><span class="lineno">  318</span>&#160;</div><div class="line"><a name="l00319"></a><span class="lineno">  319</span>&#160;        <a class="code" href="struct_program_options.xhtml#a527ff87c89c802951159885523c5e037">m_CxxOptions</a>.add_options(<span class="stringliteral">&quot;d) Profiling&quot;</span>)</div><div class="line"><a name="l00320"></a><span class="lineno">  320</span>&#160;                (<span class="stringliteral">&quot;a,enable-external-profiling&quot;</span>,</div><div class="line"><a name="l00321"></a><span class="lineno">  321</span>&#160;                 <span class="stringliteral">&quot;If enabled external profiling will be switched on&quot;</span>,</div><div class="line"><a name="l00322"></a><span class="lineno">  322</span>&#160;                 cxxopts::value&lt;bool&gt;(<a class="code" href="struct_program_options.xhtml#a521b82f1467d6ede7a11db36f4d0823d">m_RuntimeOptions</a>.<a class="code" href="structarmnn_1_1_i_runtime_1_1_creation_options.xhtml#a30412a91cadff138686eaeb12f5357cc">m_ProfilingOptions</a>.<a class="code" href="structarmnn_1_1_i_runtime_1_1_creation_options_1_1_external_profiling_options.xhtml#a26d42007440bb01a1a6d0ab3b5a657ee">m_EnableProfiling</a>)</div><div class="line"><a name="l00323"></a><span class="lineno">  323</span>&#160;                         -&gt;default_value(<span class="stringliteral">&quot;false&quot;</span>)-&gt;implicit_value(<span class="stringliteral">&quot;true&quot;</span>))</div><div class="line"><a name="l00324"></a><span class="lineno">  324</span>&#160;</div><div class="line"><a name="l00325"></a><span class="lineno">  325</span>&#160;                (<span class="stringliteral">&quot;e,event-based-profiling&quot;</span>,</div><div class="line"><a name="l00326"></a><span class="lineno">  326</span>&#160;                 <span class="stringliteral">&quot;Enables built in profiler. If unset, defaults to off.&quot;</span>,</div><div class="line"><a name="l00327"></a><span class="lineno">  327</span>&#160;                 cxxopts::value&lt;bool&gt;(<a class="code" href="struct_program_options.xhtml#a85f77fe8adc087571402b9e204ad77dd">m_ExNetParams</a>.<a class="code" href="struct_execute_network_params.xhtml#a26d42007440bb01a1a6d0ab3b5a657ee">m_EnableProfiling</a>)-&gt;default_value(<span class="stringliteral">&quot;false&quot;</span>)-&gt;implicit_value(<span class="stringliteral">&quot;true&quot;</span>))</div><div class="line"><a name="l00328"></a><span class="lineno">  328</span>&#160;</div><div class="line"><a name="l00329"></a><span class="lineno">  329</span>&#160;                (<span class="stringliteral">&quot;g,file-only-external-profiling&quot;</span>,</div><div class="line"><a name="l00330"></a><span class="lineno">  330</span>&#160;                 <span class="stringliteral">&quot;If enabled then the &#39;file-only&#39; test mode of external profiling will be enabled&quot;</span>,</div><div class="line"><a name="l00331"></a><span class="lineno">  331</span>&#160;                 cxxopts::value&lt;bool&gt;(<a class="code" href="struct_program_options.xhtml#a521b82f1467d6ede7a11db36f4d0823d">m_RuntimeOptions</a>.<a class="code" href="structarmnn_1_1_i_runtime_1_1_creation_options.xhtml#a30412a91cadff138686eaeb12f5357cc">m_ProfilingOptions</a>.<a class="code" href="structarmnn_1_1_i_runtime_1_1_creation_options_1_1_external_profiling_options.xhtml#ad8f8cb971cad412664cd7df58df7eb1e">m_FileOnly</a>)</div><div class="line"><a name="l00332"></a><span class="lineno">  332</span>&#160;                 -&gt;default_value(<span class="stringliteral">&quot;false&quot;</span>)-&gt;implicit_value(<span class="stringliteral">&quot;true&quot;</span>))</div><div class="line"><a name="l00333"></a><span class="lineno">  333</span>&#160;</div><div class="line"><a name="l00334"></a><span class="lineno">  334</span>&#160;                (<span class="stringliteral">&quot;file-format&quot;</span>,</div><div class="line"><a name="l00335"></a><span class="lineno">  335</span>&#160;                 <span class="stringliteral">&quot;If profiling is enabled specifies the output file format&quot;</span>,</div><div class="line"><a name="l00336"></a><span class="lineno">  336</span>&#160;                 cxxopts::value&lt;std::string&gt;(<a class="code" href="struct_program_options.xhtml#a521b82f1467d6ede7a11db36f4d0823d">m_RuntimeOptions</a>.<a class="code" href="structarmnn_1_1_i_runtime_1_1_creation_options.xhtml#a30412a91cadff138686eaeb12f5357cc">m_ProfilingOptions</a>.<a class="code" href="structarmnn_1_1_i_runtime_1_1_creation_options_1_1_external_profiling_options.xhtml#aeec9a6408083ab1b6bf7fa3e566ebe46">m_FileFormat</a>)-&gt;default_value(<span class="stringliteral">&quot;binary&quot;</span>))</div><div class="line"><a name="l00337"></a><span class="lineno">  337</span>&#160;</div><div class="line"><a name="l00338"></a><span class="lineno">  338</span>&#160;                (<span class="stringliteral">&quot;j,outgoing-capture-file&quot;</span>,</div><div class="line"><a name="l00339"></a><span class="lineno">  339</span>&#160;                 <span class="stringliteral">&quot;If specified the outgoing external profiling packets will be captured in this binary file&quot;</span>,</div><div class="line"><a name="l00340"></a><span class="lineno">  340</span>&#160;                 cxxopts::value&lt;std::string&gt;(<a class="code" href="struct_program_options.xhtml#a521b82f1467d6ede7a11db36f4d0823d">m_RuntimeOptions</a>.<a class="code" href="structarmnn_1_1_i_runtime_1_1_creation_options.xhtml#a30412a91cadff138686eaeb12f5357cc">m_ProfilingOptions</a>.<a class="code" href="structarmnn_1_1_i_runtime_1_1_creation_options_1_1_external_profiling_options.xhtml#aa0d6aa79d683bc79d20d4ddcf7db87db">m_OutgoingCaptureFile</a>))</div><div class="line"><a name="l00341"></a><span class="lineno">  341</span>&#160;</div><div class="line"><a name="l00342"></a><span class="lineno">  342</span>&#160;                (<span class="stringliteral">&quot;k,incoming-capture-file&quot;</span>,</div><div class="line"><a name="l00343"></a><span class="lineno">  343</span>&#160;                 <span class="stringliteral">&quot;If specified the incoming external profiling packets will be captured in this binary file&quot;</span>,</div><div class="line"><a name="l00344"></a><span class="lineno">  344</span>&#160;                 cxxopts::value&lt;std::string&gt;(<a class="code" href="struct_program_options.xhtml#a521b82f1467d6ede7a11db36f4d0823d">m_RuntimeOptions</a>.<a class="code" href="structarmnn_1_1_i_runtime_1_1_creation_options.xhtml#a30412a91cadff138686eaeb12f5357cc">m_ProfilingOptions</a>.<a class="code" href="structarmnn_1_1_i_runtime_1_1_creation_options_1_1_external_profiling_options.xhtml#a36dd18e4f73d470e3234d72198aa5fef">m_IncomingCaptureFile</a>))</div><div class="line"><a name="l00345"></a><span class="lineno">  345</span>&#160;</div><div class="line"><a name="l00346"></a><span class="lineno">  346</span>&#160;                (<span class="stringliteral">&quot;timeline-profiling&quot;</span>,</div><div class="line"><a name="l00347"></a><span class="lineno">  347</span>&#160;                 <span class="stringliteral">&quot;If enabled timeline profiling will be switched on, requires external profiling&quot;</span>,</div><div class="line"><a name="l00348"></a><span class="lineno">  348</span>&#160;                 cxxopts::value&lt;bool&gt;(<a class="code" href="struct_program_options.xhtml#a521b82f1467d6ede7a11db36f4d0823d">m_RuntimeOptions</a>.<a class="code" href="structarmnn_1_1_i_runtime_1_1_creation_options.xhtml#a30412a91cadff138686eaeb12f5357cc">m_ProfilingOptions</a>.<a class="code" href="structarmnn_1_1_i_runtime_1_1_creation_options_1_1_external_profiling_options.xhtml#a5b304d775657afbf1fb724af57add374">m_TimelineEnabled</a>)</div><div class="line"><a name="l00349"></a><span class="lineno">  349</span>&#160;                 -&gt;default_value(<span class="stringliteral">&quot;false&quot;</span>)-&gt;implicit_value(<span class="stringliteral">&quot;true&quot;</span>))</div><div class="line"><a name="l00350"></a><span class="lineno">  350</span>&#160;</div><div class="line"><a name="l00351"></a><span class="lineno">  351</span>&#160;                (<span class="stringliteral">&quot;u,counter-capture-period&quot;</span>,</div><div class="line"><a name="l00352"></a><span class="lineno">  352</span>&#160;                 <span class="stringliteral">&quot;If profiling is enabled in &#39;file-only&#39; mode this is the capture period that will be used in the test&quot;</span>,</div><div class="line"><a name="l00353"></a><span class="lineno">  353</span>&#160;                 cxxopts::value&lt;uint32_t&gt;(<a class="code" href="struct_program_options.xhtml#a521b82f1467d6ede7a11db36f4d0823d">m_RuntimeOptions</a>.<a class="code" href="structarmnn_1_1_i_runtime_1_1_creation_options.xhtml#a30412a91cadff138686eaeb12f5357cc">m_ProfilingOptions</a>.<a class="code" href="structarmnn_1_1_i_runtime_1_1_creation_options_1_1_external_profiling_options.xhtml#a2239347f38747f993c324bdd8b1eb146">m_CapturePeriod</a>)-&gt;default_value(<span class="stringliteral">&quot;150&quot;</span>));</div><div class="line"><a name="l00354"></a><span class="lineno">  354</span>&#160;    }</div><div class="line"><a name="l00355"></a><span class="lineno">  355</span>&#160;    <span class="keywordflow">catch</span> (<span class="keyword">const</span> std::exception&amp; e)</div><div class="line"><a name="l00356"></a><span class="lineno">  356</span>&#160;    {</div><div class="line"><a name="l00357"></a><span class="lineno">  357</span>&#160;        <a class="code" href="_assert_8hpp.xhtml#a91c4dfde57907d7698c7531785690a7f">ARMNN_ASSERT_MSG</a>(<span class="keyword">false</span>, <span class="stringliteral">&quot;Caught unexpected exception&quot;</span>);</div><div class="line"><a name="l00358"></a><span class="lineno">  358</span>&#160;        <a class="code" href="_logging_8hpp.xhtml#a7b6ad073975f437ec38ca7d20154727f">ARMNN_LOG</a>(fatal) &lt;&lt; <span class="stringliteral">&quot;Fatal internal error: &quot;</span> &lt;&lt; e.what();</div><div class="line"><a name="l00359"></a><span class="lineno">  359</span>&#160;        exit(EXIT_FAILURE);</div><div class="line"><a name="l00360"></a><span class="lineno">  360</span>&#160;    }</div><div class="line"><a name="l00361"></a><span class="lineno">  361</span>&#160;}</div><div class="line"><a name="l00362"></a><span class="lineno">  362</span>&#160;</div><div class="line"><a name="l00363"></a><span class="lineno"><a class="line" href="struct_program_options.xhtml#a9070642a619b7e5ba14246eb4aeb24b1">  363</a></span>&#160;<a class="code" href="struct_program_options.xhtml#a263a38a1c179c73585830a0b0c1b100c">ProgramOptions::ProgramOptions</a>(<span class="keywordtype">int</span> ac, <span class="keyword">const</span> <span class="keywordtype">char</span>* av[]): <a class="code" href="struct_program_options.xhtml">ProgramOptions</a>()</div><div class="line"><a name="l00364"></a><span class="lineno">  364</span>&#160;{</div><div class="line"><a name="l00365"></a><span class="lineno">  365</span>&#160;    <a class="code" href="struct_program_options.xhtml#a59cc301c978c454abd5ce1851a63e59e">ParseOptions</a>(ac, av);</div><div class="line"><a name="l00366"></a><span class="lineno">  366</span>&#160;}</div><div class="line"><a name="l00367"></a><span class="lineno">  367</span>&#160;</div><div class="line"><a name="l00368"></a><span class="lineno"><a class="line" href="struct_program_options.xhtml#a59cc301c978c454abd5ce1851a63e59e">  368</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="struct_program_options.xhtml#a59cc301c978c454abd5ce1851a63e59e">ProgramOptions::ParseOptions</a>(<span class="keywordtype">int</span> ac, <span class="keyword">const</span> <span class="keywordtype">char</span>* av[])</div><div class="line"><a name="l00369"></a><span class="lineno">  369</span>&#160;{</div><div class="line"><a name="l00370"></a><span class="lineno">  370</span>&#160;    <span class="comment">// Parses the command-line.</span></div><div class="line"><a name="l00371"></a><span class="lineno">  371</span>&#160;    <a class="code" href="struct_program_options.xhtml#a16963a1c56b9300c949247c0cefe65ab">m_CxxResult</a> = <a class="code" href="struct_program_options.xhtml#a527ff87c89c802951159885523c5e037">m_CxxOptions</a>.parse(ac, av);</div><div class="line"><a name="l00372"></a><span class="lineno">  372</span>&#160;</div><div class="line"><a name="l00373"></a><span class="lineno">  373</span>&#160;    <span class="keywordflow">if</span> (<a class="code" href="struct_program_options.xhtml#a16963a1c56b9300c949247c0cefe65ab">m_CxxResult</a>.count(<span class="stringliteral">&quot;help&quot;</span>) || ac &lt;= 1)</div><div class="line"><a name="l00374"></a><span class="lineno">  374</span>&#160;    {</div><div class="line"><a name="l00375"></a><span class="lineno">  375</span>&#160;        std::cout &lt;&lt; <a class="code" href="struct_program_options.xhtml#a527ff87c89c802951159885523c5e037">m_CxxOptions</a>.help() &lt;&lt; std::endl;</div><div class="line"><a name="l00376"></a><span class="lineno">  376</span>&#160;        exit(EXIT_SUCCESS);</div><div class="line"><a name="l00377"></a><span class="lineno">  377</span>&#160;    }</div><div class="line"><a name="l00378"></a><span class="lineno">  378</span>&#160;</div><div class="line"><a name="l00379"></a><span class="lineno">  379</span>&#160;    <a class="code" href="_execute_network_program_options_8cpp.xhtml#a8d5885121779cccab1967e42a461dd89">CheckRequiredOptions</a>(<a class="code" href="struct_program_options.xhtml#a16963a1c56b9300c949247c0cefe65ab">m_CxxResult</a>);</div><div class="line"><a name="l00380"></a><span class="lineno">  380</span>&#160;    <a class="code" href="_execute_network_program_options_8cpp.xhtml#a06da09814964b4b241ca4420e98de8f3">CheckOptionDependencies</a>(<a class="code" href="struct_program_options.xhtml#a16963a1c56b9300c949247c0cefe65ab">m_CxxResult</a>);</div><div class="line"><a name="l00381"></a><span class="lineno">  381</span>&#160;</div><div class="line"><a name="l00382"></a><span class="lineno">  382</span>&#160;    <span class="comment">// Some options can&#39;t be assigned directly because they need some post-processing:</span></div><div class="line"><a name="l00383"></a><span class="lineno">  383</span>&#160;    <span class="keyword">auto</span> computeDevices = GetOptionValue&lt;std::vector&lt;std::string&gt;&gt;(<span class="stringliteral">&quot;compute&quot;</span>, <a class="code" href="struct_program_options.xhtml#a16963a1c56b9300c949247c0cefe65ab">m_CxxResult</a>);</div><div class="line"><a name="l00384"></a><span class="lineno">  384</span>&#160;    <a class="code" href="struct_program_options.xhtml#a85f77fe8adc087571402b9e204ad77dd">m_ExNetParams</a>.<a class="code" href="struct_execute_network_params.xhtml#a2d54e6252c1c9a0e29f7706ba03b2b74">m_ComputeDevices</a> = <a class="code" href="_execute_network_program_options_8cpp.xhtml#ae6dc4c83daaf027ae1e1948bac9d7f54">GetBackendIDs</a>(computeDevices);</div><div class="line"><a name="l00385"></a><span class="lineno">  385</span>&#160;    <a class="code" href="struct_program_options.xhtml#a85f77fe8adc087571402b9e204ad77dd">m_ExNetParams</a>.<a class="code" href="struct_execute_network_params.xhtml#a86800ee44cdb3d1bfd169ec4200212d2">m_ModelFormat</a> =</div><div class="line"><a name="l00386"></a><span class="lineno">  386</span>&#160;            <a class="code" href="namespacearmnn_1_1string_utils.xhtml#ac5da14c1462870eef77ca8ac4bb5afe5">armnn::stringUtils::StringTrimCopy</a>(GetOptionValue&lt;std::string&gt;(<span class="stringliteral">&quot;model-format&quot;</span>, <a class="code" href="struct_program_options.xhtml#a16963a1c56b9300c949247c0cefe65ab">m_CxxResult</a>));</div><div class="line"><a name="l00387"></a><span class="lineno">  387</span>&#160;    <a class="code" href="struct_program_options.xhtml#a85f77fe8adc087571402b9e204ad77dd">m_ExNetParams</a>.<a class="code" href="struct_execute_network_params.xhtml#aaf3c7f286030842a31025309ab6a8329">m_InputNames</a> =</div><div class="line"><a name="l00388"></a><span class="lineno">  388</span>&#160;            <a class="code" href="_network_execution_utils_8cpp.xhtml#a1842dfaf4b24f36146a0cf6731ed75b7">ParseStringList</a>(GetOptionValue&lt;std::string&gt;(<span class="stringliteral">&quot;input-name&quot;</span>, <a class="code" href="struct_program_options.xhtml#a16963a1c56b9300c949247c0cefe65ab">m_CxxResult</a>), <span class="stringliteral">&quot;,&quot;</span>);</div><div class="line"><a name="l00389"></a><span class="lineno">  389</span>&#160;    <a class="code" href="struct_program_options.xhtml#a85f77fe8adc087571402b9e204ad77dd">m_ExNetParams</a>.<a class="code" href="struct_execute_network_params.xhtml#ae3c3ae097395afea488cd3e0244269fa">m_InputTensorDataFilePaths</a> =</div><div class="line"><a name="l00390"></a><span class="lineno">  390</span>&#160;            <a class="code" href="_network_execution_utils_8cpp.xhtml#a1842dfaf4b24f36146a0cf6731ed75b7">ParseStringList</a>(GetOptionValue&lt;std::string&gt;(<span class="stringliteral">&quot;input-tensor-data&quot;</span>, <a class="code" href="struct_program_options.xhtml#a16963a1c56b9300c949247c0cefe65ab">m_CxxResult</a>), <span class="stringliteral">&quot;,&quot;</span>);</div><div class="line"><a name="l00391"></a><span class="lineno">  391</span>&#160;    <a class="code" href="struct_program_options.xhtml#a85f77fe8adc087571402b9e204ad77dd">m_ExNetParams</a>.<a class="code" href="struct_execute_network_params.xhtml#a982d4141ecde3eb220a136610d853df2">m_OutputNames</a> =</div><div class="line"><a name="l00392"></a><span class="lineno">  392</span>&#160;            <a class="code" href="_network_execution_utils_8cpp.xhtml#a1842dfaf4b24f36146a0cf6731ed75b7">ParseStringList</a>(GetOptionValue&lt;std::string&gt;(<span class="stringliteral">&quot;output-name&quot;</span>, <a class="code" href="struct_program_options.xhtml#a16963a1c56b9300c949247c0cefe65ab">m_CxxResult</a>), <span class="stringliteral">&quot;,&quot;</span>);</div><div class="line"><a name="l00393"></a><span class="lineno">  393</span>&#160;    <a class="code" href="struct_program_options.xhtml#a85f77fe8adc087571402b9e204ad77dd">m_ExNetParams</a>.<a class="code" href="struct_execute_network_params.xhtml#acc7592cbdfe2e70cbc3794fb1e7eaeb9">m_InputTypes</a> =</div><div class="line"><a name="l00394"></a><span class="lineno">  394</span>&#160;            <a class="code" href="_network_execution_utils_8cpp.xhtml#a1842dfaf4b24f36146a0cf6731ed75b7">ParseStringList</a>(GetOptionValue&lt;std::string&gt;(<span class="stringliteral">&quot;input-type&quot;</span>, <a class="code" href="struct_program_options.xhtml#a16963a1c56b9300c949247c0cefe65ab">m_CxxResult</a>), <span class="stringliteral">&quot;,&quot;</span>);</div><div class="line"><a name="l00395"></a><span class="lineno">  395</span>&#160;    <a class="code" href="struct_program_options.xhtml#a85f77fe8adc087571402b9e204ad77dd">m_ExNetParams</a>.<a class="code" href="struct_execute_network_params.xhtml#a810addfa426b5ac1476035dedee7cda5">m_OutputTypes</a> =</div><div class="line"><a name="l00396"></a><span class="lineno">  396</span>&#160;            <a class="code" href="_network_execution_utils_8cpp.xhtml#a1842dfaf4b24f36146a0cf6731ed75b7">ParseStringList</a>(GetOptionValue&lt;std::string&gt;(<span class="stringliteral">&quot;output-type&quot;</span>, <a class="code" href="struct_program_options.xhtml#a16963a1c56b9300c949247c0cefe65ab">m_CxxResult</a>), <span class="stringliteral">&quot;,&quot;</span>);</div><div class="line"><a name="l00397"></a><span class="lineno">  397</span>&#160;    <a class="code" href="struct_program_options.xhtml#a85f77fe8adc087571402b9e204ad77dd">m_ExNetParams</a>.<a class="code" href="struct_execute_network_params.xhtml#a74d346297c55b516908c541030adc88d">m_OutputTensorFiles</a> =</div><div class="line"><a name="l00398"></a><span class="lineno">  398</span>&#160;            <a class="code" href="_network_execution_utils_8cpp.xhtml#a1842dfaf4b24f36146a0cf6731ed75b7">ParseStringList</a>(GetOptionValue&lt;std::string&gt;(<span class="stringliteral">&quot;write-outputs-to-file&quot;</span>, <a class="code" href="struct_program_options.xhtml#a16963a1c56b9300c949247c0cefe65ab">m_CxxResult</a>), <span class="stringliteral">&quot;,&quot;</span>);</div><div class="line"><a name="l00399"></a><span class="lineno">  399</span>&#160;    <a class="code" href="struct_program_options.xhtml#a85f77fe8adc087571402b9e204ad77dd">m_ExNetParams</a>.<a class="code" href="struct_execute_network_params.xhtml#a99c7360a4d4b248b3f10607bc5d2fe7b">m_GenerateTensorData</a> =</div><div class="line"><a name="l00400"></a><span class="lineno">  400</span>&#160;            <a class="code" href="struct_program_options.xhtml#a85f77fe8adc087571402b9e204ad77dd">m_ExNetParams</a>.<a class="code" href="struct_execute_network_params.xhtml#ae3c3ae097395afea488cd3e0244269fa">m_InputTensorDataFilePaths</a>.empty();</div><div class="line"><a name="l00401"></a><span class="lineno">  401</span>&#160;    <a class="code" href="struct_program_options.xhtml#a85f77fe8adc087571402b9e204ad77dd">m_ExNetParams</a>.<a class="code" href="struct_execute_network_params.xhtml#ae43cf4b5df0068ee6a9151c98947248b">m_DynamicBackendsPath</a> = <a class="code" href="struct_program_options.xhtml#a521b82f1467d6ede7a11db36f4d0823d">m_RuntimeOptions</a>.<a class="code" href="structarmnn_1_1_i_runtime_1_1_creation_options.xhtml#ae43cf4b5df0068ee6a9151c98947248b">m_DynamicBackendsPath</a>;</div><div class="line"><a name="l00402"></a><span class="lineno">  402</span>&#160;</div><div class="line"><a name="l00403"></a><span class="lineno">  403</span>&#160;    <span class="comment">// Parse input tensor shape from the string we got from the command-line.</span></div><div class="line"><a name="l00404"></a><span class="lineno">  404</span>&#160;    std::vector&lt;std::string&gt; inputTensorShapesVector =</div><div class="line"><a name="l00405"></a><span class="lineno">  405</span>&#160;            <a class="code" href="_network_execution_utils_8cpp.xhtml#a1842dfaf4b24f36146a0cf6731ed75b7">ParseStringList</a>(GetOptionValue&lt;std::string&gt;(<span class="stringliteral">&quot;input-tensor-shape&quot;</span>, <a class="code" href="struct_program_options.xhtml#a16963a1c56b9300c949247c0cefe65ab">m_CxxResult</a>), <span class="stringliteral">&quot;:&quot;</span>);</div><div class="line"><a name="l00406"></a><span class="lineno">  406</span>&#160;</div><div class="line"><a name="l00407"></a><span class="lineno">  407</span>&#160;    <span class="keywordflow">if</span> (!inputTensorShapesVector.empty())</div><div class="line"><a name="l00408"></a><span class="lineno">  408</span>&#160;    {</div><div class="line"><a name="l00409"></a><span class="lineno">  409</span>&#160;        <a class="code" href="struct_program_options.xhtml#a85f77fe8adc087571402b9e204ad77dd">m_ExNetParams</a>.<a class="code" href="struct_execute_network_params.xhtml#a091cda9098c6f03f91f477a22327892d">m_InputTensorShapes</a>.reserve(inputTensorShapesVector.size());</div><div class="line"><a name="l00410"></a><span class="lineno">  410</span>&#160;</div><div class="line"><a name="l00411"></a><span class="lineno">  411</span>&#160;        <span class="keywordflow">for</span>(<span class="keyword">const</span> std::string&amp; shape : inputTensorShapesVector)</div><div class="line"><a name="l00412"></a><span class="lineno">  412</span>&#160;        {</div><div class="line"><a name="l00413"></a><span class="lineno">  413</span>&#160;            std::stringstream ss(shape);</div><div class="line"><a name="l00414"></a><span class="lineno">  414</span>&#160;            std::vector&lt;unsigned int&gt; dims = <a class="code" href="_network_execution_utils_8cpp.xhtml#a7dfb0158a3b76d682b4fcfe434ad2d7a">ParseArray</a>(ss);</div><div class="line"><a name="l00415"></a><span class="lineno">  415</span>&#160;</div><div class="line"><a name="l00416"></a><span class="lineno">  416</span>&#160;            <a class="code" href="struct_program_options.xhtml#a85f77fe8adc087571402b9e204ad77dd">m_ExNetParams</a>.<a class="code" href="struct_execute_network_params.xhtml#a091cda9098c6f03f91f477a22327892d">m_InputTensorShapes</a>.push_back(</div><div class="line"><a name="l00417"></a><span class="lineno">  417</span>&#160;                    std::make_unique&lt;armnn::TensorShape&gt;(static_cast&lt;unsigned int&gt;(dims.size()), dims.data()));</div><div class="line"><a name="l00418"></a><span class="lineno">  418</span>&#160;        }</div><div class="line"><a name="l00419"></a><span class="lineno">  419</span>&#160;    }</div><div class="line"><a name="l00420"></a><span class="lineno">  420</span>&#160;</div><div class="line"><a name="l00421"></a><span class="lineno">  421</span>&#160;    <span class="comment">// We have to validate ExecuteNetworkParams first so that the tuning path and level is validated</span></div><div class="line"><a name="l00422"></a><span class="lineno">  422</span>&#160;    <a class="code" href="struct_program_options.xhtml#a2f256c5c35e40765ca21bc976230e724">ValidateExecuteNetworkParams</a>();</div><div class="line"><a name="l00423"></a><span class="lineno">  423</span>&#160;</div><div class="line"><a name="l00424"></a><span class="lineno">  424</span>&#160;    <span class="comment">// Parse CL tuning parameters to runtime options</span></div><div class="line"><a name="l00425"></a><span class="lineno">  425</span>&#160;    <span class="keywordflow">if</span> (!<a class="code" href="struct_program_options.xhtml#a85f77fe8adc087571402b9e204ad77dd">m_ExNetParams</a>.<a class="code" href="struct_execute_network_params.xhtml#aaa966b4792eae29d659a78cd6faf1a68">m_TuningPath</a>.empty())</div><div class="line"><a name="l00426"></a><span class="lineno">  426</span>&#160;    {</div><div class="line"><a name="l00427"></a><span class="lineno">  427</span>&#160;        <a class="code" href="struct_program_options.xhtml#a521b82f1467d6ede7a11db36f4d0823d">m_RuntimeOptions</a>.<a class="code" href="structarmnn_1_1_i_runtime_1_1_creation_options.xhtml#aecebc69597fe0d38a3964031c6eeb0a8">m_BackendOptions</a>.emplace_back(</div><div class="line"><a name="l00428"></a><span class="lineno">  428</span>&#160;            <a class="code" href="structarmnn_1_1_backend_options.xhtml">armnn::BackendOptions</a></div><div class="line"><a name="l00429"></a><span class="lineno">  429</span>&#160;            {</div><div class="line"><a name="l00430"></a><span class="lineno">  430</span>&#160;                <span class="stringliteral">&quot;GpuAcc&quot;</span>,</div><div class="line"><a name="l00431"></a><span class="lineno">  431</span>&#160;                {</div><div class="line"><a name="l00432"></a><span class="lineno">  432</span>&#160;                    {<span class="stringliteral">&quot;TuningLevel&quot;</span>, <a class="code" href="struct_program_options.xhtml#a85f77fe8adc087571402b9e204ad77dd">m_ExNetParams</a>.<a class="code" href="struct_execute_network_params.xhtml#ad14d073dddd554025957ef73ac183649">m_TuningLevel</a>},</div><div class="line"><a name="l00433"></a><span class="lineno">  433</span>&#160;                    {<span class="stringliteral">&quot;TuningFile&quot;</span>, <a class="code" href="struct_program_options.xhtml#a85f77fe8adc087571402b9e204ad77dd">m_ExNetParams</a>.<a class="code" href="struct_execute_network_params.xhtml#aaa966b4792eae29d659a78cd6faf1a68">m_TuningPath</a>.c_str()},</div><div class="line"><a name="l00434"></a><span class="lineno">  434</span>&#160;                    {<span class="stringliteral">&quot;KernelProfilingEnabled&quot;</span>, <a class="code" href="struct_program_options.xhtml#a85f77fe8adc087571402b9e204ad77dd">m_ExNetParams</a>.<a class="code" href="struct_execute_network_params.xhtml#a26d42007440bb01a1a6d0ab3b5a657ee">m_EnableProfiling</a>},</div><div class="line"><a name="l00435"></a><span class="lineno">  435</span>&#160;                    {<span class="stringliteral">&quot;MLGOTuningFilePath&quot;</span>, <a class="code" href="struct_program_options.xhtml#a85f77fe8adc087571402b9e204ad77dd">m_ExNetParams</a>.<a class="code" href="struct_execute_network_params.xhtml#ac609a217f4de4c647422dbb358a5f2ef">m_MLGOTuningFilePath</a>}</div><div class="line"><a name="l00436"></a><span class="lineno">  436</span>&#160;                }</div><div class="line"><a name="l00437"></a><span class="lineno">  437</span>&#160;            }</div><div class="line"><a name="l00438"></a><span class="lineno">  438</span>&#160;        );</div><div class="line"><a name="l00439"></a><span class="lineno">  439</span>&#160;    }</div><div class="line"><a name="l00440"></a><span class="lineno">  440</span>&#160;</div><div class="line"><a name="l00441"></a><span class="lineno">  441</span>&#160;    <a class="code" href="struct_program_options.xhtml#ab6758e6a48ebf606c8f6f4c43b7c9633">ValidateRuntimeOptions</a>();</div><div class="line"><a name="l00442"></a><span class="lineno">  442</span>&#160;}</div><div class="line"><a name="l00443"></a><span class="lineno">  443</span>&#160;</div><div class="ttc" id="struct_program_options_xhtml_a85f77fe8adc087571402b9e204ad77dd"><div class="ttname"><a href="struct_program_options.xhtml#a85f77fe8adc087571402b9e204ad77dd">ProgramOptions::m_ExNetParams</a></div><div class="ttdeci">ExecuteNetworkParams m_ExNetParams</div><div class="ttdef"><b>Definition:</b> <a href="_execute_network_program_options_8hpp_source.xhtml#l00044">ExecuteNetworkProgramOptions.hpp:44</a></div></div>
<div class="ttc" id="struct_execute_network_params_xhtml_acc7592cbdfe2e70cbc3794fb1e7eaeb9"><div class="ttname"><a href="struct_execute_network_params.xhtml#acc7592cbdfe2e70cbc3794fb1e7eaeb9">ExecuteNetworkParams::m_InputTypes</a></div><div class="ttdeci">std::vector&lt; std::string &gt; m_InputTypes</div><div class="ttdef"><b>Definition:</b> <a href="_execute_network_params_8hpp_source.xhtml#l00032">ExecuteNetworkParams.hpp:32</a></div></div>
<div class="ttc" id="struct_execute_network_params_xhtml_a4fa312cf0d60fbd3988a7c76ab8e2980"><div class="ttname"><a href="struct_execute_network_params.xhtml#a4fa312cf0d60fbd3988a7c76ab8e2980">ExecuteNetworkParams::m_ModelPath</a></div><div class="ttdeci">std::string m_ModelPath</div><div class="ttdef"><b>Definition:</b> <a href="_execute_network_params_8hpp_source.xhtml#l00036">ExecuteNetworkParams.hpp:36</a></div></div>
<div class="ttc" id="struct_program_options_xhtml_a527ff87c89c802951159885523c5e037"><div class="ttname"><a href="struct_program_options.xhtml#a527ff87c89c802951159885523c5e037">ProgramOptions::m_CxxOptions</a></div><div class="ttdeci">cxxopts::Options m_CxxOptions</div><div class="ttdef"><b>Definition:</b> <a href="_execute_network_program_options_8hpp_source.xhtml#l00041">ExecuteNetworkProgramOptions.hpp:41</a></div></div>
<div class="ttc" id="struct_execute_network_params_xhtml_a85929a48c5e7b16af8f5bc637e45a37f"><div class="ttname"><a href="struct_execute_network_params.xhtml#a85929a48c5e7b16af8f5bc637e45a37f">ExecuteNetworkParams::m_DequantizeOutput</a></div><div class="ttdeci">bool m_DequantizeOutput</div><div class="ttdef"><b>Definition:</b> <a href="_execute_network_params_8hpp_source.xhtml#l00019">ExecuteNetworkParams.hpp:19</a></div></div>
<div class="ttc" id="struct_program_options_xhtml_a2f256c5c35e40765ca21bc976230e724"><div class="ttname"><a href="struct_program_options.xhtml#a2f256c5c35e40765ca21bc976230e724">ProgramOptions::ValidateExecuteNetworkParams</a></div><div class="ttdeci">void ValidateExecuteNetworkParams()</div><div class="ttdoc">Ensures that the parameters for ExecuteNetwork fit together. </div><div class="ttdef"><b>Definition:</b> <a href="_execute_network_program_options_8cpp_source.xhtml#l00135">ExecuteNetworkProgramOptions.cpp:135</a></div></div>
<div class="ttc" id="struct_execute_network_params_xhtml_ac609a217f4de4c647422dbb358a5f2ef"><div class="ttname"><a href="struct_execute_network_params.xhtml#ac609a217f4de4c647422dbb358a5f2ef">ExecuteNetworkParams::m_MLGOTuningFilePath</a></div><div class="ttdeci">std::string m_MLGOTuningFilePath</div><div class="ttdef"><b>Definition:</b> <a href="_execute_network_params_8hpp_source.xhtml#l00049">ExecuteNetworkParams.hpp:49</a></div></div>
<div class="ttc" id="_execute_network_program_options_8cpp_xhtml_a4569feeee2fd322e2af478e2d77a531c"><div class="ttname"><a href="_execute_network_program_options_8cpp.xhtml#a4569feeee2fd322e2af478e2d77a531c">GetOptionValue</a></div><div class="ttdeci">optionType GetOptionValue(std::string &amp;&amp;optionName, const cxxopts::ParseResult &amp;result)</div><div class="ttdoc">Provides a segfault safe way to get cxxopts option values by checking if the option was defined...</div><div class="ttdef"><b>Definition:</b> <a href="_execute_network_program_options_8cpp_source.xhtml#l00095">ExecuteNetworkProgramOptions.cpp:95</a></div></div>
<div class="ttc" id="structarmnn_1_1_i_runtime_1_1_creation_options_1_1_external_profiling_options_xhtml_aa0d6aa79d683bc79d20d4ddcf7db87db"><div class="ttname"><a href="structarmnn_1_1_i_runtime_1_1_creation_options_1_1_external_profiling_options.xhtml#aa0d6aa79d683bc79d20d4ddcf7db87db">armnn::IRuntime::CreationOptions::ExternalProfilingOptions::m_OutgoingCaptureFile</a></div><div class="ttdeci">std::string m_OutgoingCaptureFile</div><div class="ttdef"><b>Definition:</b> <a href="_i_runtime_8hpp_source.xhtml#l00077">IRuntime.hpp:77</a></div></div>
<div class="ttc" id="struct_execute_network_params_xhtml_a091cda9098c6f03f91f477a22327892d"><div class="ttname"><a href="struct_execute_network_params.xhtml#a091cda9098c6f03f91f477a22327892d">ExecuteNetworkParams::m_InputTensorShapes</a></div><div class="ttdeci">std::vector&lt; TensorShapePtr &gt; m_InputTensorShapes</div><div class="ttdef"><b>Definition:</b> <a href="_execute_network_params_8hpp_source.xhtml#l00031">ExecuteNetworkParams.hpp:31</a></div></div>
<div class="ttc" id="_network_execution_utils_8cpp_xhtml_a7dfb0158a3b76d682b4fcfe434ad2d7a"><div class="ttname"><a href="_network_execution_utils_8cpp.xhtml#a7dfb0158a3b76d682b4fcfe434ad2d7a">ParseArray</a></div><div class="ttdeci">std::vector&lt; unsigned int &gt; ParseArray(std::istream &amp;stream)</div><div class="ttdef"><b>Definition:</b> <a href="_network_execution_utils_8cpp_source.xhtml#l00077">NetworkExecutionUtils.cpp:77</a></div></div>
<div class="ttc" id="_execute_network_program_options_8cpp_xhtml_a439bab01676c4e394cd1d6f38721a886"><div class="ttname"><a href="_execute_network_program_options_8cpp.xhtml#a439bab01676c4e394cd1d6f38721a886">RemoveDuplicateDevices</a></div><div class="ttdeci">void RemoveDuplicateDevices(std::vector&lt; armnn::BackendId &gt; &amp;computeDevices)</div><div class="ttdef"><b>Definition:</b> <a href="_execute_network_program_options_8cpp_source.xhtml#l00059">ExecuteNetworkProgramOptions.cpp:59</a></div></div>
<div class="ttc" id="struct_execute_network_params_xhtml_a513151623e8d448951a0b94ad1946fbe"><div class="ttname"><a href="struct_execute_network_params.xhtml#a513151623e8d448951a0b94ad1946fbe">ExecuteNetworkParams::m_EnableFp16TurboMode</a></div><div class="ttdeci">bool m_EnableFp16TurboMode</div><div class="ttdef"><b>Definition:</b> <a href="_execute_network_params_8hpp_source.xhtml#l00023">ExecuteNetworkParams.hpp:23</a></div></div>
<div class="ttc" id="_network_execution_utils_8cpp_xhtml_a1842dfaf4b24f36146a0cf6731ed75b7"><div class="ttname"><a href="_network_execution_utils_8cpp.xhtml#a1842dfaf4b24f36146a0cf6731ed75b7">ParseStringList</a></div><div class="ttdeci">std::vector&lt; std::string &gt; ParseStringList(const std::string &amp;inputString, const char *delimiter)</div><div class="ttdoc">Splits a given string at every accurance of delimiter into a vector of string. </div><div class="ttdef"><b>Definition:</b> <a href="_network_execution_utils_8cpp_source.xhtml#l00084">NetworkExecutionUtils.cpp:84</a></div></div>
<div class="ttc" id="struct_execute_network_params_xhtml_ae43cf4b5df0068ee6a9151c98947248b"><div class="ttname"><a href="struct_execute_network_params.xhtml#ae43cf4b5df0068ee6a9151c98947248b">ExecuteNetworkParams::m_DynamicBackendsPath</a></div><div class="ttdeci">std::string m_DynamicBackendsPath</div><div class="ttdef"><b>Definition:</b> <a href="_execute_network_params_8hpp_source.xhtml#l00020">ExecuteNetworkParams.hpp:20</a></div></div>
<div class="ttc" id="struct_program_options_xhtml_a521b82f1467d6ede7a11db36f4d0823d"><div class="ttname"><a href="struct_program_options.xhtml#a521b82f1467d6ede7a11db36f4d0823d">ProgramOptions::m_RuntimeOptions</a></div><div class="ttdeci">armnn::IRuntime::CreationOptions m_RuntimeOptions</div><div class="ttdef"><b>Definition:</b> <a href="_execute_network_program_options_8hpp_source.xhtml#l00045">ExecuteNetworkProgramOptions.hpp:45</a></div></div>
<div class="ttc" id="_logging_8hpp_xhtml_a7b6ad073975f437ec38ca7d20154727f"><div class="ttname"><a href="_logging_8hpp.xhtml#a7b6ad073975f437ec38ca7d20154727f">ARMNN_LOG</a></div><div class="ttdeci">#define ARMNN_LOG(severity)</div><div class="ttdef"><b>Definition:</b> <a href="_logging_8hpp_source.xhtml#l00202">Logging.hpp:202</a></div></div>
<div class="ttc" id="namespacearmnn_xhtml_ac2807505b850738bc8a1991ce669dd47"><div class="ttname"><a href="namespacearmnn.xhtml#ac2807505b850738bc8a1991ce669dd47">armnn::BackendRegistryInstance</a></div><div class="ttdeci">BackendRegistry &amp; BackendRegistryInstance()</div><div class="ttdef"><b>Definition:</b> <a href="_backend_registry_8cpp_source.xhtml#l00013">BackendRegistry.cpp:13</a></div></div>
<div class="ttc" id="struct_execute_network_params_xhtml_a5acc5b4076604db15ee13ee19fa623c4"><div class="ttname"><a href="struct_execute_network_params.xhtml#a5acc5b4076604db15ee13ee19fa623c4">ExecuteNetworkParams::m_PrintIntermediate</a></div><div class="ttdeci">bool m_PrintIntermediate</div><div class="ttdef"><b>Definition:</b> <a href="_execute_network_params_8hpp_source.xhtml#l00042">ExecuteNetworkParams.hpp:42</a></div></div>
<div class="ttc" id="struct_execute_network_params_xhtml_a982d4141ecde3eb220a136610d853df2"><div class="ttname"><a href="struct_execute_network_params.xhtml#a982d4141ecde3eb220a136610d853df2">ExecuteNetworkParams::m_OutputNames</a></div><div class="ttdeci">std::vector&lt; std::string &gt; m_OutputNames</div><div class="ttdef"><b>Definition:</b> <a href="_execute_network_params_8hpp_source.xhtml#l00038">ExecuteNetworkParams.hpp:38</a></div></div>
<div class="ttc" id="struct_execute_network_params_xhtml_a5c7f0c083da98e7b6e9ba79d2fcd985d"><div class="ttname"><a href="struct_execute_network_params.xhtml#a5c7f0c083da98e7b6e9ba79d2fcd985d">ExecuteNetworkParams::m_ParseUnsupported</a></div><div class="ttdeci">bool m_ParseUnsupported</div><div class="ttdef"><b>Definition:</b> <a href="_execute_network_params_8hpp_source.xhtml#l00041">ExecuteNetworkParams.hpp:41</a></div></div>
<div class="ttc" id="classarmnn_1_1_backend_registry_xhtml_ae1de2f7ca1db17f45f97155e239b8b45"><div class="ttname"><a href="classarmnn_1_1_backend_registry.xhtml#ae1de2f7ca1db17f45f97155e239b8b45">armnn::BackendRegistry::GetBackendIdsAsString</a></div><div class="ttdeci">std::string GetBackendIdsAsString() const</div><div class="ttdef"><b>Definition:</b> <a href="_backend_registry_8cpp_source.xhtml#l00082">BackendRegistry.cpp:82</a></div></div>
<div class="ttc" id="structarmnn_1_1_i_runtime_1_1_creation_options_1_1_external_profiling_options_xhtml_a36dd18e4f73d470e3234d72198aa5fef"><div class="ttname"><a href="structarmnn_1_1_i_runtime_1_1_creation_options_1_1_external_profiling_options.xhtml#a36dd18e4f73d470e3234d72198aa5fef">armnn::IRuntime::CreationOptions::ExternalProfilingOptions::m_IncomingCaptureFile</a></div><div class="ttdeci">std::string m_IncomingCaptureFile</div><div class="ttdef"><b>Definition:</b> <a href="_i_runtime_8hpp_source.xhtml#l00078">IRuntime.hpp:78</a></div></div>
<div class="ttc" id="struct_execute_network_params_xhtml_a74d346297c55b516908c541030adc88d"><div class="ttname"><a href="struct_execute_network_params.xhtml#a74d346297c55b516908c541030adc88d">ExecuteNetworkParams::m_OutputTensorFiles</a></div><div class="ttdeci">std::vector&lt; std::string &gt; m_OutputTensorFiles</div><div class="ttdef"><b>Definition:</b> <a href="_execute_network_params_8hpp_source.xhtml#l00039">ExecuteNetworkParams.hpp:39</a></div></div>
<div class="ttc" id="structarmnn_1_1_i_runtime_1_1_creation_options_1_1_external_profiling_options_xhtml_a26d42007440bb01a1a6d0ab3b5a657ee"><div class="ttname"><a href="structarmnn_1_1_i_runtime_1_1_creation_options_1_1_external_profiling_options.xhtml#a26d42007440bb01a1a6d0ab3b5a657ee">armnn::IRuntime::CreationOptions::ExternalProfilingOptions::m_EnableProfiling</a></div><div class="ttdeci">bool m_EnableProfiling</div><div class="ttdef"><b>Definition:</b> <a href="_i_runtime_8hpp_source.xhtml#l00075">IRuntime.hpp:75</a></div></div>
<div class="ttc" id="structarmnn_1_1_i_runtime_1_1_creation_options_1_1_external_profiling_options_xhtml_ad8f8cb971cad412664cd7df58df7eb1e"><div class="ttname"><a href="structarmnn_1_1_i_runtime_1_1_creation_options_1_1_external_profiling_options.xhtml#ad8f8cb971cad412664cd7df58df7eb1e">armnn::IRuntime::CreationOptions::ExternalProfilingOptions::m_FileOnly</a></div><div class="ttdeci">bool m_FileOnly</div><div class="ttdef"><b>Definition:</b> <a href="_i_runtime_8hpp_source.xhtml#l00079">IRuntime.hpp:79</a></div></div>
<div class="ttc" id="struct_execute_network_params_xhtml_a9a04b8c7f19a84f63125edec509b6d53"><div class="ttname"><a href="struct_execute_network_params.xhtml#a9a04b8c7f19a84f63125edec509b6d53">ExecuteNetworkParams::m_SaveCachedNetwork</a></div><div class="ttdeci">bool m_SaveCachedNetwork</div><div class="ttdef"><b>Definition:</b> <a href="_execute_network_params_8hpp_source.xhtml#l00044">ExecuteNetworkParams.hpp:44</a></div></div>
<div class="ttc" id="_backend_registry_8hpp_xhtml"><div class="ttname"><a href="_backend_registry_8hpp.xhtml">BackendRegistry.hpp</a></div></div>
<div class="ttc" id="struct_execute_network_params_xhtml_a9f8881646a38f828f92d3354930c4165"><div class="ttname"><a href="struct_execute_network_params.xhtml#a9f8881646a38f828f92d3354930c4165">ExecuteNetworkParams::m_CachedNetworkFilePath</a></div><div class="ttdeci">std::string m_CachedNetworkFilePath</div><div class="ttdef"><b>Definition:</b> <a href="_execute_network_params_8hpp_source.xhtml#l00017">ExecuteNetworkParams.hpp:17</a></div></div>
<div class="ttc" id="struct_execute_network_params_xhtml_a2d4582aa74998c397bd064ae73745b62"><div class="ttname"><a href="struct_execute_network_params.xhtml#a2d4582aa74998c397bd064ae73745b62">ExecuteNetworkParams::m_SubgraphId</a></div><div class="ttdeci">size_t m_SubgraphId</div><div class="ttdef"><b>Definition:</b> <a href="_execute_network_params_8hpp_source.xhtml#l00045">ExecuteNetworkParams.hpp:45</a></div></div>
<div class="ttc" id="_execute_network_program_options_8cpp_xhtml_a92f95e137ba2edcad2985993626afe4d"><div class="ttname"><a href="_execute_network_program_options_8cpp.xhtml#a92f95e137ba2edcad2985993626afe4d">CheckOption</a></div><div class="ttdeci">bool CheckOption(const cxxopts::ParseResult &amp;result, const char *option)</div><div class="ttdef"><b>Definition:</b> <a href="_execute_network_program_options_8cpp_source.xhtml#l00018">ExecuteNetworkProgramOptions.cpp:18</a></div></div>
<div class="ttc" id="struct_execute_network_params_xhtml_a2d54e6252c1c9a0e29f7706ba03b2b74"><div class="ttname"><a href="struct_execute_network_params.xhtml#a2d54e6252c1c9a0e29f7706ba03b2b74">ExecuteNetworkParams::m_ComputeDevices</a></div><div class="ttdeci">std::vector&lt; armnn::BackendId &gt; m_ComputeDevices</div><div class="ttdef"><b>Definition:</b> <a href="_execute_network_params_8hpp_source.xhtml#l00018">ExecuteNetworkParams.hpp:18</a></div></div>
<div class="ttc" id="struct_execute_network_params_xhtml_a810addfa426b5ac1476035dedee7cda5"><div class="ttname"><a href="struct_execute_network_params.xhtml#a810addfa426b5ac1476035dedee7cda5">ExecuteNetworkParams::m_OutputTypes</a></div><div class="ttdeci">std::vector&lt; std::string &gt; m_OutputTypes</div><div class="ttdef"><b>Definition:</b> <a href="_execute_network_params_8hpp_source.xhtml#l00040">ExecuteNetworkParams.hpp:40</a></div></div>
<div class="ttc" id="namespacearmnn_1_1string_utils_xhtml_ac5da14c1462870eef77ca8ac4bb5afe5"><div class="ttname"><a href="namespacearmnn_1_1string_utils.xhtml#ac5da14c1462870eef77ca8ac4bb5afe5">armnn::stringUtils::StringTrimCopy</a></div><div class="ttdeci">std::string StringTrimCopy(const std::string &amp;str, const std::string &amp;chars=&quot;\\\&quot;)</div><div class="ttdoc">Trim from both the start and the end of a string, returns a trimmed copy of the string. </div><div class="ttdef"><b>Definition:</b> <a href="_string_utils_8hpp_source.xhtml#l00085">StringUtils.hpp:85</a></div></div>
<div class="ttc" id="structarmnn_1_1_i_runtime_1_1_creation_options_xhtml_aecebc69597fe0d38a3964031c6eeb0a8"><div class="ttname"><a href="structarmnn_1_1_i_runtime_1_1_creation_options.xhtml#aecebc69597fe0d38a3964031c6eeb0a8">armnn::IRuntime::CreationOptions::m_BackendOptions</a></div><div class="ttdeci">std::vector&lt; BackendOptions &gt; m_BackendOptions</div><div class="ttdoc">Pass backend specific options. </div><div class="ttdef"><b>Definition:</b> <a href="_i_runtime_8hpp_source.xhtml#l00116">IRuntime.hpp:116</a></div></div>
<div class="ttc" id="struct_program_options_xhtml_a263a38a1c179c73585830a0b0c1b100c"><div class="ttname"><a href="struct_program_options.xhtml#a263a38a1c179c73585830a0b0c1b100c">ProgramOptions::ProgramOptions</a></div><div class="ttdeci">ProgramOptions()</div><div class="ttdoc">Initializes ProgramOptions by adding options to the underlying cxxopts::options object. </div><div class="ttdef"><b>Definition:</b> <a href="_execute_network_program_options_8cpp_source.xhtml#l00150">ExecuteNetworkProgramOptions.cpp:150</a></div></div>
<div class="ttc" id="struct_execute_network_params_xhtml_aaa966b4792eae29d659a78cd6faf1a68"><div class="ttname"><a href="struct_execute_network_params.xhtml#aaa966b4792eae29d659a78cd6faf1a68">ExecuteNetworkParams::m_TuningPath</a></div><div class="ttdeci">std::string m_TuningPath</div><div class="ttdef"><b>Definition:</b> <a href="_execute_network_params_8hpp_source.xhtml#l00048">ExecuteNetworkParams.hpp:48</a></div></div>
<div class="ttc" id="struct_execute_network_params_xhtml_a6e4eff6a5f40cb026ea76d3c13c96341"><div class="ttname"><a href="struct_execute_network_params.xhtml#a6e4eff6a5f40cb026ea76d3c13c96341">ExecuteNetworkParams::m_Iterations</a></div><div class="ttdeci">size_t m_Iterations</div><div class="ttdef"><b>Definition:</b> <a href="_execute_network_params_8hpp_source.xhtml#l00034">ExecuteNetworkParams.hpp:34</a></div></div>
<div class="ttc" id="_execute_network_program_options_8hpp_xhtml"><div class="ttname"><a href="_execute_network_program_options_8hpp.xhtml">ExecuteNetworkProgramOptions.hpp</a></div></div>
<div class="ttc" id="struct_execute_network_params_xhtml_a99c7360a4d4b248b3f10607bc5d2fe7b"><div class="ttname"><a href="struct_execute_network_params.xhtml#a99c7360a4d4b248b3f10607bc5d2fe7b">ExecuteNetworkParams::m_GenerateTensorData</a></div><div class="ttdeci">bool m_GenerateTensorData</div><div class="ttdef"><b>Definition:</b> <a href="_execute_network_params_8hpp_source.xhtml#l00026">ExecuteNetworkParams.hpp:26</a></div></div>
<div class="ttc" id="_assert_8hpp_xhtml_a91c4dfde57907d7698c7531785690a7f"><div class="ttname"><a href="_assert_8hpp.xhtml#a91c4dfde57907d7698c7531785690a7f">ARMNN_ASSERT_MSG</a></div><div class="ttdeci">#define ARMNN_ASSERT_MSG(COND, MSG)</div><div class="ttdef"><b>Definition:</b> <a href="_assert_8hpp_source.xhtml#l00015">Assert.hpp:15</a></div></div>
<div class="ttc" id="struct_execute_network_params_xhtml_a96a7042f9c83beec8e30088f3d85ed9c"><div class="ttname"><a href="struct_execute_network_params.xhtml#a96a7042f9c83beec8e30088f3d85ed9c">ExecuteNetworkParams::ValidateParams</a></div><div class="ttdeci">void ValidateParams()</div><div class="ttdef"><b>Definition:</b> <a href="_execute_network_params_8cpp_source.xhtml#l00127">ExecuteNetworkParams.cpp:127</a></div></div>
<div class="ttc" id="struct_execute_network_params_xhtml_adc650e032e7fce99f15e2bf903e7167b"><div class="ttname"><a href="struct_execute_network_params.xhtml#adc650e032e7fce99f15e2bf903e7167b">ExecuteNetworkParams::m_NumberOfThreads</a></div><div class="ttdeci">unsigned int m_NumberOfThreads</div><div class="ttdef"><b>Definition:</b> <a href="_execute_network_params_8hpp_source.xhtml#l00037">ExecuteNetworkParams.hpp:37</a></div></div>
<div class="ttc" id="_execute_network_program_options_8cpp_xhtml_ae6dc4c83daaf027ae1e1948bac9d7f54"><div class="ttname"><a href="_execute_network_program_options_8cpp.xhtml#ae6dc4c83daaf027ae1e1948bac9d7f54">GetBackendIDs</a></div><div class="ttdeci">std::vector&lt; armnn::BackendId &gt; GetBackendIDs(const std::vector&lt; std::string &gt; &amp;backendStrings)</div><div class="ttdoc">Takes a vector of backend strings and returns a vector of backendIDs. Removes duplicate entries...</div><div class="ttdef"><b>Definition:</b> <a href="_execute_network_program_options_8cpp_source.xhtml#l00079">ExecuteNetworkProgramOptions.cpp:79</a></div></div>
<div class="ttc" id="struct_execute_network_params_xhtml_a318999172ae5197f56326b12d29104b7"><div class="ttname"><a href="struct_execute_network_params.xhtml#a318999172ae5197f56326b12d29104b7">ExecuteNetworkParams::m_ThresholdTime</a></div><div class="ttdeci">double m_ThresholdTime</div><div class="ttdef"><b>Definition:</b> <a href="_execute_network_params_8hpp_source.xhtml#l00046">ExecuteNetworkParams.hpp:46</a></div></div>
<div class="ttc" id="namespacearmnn_xhtml_ae2f04a162585c0a5222a537efd5456aeaec0fc0100c4fc1ce4eea230c3dc10360"><div class="ttname"><a href="namespacearmnn.xhtml#ae2f04a162585c0a5222a537efd5456aeaec0fc0100c4fc1ce4eea230c3dc10360">armnn::Compute::Undefined</a></div></div>
<div class="ttc" id="struct_execute_network_params_xhtml_aaf3c7f286030842a31025309ab6a8329"><div class="ttname"><a href="struct_execute_network_params.xhtml#aaf3c7f286030842a31025309ab6a8329">ExecuteNetworkParams::m_InputNames</a></div><div class="ttdeci">std::vector&lt; std::string &gt; m_InputNames</div><div class="ttdef"><b>Definition:</b> <a href="_execute_network_params_8hpp_source.xhtml#l00029">ExecuteNetworkParams.hpp:29</a></div></div>
<div class="ttc" id="_inference_test_8hpp_xhtml"><div class="ttname"><a href="_inference_test_8hpp.xhtml">InferenceTest.hpp</a></div></div>
<div class="ttc" id="classarmnn_1_1_invalid_argument_exception_xhtml"><div class="ttname"><a href="classarmnn_1_1_invalid_argument_exception.xhtml">armnn::InvalidArgumentException</a></div><div class="ttdef"><b>Definition:</b> <a href="_exceptions_8hpp_source.xhtml#l00080">Exceptions.hpp:80</a></div></div>
<div class="ttc" id="struct_execute_network_params_xhtml_a66f9597b152215daba3211379dad63d3"><div class="ttname"><a href="struct_execute_network_params.xhtml#a66f9597b152215daba3211379dad63d3">ExecuteNetworkParams::m_EnableFastMath</a></div><div class="ttdeci">bool m_EnableFastMath</div><div class="ttdef"><b>Definition:</b> <a href="_execute_network_params_8hpp_source.xhtml#l00022">ExecuteNetworkParams.hpp:22</a></div></div>
<div class="ttc" id="struct_execute_network_params_xhtml_a0b99050baebe1d169392461b3a9be08d"><div class="ttname"><a href="struct_execute_network_params.xhtml#a0b99050baebe1d169392461b3a9be08d">ExecuteNetworkParams::m_EnableBf16TurboMode</a></div><div class="ttdeci">bool m_EnableBf16TurboMode</div><div class="ttdef"><b>Definition:</b> <a href="_execute_network_params_8hpp_source.xhtml#l00021">ExecuteNetworkParams.hpp:21</a></div></div>
<div class="ttc" id="struct_execute_network_params_xhtml_ae3c3ae097395afea488cd3e0244269fa"><div class="ttname"><a href="struct_execute_network_params.xhtml#ae3c3ae097395afea488cd3e0244269fa">ExecuteNetworkParams::m_InputTensorDataFilePaths</a></div><div class="ttdeci">std::vector&lt; std::string &gt; m_InputTensorDataFilePaths</div><div class="ttdef"><b>Definition:</b> <a href="_execute_network_params_8hpp_source.xhtml#l00030">ExecuteNetworkParams.hpp:30</a></div></div>
<div class="ttc" id="_logging_8hpp_xhtml"><div class="ttname"><a href="_logging_8hpp.xhtml">Logging.hpp</a></div></div>
<div class="ttc" id="struct_program_options_xhtml_a59cc301c978c454abd5ce1851a63e59e"><div class="ttname"><a href="struct_program_options.xhtml#a59cc301c978c454abd5ce1851a63e59e">ProgramOptions::ParseOptions</a></div><div class="ttdeci">void ParseOptions(int ac, const char *av[])</div><div class="ttdoc">Parses program options from the command line or another source and stores the values in member variab...</div><div class="ttdef"><b>Definition:</b> <a href="_execute_network_program_options_8cpp_source.xhtml#l00368">ExecuteNetworkProgramOptions.cpp:368</a></div></div>
<div class="ttc" id="structarmnn_1_1_backend_options_xhtml"><div class="ttname"><a href="structarmnn_1_1_backend_options.xhtml">armnn::BackendOptions</a></div><div class="ttdoc">Struct for the users to pass backend specific options. </div><div class="ttdef"><b>Definition:</b> <a href="_backend_options_8hpp_source.xhtml#l00020">BackendOptions.hpp:20</a></div></div>
<div class="ttc" id="_execute_network_program_options_8cpp_xhtml_abc97e814c5611819237a071ef184ac80"><div class="ttname"><a href="_execute_network_program_options_8cpp.xhtml#abc97e814c5611819237a071ef184ac80">LogAndThrowFatal</a></div><div class="ttdeci">void LogAndThrowFatal(std::string errorMessage)</div><div class="ttdef"><b>Definition:</b> <a href="_execute_network_program_options_8cpp_source.xhtml#l00105">ExecuteNetworkProgramOptions.cpp:105</a></div></div>
<div class="ttc" id="structarmnn_1_1_i_runtime_1_1_creation_options_xhtml_ae43cf4b5df0068ee6a9151c98947248b"><div class="ttname"><a href="structarmnn_1_1_i_runtime_1_1_creation_options.xhtml#ae43cf4b5df0068ee6a9151c98947248b">armnn::IRuntime::CreationOptions::m_DynamicBackendsPath</a></div><div class="ttdeci">std::string m_DynamicBackendsPath</div><div class="ttdoc">Setting this value will override the paths set by the DYNAMIC_BACKEND_PATHS compiler directive Only a...</div><div class="ttdef"><b>Definition:</b> <a href="_i_runtime_8hpp_source.xhtml#l00060">IRuntime.hpp:60</a></div></div>
<div class="ttc" id="struct_program_options_xhtml"><div class="ttname"><a href="struct_program_options.xhtml">ProgramOptions</a></div><div class="ttdoc">Holds and parses program options for the ExecuteNetwork application. </div><div class="ttdef"><b>Definition:</b> <a href="_execute_network_program_options_8hpp_source.xhtml#l00021">ExecuteNetworkProgramOptions.hpp:21</a></div></div>
<div class="ttc" id="_assert_8hpp_xhtml"><div class="ttname"><a href="_assert_8hpp.xhtml">Assert.hpp</a></div></div>
<div class="ttc" id="_execute_network_program_options_8cpp_xhtml_aae003ac0bcd37e3d9d7b4998e4faff5d"><div class="ttname"><a href="_execute_network_program_options_8cpp.xhtml#aae003ac0bcd37e3d9d7b4998e4faff5d">CheckOptionDependency</a></div><div class="ttdeci">void CheckOptionDependency(const cxxopts::ParseResult &amp;result, const char *option, const char *required)</div><div class="ttdef"><b>Definition:</b> <a href="_execute_network_program_options_8cpp_source.xhtml#l00031">ExecuteNetworkProgramOptions.cpp:31</a></div></div>
<div class="ttc" id="struct_execute_network_params_xhtml_a7efc68309e76bfefbfa16fe94501b060"><div class="ttname"><a href="struct_execute_network_params.xhtml#a7efc68309e76bfefbfa16fe94501b060">ExecuteNetworkParams::m_EnableLayerDetails</a></div><div class="ttdeci">bool m_EnableLayerDetails</div><div class="ttdef"><b>Definition:</b> <a href="_execute_network_params_8hpp_source.xhtml#l00024">ExecuteNetworkParams.hpp:24</a></div></div>
<div class="ttc" id="_exceptions_8hpp_xhtml"><div class="ttname"><a href="_exceptions_8hpp.xhtml">Exceptions.hpp</a></div></div>
<div class="ttc" id="struct_program_options_xhtml_ab6758e6a48ebf606c8f6f4c43b7c9633"><div class="ttname"><a href="struct_program_options.xhtml#ab6758e6a48ebf606c8f6f4c43b7c9633">ProgramOptions::ValidateRuntimeOptions</a></div><div class="ttdeci">void ValidateRuntimeOptions()</div><div class="ttdoc">Ensures that the runtime options are valid. </div><div class="ttdef"><b>Definition:</b> <a href="_execute_network_program_options_8cpp_source.xhtml#l00140">ExecuteNetworkProgramOptions.cpp:140</a></div></div>
<div class="ttc" id="structarmnn_1_1_i_runtime_1_1_creation_options_1_1_external_profiling_options_xhtml_a2239347f38747f993c324bdd8b1eb146"><div class="ttname"><a href="structarmnn_1_1_i_runtime_1_1_creation_options_1_1_external_profiling_options.xhtml#a2239347f38747f993c324bdd8b1eb146">armnn::IRuntime::CreationOptions::ExternalProfilingOptions::m_CapturePeriod</a></div><div class="ttdeci">uint32_t m_CapturePeriod</div><div class="ttdef"><b>Definition:</b> <a href="_i_runtime_8hpp_source.xhtml#l00080">IRuntime.hpp:80</a></div></div>
<div class="ttc" id="_execute_network_program_options_8cpp_xhtml_a06da09814964b4b241ca4420e98de8f3"><div class="ttname"><a href="_execute_network_program_options_8cpp.xhtml#a06da09814964b4b241ca4420e98de8f3">CheckOptionDependencies</a></div><div class="ttdeci">void CheckOptionDependencies(const cxxopts::ParseResult &amp;result)</div><div class="ttdef"><b>Definition:</b> <a href="_execute_network_program_options_8cpp_source.xhtml#l00052">ExecuteNetworkProgramOptions.cpp:52</a></div></div>
<div class="ttc" id="structarmnn_1_1_i_runtime_1_1_creation_options_1_1_external_profiling_options_xhtml_a5b304d775657afbf1fb724af57add374"><div class="ttname"><a href="structarmnn_1_1_i_runtime_1_1_creation_options_1_1_external_profiling_options.xhtml#a5b304d775657afbf1fb724af57add374">armnn::IRuntime::CreationOptions::ExternalProfilingOptions::m_TimelineEnabled</a></div><div class="ttdeci">bool m_TimelineEnabled</div><div class="ttdef"><b>Definition:</b> <a href="_i_runtime_8hpp_source.xhtml#l00076">IRuntime.hpp:76</a></div></div>
<div class="ttc" id="_string_utils_8hpp_xhtml"><div class="ttname"><a href="_string_utils_8hpp.xhtml">StringUtils.hpp</a></div></div>
<div class="ttc" id="struct_program_options_xhtml_a16963a1c56b9300c949247c0cefe65ab"><div class="ttname"><a href="struct_program_options.xhtml#a16963a1c56b9300c949247c0cefe65ab">ProgramOptions::m_CxxResult</a></div><div class="ttdeci">cxxopts::ParseResult m_CxxResult</div><div class="ttdef"><b>Definition:</b> <a href="_execute_network_program_options_8hpp_source.xhtml#l00042">ExecuteNetworkProgramOptions.hpp:42</a></div></div>
<div class="ttc" id="_execute_network_program_options_8cpp_xhtml_a8d5885121779cccab1967e42a461dd89"><div class="ttname"><a href="_execute_network_program_options_8cpp.xhtml#a8d5885121779cccab1967e42a461dd89">CheckRequiredOptions</a></div><div class="ttdeci">void CheckRequiredOptions(const cxxopts::ParseResult &amp;result)</div><div class="ttdef"><b>Definition:</b> <a href="_execute_network_program_options_8cpp_source.xhtml#l00110">ExecuteNetworkProgramOptions.cpp:110</a></div></div>
<div class="ttc" id="struct_execute_network_params_xhtml_a077f6963fc555d9d42f98cf9ed3e7e03"><div class="ttname"><a href="struct_execute_network_params.xhtml#a077f6963fc555d9d42f98cf9ed3e7e03">ExecuteNetworkParams::m_QuantizeInput</a></div><div class="ttdeci">bool m_QuantizeInput</div><div class="ttdef"><b>Definition:</b> <a href="_execute_network_params_8hpp_source.xhtml#l00043">ExecuteNetworkParams.hpp:43</a></div></div>
<div class="ttc" id="_network_execution_utils_8hpp_xhtml"><div class="ttname"><a href="_network_execution_utils_8hpp.xhtml">NetworkExecutionUtils.hpp</a></div></div>
<div class="ttc" id="structarmnn_1_1_i_runtime_1_1_creation_options_xhtml_a30412a91cadff138686eaeb12f5357cc"><div class="ttname"><a href="structarmnn_1_1_i_runtime_1_1_creation_options.xhtml#a30412a91cadff138686eaeb12f5357cc">armnn::IRuntime::CreationOptions::m_ProfilingOptions</a></div><div class="ttdeci">ExternalProfilingOptions m_ProfilingOptions</div><div class="ttdef"><b>Definition:</b> <a href="_i_runtime_8hpp_source.xhtml#l00084">IRuntime.hpp:84</a></div></div>
<div class="ttc" id="struct_execute_network_params_xhtml_ad14d073dddd554025957ef73ac183649"><div class="ttname"><a href="struct_execute_network_params.xhtml#ad14d073dddd554025957ef73ac183649">ExecuteNetworkParams::m_TuningLevel</a></div><div class="ttdeci">int m_TuningLevel</div><div class="ttdef"><b>Definition:</b> <a href="_execute_network_params_8hpp_source.xhtml#l00047">ExecuteNetworkParams.hpp:47</a></div></div>
<div class="ttc" id="struct_execute_network_params_xhtml_a2a245a63e87f363df491ad8c35be54c5"><div class="ttname"><a href="struct_execute_network_params.xhtml#a2a245a63e87f363df491ad8c35be54c5">ExecuteNetworkParams::m_InferOutputShape</a></div><div class="ttdeci">bool m_InferOutputShape</div><div class="ttdef"><b>Definition:</b> <a href="_execute_network_params_8hpp_source.xhtml#l00027">ExecuteNetworkParams.hpp:27</a></div></div>
<div class="ttc" id="struct_execute_network_params_xhtml_a86800ee44cdb3d1bfd169ec4200212d2"><div class="ttname"><a href="struct_execute_network_params.xhtml#a86800ee44cdb3d1bfd169ec4200212d2">ExecuteNetworkParams::m_ModelFormat</a></div><div class="ttdeci">std::string m_ModelFormat</div><div class="ttdef"><b>Definition:</b> <a href="_execute_network_params_8hpp_source.xhtml#l00035">ExecuteNetworkParams.hpp:35</a></div></div>
<div class="ttc" id="structarmnn_1_1_i_runtime_1_1_creation_options_1_1_external_profiling_options_xhtml_aeec9a6408083ab1b6bf7fa3e566ebe46"><div class="ttname"><a href="structarmnn_1_1_i_runtime_1_1_creation_options_1_1_external_profiling_options.xhtml#aeec9a6408083ab1b6bf7fa3e566ebe46">armnn::IRuntime::CreationOptions::ExternalProfilingOptions::m_FileFormat</a></div><div class="ttdeci">std::string m_FileFormat</div><div class="ttdef"><b>Definition:</b> <a href="_i_runtime_8hpp_source.xhtml#l00081">IRuntime.hpp:81</a></div></div>
<div class="ttc" id="struct_execute_network_params_xhtml_a26d42007440bb01a1a6d0ab3b5a657ee"><div class="ttname"><a href="struct_execute_network_params.xhtml#a26d42007440bb01a1a6d0ab3b5a657ee">ExecuteNetworkParams::m_EnableProfiling</a></div><div class="ttdeci">bool m_EnableProfiling</div><div class="ttdef"><b>Definition:</b> <a href="_execute_network_params_8hpp_source.xhtml#l00025">ExecuteNetworkParams.hpp:25</a></div></div>
<div class="ttc" id="classarmnn_1_1_backend_id_xhtml"><div class="ttname"><a href="classarmnn_1_1_backend_id.xhtml">armnn::BackendId</a></div><div class="ttdef"><b>Definition:</b> <a href="_backend_id_8hpp_source.xhtml#l00075">BackendId.hpp:75</a></div></div>
<div class="ttc" id="struct_execute_network_params_xhtml_ad9e5bfa84cf85e3ddf24ae6cb124d3d4"><div class="ttname"><a href="struct_execute_network_params.xhtml#ad9e5bfa84cf85e3ddf24ae6cb124d3d4">ExecuteNetworkParams::m_EnableDelegate</a></div><div class="ttdeci">bool m_EnableDelegate</div><div class="ttdef"><b>Definition:</b> <a href="_execute_network_params_8hpp_source.xhtml#l00028">ExecuteNetworkParams.hpp:28</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</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="dir_59425e443f801f1f2fd8bbe4959a3ccf.xhtml">tests</a></li><li class="navelem"><a class="el" href="dir_3502d64799b714c597b8fa7662494b65.xhtml">ExecuteNetwork</a></li><li class="navelem"><a class="el" href="_execute_network_program_options_8cpp.xhtml">ExecuteNetworkProgramOptions.cpp</a></li>
    <li class="footer">Generated on Thu Feb 25 2021 17:27:54 for ArmNN by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
  </ul>
</div>
</body>
</html>