aboutsummaryrefslogtreecommitdiff
path: root/22.05/_profiling_test_utils_8cpp_source.xhtml
blob: e259475207c4317359d7cb9f83e295010af4bd47 (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
<!-- 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: src/profiling/test/ProfilingTestUtils.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">22.05</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('_profiling_test_utils_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">ProfilingTestUtils.cpp</div>  </div>
</div><!--header-->
<div class="contents">
<a href="_profiling_test_utils_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 © 2019 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 &lt;<a class="code" href="_arm_n_n_profiling_service_initialiser_8hpp.xhtml">ArmNNProfilingServiceInitialiser.hpp</a>&gt;</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_profiling_options_converter_8hpp.xhtml">ProfilingOptionsConverter.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="_profiling_test_utils_8hpp.xhtml">ProfilingTestUtils.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="_descriptors_8hpp.xhtml">armnn/Descriptors.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="_arm_n_n_profiling_8hpp.xhtml">armnn/profiling/ArmNNProfiling.hpp</a>&gt;</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;</div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="preprocessor">#include &lt;client/src/ProfilingService.hpp&gt;</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="preprocessor">#include &lt;client/src/ProfilingUtils.hpp&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;common/include/Assert.hpp&gt;</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="preprocessor">#include &lt;common/include/LabelsAndEventClasses.hpp&gt;</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="preprocessor">#include &lt;common/include/NumericCast.hpp&gt;</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#include &lt;common/include/Processes.hpp&gt;</span></div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#include &lt;common/include/Threads.hpp&gt;</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;</div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="preprocessor">#include &lt;TestUtils.hpp&gt;</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="preprocessor">#include &lt;doctest/doctest.h&gt;</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"><a class="line" href="_profiling_test_utils_8hpp.xhtml#aa449021ed1a9de7abcdbd0ca903577db">   26</a></span>&#160;uint32_t <a class="code" href="_profiling_test_utils_8cpp.xhtml#aa449021ed1a9de7abcdbd0ca903577db">GetStreamMetaDataPacketSize</a>()</div><div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;{</div><div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;    uint32_t sizeUint32 = <span class="keyword">sizeof</span>(uint32_t);</div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;    uint32_t payloadSize = 0;</div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;    payloadSize += <a class="code" href="namespacearmnn.xhtml#a375ca3cff9f1b005d1412dc5f3cf5b6e">arm::pipe::numeric_cast</a>&lt;uint32_t&gt;(arm::pipe::ARMNN_SOFTWARE_INFO.size()) + 1;</div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;    payloadSize += <a class="code" href="namespacearmnn.xhtml#a375ca3cff9f1b005d1412dc5f3cf5b6e">arm::pipe::numeric_cast</a>&lt;uint32_t&gt;(arm::pipe::ARMNN_HARDWARE_VERSION.size()) + 1;</div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;    payloadSize += <a class="code" href="namespacearmnn.xhtml#a375ca3cff9f1b005d1412dc5f3cf5b6e">arm::pipe::numeric_cast</a>&lt;uint32_t&gt;(arm::pipe::ARMNN_SOFTWARE_VERSION.size()) + 1;</div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;    payloadSize += <a class="code" href="namespacearmnn.xhtml#a375ca3cff9f1b005d1412dc5f3cf5b6e">arm::pipe::numeric_cast</a>&lt;uint32_t&gt;(GetProcessName().size()) + 1;</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">// Add packetVersionEntries</span></div><div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;    payloadSize += 13 * 2 * sizeUint32;</div><div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;    <span class="comment">// Add packetVersionCountSize</span></div><div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;    payloadSize += sizeUint32;</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;    uint32_t headerSize = 2 * sizeUint32;</div><div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;    uint32_t bodySize = 10 * sizeUint32;</div><div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;    <span class="keywordflow">return</span> headerSize + bodySize + payloadSize;</div><div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;}</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"><a class="line" href="_profiling_test_utils_8hpp.xhtml#ae64165cd8af458ef4a8634c51892ef08">   46</a></span>&#160;std::vector&lt;BackendId&gt; <a class="code" href="_profiling_test_utils_8cpp.xhtml#ae64165cd8af458ef4a8634c51892ef08">GetSuitableBackendRegistered</a>()</div><div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;{</div><div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;    std::vector&lt;BackendId&gt; suitableBackends;</div><div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;    <span class="keywordflow">if</span> (<a class="code" href="namespacearmnn.xhtml#ac2807505b850738bc8a1991ce669dd47">BackendRegistryInstance</a>().IsBackendRegistered(<a class="code" href="namespacearmnn.xhtml#a6bab17bfd45c2fa4592c431bc25ad10e">GetComputeDeviceAsCString</a>(<a class="code" href="namespacearmnn.xhtml#ae2f04a162585c0a5222a537efd5456aea83c2c4e9b658ccafbcbe6309c5d84c64">armnn::Compute::CpuRef</a>)))</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;        suitableBackends.push_back(<a class="code" href="namespacearmnn.xhtml#ae2f04a162585c0a5222a537efd5456aea83c2c4e9b658ccafbcbe6309c5d84c64">armnn::Compute::CpuRef</a>);</div><div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;    }</div><div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;    <span class="keywordflow">if</span> (<a class="code" href="namespacearmnn.xhtml#ac2807505b850738bc8a1991ce669dd47">BackendRegistryInstance</a>().IsBackendRegistered(<a class="code" href="namespacearmnn.xhtml#a6bab17bfd45c2fa4592c431bc25ad10e">GetComputeDeviceAsCString</a>(<a class="code" href="namespacearmnn.xhtml#ae2f04a162585c0a5222a537efd5456aea39f8662ca778258e9c6a14f26fec5ec1">armnn::Compute::CpuAcc</a>)))</div><div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;    {</div><div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;        suitableBackends.push_back(<a class="code" href="namespacearmnn.xhtml#ae2f04a162585c0a5222a537efd5456aea39f8662ca778258e9c6a14f26fec5ec1">armnn::Compute::CpuAcc</a>);</div><div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;    }</div><div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;    <span class="keywordflow">if</span> (<a class="code" href="namespacearmnn.xhtml#ac2807505b850738bc8a1991ce669dd47">BackendRegistryInstance</a>().IsBackendRegistered(<a class="code" href="namespacearmnn.xhtml#a6bab17bfd45c2fa4592c431bc25ad10e">GetComputeDeviceAsCString</a>(<a class="code" href="namespacearmnn.xhtml#ae2f04a162585c0a5222a537efd5456aeafaa4524e3df19ada32643ce9a222362b">armnn::Compute::GpuAcc</a>)))</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">   59</span>&#160;        suitableBackends.push_back(<a class="code" href="namespacearmnn.xhtml#ae2f04a162585c0a5222a537efd5456aeafaa4524e3df19ada32643ce9a222362b">armnn::Compute::GpuAcc</a>);</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="keywordflow">return</span> suitableBackends;</div><div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;}</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"><a class="line" href="_profiling_test_utils_8hpp.xhtml#a197f0ee221203c2b65fbef6e9da54941">   64</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="_profiling_test_utils_8cpp.xhtml#a197f0ee221203c2b65fbef6e9da54941">OffsetToNextWord</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> numberOfBytes)</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="keywordtype">unsigned</span> <span class="keywordtype">int</span> uint32_t_size = <span class="keyword">sizeof</span>(uint32_t);</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;    <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> remainder = numberOfBytes % uint32_t_size;</div><div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;    <span class="keywordflow">if</span> (remainder == 0)</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;        <span class="keywordflow">return</span> numberOfBytes;</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;</div><div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;    <span class="keywordflow">return</span> numberOfBytes + uint32_t_size - remainder;</div><div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;}</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"><a class="line" href="_profiling_test_utils_8hpp.xhtml#a6bd6e8ba2f989621f7348d2bb6ce13a4">   77</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="_profiling_test_utils_8cpp.xhtml#a6bd6e8ba2f989621f7348d2bb6ce13a4">VerifyTimelineHeaderBinary</a>(<span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>* readableData,</div><div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;                                <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>&amp; offset,</div><div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;                                uint32_t packetDataLength)</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;    ARM_PIPE_ASSERT(readableData);</div><div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;</div><div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;    <span class="comment">// Utils</span></div><div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;    <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> uint32_t_size = <span class="keyword">sizeof</span>(uint32_t);</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;    <span class="comment">// Check the TimelineEventClassBinaryPacket header</span></div><div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;    uint32_t timelineBinaryPacketHeaderWord0 = ReadUint32(readableData, offset);</div><div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;    uint32_t timelineBinaryPacketFamily      = (timelineBinaryPacketHeaderWord0 &gt;&gt; 26) &amp; 0x0000003F;</div><div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;    uint32_t timelineBinaryPacketClass       = (timelineBinaryPacketHeaderWord0 &gt;&gt; 19) &amp; 0x0000007F;</div><div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;    uint32_t timelineBinaryPacketType        = (timelineBinaryPacketHeaderWord0 &gt;&gt; 16) &amp; 0x00000007;</div><div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;    uint32_t timelineBinaryPacketStreamId    = (timelineBinaryPacketHeaderWord0 &gt;&gt;  0) &amp; 0x00000007;</div><div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;    CHECK(timelineBinaryPacketFamily   == 1);</div><div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;    CHECK(timelineBinaryPacketClass    == 0);</div><div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;    CHECK(timelineBinaryPacketType     == 1);</div><div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;    CHECK(timelineBinaryPacketStreamId == 0);</div><div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;    offset += uint32_t_size;</div><div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;    uint32_t timelineBinaryPacketHeaderWord1   = ReadUint32(readableData, offset);</div><div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;    uint32_t timelineBinaryPacketSequenceNumber = (timelineBinaryPacketHeaderWord1 &gt;&gt; 24) &amp; 0x00000001;</div><div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;    uint32_t timelineBinaryPacketDataLength     = (timelineBinaryPacketHeaderWord1 &gt;&gt;  0) &amp; 0x00FFFFFF;</div><div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;    CHECK(timelineBinaryPacketSequenceNumber == 0);</div><div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;    CHECK(timelineBinaryPacketDataLength     == packetDataLength);</div><div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;    offset += uint32_t_size;</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="_profiling_test_utils_8hpp.xhtml#a845d7ded3f1981b1a101c23465f99407">  105</a></span>&#160;ProfilingGuid <a class="code" href="_profiling_test_utils_8cpp.xhtml#a845d7ded3f1981b1a101c23465f99407">VerifyTimelineLabelBinaryPacketData</a>(arm::pipe::Optional&lt;ProfilingGuid&gt; guid,</div><div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;                                                  <span class="keyword">const</span> std::string&amp; label,</div><div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;                                                  <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>* readableData,</div><div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;                                                  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>&amp; offset)</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">  110</span>&#160;    ARM_PIPE_ASSERT(readableData);</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;    <span class="comment">// Utils</span></div><div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;    <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> uint32_t_size = <span class="keyword">sizeof</span>(uint32_t);</div><div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;    <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> uint64_t_size = <span class="keyword">sizeof</span>(uint64_t);</div><div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;    <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> label_size    = <a class="code" href="namespacearmnn.xhtml#a375ca3cff9f1b005d1412dc5f3cf5b6e">arm::pipe::numeric_cast</a>&lt;<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>&gt;(label.size());</div><div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;</div><div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;    <span class="comment">// Check the decl id</span></div><div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;    uint32_t eventClassDeclId = ReadUint32(readableData, offset);</div><div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;    CHECK(eventClassDeclId == 0);</div><div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;</div><div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;    <span class="comment">// Check the profiling GUID</span></div><div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;    offset += uint32_t_size;</div><div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;    uint64_t readProfilingGuid = ReadUint64(readableData, offset);</div><div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;    <span class="keywordflow">if</span> (guid.has_value())</div><div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;    {</div><div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;        CHECK(readProfilingGuid == guid.value());</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;    <span class="keywordflow">else</span></div><div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;    {</div><div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;        <a class="code" href="classarmnn_1_1_arm_n_n_profiling_service_initialiser.xhtml">ArmNNProfilingServiceInitialiser</a> initialiser;</div><div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;        ProfilingService profilingService(arm::pipe::MAX_ARMNN_COUNTER,</div><div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;                                          initialiser,</div><div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;                                          arm::pipe::ARMNN_SOFTWARE_INFO,</div><div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;                                          arm::pipe::ARMNN_SOFTWARE_VERSION,</div><div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;                                          arm::pipe::ARMNN_HARDWARE_VERSION);</div><div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;        CHECK(readProfilingGuid == profilingService.GetStaticId(label));</div><div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;    }</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;    <span class="comment">// Check the SWTrace label</span></div><div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;    offset += uint64_t_size;</div><div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;    uint32_t swTraceLabelLength = ReadUint32(readableData, offset);</div><div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;    CHECK(swTraceLabelLength == label_size + 1);               <span class="comment">// Label length including the null-terminator</span></div><div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;    offset += uint32_t_size;</div><div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;    CHECK(std::memcmp(readableData + offset,                  <span class="comment">// Offset to the label in the buffer</span></div><div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;                               label.data(),                           <span class="comment">// The original label</span></div><div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160;                               swTraceLabelLength - 1) == 0);          <span class="comment">// The length of the label</span></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;    <span class="comment">// SWTrace strings are written in blocks of words, so the offset has to be updated to the next whole word</span></div><div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;    offset += <a class="code" href="_profiling_test_utils_8cpp.xhtml#a197f0ee221203c2b65fbef6e9da54941">OffsetToNextWord</a>(swTraceLabelLength);</div><div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;</div><div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;    ProfilingGuid labelGuid(readProfilingGuid);</div><div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;    <span class="keywordflow">return</span> labelGuid;</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;</div><div class="line"><a name="l00155"></a><span class="lineno"><a class="line" href="_profiling_test_utils_8hpp.xhtml#ae8508d42bb9bd2e705d05b921c83d2b0">  155</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="_profiling_test_utils_8cpp.xhtml#ae8508d42bb9bd2e705d05b921c83d2b0">VerifyTimelineEventClassBinaryPacketData</a>(ProfilingGuid guid,</div><div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;                                              ProfilingGuid nameGuid,</div><div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;                                              <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>* readableData,</div><div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;                                              <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>&amp; offset)</div><div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;{</div><div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;    ARM_PIPE_ASSERT(readableData);</div><div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;</div><div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;    <span class="comment">// Utils</span></div><div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;    <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> uint32_t_size = <span class="keyword">sizeof</span>(uint32_t);</div><div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;    <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> uint64_t_size = <span class="keyword">sizeof</span>(uint64_t);</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="comment">// Check the decl id</span></div><div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;    uint32_t eventClassDeclId = ReadUint32(readableData, offset);</div><div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160;    CHECK(eventClassDeclId == 2);</div><div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;</div><div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160;    <span class="comment">// Check the profiling GUID</span></div><div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;    offset += uint32_t_size;</div><div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;    uint64_t readProfilingGuid = ReadUint64(readableData, offset);</div><div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;    CHECK(readProfilingGuid == guid);</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;    offset += uint64_t_size;</div><div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;    uint64_t readProfiilngNameGuid = ReadUint64(readableData, offset);</div><div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;    CHECK(readProfiilngNameGuid == nameGuid);</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="comment">// Update the offset to allow parsing to be continued after this function returns</span></div><div class="line"><a name="l00180"></a><span class="lineno">  180</span>&#160;    offset += uint64_t_size;</div><div class="line"><a name="l00181"></a><span class="lineno">  181</span>&#160;}</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"><a class="line" href="_profiling_test_utils_8hpp.xhtml#af25b6f3b19654d8d589e54e4e1404acb">  183</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="_profiling_test_utils_8cpp.xhtml#af25b6f3b19654d8d589e54e4e1404acb">VerifyTimelineRelationshipBinaryPacketData</a>(ProfilingRelationshipType relationshipType,</div><div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160;                                                arm::pipe::Optional&lt;ProfilingGuid&gt; relationshipGuid,</div><div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160;                                                arm::pipe::Optional&lt;ProfilingGuid&gt; headGuid,</div><div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160;                                                arm::pipe::Optional&lt;ProfilingGuid&gt; tailGuid,</div><div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160;                                                arm::pipe::Optional&lt;ProfilingGuid&gt; attributeGuid,</div><div class="line"><a name="l00188"></a><span class="lineno">  188</span>&#160;                                                <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>* readableData,</div><div class="line"><a name="l00189"></a><span class="lineno">  189</span>&#160;                                                <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>&amp; offset)</div><div class="line"><a name="l00190"></a><span class="lineno">  190</span>&#160;{</div><div class="line"><a name="l00191"></a><span class="lineno">  191</span>&#160;    ARM_PIPE_ASSERT(readableData);</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;    uint32_t relationshipTypeUint = 0;</div><div class="line"><a name="l00194"></a><span class="lineno">  194</span>&#160;    <span class="keywordflow">switch</span> (relationshipType)</div><div class="line"><a name="l00195"></a><span class="lineno">  195</span>&#160;    {</div><div class="line"><a name="l00196"></a><span class="lineno">  196</span>&#160;        <span class="keywordflow">case</span> ProfilingRelationshipType::RetentionLink:</div><div class="line"><a name="l00197"></a><span class="lineno">  197</span>&#160;            relationshipTypeUint = 0;</div><div class="line"><a name="l00198"></a><span class="lineno">  198</span>&#160;            <span class="keywordflow">break</span>;</div><div class="line"><a name="l00199"></a><span class="lineno">  199</span>&#160;        <span class="keywordflow">case</span> ProfilingRelationshipType::ExecutionLink:</div><div class="line"><a name="l00200"></a><span class="lineno">  200</span>&#160;            relationshipTypeUint = 1;</div><div class="line"><a name="l00201"></a><span class="lineno">  201</span>&#160;            <span class="keywordflow">break</span>;</div><div class="line"><a name="l00202"></a><span class="lineno">  202</span>&#160;        <span class="keywordflow">case</span> ProfilingRelationshipType::DataLink:</div><div class="line"><a name="l00203"></a><span class="lineno">  203</span>&#160;            relationshipTypeUint = 2;</div><div class="line"><a name="l00204"></a><span class="lineno">  204</span>&#160;            <span class="keywordflow">break</span>;</div><div class="line"><a name="l00205"></a><span class="lineno">  205</span>&#160;        <span class="keywordflow">case</span> ProfilingRelationshipType::LabelLink:</div><div class="line"><a name="l00206"></a><span class="lineno">  206</span>&#160;            relationshipTypeUint = 3;</div><div class="line"><a name="l00207"></a><span class="lineno">  207</span>&#160;            <span class="keywordflow">break</span>;</div><div class="line"><a name="l00208"></a><span class="lineno">  208</span>&#160;        <span class="keywordflow">default</span>:</div><div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160;            FAIL(<span class="stringliteral">&quot;Unknown relationship type&quot;</span>);</div><div class="line"><a name="l00210"></a><span class="lineno">  210</span>&#160;    }</div><div class="line"><a name="l00211"></a><span class="lineno">  211</span>&#160;</div><div class="line"><a name="l00212"></a><span class="lineno">  212</span>&#160;    <span class="comment">// Utils</span></div><div class="line"><a name="l00213"></a><span class="lineno">  213</span>&#160;    <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> uint32_t_size = <span class="keyword">sizeof</span>(uint32_t);</div><div class="line"><a name="l00214"></a><span class="lineno">  214</span>&#160;    <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> uint64_t_size = <span class="keyword">sizeof</span>(uint64_t);</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="comment">// Check the decl id</span></div><div class="line"><a name="l00217"></a><span class="lineno">  217</span>&#160;    uint32_t eventClassDeclId = ReadUint32(readableData, offset);</div><div class="line"><a name="l00218"></a><span class="lineno">  218</span>&#160;    CHECK(eventClassDeclId == 3);</div><div class="line"><a name="l00219"></a><span class="lineno">  219</span>&#160;</div><div class="line"><a name="l00220"></a><span class="lineno">  220</span>&#160;    <span class="comment">// Check the relationship type</span></div><div class="line"><a name="l00221"></a><span class="lineno">  221</span>&#160;    offset += uint32_t_size;</div><div class="line"><a name="l00222"></a><span class="lineno">  222</span>&#160;    uint32_t readRelationshipTypeUint = ReadUint32(readableData, offset);</div><div class="line"><a name="l00223"></a><span class="lineno">  223</span>&#160;    CHECK(readRelationshipTypeUint == relationshipTypeUint);</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="comment">// Check the relationship GUID</span></div><div class="line"><a name="l00226"></a><span class="lineno">  226</span>&#160;    offset += uint32_t_size;</div><div class="line"><a name="l00227"></a><span class="lineno">  227</span>&#160;    uint64_t readRelationshipGuid = ReadUint64(readableData, offset);</div><div class="line"><a name="l00228"></a><span class="lineno">  228</span>&#160;    <span class="keywordflow">if</span> (relationshipGuid.has_value())</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;        CHECK(readRelationshipGuid == relationshipGuid.value());</div><div class="line"><a name="l00231"></a><span class="lineno">  231</span>&#160;    }</div><div class="line"><a name="l00232"></a><span class="lineno">  232</span>&#160;    <span class="keywordflow">else</span></div><div class="line"><a name="l00233"></a><span class="lineno">  233</span>&#160;    {</div><div class="line"><a name="l00234"></a><span class="lineno">  234</span>&#160;        CHECK(readRelationshipGuid != ProfilingGuid(0));</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;</div><div class="line"><a name="l00237"></a><span class="lineno">  237</span>&#160;    <span class="comment">// Check the head GUID of the relationship</span></div><div class="line"><a name="l00238"></a><span class="lineno">  238</span>&#160;    offset += uint64_t_size;</div><div class="line"><a name="l00239"></a><span class="lineno">  239</span>&#160;    uint64_t readHeadRelationshipGuid = ReadUint64(readableData, offset);</div><div class="line"><a name="l00240"></a><span class="lineno">  240</span>&#160;    <span class="keywordflow">if</span> (headGuid.has_value())</div><div class="line"><a name="l00241"></a><span class="lineno">  241</span>&#160;    {</div><div class="line"><a name="l00242"></a><span class="lineno">  242</span>&#160;        CHECK(readHeadRelationshipGuid == headGuid.value());</div><div class="line"><a name="l00243"></a><span class="lineno">  243</span>&#160;    }</div><div class="line"><a name="l00244"></a><span class="lineno">  244</span>&#160;    <span class="keywordflow">else</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;        CHECK(readHeadRelationshipGuid != ProfilingGuid(0));</div><div class="line"><a name="l00247"></a><span class="lineno">  247</span>&#160;    }</div><div class="line"><a name="l00248"></a><span class="lineno">  248</span>&#160;</div><div class="line"><a name="l00249"></a><span class="lineno">  249</span>&#160;    <span class="comment">// Check the tail GUID of the relationship</span></div><div class="line"><a name="l00250"></a><span class="lineno">  250</span>&#160;    offset += uint64_t_size;</div><div class="line"><a name="l00251"></a><span class="lineno">  251</span>&#160;    uint64_t readTailRelationshipGuid = ReadUint64(readableData, offset);</div><div class="line"><a name="l00252"></a><span class="lineno">  252</span>&#160;    <span class="keywordflow">if</span> (tailGuid.has_value())</div><div class="line"><a name="l00253"></a><span class="lineno">  253</span>&#160;    {</div><div class="line"><a name="l00254"></a><span class="lineno">  254</span>&#160;        CHECK(readTailRelationshipGuid == tailGuid.value());</div><div class="line"><a name="l00255"></a><span class="lineno">  255</span>&#160;    }</div><div class="line"><a name="l00256"></a><span class="lineno">  256</span>&#160;    <span class="keywordflow">else</span></div><div class="line"><a name="l00257"></a><span class="lineno">  257</span>&#160;    {</div><div class="line"><a name="l00258"></a><span class="lineno">  258</span>&#160;        CHECK(readTailRelationshipGuid != ProfilingGuid(0));</div><div class="line"><a name="l00259"></a><span class="lineno">  259</span>&#160;    }</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="comment">// Check the attribute GUID of the relationship</span></div><div class="line"><a name="l00262"></a><span class="lineno">  262</span>&#160;    offset += uint64_t_size;</div><div class="line"><a name="l00263"></a><span class="lineno">  263</span>&#160;    uint64_t readAttributeRelationshipGuid = ReadUint64(readableData, offset);</div><div class="line"><a name="l00264"></a><span class="lineno">  264</span>&#160;    <span class="keywordflow">if</span> (attributeGuid.has_value())</div><div class="line"><a name="l00265"></a><span class="lineno">  265</span>&#160;    {</div><div class="line"><a name="l00266"></a><span class="lineno">  266</span>&#160;        CHECK(readAttributeRelationshipGuid == attributeGuid.value());</div><div class="line"><a name="l00267"></a><span class="lineno">  267</span>&#160;    }</div><div class="line"><a name="l00268"></a><span class="lineno">  268</span>&#160;    <span class="keywordflow">else</span></div><div class="line"><a name="l00269"></a><span class="lineno">  269</span>&#160;    {</div><div class="line"><a name="l00270"></a><span class="lineno">  270</span>&#160;        CHECK(readAttributeRelationshipGuid == ProfilingGuid(0));</div><div class="line"><a name="l00271"></a><span class="lineno">  271</span>&#160;    }</div><div class="line"><a name="l00272"></a><span class="lineno">  272</span>&#160;</div><div class="line"><a name="l00273"></a><span class="lineno">  273</span>&#160;    <span class="comment">// Update the offset to allow parsing to be continued after this function returns</span></div><div class="line"><a name="l00274"></a><span class="lineno">  274</span>&#160;    offset += uint64_t_size;</div><div class="line"><a name="l00275"></a><span class="lineno">  275</span>&#160;}</div><div class="line"><a name="l00276"></a><span class="lineno">  276</span>&#160;</div><div class="line"><a name="l00277"></a><span class="lineno"><a class="line" href="_profiling_test_utils_8hpp.xhtml#aca439c1ce381920dc07fbb20aa7ab747">  277</a></span>&#160;ProfilingGuid <a class="code" href="_profiling_test_utils_8cpp.xhtml#aca439c1ce381920dc07fbb20aa7ab747">VerifyTimelineEntityBinaryPacketData</a>(arm::pipe::Optional&lt;ProfilingGuid&gt; guid,</div><div class="line"><a name="l00278"></a><span class="lineno">  278</span>&#160;                                                   <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>* readableData,</div><div class="line"><a name="l00279"></a><span class="lineno">  279</span>&#160;                                                   <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>&amp; offset)</div><div class="line"><a name="l00280"></a><span class="lineno">  280</span>&#160;{</div><div class="line"><a name="l00281"></a><span class="lineno">  281</span>&#160;    ARM_PIPE_ASSERT(readableData);</div><div class="line"><a name="l00282"></a><span class="lineno">  282</span>&#160;</div><div class="line"><a name="l00283"></a><span class="lineno">  283</span>&#160;    <span class="comment">// Utils</span></div><div class="line"><a name="l00284"></a><span class="lineno">  284</span>&#160;    <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> uint32_t_size = <span class="keyword">sizeof</span>(uint32_t);</div><div class="line"><a name="l00285"></a><span class="lineno">  285</span>&#160;    <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> uint64_t_size = <span class="keyword">sizeof</span>(uint64_t);</div><div class="line"><a name="l00286"></a><span class="lineno">  286</span>&#160;</div><div class="line"><a name="l00287"></a><span class="lineno">  287</span>&#160;    <span class="comment">// Reading TimelineEntityClassBinaryPacket</span></div><div class="line"><a name="l00288"></a><span class="lineno">  288</span>&#160;    <span class="comment">// Check the decl_id</span></div><div class="line"><a name="l00289"></a><span class="lineno">  289</span>&#160;    uint32_t entityDeclId = ReadUint32(readableData, offset);</div><div class="line"><a name="l00290"></a><span class="lineno">  290</span>&#160;    CHECK(entityDeclId == 1);</div><div class="line"><a name="l00291"></a><span class="lineno">  291</span>&#160;</div><div class="line"><a name="l00292"></a><span class="lineno">  292</span>&#160;    <span class="comment">// Check the profiling GUID</span></div><div class="line"><a name="l00293"></a><span class="lineno">  293</span>&#160;    offset += uint32_t_size;</div><div class="line"><a name="l00294"></a><span class="lineno">  294</span>&#160;    uint64_t readProfilingGuid = ReadUint64(readableData, offset);</div><div class="line"><a name="l00295"></a><span class="lineno">  295</span>&#160;</div><div class="line"><a name="l00296"></a><span class="lineno">  296</span>&#160;    <span class="keywordflow">if</span> (guid.has_value())</div><div class="line"><a name="l00297"></a><span class="lineno">  297</span>&#160;    {</div><div class="line"><a name="l00298"></a><span class="lineno">  298</span>&#160;        CHECK(readProfilingGuid == guid.value());</div><div class="line"><a name="l00299"></a><span class="lineno">  299</span>&#160;    }</div><div class="line"><a name="l00300"></a><span class="lineno">  300</span>&#160;    <span class="keywordflow">else</span></div><div class="line"><a name="l00301"></a><span class="lineno">  301</span>&#160;    {</div><div class="line"><a name="l00302"></a><span class="lineno">  302</span>&#160;        CHECK(readProfilingGuid != ProfilingGuid(0));</div><div class="line"><a name="l00303"></a><span class="lineno">  303</span>&#160;    }</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;    offset += uint64_t_size;</div><div class="line"><a name="l00306"></a><span class="lineno">  306</span>&#160;</div><div class="line"><a name="l00307"></a><span class="lineno">  307</span>&#160;    ProfilingGuid entityGuid(readProfilingGuid);</div><div class="line"><a name="l00308"></a><span class="lineno">  308</span>&#160;    <span class="keywordflow">return</span> entityGuid;</div><div class="line"><a name="l00309"></a><span class="lineno">  309</span>&#160;}</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"><a class="line" href="_profiling_test_utils_8hpp.xhtml#ac6ded51288940367b65287093e49ffa5">  311</a></span>&#160;ProfilingGuid <a class="code" href="_profiling_test_utils_8cpp.xhtml#ac6ded51288940367b65287093e49ffa5">VerifyTimelineEventBinaryPacket</a>(arm::pipe::Optional&lt;uint64_t&gt; timestamp,</div><div class="line"><a name="l00312"></a><span class="lineno">  312</span>&#160;                                              arm::pipe::Optional&lt;int&gt; threadId,</div><div class="line"><a name="l00313"></a><span class="lineno">  313</span>&#160;                                              arm::pipe::Optional&lt;ProfilingGuid&gt; eventGuid,</div><div class="line"><a name="l00314"></a><span class="lineno">  314</span>&#160;                                              <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>* readableData,</div><div class="line"><a name="l00315"></a><span class="lineno">  315</span>&#160;                                              <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>&amp; offset)</div><div class="line"><a name="l00316"></a><span class="lineno">  316</span>&#160;{</div><div class="line"><a name="l00317"></a><span class="lineno">  317</span>&#160;    ARM_PIPE_ASSERT(readableData);</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;    <span class="comment">// Utils</span></div><div class="line"><a name="l00320"></a><span class="lineno">  320</span>&#160;    <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> uint32_t_size = <span class="keyword">sizeof</span>(uint32_t);</div><div class="line"><a name="l00321"></a><span class="lineno">  321</span>&#160;    <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> uint64_t_size = <span class="keyword">sizeof</span>(uint64_t);</div><div class="line"><a name="l00322"></a><span class="lineno">  322</span>&#160;</div><div class="line"><a name="l00323"></a><span class="lineno">  323</span>&#160;    <span class="comment">// Reading TimelineEventBinaryPacket</span></div><div class="line"><a name="l00324"></a><span class="lineno">  324</span>&#160;    <span class="comment">// Check the decl_id</span></div><div class="line"><a name="l00325"></a><span class="lineno">  325</span>&#160;    uint32_t entityDeclId = ReadUint32(readableData, offset);</div><div class="line"><a name="l00326"></a><span class="lineno">  326</span>&#160;    CHECK(entityDeclId == 4);</div><div class="line"><a name="l00327"></a><span class="lineno">  327</span>&#160;</div><div class="line"><a name="l00328"></a><span class="lineno">  328</span>&#160;    <span class="comment">// Check the timestamp</span></div><div class="line"><a name="l00329"></a><span class="lineno">  329</span>&#160;    offset += uint32_t_size;</div><div class="line"><a name="l00330"></a><span class="lineno">  330</span>&#160;    uint64_t readTimestamp = ReadUint64(readableData, offset);</div><div class="line"><a name="l00331"></a><span class="lineno">  331</span>&#160;    <span class="keywordflow">if</span> (timestamp.has_value())</div><div class="line"><a name="l00332"></a><span class="lineno">  332</span>&#160;    {</div><div class="line"><a name="l00333"></a><span class="lineno">  333</span>&#160;        CHECK(readTimestamp == timestamp.value());</div><div class="line"><a name="l00334"></a><span class="lineno">  334</span>&#160;    }</div><div class="line"><a name="l00335"></a><span class="lineno">  335</span>&#160;    <span class="keywordflow">else</span></div><div class="line"><a name="l00336"></a><span class="lineno">  336</span>&#160;    {</div><div class="line"><a name="l00337"></a><span class="lineno">  337</span>&#160;        CHECK(readTimestamp != 0);</div><div class="line"><a name="l00338"></a><span class="lineno">  338</span>&#160;    }</div><div class="line"><a name="l00339"></a><span class="lineno">  339</span>&#160;</div><div class="line"><a name="l00340"></a><span class="lineno">  340</span>&#160;    <span class="comment">// Check the thread id</span></div><div class="line"><a name="l00341"></a><span class="lineno">  341</span>&#160;    offset += uint64_t_size;</div><div class="line"><a name="l00342"></a><span class="lineno">  342</span>&#160;    std::vector&lt;uint8_t&gt; readThreadId(ThreadIdSize, 0);</div><div class="line"><a name="l00343"></a><span class="lineno">  343</span>&#160;    ReadBytes(readableData, offset, ThreadIdSize, readThreadId.data());</div><div class="line"><a name="l00344"></a><span class="lineno">  344</span>&#160;    <span class="keywordflow">if</span> (threadId.has_value())</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;        CHECK(readThreadId == threadId.value());</div><div class="line"><a name="l00347"></a><span class="lineno">  347</span>&#160;    }</div><div class="line"><a name="l00348"></a><span class="lineno">  348</span>&#160;    <span class="keywordflow">else</span></div><div class="line"><a name="l00349"></a><span class="lineno">  349</span>&#160;    {</div><div class="line"><a name="l00350"></a><span class="lineno">  350</span>&#160;        CHECK(readThreadId == arm::pipe::GetCurrentThreadId());</div><div class="line"><a name="l00351"></a><span class="lineno">  351</span>&#160;    }</div><div class="line"><a name="l00352"></a><span class="lineno">  352</span>&#160;</div><div class="line"><a name="l00353"></a><span class="lineno">  353</span>&#160;    <span class="comment">// Check the event GUID</span></div><div class="line"><a name="l00354"></a><span class="lineno">  354</span>&#160;    offset += ThreadIdSize;</div><div class="line"><a name="l00355"></a><span class="lineno">  355</span>&#160;    uint64_t readEventGuid = ReadUint64(readableData, offset);</div><div class="line"><a name="l00356"></a><span class="lineno">  356</span>&#160;    <span class="keywordflow">if</span> (eventGuid.has_value())</div><div class="line"><a name="l00357"></a><span class="lineno">  357</span>&#160;    {</div><div class="line"><a name="l00358"></a><span class="lineno">  358</span>&#160;        CHECK(readEventGuid == eventGuid.value());</div><div class="line"><a name="l00359"></a><span class="lineno">  359</span>&#160;    }</div><div class="line"><a name="l00360"></a><span class="lineno">  360</span>&#160;    <span class="keywordflow">else</span></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;        CHECK(readEventGuid != ProfilingGuid(0));</div><div class="line"><a name="l00363"></a><span class="lineno">  363</span>&#160;    }</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;    offset += uint64_t_size;</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;    ProfilingGuid eventid(readEventGuid);</div><div class="line"><a name="l00368"></a><span class="lineno">  368</span>&#160;    <span class="keywordflow">return</span> eventid;</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;</div><div class="line"><a name="l00371"></a><span class="lineno"><a class="line" href="_profiling_test_utils_8hpp.xhtml#a63249ab17e3797a6c5e3c187a17dbce4">  371</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="_profiling_test_utils_8cpp.xhtml#a63249ab17e3797a6c5e3c187a17dbce4">VerifyPostOptimisationStructureTestImpl</a>(<a class="code" href="classarmnn_1_1_backend_id.xhtml">armnn::BackendId</a> backendId)</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="keyword">using namespace </span><a class="code" href="namespacearmnn.xhtml">armnn</a>;</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;    <span class="comment">// Create runtime in which test will run</span></div><div class="line"><a name="l00376"></a><span class="lineno">  376</span>&#160;    <a class="code" href="structarmnn_1_1_i_runtime_1_1_creation_options.xhtml">armnn::IRuntime::CreationOptions</a> options;</div><div class="line"><a name="l00377"></a><span class="lineno">  377</span>&#160;    options.<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> = <span class="keyword">true</span>;</div><div class="line"><a name="l00378"></a><span class="lineno">  378</span>&#160;    options.<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> = <span class="keyword">true</span>;</div><div class="line"><a name="l00379"></a><span class="lineno">  379</span>&#160;    <a class="code" href="structarmnn_1_1_runtime_impl.xhtml">armnn::RuntimeImpl</a> runtime(options);</div><div class="line"><a name="l00380"></a><span class="lineno">  380</span>&#160;    <a class="code" href="namespacearmnn.xhtml#a292c96e5bbde0ca0242b1138bea6195d">GetProfilingService</a>(&amp;runtime).ResetExternalProfilingOptions(</div><div class="line"><a name="l00381"></a><span class="lineno">  381</span>&#160;        <a class="code" href="namespacearm_1_1pipe.xhtml#aedd5bf7f3d6df99a1b42e7826c5b380b">ConvertExternalProfilingOptions</a>(options.<a class="code" href="structarmnn_1_1_i_runtime_1_1_creation_options.xhtml#a30412a91cadff138686eaeb12f5357cc">m_ProfilingOptions</a>), <span class="keyword">false</span>);</div><div class="line"><a name="l00382"></a><span class="lineno">  382</span>&#160;</div><div class="line"><a name="l00383"></a><span class="lineno">  383</span>&#160;    <a class="code" href="classarmnn_1_1_arm_n_n_profiling_service_initialiser.xhtml">ArmNNProfilingServiceInitialiser</a> initialiser;</div><div class="line"><a name="l00384"></a><span class="lineno">  384</span>&#160;    <a class="code" href="classarm_1_1pipe_1_1_profiling_service_runtime_helper.xhtml">ProfilingServiceRuntimeHelper</a> profilingServiceHelper(</div><div class="line"><a name="l00385"></a><span class="lineno">  385</span>&#160;        arm::pipe::MAX_ARMNN_COUNTER, initialiser, <a class="code" href="namespacearmnn.xhtml#a292c96e5bbde0ca0242b1138bea6195d">GetProfilingService</a>(&amp;runtime));</div><div class="line"><a name="l00386"></a><span class="lineno">  386</span>&#160;    profilingServiceHelper.<a class="code" href="classarm_1_1pipe_1_1_profiling_service_runtime_helper.xhtml#a03f72b1ccbef21ab7caafb037ce2144c">ForceTransitionToState</a>(ProfilingState::NotConnected);</div><div class="line"><a name="l00387"></a><span class="lineno">  387</span>&#160;    profilingServiceHelper.<a class="code" href="classarm_1_1pipe_1_1_profiling_service_runtime_helper.xhtml#a03f72b1ccbef21ab7caafb037ce2144c">ForceTransitionToState</a>(ProfilingState::WaitingForAck);</div><div class="line"><a name="l00388"></a><span class="lineno">  388</span>&#160;    profilingServiceHelper.<a class="code" href="classarm_1_1pipe_1_1_profiling_service_runtime_helper.xhtml#a03f72b1ccbef21ab7caafb037ce2144c">ForceTransitionToState</a>(ProfilingState::Active);</div><div class="line"><a name="l00389"></a><span class="lineno">  389</span>&#160;</div><div class="line"><a name="l00390"></a><span class="lineno">  390</span>&#160;    <span class="comment">// build up the structure of the network</span></div><div class="line"><a name="l00391"></a><span class="lineno">  391</span>&#160;    <a class="code" href="namespacearmnn.xhtml#ace74f6f9feb95a964a49d79458232703">INetworkPtr</a> net(<a class="code" href="classarmnn_1_1_i_network.xhtml#a464f0ff87b1aabf71febaa71321dd40b">INetwork::Create</a>());</div><div class="line"><a name="l00392"></a><span class="lineno">  392</span>&#160;</div><div class="line"><a name="l00393"></a><span class="lineno">  393</span>&#160;    <span class="comment">// Convolution details</span></div><div class="line"><a name="l00394"></a><span class="lineno">  394</span>&#160;    <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a> inputInfo({ 1, 2, 5, 1 }, <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a166495adc0d0f53bee6baecc577f5204">DataType::Float32</a>);</div><div class="line"><a name="l00395"></a><span class="lineno">  395</span>&#160;    <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a> weightInfo({ 3, 2, 3, 1 }, <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a166495adc0d0f53bee6baecc577f5204">DataType::Float32</a>, 0.0f, 0, <span class="keyword">true</span>);</div><div class="line"><a name="l00396"></a><span class="lineno">  396</span>&#160;    <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a> biasInfo({ 3 }, <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a166495adc0d0f53bee6baecc577f5204">DataType::Float32</a>, 0.0f, 0, <span class="keyword">true</span>);</div><div class="line"><a name="l00397"></a><span class="lineno">  397</span>&#160;    <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a> outputInfo({ 1, 3, 7, 1 }, <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a166495adc0d0f53bee6baecc577f5204">DataType::Float32</a>);</div><div class="line"><a name="l00398"></a><span class="lineno">  398</span>&#160;    std::vector&lt;float&gt; weightsData{</div><div class="line"><a name="l00399"></a><span class="lineno">  399</span>&#160;        1.0f, 0.0f, 0.0f,</div><div class="line"><a name="l00400"></a><span class="lineno">  400</span>&#160;        0.0f, 2.0f, -1.5f,</div><div class="line"><a name="l00401"></a><span class="lineno">  401</span>&#160;</div><div class="line"><a name="l00402"></a><span class="lineno">  402</span>&#160;        0.0f, 0.0f, 0.0f,</div><div class="line"><a name="l00403"></a><span class="lineno">  403</span>&#160;        0.2f, 0.2f, 0.2f,</div><div class="line"><a name="l00404"></a><span class="lineno">  404</span>&#160;</div><div class="line"><a name="l00405"></a><span class="lineno">  405</span>&#160;        0.5f, 0.0f, 0.5f,</div><div class="line"><a name="l00406"></a><span class="lineno">  406</span>&#160;        0.0f, -1.0f, 0.0f</div><div class="line"><a name="l00407"></a><span class="lineno">  407</span>&#160;    };</div><div class="line"><a name="l00408"></a><span class="lineno">  408</span>&#160;    <a class="code" href="classarmnn_1_1_const_tensor.xhtml">ConstTensor</a> weights(weightInfo, weightsData);</div><div class="line"><a name="l00409"></a><span class="lineno">  409</span>&#160;</div><div class="line"><a name="l00410"></a><span class="lineno">  410</span>&#160;    <a class="code" href="classarmnn_1_1_optional.xhtml">armnn::Optional&lt;ConstTensor&gt;</a> optionalBiases;</div><div class="line"><a name="l00411"></a><span class="lineno">  411</span>&#160;    std::vector&lt;float&gt; biasesData{ 1.0f, 0.0f, 0.0f };</div><div class="line"><a name="l00412"></a><span class="lineno">  412</span>&#160;    <a class="code" href="classarmnn_1_1_const_tensor.xhtml">ConstTensor</a> biases(biasInfo, biasesData);</div><div class="line"><a name="l00413"></a><span class="lineno">  413</span>&#160;    optionalBiases = <a class="code" href="classarmnn_1_1_optional.xhtml">armnn::Optional&lt;ConstTensor&gt;</a>(biases);</div><div class="line"><a name="l00414"></a><span class="lineno">  414</span>&#160;</div><div class="line"><a name="l00415"></a><span class="lineno">  415</span>&#160;    <span class="comment">// Input layer</span></div><div class="line"><a name="l00416"></a><span class="lineno">  416</span>&#160;    <a class="code" href="classarmnn_1_1_i_connectable_layer.xhtml">IConnectableLayer</a>* input = net-&gt;AddInputLayer(0, <span class="stringliteral">&quot;input&quot;</span>);</div><div class="line"><a name="l00417"></a><span class="lineno">  417</span>&#160;</div><div class="line"><a name="l00418"></a><span class="lineno">  418</span>&#160;    <span class="comment">// Convolution2d layer</span></div><div class="line"><a name="l00419"></a><span class="lineno">  419</span>&#160;    <a class="code" href="structarmnn_1_1_convolution2d_descriptor.xhtml">Convolution2dDescriptor</a> conv2dDesc;</div><div class="line"><a name="l00420"></a><span class="lineno">  420</span>&#160;    conv2dDesc.<a class="code" href="structarmnn_1_1_convolution2d_descriptor.xhtml#afe6a3377c4531315354def9023c8fdda">m_StrideX</a> = 1;</div><div class="line"><a name="l00421"></a><span class="lineno">  421</span>&#160;    conv2dDesc.<a class="code" href="structarmnn_1_1_convolution2d_descriptor.xhtml#ac1fe174bbadfb39a2b636940c2e647c8">m_StrideY</a> = 1;</div><div class="line"><a name="l00422"></a><span class="lineno">  422</span>&#160;    conv2dDesc.<a class="code" href="structarmnn_1_1_convolution2d_descriptor.xhtml#ac18546ebbebbb32fe0a03baa9bf2c600">m_PadLeft</a> = 0;</div><div class="line"><a name="l00423"></a><span class="lineno">  423</span>&#160;    conv2dDesc.<a class="code" href="structarmnn_1_1_convolution2d_descriptor.xhtml#a002bc30e590d78cbb4f4d12171055ca7">m_PadRight</a> = 0;</div><div class="line"><a name="l00424"></a><span class="lineno">  424</span>&#160;    conv2dDesc.<a class="code" href="structarmnn_1_1_convolution2d_descriptor.xhtml#a56b51f56cef50cdfa554258eecdab046">m_PadTop</a> = 2;</div><div class="line"><a name="l00425"></a><span class="lineno">  425</span>&#160;    conv2dDesc.<a class="code" href="structarmnn_1_1_convolution2d_descriptor.xhtml#aa9e49717ebdb741e8c767741647fc618">m_PadBottom</a> = 2;</div><div class="line"><a name="l00426"></a><span class="lineno">  426</span>&#160;    conv2dDesc.<a class="code" href="structarmnn_1_1_convolution2d_descriptor.xhtml#aea202e14d8874cefd9a0f778022b7e25">m_BiasEnabled</a> = <span class="keyword">true</span>;</div><div class="line"><a name="l00427"></a><span class="lineno">  427</span>&#160;    <a class="code" href="_deprecated_8hpp.xhtml#ab66a241a0ed3ee89c866e777b035d0ed">ARMNN_NO_DEPRECATE_WARN_BEGIN</a></div><div class="line"><a name="l00428"></a><span class="lineno">  428</span>&#160;    <a class="code" href="classarmnn_1_1_i_connectable_layer.xhtml">IConnectableLayer</a>* conv2d = net-&gt;AddConvolution2dLayer(conv2dDesc, weights, optionalBiases);</div><div class="line"><a name="l00429"></a><span class="lineno">  429</span>&#160;    <a class="code" href="_deprecated_8hpp.xhtml#ad762b11b48e5c1d1c1743f529485728a">ARMNN_NO_DEPRECATE_WARN_END</a></div><div class="line"><a name="l00430"></a><span class="lineno">  430</span>&#160;    <span class="comment">// Abs layer</span></div><div class="line"><a name="l00431"></a><span class="lineno">  431</span>&#160;    <a class="code" href="structarmnn_1_1_elementwise_unary_descriptor.xhtml">armnn::ElementwiseUnaryDescriptor</a> absDesc;</div><div class="line"><a name="l00432"></a><span class="lineno">  432</span>&#160;    <a class="code" href="classarmnn_1_1_i_connectable_layer.xhtml">armnn::IConnectableLayer</a>* <span class="keyword">const</span> <a class="code" href="structarmnn_1_1abs.xhtml">abs</a> = net-&gt;AddElementwiseUnaryLayer(absDesc, <span class="stringliteral">&quot;abs&quot;</span>);</div><div class="line"><a name="l00433"></a><span class="lineno">  433</span>&#160;</div><div class="line"><a name="l00434"></a><span class="lineno">  434</span>&#160;    <span class="comment">// Output layer</span></div><div class="line"><a name="l00435"></a><span class="lineno">  435</span>&#160;    <a class="code" href="classarmnn_1_1_i_connectable_layer.xhtml">IConnectableLayer</a>* output = net-&gt;AddOutputLayer(0, <span class="stringliteral">&quot;output&quot;</span>);</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;    input-&gt;GetOutputSlot(0).Connect(conv2d-&gt;GetInputSlot(0));</div><div class="line"><a name="l00438"></a><span class="lineno">  438</span>&#160;    conv2d-&gt;GetOutputSlot(0).Connect(abs-&gt;<a class="code" href="classarmnn_1_1_i_connectable_layer.xhtml#a6ec9e0eb66d7d6a01240492a0b18104c">GetInputSlot</a>(0));</div><div class="line"><a name="l00439"></a><span class="lineno">  439</span>&#160;    abs-&gt;<a class="code" href="classarmnn_1_1_i_connectable_layer.xhtml#a80ac4eda2e7f2757ec9dd96fc96dbd16">GetOutputSlot</a>(0).<a class="code" href="classarmnn_1_1_i_output_slot.xhtml#ac1835f8756a9f03c02fcf9664e3a0fce">Connect</a>(output-&gt;<a class="code" href="classarmnn_1_1_i_connectable_layer.xhtml#a6ec9e0eb66d7d6a01240492a0b18104c">GetInputSlot</a>(0));</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;    input-&gt;GetOutputSlot(0).SetTensorInfo(inputInfo);</div><div class="line"><a name="l00442"></a><span class="lineno">  442</span>&#160;    conv2d-&gt;GetOutputSlot(0).SetTensorInfo(outputInfo);</div><div class="line"><a name="l00443"></a><span class="lineno">  443</span>&#160;    abs-&gt;<a class="code" href="classarmnn_1_1_i_connectable_layer.xhtml#a80ac4eda2e7f2757ec9dd96fc96dbd16">GetOutputSlot</a>(0).<a class="code" href="classarmnn_1_1_i_output_slot.xhtml#a5ee4a6c9a2481245487b1b1a70d20fd0">SetTensorInfo</a>(outputInfo);</div><div class="line"><a name="l00444"></a><span class="lineno">  444</span>&#160;</div><div class="line"><a name="l00445"></a><span class="lineno">  445</span>&#160;    <span class="comment">// optimize the network</span></div><div class="line"><a name="l00446"></a><span class="lineno">  446</span>&#160;    std::vector&lt;armnn::BackendId&gt; backends = { backendId };</div><div class="line"><a name="l00447"></a><span class="lineno">  447</span>&#160;    <a class="code" href="namespacearmnn.xhtml#a674efcf6cbdb9e831d653ff0e821fb38">IOptimizedNetworkPtr</a> optNet = <a class="code" href="namespacearmnn.xhtml#a82e98ef05fd67036d1195ba17174d685">Optimize</a>(*net, backends, runtime.<a class="code" href="structarmnn_1_1_runtime_impl.xhtml#ace3a3fbd42ff981af628e91fbeb254d5">GetDeviceSpec</a>());</div><div class="line"><a name="l00448"></a><span class="lineno">  448</span>&#160;</div><div class="line"><a name="l00449"></a><span class="lineno">  449</span>&#160;    ProfilingGuid optNetGuid = optNet-&gt;GetGuid();</div><div class="line"><a name="l00450"></a><span class="lineno">  450</span>&#160;</div><div class="line"><a name="l00451"></a><span class="lineno">  451</span>&#160;    <span class="comment">// Load it into the runtime. It should success.</span></div><div class="line"><a name="l00452"></a><span class="lineno">  452</span>&#160;    <a class="code" href="namespacearmnn.xhtml#a0d8160388a127c1a23b37bc88dc6e2ec">armnn::NetworkId</a> netId;</div><div class="line"><a name="l00453"></a><span class="lineno">  453</span>&#160;    CHECK(runtime.<a class="code" href="structarmnn_1_1_runtime_impl.xhtml#af92b5ae61208a778571bcea7e6aac7b4">LoadNetwork</a>(netId, std::move(optNet)) == <a class="code" href="namespacearmnn.xhtml#a67a0db04d321a74b7e7fcfd3f1a3f70ba505a83f220c02df2f85c3810cd9ceb38">Status::Success</a>);</div><div class="line"><a name="l00454"></a><span class="lineno">  454</span>&#160;</div><div class="line"><a name="l00455"></a><span class="lineno">  455</span>&#160;    BufferManager&amp; bufferManager = profilingServiceHelper.<a class="code" href="classarm_1_1pipe_1_1_profiling_service_runtime_helper.xhtml#a33b6add40a385911fe653ac446124deb">GetProfilingBufferManager</a>();</div><div class="line"><a name="l00456"></a><span class="lineno">  456</span>&#160;    <span class="keyword">auto</span> readableBuffer = bufferManager.GetReadableBuffer();</div><div class="line"><a name="l00457"></a><span class="lineno">  457</span>&#160;</div><div class="line"><a name="l00458"></a><span class="lineno">  458</span>&#160;    <span class="comment">// Profiling is enabled, the post-optimisation structure should be created</span></div><div class="line"><a name="l00459"></a><span class="lineno">  459</span>&#160;    CHECK(readableBuffer != <span class="keyword">nullptr</span>);</div><div class="line"><a name="l00460"></a><span class="lineno">  460</span>&#160;    <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> size = readableBuffer-&gt;GetSize();</div><div class="line"><a name="l00461"></a><span class="lineno">  461</span>&#160;</div><div class="line"><a name="l00462"></a><span class="lineno">  462</span>&#160;    <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>* readableData = readableBuffer-&gt;GetReadableData();</div><div class="line"><a name="l00463"></a><span class="lineno">  463</span>&#160;    CHECK(readableData != <span class="keyword">nullptr</span>);</div><div class="line"><a name="l00464"></a><span class="lineno">  464</span>&#160;</div><div class="line"><a name="l00465"></a><span class="lineno">  465</span>&#160;    <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> offset = 0;</div><div class="line"><a name="l00466"></a><span class="lineno">  466</span>&#160;</div><div class="line"><a name="l00467"></a><span class="lineno">  467</span>&#160;    <span class="comment">// Verify Header</span></div><div class="line"><a name="l00468"></a><span class="lineno">  468</span>&#160;    <a class="code" href="_profiling_test_utils_8cpp.xhtml#a6bd6e8ba2f989621f7348d2bb6ce13a4">VerifyTimelineHeaderBinary</a>(readableData, offset, size - 8);</div><div class="line"><a name="l00469"></a><span class="lineno">  469</span>&#160;</div><div class="line"><a name="l00470"></a><span class="lineno">  470</span>&#160;    <span class="comment">// Post-optimisation network</span></div><div class="line"><a name="l00471"></a><span class="lineno">  471</span>&#160;    <span class="comment">// Network entity</span></div><div class="line"><a name="l00472"></a><span class="lineno">  472</span>&#160;    <a class="code" href="_profiling_test_utils_8cpp.xhtml#aca439c1ce381920dc07fbb20aa7ab747">VerifyTimelineEntityBinaryPacketData</a>(optNetGuid, readableData, offset);</div><div class="line"><a name="l00473"></a><span class="lineno">  473</span>&#160;</div><div class="line"><a name="l00474"></a><span class="lineno">  474</span>&#160;    <span class="comment">// Entity - Type relationship</span></div><div class="line"><a name="l00475"></a><span class="lineno">  475</span>&#160;    <a class="code" href="_profiling_test_utils_8cpp.xhtml#af25b6f3b19654d8d589e54e4e1404acb">VerifyTimelineRelationshipBinaryPacketData</a>(ProfilingRelationshipType::LabelLink,</div><div class="line"><a name="l00476"></a><span class="lineno">  476</span>&#160;                                               arm::pipe::EmptyOptional(),</div><div class="line"><a name="l00477"></a><span class="lineno">  477</span>&#160;                                               optNetGuid,</div><div class="line"><a name="l00478"></a><span class="lineno">  478</span>&#160;                                               LabelsAndEventClasses::NETWORK_GUID,</div><div class="line"><a name="l00479"></a><span class="lineno">  479</span>&#160;                                               LabelsAndEventClasses::TYPE_GUID,</div><div class="line"><a name="l00480"></a><span class="lineno">  480</span>&#160;                                               readableData,</div><div class="line"><a name="l00481"></a><span class="lineno">  481</span>&#160;                                               offset);</div><div class="line"><a name="l00482"></a><span class="lineno">  482</span>&#160;</div><div class="line"><a name="l00483"></a><span class="lineno">  483</span>&#160;    <span class="comment">// Network - START OF LIFE</span></div><div class="line"><a name="l00484"></a><span class="lineno">  484</span>&#160;    ProfilingGuid networkSolEventGuid = <a class="code" href="_profiling_test_utils_8cpp.xhtml#ac6ded51288940367b65287093e49ffa5">VerifyTimelineEventBinaryPacket</a>(arm::pipe::EmptyOptional(),</div><div class="line"><a name="l00485"></a><span class="lineno">  485</span>&#160;                                                                        arm::pipe::EmptyOptional(),</div><div class="line"><a name="l00486"></a><span class="lineno">  486</span>&#160;                                                                        arm::pipe::EmptyOptional(),</div><div class="line"><a name="l00487"></a><span class="lineno">  487</span>&#160;                                                                        readableData,</div><div class="line"><a name="l00488"></a><span class="lineno">  488</span>&#160;                                                                        offset);</div><div class="line"><a name="l00489"></a><span class="lineno">  489</span>&#160;</div><div class="line"><a name="l00490"></a><span class="lineno">  490</span>&#160;    <span class="comment">// Network - START OF LIFE event relationship</span></div><div class="line"><a name="l00491"></a><span class="lineno">  491</span>&#160;    <a class="code" href="_profiling_test_utils_8cpp.xhtml#af25b6f3b19654d8d589e54e4e1404acb">VerifyTimelineRelationshipBinaryPacketData</a>(ProfilingRelationshipType::ExecutionLink,</div><div class="line"><a name="l00492"></a><span class="lineno">  492</span>&#160;                                               arm::pipe::EmptyOptional(),</div><div class="line"><a name="l00493"></a><span class="lineno">  493</span>&#160;                                               optNetGuid,</div><div class="line"><a name="l00494"></a><span class="lineno">  494</span>&#160;                                               networkSolEventGuid,</div><div class="line"><a name="l00495"></a><span class="lineno">  495</span>&#160;                                               LabelsAndEventClasses::ARMNN_PROFILING_SOL_EVENT_CLASS,</div><div class="line"><a name="l00496"></a><span class="lineno">  496</span>&#160;                                               readableData,</div><div class="line"><a name="l00497"></a><span class="lineno">  497</span>&#160;                                               offset);</div><div class="line"><a name="l00498"></a><span class="lineno">  498</span>&#160;</div><div class="line"><a name="l00499"></a><span class="lineno">  499</span>&#160;    <span class="comment">// Process ID Label</span></div><div class="line"><a name="l00500"></a><span class="lineno">  500</span>&#160;    <span class="keywordtype">int</span> processID = arm::pipe::GetCurrentProcessId();</div><div class="line"><a name="l00501"></a><span class="lineno">  501</span>&#160;    std::stringstream ss;</div><div class="line"><a name="l00502"></a><span class="lineno">  502</span>&#160;    ss &lt;&lt; processID;</div><div class="line"><a name="l00503"></a><span class="lineno">  503</span>&#160;    std::string processIdLabel = ss.str();</div><div class="line"><a name="l00504"></a><span class="lineno">  504</span>&#160;    <a class="code" href="_profiling_test_utils_8cpp.xhtml#a845d7ded3f1981b1a101c23465f99407">VerifyTimelineLabelBinaryPacketData</a>(</div><div class="line"><a name="l00505"></a><span class="lineno">  505</span>&#160;        arm::pipe::EmptyOptional(), processIdLabel, readableData, offset);</div><div class="line"><a name="l00506"></a><span class="lineno">  506</span>&#160;</div><div class="line"><a name="l00507"></a><span class="lineno">  507</span>&#160;    <span class="comment">// Entity - Process ID relationship</span></div><div class="line"><a name="l00508"></a><span class="lineno">  508</span>&#160;    <a class="code" href="_profiling_test_utils_8cpp.xhtml#af25b6f3b19654d8d589e54e4e1404acb">VerifyTimelineRelationshipBinaryPacketData</a>(ProfilingRelationshipType::LabelLink,</div><div class="line"><a name="l00509"></a><span class="lineno">  509</span>&#160;                                               arm::pipe::EmptyOptional(),</div><div class="line"><a name="l00510"></a><span class="lineno">  510</span>&#160;                                               optNetGuid,</div><div class="line"><a name="l00511"></a><span class="lineno">  511</span>&#160;                                               arm::pipe::EmptyOptional(),</div><div class="line"><a name="l00512"></a><span class="lineno">  512</span>&#160;                                               LabelsAndEventClasses::PROCESS_ID_GUID,</div><div class="line"><a name="l00513"></a><span class="lineno">  513</span>&#160;                                               readableData,</div><div class="line"><a name="l00514"></a><span class="lineno">  514</span>&#160;                                               offset);</div><div class="line"><a name="l00515"></a><span class="lineno">  515</span>&#160;</div><div class="line"><a name="l00516"></a><span class="lineno">  516</span>&#160;    <span class="comment">// Input layer</span></div><div class="line"><a name="l00517"></a><span class="lineno">  517</span>&#160;    <span class="comment">// Input layer entity</span></div><div class="line"><a name="l00518"></a><span class="lineno">  518</span>&#160;    <a class="code" href="_profiling_test_utils_8cpp.xhtml#aca439c1ce381920dc07fbb20aa7ab747">VerifyTimelineEntityBinaryPacketData</a>(input-&gt;GetGuid(), readableData, offset);</div><div class="line"><a name="l00519"></a><span class="lineno">  519</span>&#160;    <span class="comment">// Name Entity</span></div><div class="line"><a name="l00520"></a><span class="lineno">  520</span>&#160;    ProfilingGuid inputLabelGuid = <a class="code" href="_profiling_test_utils_8cpp.xhtml#a845d7ded3f1981b1a101c23465f99407">VerifyTimelineLabelBinaryPacketData</a>(</div><div class="line"><a name="l00521"></a><span class="lineno">  521</span>&#160;        arm::pipe::EmptyOptional(), <span class="stringliteral">&quot;input&quot;</span>, readableData, offset);</div><div class="line"><a name="l00522"></a><span class="lineno">  522</span>&#160;</div><div class="line"><a name="l00523"></a><span class="lineno">  523</span>&#160;    <span class="comment">// Entity - Name relationship</span></div><div class="line"><a name="l00524"></a><span class="lineno">  524</span>&#160;    <a class="code" href="_profiling_test_utils_8cpp.xhtml#af25b6f3b19654d8d589e54e4e1404acb">VerifyTimelineRelationshipBinaryPacketData</a>(ProfilingRelationshipType::LabelLink,</div><div class="line"><a name="l00525"></a><span class="lineno">  525</span>&#160;                                               arm::pipe::EmptyOptional(),</div><div class="line"><a name="l00526"></a><span class="lineno">  526</span>&#160;                                               input-&gt;GetGuid(),</div><div class="line"><a name="l00527"></a><span class="lineno">  527</span>&#160;                                               inputLabelGuid,</div><div class="line"><a name="l00528"></a><span class="lineno">  528</span>&#160;                                               LabelsAndEventClasses::NAME_GUID,</div><div class="line"><a name="l00529"></a><span class="lineno">  529</span>&#160;                                               readableData,</div><div class="line"><a name="l00530"></a><span class="lineno">  530</span>&#160;                                               offset);</div><div class="line"><a name="l00531"></a><span class="lineno">  531</span>&#160;</div><div class="line"><a name="l00532"></a><span class="lineno">  532</span>&#160;    <span class="comment">// Entity - Type relationship</span></div><div class="line"><a name="l00533"></a><span class="lineno">  533</span>&#160;    <a class="code" href="_profiling_test_utils_8cpp.xhtml#af25b6f3b19654d8d589e54e4e1404acb">VerifyTimelineRelationshipBinaryPacketData</a>(ProfilingRelationshipType::LabelLink,</div><div class="line"><a name="l00534"></a><span class="lineno">  534</span>&#160;                                               arm::pipe::EmptyOptional(),</div><div class="line"><a name="l00535"></a><span class="lineno">  535</span>&#160;                                               input-&gt;GetGuid(),</div><div class="line"><a name="l00536"></a><span class="lineno">  536</span>&#160;                                               LabelsAndEventClasses::LAYER_GUID,</div><div class="line"><a name="l00537"></a><span class="lineno">  537</span>&#160;                                               LabelsAndEventClasses::TYPE_GUID,</div><div class="line"><a name="l00538"></a><span class="lineno">  538</span>&#160;                                               readableData,</div><div class="line"><a name="l00539"></a><span class="lineno">  539</span>&#160;                                               offset);</div><div class="line"><a name="l00540"></a><span class="lineno">  540</span>&#160;</div><div class="line"><a name="l00541"></a><span class="lineno">  541</span>&#160;    <span class="comment">// Network - Input layer relationship</span></div><div class="line"><a name="l00542"></a><span class="lineno">  542</span>&#160;    <a class="code" href="_profiling_test_utils_8cpp.xhtml#af25b6f3b19654d8d589e54e4e1404acb">VerifyTimelineRelationshipBinaryPacketData</a>(ProfilingRelationshipType::RetentionLink,</div><div class="line"><a name="l00543"></a><span class="lineno">  543</span>&#160;                                               arm::pipe::EmptyOptional(),</div><div class="line"><a name="l00544"></a><span class="lineno">  544</span>&#160;                                               optNetGuid,</div><div class="line"><a name="l00545"></a><span class="lineno">  545</span>&#160;                                               input-&gt;GetGuid(),</div><div class="line"><a name="l00546"></a><span class="lineno">  546</span>&#160;                                               LabelsAndEventClasses::CHILD_GUID,</div><div class="line"><a name="l00547"></a><span class="lineno">  547</span>&#160;                                               readableData,</div><div class="line"><a name="l00548"></a><span class="lineno">  548</span>&#160;                                               offset);</div><div class="line"><a name="l00549"></a><span class="lineno">  549</span>&#160;</div><div class="line"><a name="l00550"></a><span class="lineno">  550</span>&#160;    <span class="comment">// Weights layer</span></div><div class="line"><a name="l00551"></a><span class="lineno">  551</span>&#160;    <span class="comment">//  We will not check the GUID from the packets since we haven&#39;t direct access to the layer</span></div><div class="line"><a name="l00552"></a><span class="lineno">  552</span>&#160;    <span class="comment">//  The GUID will change depending on the number of tests ran since we do are not explicitly resetting the</span></div><div class="line"><a name="l00553"></a><span class="lineno">  553</span>&#160;    <span class="comment">//  ProfilingGuid counter at the beginning of this test</span></div><div class="line"><a name="l00554"></a><span class="lineno">  554</span>&#160;</div><div class="line"><a name="l00555"></a><span class="lineno">  555</span>&#160;</div><div class="line"><a name="l00556"></a><span class="lineno">  556</span>&#160;    <span class="comment">// Weights layer entity</span></div><div class="line"><a name="l00557"></a><span class="lineno">  557</span>&#160;    <a class="code" href="_profiling_test_utils_8cpp.xhtml#aca439c1ce381920dc07fbb20aa7ab747">VerifyTimelineEntityBinaryPacketData</a>( arm::pipe::EmptyOptional(), readableData, offset);</div><div class="line"><a name="l00558"></a><span class="lineno">  558</span>&#160;</div><div class="line"><a name="l00559"></a><span class="lineno">  559</span>&#160;    <span class="comment">// Name entity</span></div><div class="line"><a name="l00560"></a><span class="lineno">  560</span>&#160;    ProfilingGuid weightsNameLabelGuid = <a class="code" href="_profiling_test_utils_8cpp.xhtml#a845d7ded3f1981b1a101c23465f99407">VerifyTimelineLabelBinaryPacketData</a>(</div><div class="line"><a name="l00561"></a><span class="lineno">  561</span>&#160;        arm::pipe::EmptyOptional(), <span class="stringliteral">&quot;Weights&quot;</span>, readableData, offset);</div><div class="line"><a name="l00562"></a><span class="lineno">  562</span>&#160;</div><div class="line"><a name="l00563"></a><span class="lineno">  563</span>&#160;    <span class="comment">// Entity - Name relationship</span></div><div class="line"><a name="l00564"></a><span class="lineno">  564</span>&#160;    <a class="code" href="_profiling_test_utils_8cpp.xhtml#af25b6f3b19654d8d589e54e4e1404acb">VerifyTimelineRelationshipBinaryPacketData</a>(ProfilingRelationshipType::LabelLink,</div><div class="line"><a name="l00565"></a><span class="lineno">  565</span>&#160;                                               arm::pipe::EmptyOptional(),</div><div class="line"><a name="l00566"></a><span class="lineno">  566</span>&#160;                                               arm::pipe::EmptyOptional(),</div><div class="line"><a name="l00567"></a><span class="lineno">  567</span>&#160;                                               weightsNameLabelGuid,</div><div class="line"><a name="l00568"></a><span class="lineno">  568</span>&#160;                                               LabelsAndEventClasses::NAME_GUID,</div><div class="line"><a name="l00569"></a><span class="lineno">  569</span>&#160;                                               readableData,</div><div class="line"><a name="l00570"></a><span class="lineno">  570</span>&#160;                                               offset);</div><div class="line"><a name="l00571"></a><span class="lineno">  571</span>&#160;</div><div class="line"><a name="l00572"></a><span class="lineno">  572</span>&#160;    <span class="comment">// Entity - Type relationship</span></div><div class="line"><a name="l00573"></a><span class="lineno">  573</span>&#160;    <a class="code" href="_profiling_test_utils_8cpp.xhtml#af25b6f3b19654d8d589e54e4e1404acb">VerifyTimelineRelationshipBinaryPacketData</a>(ProfilingRelationshipType::LabelLink,</div><div class="line"><a name="l00574"></a><span class="lineno">  574</span>&#160;                                               arm::pipe::EmptyOptional(),</div><div class="line"><a name="l00575"></a><span class="lineno">  575</span>&#160;                                               arm::pipe::EmptyOptional(),</div><div class="line"><a name="l00576"></a><span class="lineno">  576</span>&#160;                                               LabelsAndEventClasses::LAYER_GUID,</div><div class="line"><a name="l00577"></a><span class="lineno">  577</span>&#160;                                               LabelsAndEventClasses::TYPE_GUID,</div><div class="line"><a name="l00578"></a><span class="lineno">  578</span>&#160;                                               readableData,</div><div class="line"><a name="l00579"></a><span class="lineno">  579</span>&#160;                                               offset);</div><div class="line"><a name="l00580"></a><span class="lineno">  580</span>&#160;</div><div class="line"><a name="l00581"></a><span class="lineno">  581</span>&#160;    <span class="comment">// Network - Weights layer relationship</span></div><div class="line"><a name="l00582"></a><span class="lineno">  582</span>&#160;    <a class="code" href="_profiling_test_utils_8cpp.xhtml#af25b6f3b19654d8d589e54e4e1404acb">VerifyTimelineRelationshipBinaryPacketData</a>(ProfilingRelationshipType::RetentionLink,</div><div class="line"><a name="l00583"></a><span class="lineno">  583</span>&#160;                                               arm::pipe::EmptyOptional(),</div><div class="line"><a name="l00584"></a><span class="lineno">  584</span>&#160;                                               optNetGuid,</div><div class="line"><a name="l00585"></a><span class="lineno">  585</span>&#160;                                               arm::pipe::EmptyOptional(),</div><div class="line"><a name="l00586"></a><span class="lineno">  586</span>&#160;                                               LabelsAndEventClasses::CHILD_GUID,</div><div class="line"><a name="l00587"></a><span class="lineno">  587</span>&#160;                                               readableData,</div><div class="line"><a name="l00588"></a><span class="lineno">  588</span>&#160;                                               offset);</div><div class="line"><a name="l00589"></a><span class="lineno">  589</span>&#160;</div><div class="line"><a name="l00590"></a><span class="lineno">  590</span>&#160;    <span class="comment">// Weights workload</span></div><div class="line"><a name="l00591"></a><span class="lineno">  591</span>&#160;    <span class="comment">// Weights workload entity</span></div><div class="line"><a name="l00592"></a><span class="lineno">  592</span>&#160;    ProfilingGuid weightsWorkloadGuid = <a class="code" href="_profiling_test_utils_8cpp.xhtml#aca439c1ce381920dc07fbb20aa7ab747">VerifyTimelineEntityBinaryPacketData</a>(</div><div class="line"><a name="l00593"></a><span class="lineno">  593</span>&#160;        arm::pipe::EmptyOptional(), readableData, offset);</div><div class="line"><a name="l00594"></a><span class="lineno">  594</span>&#160;</div><div class="line"><a name="l00595"></a><span class="lineno">  595</span>&#160;    <span class="comment">// Entity - Type relationship</span></div><div class="line"><a name="l00596"></a><span class="lineno">  596</span>&#160;    <a class="code" href="_profiling_test_utils_8cpp.xhtml#af25b6f3b19654d8d589e54e4e1404acb">VerifyTimelineRelationshipBinaryPacketData</a>(ProfilingRelationshipType::LabelLink,</div><div class="line"><a name="l00597"></a><span class="lineno">  597</span>&#160;                                               arm::pipe::EmptyOptional(),</div><div class="line"><a name="l00598"></a><span class="lineno">  598</span>&#160;                                               weightsWorkloadGuid,</div><div class="line"><a name="l00599"></a><span class="lineno">  599</span>&#160;                                               LabelsAndEventClasses::WORKLOAD_GUID,</div><div class="line"><a name="l00600"></a><span class="lineno">  600</span>&#160;                                               LabelsAndEventClasses::TYPE_GUID,</div><div class="line"><a name="l00601"></a><span class="lineno">  601</span>&#160;                                               readableData,</div><div class="line"><a name="l00602"></a><span class="lineno">  602</span>&#160;                                               offset);</div><div class="line"><a name="l00603"></a><span class="lineno">  603</span>&#160;</div><div class="line"><a name="l00604"></a><span class="lineno">  604</span>&#160;    <span class="comment">// BackendId entity</span></div><div class="line"><a name="l00605"></a><span class="lineno">  605</span>&#160;    ProfilingGuid backendIdLabelGuid = <a class="code" href="_profiling_test_utils_8cpp.xhtml#a845d7ded3f1981b1a101c23465f99407">VerifyTimelineLabelBinaryPacketData</a>(</div><div class="line"><a name="l00606"></a><span class="lineno">  606</span>&#160;        arm::pipe::EmptyOptional(), backendId.<a class="code" href="classarmnn_1_1_backend_id.xhtml#af7445617163d3f07c47b92ae56c6cf8b">Get</a>(), readableData, offset);</div><div class="line"><a name="l00607"></a><span class="lineno">  607</span>&#160;</div><div class="line"><a name="l00608"></a><span class="lineno">  608</span>&#160;    <span class="comment">// Entity - BackendId relationship</span></div><div class="line"><a name="l00609"></a><span class="lineno">  609</span>&#160;    <a class="code" href="_profiling_test_utils_8cpp.xhtml#af25b6f3b19654d8d589e54e4e1404acb">VerifyTimelineRelationshipBinaryPacketData</a>(ProfilingRelationshipType::LabelLink,</div><div class="line"><a name="l00610"></a><span class="lineno">  610</span>&#160;                                               arm::pipe::EmptyOptional(),</div><div class="line"><a name="l00611"></a><span class="lineno">  611</span>&#160;                                               weightsWorkloadGuid,</div><div class="line"><a name="l00612"></a><span class="lineno">  612</span>&#160;                                               backendIdLabelGuid,</div><div class="line"><a name="l00613"></a><span class="lineno">  613</span>&#160;                                               LabelsAndEventClasses::BACKENDID_GUID,</div><div class="line"><a name="l00614"></a><span class="lineno">  614</span>&#160;                                               readableData,</div><div class="line"><a name="l00615"></a><span class="lineno">  615</span>&#160;                                               offset);</div><div class="line"><a name="l00616"></a><span class="lineno">  616</span>&#160;</div><div class="line"><a name="l00617"></a><span class="lineno">  617</span>&#160;</div><div class="line"><a name="l00618"></a><span class="lineno">  618</span>&#160;    <span class="comment">// Weights layer - Weights workload relationship</span></div><div class="line"><a name="l00619"></a><span class="lineno">  619</span>&#160;    <a class="code" href="_profiling_test_utils_8cpp.xhtml#af25b6f3b19654d8d589e54e4e1404acb">VerifyTimelineRelationshipBinaryPacketData</a>(ProfilingRelationshipType::RetentionLink,</div><div class="line"><a name="l00620"></a><span class="lineno">  620</span>&#160;                                               arm::pipe::EmptyOptional(),</div><div class="line"><a name="l00621"></a><span class="lineno">  621</span>&#160;                                               arm::pipe::EmptyOptional(),</div><div class="line"><a name="l00622"></a><span class="lineno">  622</span>&#160;                                               weightsWorkloadGuid,</div><div class="line"><a name="l00623"></a><span class="lineno">  623</span>&#160;                                               LabelsAndEventClasses::CHILD_GUID,</div><div class="line"><a name="l00624"></a><span class="lineno">  624</span>&#160;                                               readableData,</div><div class="line"><a name="l00625"></a><span class="lineno">  625</span>&#160;                                               offset);</div><div class="line"><a name="l00626"></a><span class="lineno">  626</span>&#160;</div><div class="line"><a name="l00627"></a><span class="lineno">  627</span>&#160;    <span class="comment">// Bias layer</span></div><div class="line"><a name="l00628"></a><span class="lineno">  628</span>&#160;    <span class="comment">//  We will not check the GUID from the packets since we haven&#39;t direct access to the layer</span></div><div class="line"><a name="l00629"></a><span class="lineno">  629</span>&#160;    <span class="comment">//  The GUID will change depending on the number of tests ran since we do are not explicitly resetting the</span></div><div class="line"><a name="l00630"></a><span class="lineno">  630</span>&#160;    <span class="comment">//  ProfilingGuid counter at the beginning of this test</span></div><div class="line"><a name="l00631"></a><span class="lineno">  631</span>&#160;</div><div class="line"><a name="l00632"></a><span class="lineno">  632</span>&#160;    <span class="comment">// Bias layer entity</span></div><div class="line"><a name="l00633"></a><span class="lineno">  633</span>&#160;    <a class="code" href="_profiling_test_utils_8cpp.xhtml#aca439c1ce381920dc07fbb20aa7ab747">VerifyTimelineEntityBinaryPacketData</a>(arm::pipe::EmptyOptional(), readableData, offset);</div><div class="line"><a name="l00634"></a><span class="lineno">  634</span>&#160;</div><div class="line"><a name="l00635"></a><span class="lineno">  635</span>&#160;    <span class="comment">// Name entity</span></div><div class="line"><a name="l00636"></a><span class="lineno">  636</span>&#160;    ProfilingGuid biasNameLabelGuid = <a class="code" href="_profiling_test_utils_8cpp.xhtml#a845d7ded3f1981b1a101c23465f99407">VerifyTimelineLabelBinaryPacketData</a>(</div><div class="line"><a name="l00637"></a><span class="lineno">  637</span>&#160;        arm::pipe::EmptyOptional(), <span class="stringliteral">&quot;Bias&quot;</span>, readableData, offset);</div><div class="line"><a name="l00638"></a><span class="lineno">  638</span>&#160;</div><div class="line"><a name="l00639"></a><span class="lineno">  639</span>&#160;    <span class="comment">// Entity - Name relationship</span></div><div class="line"><a name="l00640"></a><span class="lineno">  640</span>&#160;    <a class="code" href="_profiling_test_utils_8cpp.xhtml#af25b6f3b19654d8d589e54e4e1404acb">VerifyTimelineRelationshipBinaryPacketData</a>(ProfilingRelationshipType::LabelLink,</div><div class="line"><a name="l00641"></a><span class="lineno">  641</span>&#160;                                               arm::pipe::EmptyOptional(),</div><div class="line"><a name="l00642"></a><span class="lineno">  642</span>&#160;                                               arm::pipe::EmptyOptional(),</div><div class="line"><a name="l00643"></a><span class="lineno">  643</span>&#160;                                               biasNameLabelGuid,</div><div class="line"><a name="l00644"></a><span class="lineno">  644</span>&#160;                                               LabelsAndEventClasses::NAME_GUID,</div><div class="line"><a name="l00645"></a><span class="lineno">  645</span>&#160;                                               readableData,</div><div class="line"><a name="l00646"></a><span class="lineno">  646</span>&#160;                                               offset);</div><div class="line"><a name="l00647"></a><span class="lineno">  647</span>&#160;</div><div class="line"><a name="l00648"></a><span class="lineno">  648</span>&#160;    <span class="comment">// Entity - Type relationship</span></div><div class="line"><a name="l00649"></a><span class="lineno">  649</span>&#160;    <a class="code" href="_profiling_test_utils_8cpp.xhtml#af25b6f3b19654d8d589e54e4e1404acb">VerifyTimelineRelationshipBinaryPacketData</a>(ProfilingRelationshipType::LabelLink,</div><div class="line"><a name="l00650"></a><span class="lineno">  650</span>&#160;                                               arm::pipe::EmptyOptional(),</div><div class="line"><a name="l00651"></a><span class="lineno">  651</span>&#160;                                               arm::pipe::EmptyOptional(),</div><div class="line"><a name="l00652"></a><span class="lineno">  652</span>&#160;                                               LabelsAndEventClasses::LAYER_GUID,</div><div class="line"><a name="l00653"></a><span class="lineno">  653</span>&#160;                                               LabelsAndEventClasses::TYPE_GUID,</div><div class="line"><a name="l00654"></a><span class="lineno">  654</span>&#160;                                               readableData,</div><div class="line"><a name="l00655"></a><span class="lineno">  655</span>&#160;                                               offset);</div><div class="line"><a name="l00656"></a><span class="lineno">  656</span>&#160;</div><div class="line"><a name="l00657"></a><span class="lineno">  657</span>&#160;    <span class="comment">// Network - Bias layer relationship</span></div><div class="line"><a name="l00658"></a><span class="lineno">  658</span>&#160;    <a class="code" href="_profiling_test_utils_8cpp.xhtml#af25b6f3b19654d8d589e54e4e1404acb">VerifyTimelineRelationshipBinaryPacketData</a>(ProfilingRelationshipType::RetentionLink,</div><div class="line"><a name="l00659"></a><span class="lineno">  659</span>&#160;                                               arm::pipe::EmptyOptional(),</div><div class="line"><a name="l00660"></a><span class="lineno">  660</span>&#160;                                               optNetGuid,</div><div class="line"><a name="l00661"></a><span class="lineno">  661</span>&#160;                                               arm::pipe::EmptyOptional(),</div><div class="line"><a name="l00662"></a><span class="lineno">  662</span>&#160;                                               LabelsAndEventClasses::CHILD_GUID,</div><div class="line"><a name="l00663"></a><span class="lineno">  663</span>&#160;                                               readableData,</div><div class="line"><a name="l00664"></a><span class="lineno">  664</span>&#160;                                               offset);</div><div class="line"><a name="l00665"></a><span class="lineno">  665</span>&#160;</div><div class="line"><a name="l00666"></a><span class="lineno">  666</span>&#160;    <span class="comment">// Bias workload</span></div><div class="line"><a name="l00667"></a><span class="lineno">  667</span>&#160;    <span class="comment">// Bias workload entity</span></div><div class="line"><a name="l00668"></a><span class="lineno">  668</span>&#160;    ProfilingGuid biasWorkloadGuid = <a class="code" href="_profiling_test_utils_8cpp.xhtml#aca439c1ce381920dc07fbb20aa7ab747">VerifyTimelineEntityBinaryPacketData</a>(</div><div class="line"><a name="l00669"></a><span class="lineno">  669</span>&#160;        arm::pipe::EmptyOptional(), readableData, offset);</div><div class="line"><a name="l00670"></a><span class="lineno">  670</span>&#160;</div><div class="line"><a name="l00671"></a><span class="lineno">  671</span>&#160;    <span class="comment">// Entity - Type relationship</span></div><div class="line"><a name="l00672"></a><span class="lineno">  672</span>&#160;    <a class="code" href="_profiling_test_utils_8cpp.xhtml#af25b6f3b19654d8d589e54e4e1404acb">VerifyTimelineRelationshipBinaryPacketData</a>(ProfilingRelationshipType::LabelLink,</div><div class="line"><a name="l00673"></a><span class="lineno">  673</span>&#160;                                               arm::pipe::EmptyOptional(),</div><div class="line"><a name="l00674"></a><span class="lineno">  674</span>&#160;                                               biasWorkloadGuid,</div><div class="line"><a name="l00675"></a><span class="lineno">  675</span>&#160;                                               LabelsAndEventClasses::WORKLOAD_GUID,</div><div class="line"><a name="l00676"></a><span class="lineno">  676</span>&#160;                                               LabelsAndEventClasses::TYPE_GUID,</div><div class="line"><a name="l00677"></a><span class="lineno">  677</span>&#160;                                               readableData,</div><div class="line"><a name="l00678"></a><span class="lineno">  678</span>&#160;                                               offset);</div><div class="line"><a name="l00679"></a><span class="lineno">  679</span>&#160;</div><div class="line"><a name="l00680"></a><span class="lineno">  680</span>&#160;    <span class="comment">// BackendId entity</span></div><div class="line"><a name="l00681"></a><span class="lineno">  681</span>&#160;    backendIdLabelGuid = <a class="code" href="_profiling_test_utils_8cpp.xhtml#a845d7ded3f1981b1a101c23465f99407">VerifyTimelineLabelBinaryPacketData</a>(</div><div class="line"><a name="l00682"></a><span class="lineno">  682</span>&#160;        arm::pipe::EmptyOptional(), backendId.<a class="code" href="classarmnn_1_1_backend_id.xhtml#af7445617163d3f07c47b92ae56c6cf8b">Get</a>(), readableData, offset);</div><div class="line"><a name="l00683"></a><span class="lineno">  683</span>&#160;</div><div class="line"><a name="l00684"></a><span class="lineno">  684</span>&#160;    <span class="comment">// Entity - BackendId relationship</span></div><div class="line"><a name="l00685"></a><span class="lineno">  685</span>&#160;    <a class="code" href="_profiling_test_utils_8cpp.xhtml#af25b6f3b19654d8d589e54e4e1404acb">VerifyTimelineRelationshipBinaryPacketData</a>(ProfilingRelationshipType::LabelLink,</div><div class="line"><a name="l00686"></a><span class="lineno">  686</span>&#160;                                               arm::pipe::EmptyOptional(),</div><div class="line"><a name="l00687"></a><span class="lineno">  687</span>&#160;                                               biasWorkloadGuid,</div><div class="line"><a name="l00688"></a><span class="lineno">  688</span>&#160;                                               backendIdLabelGuid,</div><div class="line"><a name="l00689"></a><span class="lineno">  689</span>&#160;                                               LabelsAndEventClasses::BACKENDID_GUID,</div><div class="line"><a name="l00690"></a><span class="lineno">  690</span>&#160;                                               readableData,</div><div class="line"><a name="l00691"></a><span class="lineno">  691</span>&#160;                                               offset);</div><div class="line"><a name="l00692"></a><span class="lineno">  692</span>&#160;</div><div class="line"><a name="l00693"></a><span class="lineno">  693</span>&#160;</div><div class="line"><a name="l00694"></a><span class="lineno">  694</span>&#160;    <span class="comment">// Bias layer - Bias workload relationship</span></div><div class="line"><a name="l00695"></a><span class="lineno">  695</span>&#160;    <a class="code" href="_profiling_test_utils_8cpp.xhtml#af25b6f3b19654d8d589e54e4e1404acb">VerifyTimelineRelationshipBinaryPacketData</a>(ProfilingRelationshipType::RetentionLink,</div><div class="line"><a name="l00696"></a><span class="lineno">  696</span>&#160;                                               arm::pipe::EmptyOptional(),</div><div class="line"><a name="l00697"></a><span class="lineno">  697</span>&#160;                                               arm::pipe::EmptyOptional(),</div><div class="line"><a name="l00698"></a><span class="lineno">  698</span>&#160;                                               biasWorkloadGuid,</div><div class="line"><a name="l00699"></a><span class="lineno">  699</span>&#160;                                               LabelsAndEventClasses::CHILD_GUID,</div><div class="line"><a name="l00700"></a><span class="lineno">  700</span>&#160;                                               readableData,</div><div class="line"><a name="l00701"></a><span class="lineno">  701</span>&#160;                                               offset);</div><div class="line"><a name="l00702"></a><span class="lineno">  702</span>&#160;</div><div class="line"><a name="l00703"></a><span class="lineno">  703</span>&#160;    <span class="comment">// Conv2d layer</span></div><div class="line"><a name="l00704"></a><span class="lineno">  704</span>&#160;    <span class="comment">// Conv2d layer entity</span></div><div class="line"><a name="l00705"></a><span class="lineno">  705</span>&#160;    <a class="code" href="_profiling_test_utils_8cpp.xhtml#aca439c1ce381920dc07fbb20aa7ab747">VerifyTimelineEntityBinaryPacketData</a>(conv2d-&gt;GetGuid(), readableData, offset);</div><div class="line"><a name="l00706"></a><span class="lineno">  706</span>&#160;</div><div class="line"><a name="l00707"></a><span class="lineno">  707</span>&#160;    <span class="comment">// Name entity</span></div><div class="line"><a name="l00708"></a><span class="lineno">  708</span>&#160;    ProfilingGuid conv2dNameLabelGuid = <a class="code" href="_profiling_test_utils_8cpp.xhtml#a845d7ded3f1981b1a101c23465f99407">VerifyTimelineLabelBinaryPacketData</a>(</div><div class="line"><a name="l00709"></a><span class="lineno">  709</span>&#160;        arm::pipe::EmptyOptional(), <span class="stringliteral">&quot;&lt;Unnamed&gt;&quot;</span>, readableData, offset);</div><div class="line"><a name="l00710"></a><span class="lineno">  710</span>&#160;</div><div class="line"><a name="l00711"></a><span class="lineno">  711</span>&#160;    <span class="comment">// Entity - Name relationship</span></div><div class="line"><a name="l00712"></a><span class="lineno">  712</span>&#160;    <a class="code" href="_profiling_test_utils_8cpp.xhtml#af25b6f3b19654d8d589e54e4e1404acb">VerifyTimelineRelationshipBinaryPacketData</a>(ProfilingRelationshipType::LabelLink,</div><div class="line"><a name="l00713"></a><span class="lineno">  713</span>&#160;                                               arm::pipe::EmptyOptional(),</div><div class="line"><a name="l00714"></a><span class="lineno">  714</span>&#160;                                               conv2d-&gt;GetGuid(),</div><div class="line"><a name="l00715"></a><span class="lineno">  715</span>&#160;                                               conv2dNameLabelGuid,</div><div class="line"><a name="l00716"></a><span class="lineno">  716</span>&#160;                                               LabelsAndEventClasses::NAME_GUID,</div><div class="line"><a name="l00717"></a><span class="lineno">  717</span>&#160;                                               readableData,</div><div class="line"><a name="l00718"></a><span class="lineno">  718</span>&#160;                                               offset);</div><div class="line"><a name="l00719"></a><span class="lineno">  719</span>&#160;</div><div class="line"><a name="l00720"></a><span class="lineno">  720</span>&#160;    <span class="comment">// Entity - Type relationship</span></div><div class="line"><a name="l00721"></a><span class="lineno">  721</span>&#160;    <a class="code" href="_profiling_test_utils_8cpp.xhtml#af25b6f3b19654d8d589e54e4e1404acb">VerifyTimelineRelationshipBinaryPacketData</a>(ProfilingRelationshipType::LabelLink,</div><div class="line"><a name="l00722"></a><span class="lineno">  722</span>&#160;                                               arm::pipe::EmptyOptional(),</div><div class="line"><a name="l00723"></a><span class="lineno">  723</span>&#160;                                               conv2d-&gt;GetGuid(),</div><div class="line"><a name="l00724"></a><span class="lineno">  724</span>&#160;                                               LabelsAndEventClasses::LAYER_GUID,</div><div class="line"><a name="l00725"></a><span class="lineno">  725</span>&#160;                                               LabelsAndEventClasses::TYPE_GUID,</div><div class="line"><a name="l00726"></a><span class="lineno">  726</span>&#160;                                               readableData,</div><div class="line"><a name="l00727"></a><span class="lineno">  727</span>&#160;                                               offset);</div><div class="line"><a name="l00728"></a><span class="lineno">  728</span>&#160;</div><div class="line"><a name="l00729"></a><span class="lineno">  729</span>&#160;    <span class="comment">// Network - Conv2d layer relationship</span></div><div class="line"><a name="l00730"></a><span class="lineno">  730</span>&#160;    <a class="code" href="_profiling_test_utils_8cpp.xhtml#af25b6f3b19654d8d589e54e4e1404acb">VerifyTimelineRelationshipBinaryPacketData</a>(ProfilingRelationshipType::RetentionLink,</div><div class="line"><a name="l00731"></a><span class="lineno">  731</span>&#160;                                               arm::pipe::EmptyOptional(),</div><div class="line"><a name="l00732"></a><span class="lineno">  732</span>&#160;                                               optNetGuid,</div><div class="line"><a name="l00733"></a><span class="lineno">  733</span>&#160;                                               conv2d-&gt;GetGuid(),</div><div class="line"><a name="l00734"></a><span class="lineno">  734</span>&#160;                                               LabelsAndEventClasses::CHILD_GUID,</div><div class="line"><a name="l00735"></a><span class="lineno">  735</span>&#160;                                               readableData,</div><div class="line"><a name="l00736"></a><span class="lineno">  736</span>&#160;                                               offset);</div><div class="line"><a name="l00737"></a><span class="lineno">  737</span>&#160;</div><div class="line"><a name="l00738"></a><span class="lineno">  738</span>&#160;    <span class="comment">// Input layer - Conv2d layer relationship</span></div><div class="line"><a name="l00739"></a><span class="lineno">  739</span>&#160;    <a class="code" href="_profiling_test_utils_8cpp.xhtml#af25b6f3b19654d8d589e54e4e1404acb">VerifyTimelineRelationshipBinaryPacketData</a>(ProfilingRelationshipType::RetentionLink,</div><div class="line"><a name="l00740"></a><span class="lineno">  740</span>&#160;                                               arm::pipe::EmptyOptional(),</div><div class="line"><a name="l00741"></a><span class="lineno">  741</span>&#160;                                               input-&gt;GetGuid(),</div><div class="line"><a name="l00742"></a><span class="lineno">  742</span>&#160;                                               conv2d-&gt;GetGuid(),</div><div class="line"><a name="l00743"></a><span class="lineno">  743</span>&#160;                                               LabelsAndEventClasses::CONNECTION_GUID,</div><div class="line"><a name="l00744"></a><span class="lineno">  744</span>&#160;                                               readableData,</div><div class="line"><a name="l00745"></a><span class="lineno">  745</span>&#160;                                               offset);</div><div class="line"><a name="l00746"></a><span class="lineno">  746</span>&#160;</div><div class="line"><a name="l00747"></a><span class="lineno">  747</span>&#160;    <span class="comment">// Weights layer - Conv2d layer relationship</span></div><div class="line"><a name="l00748"></a><span class="lineno">  748</span>&#160;    <a class="code" href="_profiling_test_utils_8cpp.xhtml#af25b6f3b19654d8d589e54e4e1404acb">VerifyTimelineRelationshipBinaryPacketData</a>(ProfilingRelationshipType::RetentionLink,</div><div class="line"><a name="l00749"></a><span class="lineno">  749</span>&#160;                                               arm::pipe::EmptyOptional(),</div><div class="line"><a name="l00750"></a><span class="lineno">  750</span>&#160;                                               arm::pipe::EmptyOptional(),</div><div class="line"><a name="l00751"></a><span class="lineno">  751</span>&#160;                                               conv2d-&gt;GetGuid(),</div><div class="line"><a name="l00752"></a><span class="lineno">  752</span>&#160;                                               LabelsAndEventClasses::CONNECTION_GUID,</div><div class="line"><a name="l00753"></a><span class="lineno">  753</span>&#160;                                               readableData,</div><div class="line"><a name="l00754"></a><span class="lineno">  754</span>&#160;                                               offset);</div><div class="line"><a name="l00755"></a><span class="lineno">  755</span>&#160;</div><div class="line"><a name="l00756"></a><span class="lineno">  756</span>&#160;    <span class="comment">// Bias layer - Conv2d layer relationship</span></div><div class="line"><a name="l00757"></a><span class="lineno">  757</span>&#160;    <a class="code" href="_profiling_test_utils_8cpp.xhtml#af25b6f3b19654d8d589e54e4e1404acb">VerifyTimelineRelationshipBinaryPacketData</a>(ProfilingRelationshipType::RetentionLink,</div><div class="line"><a name="l00758"></a><span class="lineno">  758</span>&#160;                                               arm::pipe::EmptyOptional(),</div><div class="line"><a name="l00759"></a><span class="lineno">  759</span>&#160;                                               arm::pipe::EmptyOptional(),</div><div class="line"><a name="l00760"></a><span class="lineno">  760</span>&#160;                                               conv2d-&gt;GetGuid(),</div><div class="line"><a name="l00761"></a><span class="lineno">  761</span>&#160;                                               LabelsAndEventClasses::CONNECTION_GUID,</div><div class="line"><a name="l00762"></a><span class="lineno">  762</span>&#160;                                               readableData,</div><div class="line"><a name="l00763"></a><span class="lineno">  763</span>&#160;                                               offset);</div><div class="line"><a name="l00764"></a><span class="lineno">  764</span>&#160;</div><div class="line"><a name="l00765"></a><span class="lineno">  765</span>&#160;    <span class="comment">// Conv2d workload</span></div><div class="line"><a name="l00766"></a><span class="lineno">  766</span>&#160;    <span class="comment">// Conv2d workload entity</span></div><div class="line"><a name="l00767"></a><span class="lineno">  767</span>&#160;    ProfilingGuid conv2DWorkloadGuid = <a class="code" href="_profiling_test_utils_8cpp.xhtml#aca439c1ce381920dc07fbb20aa7ab747">VerifyTimelineEntityBinaryPacketData</a>(</div><div class="line"><a name="l00768"></a><span class="lineno">  768</span>&#160;        arm::pipe::EmptyOptional(), readableData, offset);</div><div class="line"><a name="l00769"></a><span class="lineno">  769</span>&#160;</div><div class="line"><a name="l00770"></a><span class="lineno">  770</span>&#160;    <span class="comment">// Entity - Type relationship</span></div><div class="line"><a name="l00771"></a><span class="lineno">  771</span>&#160;    <a class="code" href="_profiling_test_utils_8cpp.xhtml#af25b6f3b19654d8d589e54e4e1404acb">VerifyTimelineRelationshipBinaryPacketData</a>(ProfilingRelationshipType::LabelLink,</div><div class="line"><a name="l00772"></a><span class="lineno">  772</span>&#160;                                               arm::pipe::EmptyOptional(),</div><div class="line"><a name="l00773"></a><span class="lineno">  773</span>&#160;                                               conv2DWorkloadGuid,</div><div class="line"><a name="l00774"></a><span class="lineno">  774</span>&#160;                                               LabelsAndEventClasses::WORKLOAD_GUID,</div><div class="line"><a name="l00775"></a><span class="lineno">  775</span>&#160;                                               LabelsAndEventClasses::TYPE_GUID,</div><div class="line"><a name="l00776"></a><span class="lineno">  776</span>&#160;                                               readableData,</div><div class="line"><a name="l00777"></a><span class="lineno">  777</span>&#160;                                               offset);</div><div class="line"><a name="l00778"></a><span class="lineno">  778</span>&#160;</div><div class="line"><a name="l00779"></a><span class="lineno">  779</span>&#160;    <span class="comment">// BackendId entity</span></div><div class="line"><a name="l00780"></a><span class="lineno">  780</span>&#160;    backendIdLabelGuid = <a class="code" href="_profiling_test_utils_8cpp.xhtml#a845d7ded3f1981b1a101c23465f99407">VerifyTimelineLabelBinaryPacketData</a>(</div><div class="line"><a name="l00781"></a><span class="lineno">  781</span>&#160;        arm::pipe::EmptyOptional(), backendId.<a class="code" href="classarmnn_1_1_backend_id.xhtml#af7445617163d3f07c47b92ae56c6cf8b">Get</a>(), readableData, offset);</div><div class="line"><a name="l00782"></a><span class="lineno">  782</span>&#160;</div><div class="line"><a name="l00783"></a><span class="lineno">  783</span>&#160;    <span class="comment">// Entity - BackendId relationship</span></div><div class="line"><a name="l00784"></a><span class="lineno">  784</span>&#160;    <a class="code" href="_profiling_test_utils_8cpp.xhtml#af25b6f3b19654d8d589e54e4e1404acb">VerifyTimelineRelationshipBinaryPacketData</a>(ProfilingRelationshipType::LabelLink,</div><div class="line"><a name="l00785"></a><span class="lineno">  785</span>&#160;                                               arm::pipe::EmptyOptional(),</div><div class="line"><a name="l00786"></a><span class="lineno">  786</span>&#160;                                               conv2DWorkloadGuid,</div><div class="line"><a name="l00787"></a><span class="lineno">  787</span>&#160;                                               backendIdLabelGuid,</div><div class="line"><a name="l00788"></a><span class="lineno">  788</span>&#160;                                               LabelsAndEventClasses::BACKENDID_GUID,</div><div class="line"><a name="l00789"></a><span class="lineno">  789</span>&#160;                                               readableData,</div><div class="line"><a name="l00790"></a><span class="lineno">  790</span>&#160;                                               offset);</div><div class="line"><a name="l00791"></a><span class="lineno">  791</span>&#160;</div><div class="line"><a name="l00792"></a><span class="lineno">  792</span>&#160;</div><div class="line"><a name="l00793"></a><span class="lineno">  793</span>&#160;    <span class="comment">// Conv2d layer - Conv2d workload relationship</span></div><div class="line"><a name="l00794"></a><span class="lineno">  794</span>&#160;    <a class="code" href="_profiling_test_utils_8cpp.xhtml#af25b6f3b19654d8d589e54e4e1404acb">VerifyTimelineRelationshipBinaryPacketData</a>(ProfilingRelationshipType::RetentionLink,</div><div class="line"><a name="l00795"></a><span class="lineno">  795</span>&#160;                                               arm::pipe::EmptyOptional(),</div><div class="line"><a name="l00796"></a><span class="lineno">  796</span>&#160;                                               conv2d-&gt;GetGuid(),</div><div class="line"><a name="l00797"></a><span class="lineno">  797</span>&#160;                                               conv2DWorkloadGuid,</div><div class="line"><a name="l00798"></a><span class="lineno">  798</span>&#160;                                               LabelsAndEventClasses::CHILD_GUID,</div><div class="line"><a name="l00799"></a><span class="lineno">  799</span>&#160;                                               readableData,</div><div class="line"><a name="l00800"></a><span class="lineno">  800</span>&#160;                                               offset);</div><div class="line"><a name="l00801"></a><span class="lineno">  801</span>&#160;</div><div class="line"><a name="l00802"></a><span class="lineno">  802</span>&#160;    <span class="comment">// Abs layer</span></div><div class="line"><a name="l00803"></a><span class="lineno">  803</span>&#160;    <span class="comment">// Abs layer entity</span></div><div class="line"><a name="l00804"></a><span class="lineno">  804</span>&#160;    <a class="code" href="_profiling_test_utils_8cpp.xhtml#aca439c1ce381920dc07fbb20aa7ab747">VerifyTimelineEntityBinaryPacketData</a>(abs-&gt;<a class="code" href="classarmnn_1_1_i_connectable_layer.xhtml#afb5e65c770f6cee222db8af7581541a6">GetGuid</a>(), readableData, offset);</div><div class="line"><a name="l00805"></a><span class="lineno">  805</span>&#160;</div><div class="line"><a name="l00806"></a><span class="lineno">  806</span>&#160;    <span class="comment">// Name entity</span></div><div class="line"><a name="l00807"></a><span class="lineno">  807</span>&#160;    ProfilingGuid absLabelGuid = <a class="code" href="_profiling_test_utils_8cpp.xhtml#a845d7ded3f1981b1a101c23465f99407">VerifyTimelineLabelBinaryPacketData</a>(</div><div class="line"><a name="l00808"></a><span class="lineno">  808</span>&#160;        arm::pipe::EmptyOptional(), <span class="stringliteral">&quot;abs&quot;</span>, readableData, offset);</div><div class="line"><a name="l00809"></a><span class="lineno">  809</span>&#160;</div><div class="line"><a name="l00810"></a><span class="lineno">  810</span>&#160;    <span class="comment">// Entity - Name relationship</span></div><div class="line"><a name="l00811"></a><span class="lineno">  811</span>&#160;    <a class="code" href="_profiling_test_utils_8cpp.xhtml#af25b6f3b19654d8d589e54e4e1404acb">VerifyTimelineRelationshipBinaryPacketData</a>(ProfilingRelationshipType::LabelLink,</div><div class="line"><a name="l00812"></a><span class="lineno">  812</span>&#160;                                               arm::pipe::EmptyOptional(),</div><div class="line"><a name="l00813"></a><span class="lineno">  813</span>&#160;                                               abs-&gt;<a class="code" href="classarmnn_1_1_i_connectable_layer.xhtml#afb5e65c770f6cee222db8af7581541a6">GetGuid</a>(),</div><div class="line"><a name="l00814"></a><span class="lineno">  814</span>&#160;                                               absLabelGuid,</div><div class="line"><a name="l00815"></a><span class="lineno">  815</span>&#160;                                               LabelsAndEventClasses::NAME_GUID,</div><div class="line"><a name="l00816"></a><span class="lineno">  816</span>&#160;                                               readableData,</div><div class="line"><a name="l00817"></a><span class="lineno">  817</span>&#160;                                               offset);</div><div class="line"><a name="l00818"></a><span class="lineno">  818</span>&#160;</div><div class="line"><a name="l00819"></a><span class="lineno">  819</span>&#160;    <span class="comment">// Entity - Type relationship</span></div><div class="line"><a name="l00820"></a><span class="lineno">  820</span>&#160;    <a class="code" href="_profiling_test_utils_8cpp.xhtml#af25b6f3b19654d8d589e54e4e1404acb">VerifyTimelineRelationshipBinaryPacketData</a>(ProfilingRelationshipType::LabelLink,</div><div class="line"><a name="l00821"></a><span class="lineno">  821</span>&#160;                                               arm::pipe::EmptyOptional(),</div><div class="line"><a name="l00822"></a><span class="lineno">  822</span>&#160;                                               abs-&gt;<a class="code" href="classarmnn_1_1_i_connectable_layer.xhtml#afb5e65c770f6cee222db8af7581541a6">GetGuid</a>(),</div><div class="line"><a name="l00823"></a><span class="lineno">  823</span>&#160;                                               LabelsAndEventClasses::LAYER_GUID,</div><div class="line"><a name="l00824"></a><span class="lineno">  824</span>&#160;                                               LabelsAndEventClasses::TYPE_GUID,</div><div class="line"><a name="l00825"></a><span class="lineno">  825</span>&#160;                                               readableData,</div><div class="line"><a name="l00826"></a><span class="lineno">  826</span>&#160;                                               offset);</div><div class="line"><a name="l00827"></a><span class="lineno">  827</span>&#160;</div><div class="line"><a name="l00828"></a><span class="lineno">  828</span>&#160;    <span class="comment">// Network - Abs layer relationship</span></div><div class="line"><a name="l00829"></a><span class="lineno">  829</span>&#160;    <a class="code" href="_profiling_test_utils_8cpp.xhtml#af25b6f3b19654d8d589e54e4e1404acb">VerifyTimelineRelationshipBinaryPacketData</a>(ProfilingRelationshipType::RetentionLink,</div><div class="line"><a name="l00830"></a><span class="lineno">  830</span>&#160;                                               arm::pipe::EmptyOptional(),</div><div class="line"><a name="l00831"></a><span class="lineno">  831</span>&#160;                                               optNetGuid,</div><div class="line"><a name="l00832"></a><span class="lineno">  832</span>&#160;                                               abs-&gt;<a class="code" href="classarmnn_1_1_i_connectable_layer.xhtml#afb5e65c770f6cee222db8af7581541a6">GetGuid</a>(),</div><div class="line"><a name="l00833"></a><span class="lineno">  833</span>&#160;                                               LabelsAndEventClasses::CHILD_GUID,</div><div class="line"><a name="l00834"></a><span class="lineno">  834</span>&#160;                                               readableData,</div><div class="line"><a name="l00835"></a><span class="lineno">  835</span>&#160;                                               offset);</div><div class="line"><a name="l00836"></a><span class="lineno">  836</span>&#160;</div><div class="line"><a name="l00837"></a><span class="lineno">  837</span>&#160;    <span class="comment">// Conv2d layer - Abs layer relationship</span></div><div class="line"><a name="l00838"></a><span class="lineno">  838</span>&#160;    <a class="code" href="_profiling_test_utils_8cpp.xhtml#af25b6f3b19654d8d589e54e4e1404acb">VerifyTimelineRelationshipBinaryPacketData</a>(ProfilingRelationshipType::RetentionLink,</div><div class="line"><a name="l00839"></a><span class="lineno">  839</span>&#160;                                               arm::pipe::EmptyOptional(),</div><div class="line"><a name="l00840"></a><span class="lineno">  840</span>&#160;                                               conv2d-&gt;GetGuid(),</div><div class="line"><a name="l00841"></a><span class="lineno">  841</span>&#160;                                               abs-&gt;<a class="code" href="classarmnn_1_1_i_connectable_layer.xhtml#afb5e65c770f6cee222db8af7581541a6">GetGuid</a>(),</div><div class="line"><a name="l00842"></a><span class="lineno">  842</span>&#160;                                               LabelsAndEventClasses::CONNECTION_GUID,</div><div class="line"><a name="l00843"></a><span class="lineno">  843</span>&#160;                                               readableData,</div><div class="line"><a name="l00844"></a><span class="lineno">  844</span>&#160;                                               offset);</div><div class="line"><a name="l00845"></a><span class="lineno">  845</span>&#160;</div><div class="line"><a name="l00846"></a><span class="lineno">  846</span>&#160;    <span class="comment">// Abs workload</span></div><div class="line"><a name="l00847"></a><span class="lineno">  847</span>&#160;    <span class="comment">// Abs workload entity</span></div><div class="line"><a name="l00848"></a><span class="lineno">  848</span>&#160;    ProfilingGuid absWorkloadGuid = <a class="code" href="_profiling_test_utils_8cpp.xhtml#aca439c1ce381920dc07fbb20aa7ab747">VerifyTimelineEntityBinaryPacketData</a>(</div><div class="line"><a name="l00849"></a><span class="lineno">  849</span>&#160;        arm::pipe::EmptyOptional(), readableData, offset);</div><div class="line"><a name="l00850"></a><span class="lineno">  850</span>&#160;</div><div class="line"><a name="l00851"></a><span class="lineno">  851</span>&#160;    <span class="comment">// Entity - Type relationship</span></div><div class="line"><a name="l00852"></a><span class="lineno">  852</span>&#160;    <a class="code" href="_profiling_test_utils_8cpp.xhtml#af25b6f3b19654d8d589e54e4e1404acb">VerifyTimelineRelationshipBinaryPacketData</a>(ProfilingRelationshipType::LabelLink,</div><div class="line"><a name="l00853"></a><span class="lineno">  853</span>&#160;                                               arm::pipe::EmptyOptional(),</div><div class="line"><a name="l00854"></a><span class="lineno">  854</span>&#160;                                               absWorkloadGuid,</div><div class="line"><a name="l00855"></a><span class="lineno">  855</span>&#160;                                               LabelsAndEventClasses::WORKLOAD_GUID,</div><div class="line"><a name="l00856"></a><span class="lineno">  856</span>&#160;                                               LabelsAndEventClasses::TYPE_GUID,</div><div class="line"><a name="l00857"></a><span class="lineno">  857</span>&#160;                                               readableData,</div><div class="line"><a name="l00858"></a><span class="lineno">  858</span>&#160;                                               offset);</div><div class="line"><a name="l00859"></a><span class="lineno">  859</span>&#160;</div><div class="line"><a name="l00860"></a><span class="lineno">  860</span>&#160;    <span class="comment">// BackendId entity</span></div><div class="line"><a name="l00861"></a><span class="lineno">  861</span>&#160;    <a class="code" href="_profiling_test_utils_8cpp.xhtml#a845d7ded3f1981b1a101c23465f99407">VerifyTimelineLabelBinaryPacketData</a>(arm::pipe::EmptyOptional(), backendId.<a class="code" href="classarmnn_1_1_backend_id.xhtml#af7445617163d3f07c47b92ae56c6cf8b">Get</a>(), readableData, offset);</div><div class="line"><a name="l00862"></a><span class="lineno">  862</span>&#160;</div><div class="line"><a name="l00863"></a><span class="lineno">  863</span>&#160;    <span class="comment">// Entity - BackendId relationship</span></div><div class="line"><a name="l00864"></a><span class="lineno">  864</span>&#160;    <a class="code" href="_profiling_test_utils_8cpp.xhtml#af25b6f3b19654d8d589e54e4e1404acb">VerifyTimelineRelationshipBinaryPacketData</a>(ProfilingRelationshipType::LabelLink,</div><div class="line"><a name="l00865"></a><span class="lineno">  865</span>&#160;                                               arm::pipe::EmptyOptional(),</div><div class="line"><a name="l00866"></a><span class="lineno">  866</span>&#160;                                               absWorkloadGuid,</div><div class="line"><a name="l00867"></a><span class="lineno">  867</span>&#160;                                               backendIdLabelGuid,</div><div class="line"><a name="l00868"></a><span class="lineno">  868</span>&#160;                                               LabelsAndEventClasses::BACKENDID_GUID,</div><div class="line"><a name="l00869"></a><span class="lineno">  869</span>&#160;                                               readableData,</div><div class="line"><a name="l00870"></a><span class="lineno">  870</span>&#160;                                               offset);</div><div class="line"><a name="l00871"></a><span class="lineno">  871</span>&#160;</div><div class="line"><a name="l00872"></a><span class="lineno">  872</span>&#160;    <span class="comment">// Abs layer - Abs workload relationship</span></div><div class="line"><a name="l00873"></a><span class="lineno">  873</span>&#160;    <a class="code" href="_profiling_test_utils_8cpp.xhtml#af25b6f3b19654d8d589e54e4e1404acb">VerifyTimelineRelationshipBinaryPacketData</a>(ProfilingRelationshipType::RetentionLink,</div><div class="line"><a name="l00874"></a><span class="lineno">  874</span>&#160;                                               arm::pipe::EmptyOptional(),</div><div class="line"><a name="l00875"></a><span class="lineno">  875</span>&#160;                                               abs-&gt;<a class="code" href="classarmnn_1_1_i_connectable_layer.xhtml#afb5e65c770f6cee222db8af7581541a6">GetGuid</a>(),</div><div class="line"><a name="l00876"></a><span class="lineno">  876</span>&#160;                                               absWorkloadGuid,</div><div class="line"><a name="l00877"></a><span class="lineno">  877</span>&#160;                                               LabelsAndEventClasses::CHILD_GUID,</div><div class="line"><a name="l00878"></a><span class="lineno">  878</span>&#160;                                               readableData,</div><div class="line"><a name="l00879"></a><span class="lineno">  879</span>&#160;                                               offset);</div><div class="line"><a name="l00880"></a><span class="lineno">  880</span>&#160;</div><div class="line"><a name="l00881"></a><span class="lineno">  881</span>&#160;    <span class="comment">// Output layer</span></div><div class="line"><a name="l00882"></a><span class="lineno">  882</span>&#160;    <span class="comment">// Output layer entity</span></div><div class="line"><a name="l00883"></a><span class="lineno">  883</span>&#160;    <a class="code" href="_profiling_test_utils_8cpp.xhtml#aca439c1ce381920dc07fbb20aa7ab747">VerifyTimelineEntityBinaryPacketData</a>(output-&gt;<a class="code" href="classarmnn_1_1_i_connectable_layer.xhtml#afb5e65c770f6cee222db8af7581541a6">GetGuid</a>(), readableData, offset);</div><div class="line"><a name="l00884"></a><span class="lineno">  884</span>&#160;</div><div class="line"><a name="l00885"></a><span class="lineno">  885</span>&#160;    <span class="comment">// Name entity</span></div><div class="line"><a name="l00886"></a><span class="lineno">  886</span>&#160;    ProfilingGuid outputLabelGuid = <a class="code" href="_profiling_test_utils_8cpp.xhtml#a845d7ded3f1981b1a101c23465f99407">VerifyTimelineLabelBinaryPacketData</a>(</div><div class="line"><a name="l00887"></a><span class="lineno">  887</span>&#160;        arm::pipe::EmptyOptional(), <span class="stringliteral">&quot;output&quot;</span>, readableData, offset);</div><div class="line"><a name="l00888"></a><span class="lineno">  888</span>&#160;</div><div class="line"><a name="l00889"></a><span class="lineno">  889</span>&#160;    <span class="comment">// Entity - Name relationship</span></div><div class="line"><a name="l00890"></a><span class="lineno">  890</span>&#160;    <a class="code" href="_profiling_test_utils_8cpp.xhtml#af25b6f3b19654d8d589e54e4e1404acb">VerifyTimelineRelationshipBinaryPacketData</a>(ProfilingRelationshipType::LabelLink,</div><div class="line"><a name="l00891"></a><span class="lineno">  891</span>&#160;                                               arm::pipe::EmptyOptional(),</div><div class="line"><a name="l00892"></a><span class="lineno">  892</span>&#160;                                               output-&gt;<a class="code" href="classarmnn_1_1_i_connectable_layer.xhtml#afb5e65c770f6cee222db8af7581541a6">GetGuid</a>(),</div><div class="line"><a name="l00893"></a><span class="lineno">  893</span>&#160;                                               outputLabelGuid,</div><div class="line"><a name="l00894"></a><span class="lineno">  894</span>&#160;                                               LabelsAndEventClasses::NAME_GUID,</div><div class="line"><a name="l00895"></a><span class="lineno">  895</span>&#160;                                               readableData,</div><div class="line"><a name="l00896"></a><span class="lineno">  896</span>&#160;                                               offset);</div><div class="line"><a name="l00897"></a><span class="lineno">  897</span>&#160;</div><div class="line"><a name="l00898"></a><span class="lineno">  898</span>&#160;    <span class="comment">// Entity - Type relationship</span></div><div class="line"><a name="l00899"></a><span class="lineno">  899</span>&#160;    <a class="code" href="_profiling_test_utils_8cpp.xhtml#af25b6f3b19654d8d589e54e4e1404acb">VerifyTimelineRelationshipBinaryPacketData</a>(ProfilingRelationshipType::LabelLink,</div><div class="line"><a name="l00900"></a><span class="lineno">  900</span>&#160;                                               arm::pipe::EmptyOptional(),</div><div class="line"><a name="l00901"></a><span class="lineno">  901</span>&#160;                                               output-&gt;<a class="code" href="classarmnn_1_1_i_connectable_layer.xhtml#afb5e65c770f6cee222db8af7581541a6">GetGuid</a>(),</div><div class="line"><a name="l00902"></a><span class="lineno">  902</span>&#160;                                               LabelsAndEventClasses::LAYER_GUID,</div><div class="line"><a name="l00903"></a><span class="lineno">  903</span>&#160;                                               LabelsAndEventClasses::TYPE_GUID,</div><div class="line"><a name="l00904"></a><span class="lineno">  904</span>&#160;                                               readableData,</div><div class="line"><a name="l00905"></a><span class="lineno">  905</span>&#160;                                               offset);</div><div class="line"><a name="l00906"></a><span class="lineno">  906</span>&#160;</div><div class="line"><a name="l00907"></a><span class="lineno">  907</span>&#160;    <span class="comment">// Network - Output layer relationship</span></div><div class="line"><a name="l00908"></a><span class="lineno">  908</span>&#160;    <a class="code" href="_profiling_test_utils_8cpp.xhtml#af25b6f3b19654d8d589e54e4e1404acb">VerifyTimelineRelationshipBinaryPacketData</a>(ProfilingRelationshipType::RetentionLink,</div><div class="line"><a name="l00909"></a><span class="lineno">  909</span>&#160;                                               arm::pipe::EmptyOptional(),</div><div class="line"><a name="l00910"></a><span class="lineno">  910</span>&#160;                                               optNetGuid,</div><div class="line"><a name="l00911"></a><span class="lineno">  911</span>&#160;                                               output-&gt;<a class="code" href="classarmnn_1_1_i_connectable_layer.xhtml#afb5e65c770f6cee222db8af7581541a6">GetGuid</a>(),</div><div class="line"><a name="l00912"></a><span class="lineno">  912</span>&#160;                                               LabelsAndEventClasses::CHILD_GUID,</div><div class="line"><a name="l00913"></a><span class="lineno">  913</span>&#160;                                               readableData,</div><div class="line"><a name="l00914"></a><span class="lineno">  914</span>&#160;                                               offset);</div><div class="line"><a name="l00915"></a><span class="lineno">  915</span>&#160;</div><div class="line"><a name="l00916"></a><span class="lineno">  916</span>&#160;    <span class="comment">// Abs layer - Output layer relationship</span></div><div class="line"><a name="l00917"></a><span class="lineno">  917</span>&#160;    <a class="code" href="_profiling_test_utils_8cpp.xhtml#af25b6f3b19654d8d589e54e4e1404acb">VerifyTimelineRelationshipBinaryPacketData</a>(ProfilingRelationshipType::RetentionLink,</div><div class="line"><a name="l00918"></a><span class="lineno">  918</span>&#160;                                               arm::pipe::EmptyOptional(),</div><div class="line"><a name="l00919"></a><span class="lineno">  919</span>&#160;                                               abs-&gt;<a class="code" href="classarmnn_1_1_i_connectable_layer.xhtml#afb5e65c770f6cee222db8af7581541a6">GetGuid</a>(),</div><div class="line"><a name="l00920"></a><span class="lineno">  920</span>&#160;                                               output-&gt;<a class="code" href="classarmnn_1_1_i_connectable_layer.xhtml#afb5e65c770f6cee222db8af7581541a6">GetGuid</a>(),</div><div class="line"><a name="l00921"></a><span class="lineno">  921</span>&#160;                                               LabelsAndEventClasses::CONNECTION_GUID,</div><div class="line"><a name="l00922"></a><span class="lineno">  922</span>&#160;                                               readableData,</div><div class="line"><a name="l00923"></a><span class="lineno">  923</span>&#160;                                               offset);</div><div class="line"><a name="l00924"></a><span class="lineno">  924</span>&#160;</div><div class="line"><a name="l00925"></a><span class="lineno">  925</span>&#160;    bufferManager.MarkRead(readableBuffer);</div><div class="line"><a name="l00926"></a><span class="lineno">  926</span>&#160;</div><div class="line"><a name="l00927"></a><span class="lineno">  927</span>&#160;    <span class="comment">// Creates structures for input &amp; output.</span></div><div class="line"><a name="l00928"></a><span class="lineno">  928</span>&#160;    std::vector&lt;float&gt; inputData(inputInfo.GetNumElements());</div><div class="line"><a name="l00929"></a><span class="lineno">  929</span>&#160;    std::vector&lt;float&gt; outputData(outputInfo.GetNumElements());</div><div class="line"><a name="l00930"></a><span class="lineno">  930</span>&#160;</div><div class="line"><a name="l00931"></a><span class="lineno">  931</span>&#160;    <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a> inputTensorInfo = runtime.<a class="code" href="structarmnn_1_1_runtime_impl.xhtml#aa198ca53eeb01b6e2134da924ec36405">GetInputTensorInfo</a>(netId, 0);</div><div class="line"><a name="l00932"></a><span class="lineno">  932</span>&#160;    inputTensorInfo.<a class="code" href="classarmnn_1_1_tensor_info.xhtml#a8ffca1e21bdfa7f945617acd606aac91">SetConstant</a>(<span class="keyword">true</span>);</div><div class="line"><a name="l00933"></a><span class="lineno">  933</span>&#160;    <a class="code" href="namespacearmnn.xhtml#aa01bce88f89975a5a031db4cc8861527">InputTensors</a> inputTensors</div><div class="line"><a name="l00934"></a><span class="lineno">  934</span>&#160;        {</div><div class="line"><a name="l00935"></a><span class="lineno">  935</span>&#160;        {0, <a class="code" href="classarmnn_1_1_const_tensor.xhtml">ConstTensor</a>(inputTensorInfo, inputData.data())}</div><div class="line"><a name="l00936"></a><span class="lineno">  936</span>&#160;        };</div><div class="line"><a name="l00937"></a><span class="lineno">  937</span>&#160;    <a class="code" href="namespacearmnn.xhtml#a8f091a512915d1cb29a4ebf13dfc53ea">OutputTensors</a> outputTensors</div><div class="line"><a name="l00938"></a><span class="lineno">  938</span>&#160;        {</div><div class="line"><a name="l00939"></a><span class="lineno">  939</span>&#160;        {0, <a class="code" href="classarmnn_1_1_tensor.xhtml">Tensor</a>(runtime.<a class="code" href="structarmnn_1_1_runtime_impl.xhtml#a81c83702b94931626c6d84a3fa915362">GetOutputTensorInfo</a>(netId, 0), outputData.data())}</div><div class="line"><a name="l00940"></a><span class="lineno">  940</span>&#160;        };</div><div class="line"><a name="l00941"></a><span class="lineno">  941</span>&#160;</div><div class="line"><a name="l00942"></a><span class="lineno">  942</span>&#160;    <span class="comment">// Does the inference.</span></div><div class="line"><a name="l00943"></a><span class="lineno">  943</span>&#160;    runtime.<a class="code" href="structarmnn_1_1_runtime_impl.xhtml#aca51209383683ab8dbe801bbfddfe0c0">EnqueueWorkload</a>(netId, inputTensors, outputTensors);</div><div class="line"><a name="l00944"></a><span class="lineno">  944</span>&#160;</div><div class="line"><a name="l00945"></a><span class="lineno">  945</span>&#160;    <span class="comment">// Get readable buffer for input workload</span></div><div class="line"><a name="l00946"></a><span class="lineno">  946</span>&#160;    <span class="keyword">auto</span> inputReadableBuffer = bufferManager.GetReadableBuffer();</div><div class="line"><a name="l00947"></a><span class="lineno">  947</span>&#160;    CHECK(inputReadableBuffer != <span class="keyword">nullptr</span>);</div><div class="line"><a name="l00948"></a><span class="lineno">  948</span>&#160;</div><div class="line"><a name="l00949"></a><span class="lineno">  949</span>&#160;    <span class="comment">// Get readable buffer for output workload</span></div><div class="line"><a name="l00950"></a><span class="lineno">  950</span>&#160;    <span class="keyword">auto</span> outputReadableBuffer = bufferManager.GetReadableBuffer();</div><div class="line"><a name="l00951"></a><span class="lineno">  951</span>&#160;    CHECK(outputReadableBuffer != <span class="keyword">nullptr</span>);</div><div class="line"><a name="l00952"></a><span class="lineno">  952</span>&#160;</div><div class="line"><a name="l00953"></a><span class="lineno">  953</span>&#160;    <span class="comment">// Get readable buffer for inference timeline</span></div><div class="line"><a name="l00954"></a><span class="lineno">  954</span>&#160;    <span class="keyword">auto</span> inferenceReadableBuffer = bufferManager.GetReadableBuffer();</div><div class="line"><a name="l00955"></a><span class="lineno">  955</span>&#160;    CHECK(inferenceReadableBuffer != <span class="keyword">nullptr</span>);</div><div class="line"><a name="l00956"></a><span class="lineno">  956</span>&#160;</div><div class="line"><a name="l00957"></a><span class="lineno">  957</span>&#160;    <span class="comment">// Validate input workload data</span></div><div class="line"><a name="l00958"></a><span class="lineno">  958</span>&#160;    size = inputReadableBuffer-&gt;GetSize();</div><div class="line"><a name="l00959"></a><span class="lineno">  959</span>&#160;    CHECK(size == 164);</div><div class="line"><a name="l00960"></a><span class="lineno">  960</span>&#160;</div><div class="line"><a name="l00961"></a><span class="lineno">  961</span>&#160;    readableData = inputReadableBuffer-&gt;GetReadableData();</div><div class="line"><a name="l00962"></a><span class="lineno">  962</span>&#160;    CHECK(readableData != <span class="keyword">nullptr</span>);</div><div class="line"><a name="l00963"></a><span class="lineno">  963</span>&#160;</div><div class="line"><a name="l00964"></a><span class="lineno">  964</span>&#160;    offset = 0;</div><div class="line"><a name="l00965"></a><span class="lineno">  965</span>&#160;</div><div class="line"><a name="l00966"></a><span class="lineno">  966</span>&#160;    <span class="comment">// Verify Header</span></div><div class="line"><a name="l00967"></a><span class="lineno">  967</span>&#160;    <a class="code" href="_profiling_test_utils_8cpp.xhtml#a6bd6e8ba2f989621f7348d2bb6ce13a4">VerifyTimelineHeaderBinary</a>(readableData, offset, 156);</div><div class="line"><a name="l00968"></a><span class="lineno">  968</span>&#160;</div><div class="line"><a name="l00969"></a><span class="lineno">  969</span>&#160;    <span class="comment">// Input workload</span></div><div class="line"><a name="l00970"></a><span class="lineno">  970</span>&#160;    <span class="comment">// Input workload entity</span></div><div class="line"><a name="l00971"></a><span class="lineno">  971</span>&#160;    ProfilingGuid inputWorkloadGuid = <a class="code" href="_profiling_test_utils_8cpp.xhtml#aca439c1ce381920dc07fbb20aa7ab747">VerifyTimelineEntityBinaryPacketData</a>(</div><div class="line"><a name="l00972"></a><span class="lineno">  972</span>&#160;        arm::pipe::EmptyOptional(), readableData, offset);</div><div class="line"><a name="l00973"></a><span class="lineno">  973</span>&#160;</div><div class="line"><a name="l00974"></a><span class="lineno">  974</span>&#160;    <span class="comment">// Entity - Type relationship</span></div><div class="line"><a name="l00975"></a><span class="lineno">  975</span>&#160;    <a class="code" href="_profiling_test_utils_8cpp.xhtml#af25b6f3b19654d8d589e54e4e1404acb">VerifyTimelineRelationshipBinaryPacketData</a>(ProfilingRelationshipType::LabelLink,</div><div class="line"><a name="l00976"></a><span class="lineno">  976</span>&#160;                                               arm::pipe::EmptyOptional(),</div><div class="line"><a name="l00977"></a><span class="lineno">  977</span>&#160;                                               inputWorkloadGuid,</div><div class="line"><a name="l00978"></a><span class="lineno">  978</span>&#160;                                               LabelsAndEventClasses::WORKLOAD_GUID,</div><div class="line"><a name="l00979"></a><span class="lineno">  979</span>&#160;                                               LabelsAndEventClasses::TYPE_GUID,</div><div class="line"><a name="l00980"></a><span class="lineno">  980</span>&#160;                                               readableData,</div><div class="line"><a name="l00981"></a><span class="lineno">  981</span>&#160;                                               offset);</div><div class="line"><a name="l00982"></a><span class="lineno">  982</span>&#160;</div><div class="line"><a name="l00983"></a><span class="lineno">  983</span>&#160;    <span class="comment">// BackendId entity</span></div><div class="line"><a name="l00984"></a><span class="lineno">  984</span>&#160;    <a class="code" href="_profiling_test_utils_8cpp.xhtml#a845d7ded3f1981b1a101c23465f99407">VerifyTimelineLabelBinaryPacketData</a>(arm::pipe::EmptyOptional(), backendId.<a class="code" href="classarmnn_1_1_backend_id.xhtml#af7445617163d3f07c47b92ae56c6cf8b">Get</a>(), readableData, offset);</div><div class="line"><a name="l00985"></a><span class="lineno">  985</span>&#160;</div><div class="line"><a name="l00986"></a><span class="lineno">  986</span>&#160;    <span class="comment">// Entity - BackendId relationship</span></div><div class="line"><a name="l00987"></a><span class="lineno">  987</span>&#160;    <a class="code" href="_profiling_test_utils_8cpp.xhtml#af25b6f3b19654d8d589e54e4e1404acb">VerifyTimelineRelationshipBinaryPacketData</a>(ProfilingRelationshipType::LabelLink,</div><div class="line"><a name="l00988"></a><span class="lineno">  988</span>&#160;                                               arm::pipe::EmptyOptional(),</div><div class="line"><a name="l00989"></a><span class="lineno">  989</span>&#160;                                               inputWorkloadGuid,</div><div class="line"><a name="l00990"></a><span class="lineno">  990</span>&#160;                                               backendIdLabelGuid,</div><div class="line"><a name="l00991"></a><span class="lineno">  991</span>&#160;                                               LabelsAndEventClasses::BACKENDID_GUID,</div><div class="line"><a name="l00992"></a><span class="lineno">  992</span>&#160;                                               readableData,</div><div class="line"><a name="l00993"></a><span class="lineno">  993</span>&#160;                                               offset);</div><div class="line"><a name="l00994"></a><span class="lineno">  994</span>&#160;</div><div class="line"><a name="l00995"></a><span class="lineno">  995</span>&#160;    <span class="comment">// Input layer - Input workload relationship</span></div><div class="line"><a name="l00996"></a><span class="lineno">  996</span>&#160;    <a class="code" href="_profiling_test_utils_8cpp.xhtml#af25b6f3b19654d8d589e54e4e1404acb">VerifyTimelineRelationshipBinaryPacketData</a>(ProfilingRelationshipType::RetentionLink,</div><div class="line"><a name="l00997"></a><span class="lineno">  997</span>&#160;                                               arm::pipe::EmptyOptional(),</div><div class="line"><a name="l00998"></a><span class="lineno">  998</span>&#160;                                               input-&gt;GetGuid(),</div><div class="line"><a name="l00999"></a><span class="lineno">  999</span>&#160;                                               inputWorkloadGuid,</div><div class="line"><a name="l01000"></a><span class="lineno"> 1000</span>&#160;                                               LabelsAndEventClasses::CHILD_GUID,</div><div class="line"><a name="l01001"></a><span class="lineno"> 1001</span>&#160;                                               readableData,</div><div class="line"><a name="l01002"></a><span class="lineno"> 1002</span>&#160;                                               offset);</div><div class="line"><a name="l01003"></a><span class="lineno"> 1003</span>&#160;</div><div class="line"><a name="l01004"></a><span class="lineno"> 1004</span>&#160;    bufferManager.MarkRead(inputReadableBuffer);</div><div class="line"><a name="l01005"></a><span class="lineno"> 1005</span>&#160;</div><div class="line"><a name="l01006"></a><span class="lineno"> 1006</span>&#160;    <span class="comment">// Validate output workload data</span></div><div class="line"><a name="l01007"></a><span class="lineno"> 1007</span>&#160;    size = outputReadableBuffer-&gt;GetSize();</div><div class="line"><a name="l01008"></a><span class="lineno"> 1008</span>&#160;    CHECK(size == 164);</div><div class="line"><a name="l01009"></a><span class="lineno"> 1009</span>&#160;</div><div class="line"><a name="l01010"></a><span class="lineno"> 1010</span>&#160;    readableData = outputReadableBuffer-&gt;GetReadableData();</div><div class="line"><a name="l01011"></a><span class="lineno"> 1011</span>&#160;    CHECK(readableData != <span class="keyword">nullptr</span>);</div><div class="line"><a name="l01012"></a><span class="lineno"> 1012</span>&#160;</div><div class="line"><a name="l01013"></a><span class="lineno"> 1013</span>&#160;    offset = 0;</div><div class="line"><a name="l01014"></a><span class="lineno"> 1014</span>&#160;</div><div class="line"><a name="l01015"></a><span class="lineno"> 1015</span>&#160;    <span class="comment">// Verify Header</span></div><div class="line"><a name="l01016"></a><span class="lineno"> 1016</span>&#160;    <a class="code" href="_profiling_test_utils_8cpp.xhtml#a6bd6e8ba2f989621f7348d2bb6ce13a4">VerifyTimelineHeaderBinary</a>(readableData, offset, 156);</div><div class="line"><a name="l01017"></a><span class="lineno"> 1017</span>&#160;</div><div class="line"><a name="l01018"></a><span class="lineno"> 1018</span>&#160;    <span class="comment">// Output workload</span></div><div class="line"><a name="l01019"></a><span class="lineno"> 1019</span>&#160;    <span class="comment">// Output workload entity</span></div><div class="line"><a name="l01020"></a><span class="lineno"> 1020</span>&#160;    ProfilingGuid outputWorkloadGuid = <a class="code" href="_profiling_test_utils_8cpp.xhtml#aca439c1ce381920dc07fbb20aa7ab747">VerifyTimelineEntityBinaryPacketData</a>(</div><div class="line"><a name="l01021"></a><span class="lineno"> 1021</span>&#160;        arm::pipe::EmptyOptional(), readableData, offset);</div><div class="line"><a name="l01022"></a><span class="lineno"> 1022</span>&#160;</div><div class="line"><a name="l01023"></a><span class="lineno"> 1023</span>&#160;    <span class="comment">// Entity - Type relationship</span></div><div class="line"><a name="l01024"></a><span class="lineno"> 1024</span>&#160;    <a class="code" href="_profiling_test_utils_8cpp.xhtml#af25b6f3b19654d8d589e54e4e1404acb">VerifyTimelineRelationshipBinaryPacketData</a>(ProfilingRelationshipType::LabelLink,</div><div class="line"><a name="l01025"></a><span class="lineno"> 1025</span>&#160;                                               arm::pipe::EmptyOptional(),</div><div class="line"><a name="l01026"></a><span class="lineno"> 1026</span>&#160;                                               outputWorkloadGuid,</div><div class="line"><a name="l01027"></a><span class="lineno"> 1027</span>&#160;                                               LabelsAndEventClasses::WORKLOAD_GUID,</div><div class="line"><a name="l01028"></a><span class="lineno"> 1028</span>&#160;                                               LabelsAndEventClasses::TYPE_GUID,</div><div class="line"><a name="l01029"></a><span class="lineno"> 1029</span>&#160;                                               readableData,</div><div class="line"><a name="l01030"></a><span class="lineno"> 1030</span>&#160;                                               offset);</div><div class="line"><a name="l01031"></a><span class="lineno"> 1031</span>&#160;</div><div class="line"><a name="l01032"></a><span class="lineno"> 1032</span>&#160;    <span class="comment">// BackendId entity</span></div><div class="line"><a name="l01033"></a><span class="lineno"> 1033</span>&#160;    <a class="code" href="_profiling_test_utils_8cpp.xhtml#a845d7ded3f1981b1a101c23465f99407">VerifyTimelineLabelBinaryPacketData</a>(arm::pipe::EmptyOptional(), backendId.<a class="code" href="classarmnn_1_1_backend_id.xhtml#af7445617163d3f07c47b92ae56c6cf8b">Get</a>(), readableData, offset);</div><div class="line"><a name="l01034"></a><span class="lineno"> 1034</span>&#160;</div><div class="line"><a name="l01035"></a><span class="lineno"> 1035</span>&#160;    <span class="comment">// Entity - BackendId relationship</span></div><div class="line"><a name="l01036"></a><span class="lineno"> 1036</span>&#160;    <a class="code" href="_profiling_test_utils_8cpp.xhtml#af25b6f3b19654d8d589e54e4e1404acb">VerifyTimelineRelationshipBinaryPacketData</a>(ProfilingRelationshipType::LabelLink,</div><div class="line"><a name="l01037"></a><span class="lineno"> 1037</span>&#160;                                               arm::pipe::EmptyOptional(),</div><div class="line"><a name="l01038"></a><span class="lineno"> 1038</span>&#160;                                               outputWorkloadGuid,</div><div class="line"><a name="l01039"></a><span class="lineno"> 1039</span>&#160;                                               backendIdLabelGuid,</div><div class="line"><a name="l01040"></a><span class="lineno"> 1040</span>&#160;                                               LabelsAndEventClasses::BACKENDID_GUID,</div><div class="line"><a name="l01041"></a><span class="lineno"> 1041</span>&#160;                                               readableData,</div><div class="line"><a name="l01042"></a><span class="lineno"> 1042</span>&#160;                                               offset);</div><div class="line"><a name="l01043"></a><span class="lineno"> 1043</span>&#160;</div><div class="line"><a name="l01044"></a><span class="lineno"> 1044</span>&#160;    <span class="comment">// Output layer - Output workload relationship</span></div><div class="line"><a name="l01045"></a><span class="lineno"> 1045</span>&#160;    <a class="code" href="_profiling_test_utils_8cpp.xhtml#af25b6f3b19654d8d589e54e4e1404acb">VerifyTimelineRelationshipBinaryPacketData</a>(ProfilingRelationshipType::RetentionLink,</div><div class="line"><a name="l01046"></a><span class="lineno"> 1046</span>&#160;                                               arm::pipe::EmptyOptional(),</div><div class="line"><a name="l01047"></a><span class="lineno"> 1047</span>&#160;                                               output-&gt;<a class="code" href="classarmnn_1_1_i_connectable_layer.xhtml#afb5e65c770f6cee222db8af7581541a6">GetGuid</a>(),</div><div class="line"><a name="l01048"></a><span class="lineno"> 1048</span>&#160;                                               outputWorkloadGuid,</div><div class="line"><a name="l01049"></a><span class="lineno"> 1049</span>&#160;                                               LabelsAndEventClasses::CHILD_GUID,</div><div class="line"><a name="l01050"></a><span class="lineno"> 1050</span>&#160;                                               readableData,</div><div class="line"><a name="l01051"></a><span class="lineno"> 1051</span>&#160;                                               offset);</div><div class="line"><a name="l01052"></a><span class="lineno"> 1052</span>&#160;</div><div class="line"><a name="l01053"></a><span class="lineno"> 1053</span>&#160;    bufferManager.MarkRead(outputReadableBuffer);</div><div class="line"><a name="l01054"></a><span class="lineno"> 1054</span>&#160;</div><div class="line"><a name="l01055"></a><span class="lineno"> 1055</span>&#160;    <span class="comment">// Validate inference data</span></div><div class="line"><a name="l01056"></a><span class="lineno"> 1056</span>&#160;    size = inferenceReadableBuffer-&gt;GetSize();</div><div class="line"><a name="l01057"></a><span class="lineno"> 1057</span>&#160;</div><div class="line"><a name="l01058"></a><span class="lineno"> 1058</span>&#160;    CHECK(size == 1748 + 10 * ThreadIdSize);</div><div class="line"><a name="l01059"></a><span class="lineno"> 1059</span>&#160;</div><div class="line"><a name="l01060"></a><span class="lineno"> 1060</span>&#160;    readableData = inferenceReadableBuffer-&gt;GetReadableData();</div><div class="line"><a name="l01061"></a><span class="lineno"> 1061</span>&#160;    CHECK(readableData != <span class="keyword">nullptr</span>);</div><div class="line"><a name="l01062"></a><span class="lineno"> 1062</span>&#160;</div><div class="line"><a name="l01063"></a><span class="lineno"> 1063</span>&#160;    offset = 0;</div><div class="line"><a name="l01064"></a><span class="lineno"> 1064</span>&#160;</div><div class="line"><a name="l01065"></a><span class="lineno"> 1065</span>&#160;    <span class="comment">// Verify Header</span></div><div class="line"><a name="l01066"></a><span class="lineno"> 1066</span>&#160;    <a class="code" href="_profiling_test_utils_8cpp.xhtml#a6bd6e8ba2f989621f7348d2bb6ce13a4">VerifyTimelineHeaderBinary</a>(readableData, offset, 1740 + 10 * ThreadIdSize);</div><div class="line"><a name="l01067"></a><span class="lineno"> 1067</span>&#160;</div><div class="line"><a name="l01068"></a><span class="lineno"> 1068</span>&#160;    <span class="comment">// Inference timeline trace</span></div><div class="line"><a name="l01069"></a><span class="lineno"> 1069</span>&#160;    <span class="comment">// Inference entity</span></div><div class="line"><a name="l01070"></a><span class="lineno"> 1070</span>&#160;    ProfilingGuid inferenceGuid = <a class="code" href="_profiling_test_utils_8cpp.xhtml#aca439c1ce381920dc07fbb20aa7ab747">VerifyTimelineEntityBinaryPacketData</a>(</div><div class="line"><a name="l01071"></a><span class="lineno"> 1071</span>&#160;        arm::pipe::EmptyOptional(), readableData, offset);</div><div class="line"><a name="l01072"></a><span class="lineno"> 1072</span>&#160;</div><div class="line"><a name="l01073"></a><span class="lineno"> 1073</span>&#160;    <span class="comment">// Entity - Type relationship</span></div><div class="line"><a name="l01074"></a><span class="lineno"> 1074</span>&#160;    <a class="code" href="_profiling_test_utils_8cpp.xhtml#af25b6f3b19654d8d589e54e4e1404acb">VerifyTimelineRelationshipBinaryPacketData</a>(ProfilingRelationshipType::LabelLink,</div><div class="line"><a name="l01075"></a><span class="lineno"> 1075</span>&#160;                                               arm::pipe::EmptyOptional(),</div><div class="line"><a name="l01076"></a><span class="lineno"> 1076</span>&#160;                                               inferenceGuid,</div><div class="line"><a name="l01077"></a><span class="lineno"> 1077</span>&#160;                                               LabelsAndEventClasses::INFERENCE_GUID,</div><div class="line"><a name="l01078"></a><span class="lineno"> 1078</span>&#160;                                               LabelsAndEventClasses::TYPE_GUID,</div><div class="line"><a name="l01079"></a><span class="lineno"> 1079</span>&#160;                                               readableData,</div><div class="line"><a name="l01080"></a><span class="lineno"> 1080</span>&#160;                                               offset);</div><div class="line"><a name="l01081"></a><span class="lineno"> 1081</span>&#160;</div><div class="line"><a name="l01082"></a><span class="lineno"> 1082</span>&#160;    <span class="comment">// Network - Inference relationship</span></div><div class="line"><a name="l01083"></a><span class="lineno"> 1083</span>&#160;    <a class="code" href="_profiling_test_utils_8cpp.xhtml#af25b6f3b19654d8d589e54e4e1404acb">VerifyTimelineRelationshipBinaryPacketData</a>(ProfilingRelationshipType::RetentionLink,</div><div class="line"><a name="l01084"></a><span class="lineno"> 1084</span>&#160;                                               arm::pipe::EmptyOptional(),</div><div class="line"><a name="l01085"></a><span class="lineno"> 1085</span>&#160;                                               optNetGuid,</div><div class="line"><a name="l01086"></a><span class="lineno"> 1086</span>&#160;                                               inferenceGuid,</div><div class="line"><a name="l01087"></a><span class="lineno"> 1087</span>&#160;                                               LabelsAndEventClasses::EXECUTION_OF_GUID,</div><div class="line"><a name="l01088"></a><span class="lineno"> 1088</span>&#160;                                               readableData,</div><div class="line"><a name="l01089"></a><span class="lineno"> 1089</span>&#160;                                               offset);</div><div class="line"><a name="l01090"></a><span class="lineno"> 1090</span>&#160;</div><div class="line"><a name="l01091"></a><span class="lineno"> 1091</span>&#160;    <span class="comment">// Start Inference life</span></div><div class="line"><a name="l01092"></a><span class="lineno"> 1092</span>&#160;    <span class="comment">// Event packet - timeline, threadId, eventGuid</span></div><div class="line"><a name="l01093"></a><span class="lineno"> 1093</span>&#160;    ProfilingGuid inferenceEventGuid = <a class="code" href="_profiling_test_utils_8cpp.xhtml#ac6ded51288940367b65287093e49ffa5">VerifyTimelineEventBinaryPacket</a>(</div><div class="line"><a name="l01094"></a><span class="lineno"> 1094</span>&#160;        arm::pipe::EmptyOptional(), arm::pipe::EmptyOptional(), arm::pipe::EmptyOptional(), readableData, offset);</div><div class="line"><a name="l01095"></a><span class="lineno"> 1095</span>&#160;</div><div class="line"><a name="l01096"></a><span class="lineno"> 1096</span>&#160;    <span class="comment">// Inference - event relationship</span></div><div class="line"><a name="l01097"></a><span class="lineno"> 1097</span>&#160;    <a class="code" href="_profiling_test_utils_8cpp.xhtml#af25b6f3b19654d8d589e54e4e1404acb">VerifyTimelineRelationshipBinaryPacketData</a>(ProfilingRelationshipType::ExecutionLink,</div><div class="line"><a name="l01098"></a><span class="lineno"> 1098</span>&#160;                                               arm::pipe::EmptyOptional(),</div><div class="line"><a name="l01099"></a><span class="lineno"> 1099</span>&#160;                                               inferenceGuid,</div><div class="line"><a name="l01100"></a><span class="lineno"> 1100</span>&#160;                                               inferenceEventGuid,</div><div class="line"><a name="l01101"></a><span class="lineno"> 1101</span>&#160;                                               LabelsAndEventClasses::ARMNN_PROFILING_SOL_EVENT_CLASS,</div><div class="line"><a name="l01102"></a><span class="lineno"> 1102</span>&#160;                                               readableData,</div><div class="line"><a name="l01103"></a><span class="lineno"> 1103</span>&#160;                                               offset);</div><div class="line"><a name="l01104"></a><span class="lineno"> 1104</span>&#160;</div><div class="line"><a name="l01105"></a><span class="lineno"> 1105</span>&#160;    <span class="comment">// Execution</span></div><div class="line"><a name="l01106"></a><span class="lineno"> 1106</span>&#160;    <span class="comment">// Input workload execution</span></div><div class="line"><a name="l01107"></a><span class="lineno"> 1107</span>&#160;    <span class="comment">// Input workload execution entity</span></div><div class="line"><a name="l01108"></a><span class="lineno"> 1108</span>&#160;    ProfilingGuid inputWorkloadExecutionGuid = <a class="code" href="_profiling_test_utils_8cpp.xhtml#aca439c1ce381920dc07fbb20aa7ab747">VerifyTimelineEntityBinaryPacketData</a>(</div><div class="line"><a name="l01109"></a><span class="lineno"> 1109</span>&#160;        arm::pipe::EmptyOptional(), readableData, offset);</div><div class="line"><a name="l01110"></a><span class="lineno"> 1110</span>&#160;</div><div class="line"><a name="l01111"></a><span class="lineno"> 1111</span>&#160;    <span class="comment">// Entity - Type relationship</span></div><div class="line"><a name="l01112"></a><span class="lineno"> 1112</span>&#160;    <a class="code" href="_profiling_test_utils_8cpp.xhtml#af25b6f3b19654d8d589e54e4e1404acb">VerifyTimelineRelationshipBinaryPacketData</a>(ProfilingRelationshipType::LabelLink,</div><div class="line"><a name="l01113"></a><span class="lineno"> 1113</span>&#160;                                               arm::pipe::EmptyOptional(),</div><div class="line"><a name="l01114"></a><span class="lineno"> 1114</span>&#160;                                               inputWorkloadExecutionGuid,</div><div class="line"><a name="l01115"></a><span class="lineno"> 1115</span>&#160;                                               LabelsAndEventClasses::WORKLOAD_EXECUTION_GUID,</div><div class="line"><a name="l01116"></a><span class="lineno"> 1116</span>&#160;                                               LabelsAndEventClasses::TYPE_GUID,</div><div class="line"><a name="l01117"></a><span class="lineno"> 1117</span>&#160;                                               readableData,</div><div class="line"><a name="l01118"></a><span class="lineno"> 1118</span>&#160;                                               offset);</div><div class="line"><a name="l01119"></a><span class="lineno"> 1119</span>&#160;</div><div class="line"><a name="l01120"></a><span class="lineno"> 1120</span>&#160;    <span class="comment">// Inference - Workload execution relationship</span></div><div class="line"><a name="l01121"></a><span class="lineno"> 1121</span>&#160;    <a class="code" href="_profiling_test_utils_8cpp.xhtml#af25b6f3b19654d8d589e54e4e1404acb">VerifyTimelineRelationshipBinaryPacketData</a>(ProfilingRelationshipType::RetentionLink,</div><div class="line"><a name="l01122"></a><span class="lineno"> 1122</span>&#160;                                               arm::pipe::EmptyOptional(),</div><div class="line"><a name="l01123"></a><span class="lineno"> 1123</span>&#160;                                               inferenceGuid,</div><div class="line"><a name="l01124"></a><span class="lineno"> 1124</span>&#160;                                               inputWorkloadExecutionGuid,</div><div class="line"><a name="l01125"></a><span class="lineno"> 1125</span>&#160;                                               LabelsAndEventClasses::CHILD_GUID,</div><div class="line"><a name="l01126"></a><span class="lineno"> 1126</span>&#160;                                               readableData,</div><div class="line"><a name="l01127"></a><span class="lineno"> 1127</span>&#160;                                               offset);</div><div class="line"><a name="l01128"></a><span class="lineno"> 1128</span>&#160;</div><div class="line"><a name="l01129"></a><span class="lineno"> 1129</span>&#160;    <span class="comment">// Workload - Workload execution relationship</span></div><div class="line"><a name="l01130"></a><span class="lineno"> 1130</span>&#160;    <a class="code" href="_profiling_test_utils_8cpp.xhtml#af25b6f3b19654d8d589e54e4e1404acb">VerifyTimelineRelationshipBinaryPacketData</a>(ProfilingRelationshipType::RetentionLink,</div><div class="line"><a name="l01131"></a><span class="lineno"> 1131</span>&#160;                                               arm::pipe::EmptyOptional(),</div><div class="line"><a name="l01132"></a><span class="lineno"> 1132</span>&#160;                                               inputWorkloadGuid,</div><div class="line"><a name="l01133"></a><span class="lineno"> 1133</span>&#160;                                               inputWorkloadExecutionGuid,</div><div class="line"><a name="l01134"></a><span class="lineno"> 1134</span>&#160;                                               LabelsAndEventClasses::EXECUTION_OF_GUID,</div><div class="line"><a name="l01135"></a><span class="lineno"> 1135</span>&#160;                                               readableData,</div><div class="line"><a name="l01136"></a><span class="lineno"> 1136</span>&#160;                                               offset);</div><div class="line"><a name="l01137"></a><span class="lineno"> 1137</span>&#160;</div><div class="line"><a name="l01138"></a><span class="lineno"> 1138</span>&#160;    <span class="comment">// Start Input workload execution life</span></div><div class="line"><a name="l01139"></a><span class="lineno"> 1139</span>&#160;    <span class="comment">// Event packet - timeline, threadId, eventGuid</span></div><div class="line"><a name="l01140"></a><span class="lineno"> 1140</span>&#160;    ProfilingGuid inputWorkloadExecutionSOLEventId = <a class="code" href="_profiling_test_utils_8cpp.xhtml#ac6ded51288940367b65287093e49ffa5">VerifyTimelineEventBinaryPacket</a>(</div><div class="line"><a name="l01141"></a><span class="lineno"> 1141</span>&#160;        arm::pipe::EmptyOptional(), arm::pipe::EmptyOptional(), arm::pipe::EmptyOptional(), readableData, offset);</div><div class="line"><a name="l01142"></a><span class="lineno"> 1142</span>&#160;</div><div class="line"><a name="l01143"></a><span class="lineno"> 1143</span>&#160;    <span class="comment">// Input workload execution - event relationship</span></div><div class="line"><a name="l01144"></a><span class="lineno"> 1144</span>&#160;    <a class="code" href="_profiling_test_utils_8cpp.xhtml#af25b6f3b19654d8d589e54e4e1404acb">VerifyTimelineRelationshipBinaryPacketData</a>(ProfilingRelationshipType::ExecutionLink,</div><div class="line"><a name="l01145"></a><span class="lineno"> 1145</span>&#160;                                               arm::pipe::EmptyOptional(),</div><div class="line"><a name="l01146"></a><span class="lineno"> 1146</span>&#160;                                               inputWorkloadExecutionGuid,</div><div class="line"><a name="l01147"></a><span class="lineno"> 1147</span>&#160;                                               inputWorkloadExecutionSOLEventId,</div><div class="line"><a name="l01148"></a><span class="lineno"> 1148</span>&#160;                                               LabelsAndEventClasses::ARMNN_PROFILING_SOL_EVENT_CLASS,</div><div class="line"><a name="l01149"></a><span class="lineno"> 1149</span>&#160;                                               readableData,</div><div class="line"><a name="l01150"></a><span class="lineno"> 1150</span>&#160;                                               offset);</div><div class="line"><a name="l01151"></a><span class="lineno"> 1151</span>&#160;</div><div class="line"><a name="l01152"></a><span class="lineno"> 1152</span>&#160;    <span class="comment">// End of Input workload execution life</span></div><div class="line"><a name="l01153"></a><span class="lineno"> 1153</span>&#160;    <span class="comment">// Event packet - timeline, threadId, eventGuid</span></div><div class="line"><a name="l01154"></a><span class="lineno"> 1154</span>&#160;    ProfilingGuid inputWorkloadExecutionEOLEventId = <a class="code" href="_profiling_test_utils_8cpp.xhtml#ac6ded51288940367b65287093e49ffa5">VerifyTimelineEventBinaryPacket</a>(</div><div class="line"><a name="l01155"></a><span class="lineno"> 1155</span>&#160;        arm::pipe::EmptyOptional(), arm::pipe::EmptyOptional(), arm::pipe::EmptyOptional(), readableData, offset);</div><div class="line"><a name="l01156"></a><span class="lineno"> 1156</span>&#160;</div><div class="line"><a name="l01157"></a><span class="lineno"> 1157</span>&#160;    <span class="comment">// Input workload execution - event relationship</span></div><div class="line"><a name="l01158"></a><span class="lineno"> 1158</span>&#160;    <a class="code" href="_profiling_test_utils_8cpp.xhtml#af25b6f3b19654d8d589e54e4e1404acb">VerifyTimelineRelationshipBinaryPacketData</a>(ProfilingRelationshipType::ExecutionLink,</div><div class="line"><a name="l01159"></a><span class="lineno"> 1159</span>&#160;                                               arm::pipe::EmptyOptional(),</div><div class="line"><a name="l01160"></a><span class="lineno"> 1160</span>&#160;                                               inputWorkloadExecutionGuid,</div><div class="line"><a name="l01161"></a><span class="lineno"> 1161</span>&#160;                                               inputWorkloadExecutionEOLEventId,</div><div class="line"><a name="l01162"></a><span class="lineno"> 1162</span>&#160;                                               LabelsAndEventClasses::ARMNN_PROFILING_EOL_EVENT_CLASS,</div><div class="line"><a name="l01163"></a><span class="lineno"> 1163</span>&#160;                                               readableData,</div><div class="line"><a name="l01164"></a><span class="lineno"> 1164</span>&#160;                                               offset);</div><div class="line"><a name="l01165"></a><span class="lineno"> 1165</span>&#160;</div><div class="line"><a name="l01166"></a><span class="lineno"> 1166</span>&#160;   <span class="comment">// Weights workload execution</span></div><div class="line"><a name="l01167"></a><span class="lineno"> 1167</span>&#160;    <span class="comment">// Weights workload execution entity</span></div><div class="line"><a name="l01168"></a><span class="lineno"> 1168</span>&#160;    ProfilingGuid weightsWorkloadExecutionGuid = <a class="code" href="_profiling_test_utils_8cpp.xhtml#aca439c1ce381920dc07fbb20aa7ab747">VerifyTimelineEntityBinaryPacketData</a>(</div><div class="line"><a name="l01169"></a><span class="lineno"> 1169</span>&#160;        arm::pipe::EmptyOptional(), readableData, offset);</div><div class="line"><a name="l01170"></a><span class="lineno"> 1170</span>&#160;</div><div class="line"><a name="l01171"></a><span class="lineno"> 1171</span>&#160;    <span class="comment">// Entity - Type relationship</span></div><div class="line"><a name="l01172"></a><span class="lineno"> 1172</span>&#160;    <a class="code" href="_profiling_test_utils_8cpp.xhtml#af25b6f3b19654d8d589e54e4e1404acb">VerifyTimelineRelationshipBinaryPacketData</a>(ProfilingRelationshipType::LabelLink,</div><div class="line"><a name="l01173"></a><span class="lineno"> 1173</span>&#160;                                               arm::pipe::EmptyOptional(),</div><div class="line"><a name="l01174"></a><span class="lineno"> 1174</span>&#160;                                               weightsWorkloadExecutionGuid,</div><div class="line"><a name="l01175"></a><span class="lineno"> 1175</span>&#160;                                               LabelsAndEventClasses::WORKLOAD_EXECUTION_GUID,</div><div class="line"><a name="l01176"></a><span class="lineno"> 1176</span>&#160;                                               LabelsAndEventClasses::TYPE_GUID,</div><div class="line"><a name="l01177"></a><span class="lineno"> 1177</span>&#160;                                               readableData,</div><div class="line"><a name="l01178"></a><span class="lineno"> 1178</span>&#160;                                               offset);</div><div class="line"><a name="l01179"></a><span class="lineno"> 1179</span>&#160;</div><div class="line"><a name="l01180"></a><span class="lineno"> 1180</span>&#160;    <span class="comment">// Inference - Workload execution relationship</span></div><div class="line"><a name="l01181"></a><span class="lineno"> 1181</span>&#160;    <a class="code" href="_profiling_test_utils_8cpp.xhtml#af25b6f3b19654d8d589e54e4e1404acb">VerifyTimelineRelationshipBinaryPacketData</a>(ProfilingRelationshipType::RetentionLink,</div><div class="line"><a name="l01182"></a><span class="lineno"> 1182</span>&#160;                                               arm::pipe::EmptyOptional(),</div><div class="line"><a name="l01183"></a><span class="lineno"> 1183</span>&#160;                                               inferenceGuid,</div><div class="line"><a name="l01184"></a><span class="lineno"> 1184</span>&#160;                                               weightsWorkloadExecutionGuid,</div><div class="line"><a name="l01185"></a><span class="lineno"> 1185</span>&#160;                                               LabelsAndEventClasses::CHILD_GUID,</div><div class="line"><a name="l01186"></a><span class="lineno"> 1186</span>&#160;                                               readableData,</div><div class="line"><a name="l01187"></a><span class="lineno"> 1187</span>&#160;                                               offset);</div><div class="line"><a name="l01188"></a><span class="lineno"> 1188</span>&#160;</div><div class="line"><a name="l01189"></a><span class="lineno"> 1189</span>&#160;    <span class="comment">// Workload - Workload execution relationship</span></div><div class="line"><a name="l01190"></a><span class="lineno"> 1190</span>&#160;    <a class="code" href="_profiling_test_utils_8cpp.xhtml#af25b6f3b19654d8d589e54e4e1404acb">VerifyTimelineRelationshipBinaryPacketData</a>(ProfilingRelationshipType::RetentionLink,</div><div class="line"><a name="l01191"></a><span class="lineno"> 1191</span>&#160;                                               arm::pipe::EmptyOptional(),</div><div class="line"><a name="l01192"></a><span class="lineno"> 1192</span>&#160;                                               weightsWorkloadGuid,</div><div class="line"><a name="l01193"></a><span class="lineno"> 1193</span>&#160;                                               weightsWorkloadExecutionGuid,</div><div class="line"><a name="l01194"></a><span class="lineno"> 1194</span>&#160;                                               LabelsAndEventClasses::EXECUTION_OF_GUID,</div><div class="line"><a name="l01195"></a><span class="lineno"> 1195</span>&#160;                                               readableData,</div><div class="line"><a name="l01196"></a><span class="lineno"> 1196</span>&#160;                                               offset);</div><div class="line"><a name="l01197"></a><span class="lineno"> 1197</span>&#160;</div><div class="line"><a name="l01198"></a><span class="lineno"> 1198</span>&#160;    <span class="comment">// Start Weights workload execution life</span></div><div class="line"><a name="l01199"></a><span class="lineno"> 1199</span>&#160;    <span class="comment">// Event packet - timeline, threadId, eventGuid</span></div><div class="line"><a name="l01200"></a><span class="lineno"> 1200</span>&#160;    ProfilingGuid weightsWorkloadExecutionSOLEventGuid = <a class="code" href="_profiling_test_utils_8cpp.xhtml#ac6ded51288940367b65287093e49ffa5">VerifyTimelineEventBinaryPacket</a>(</div><div class="line"><a name="l01201"></a><span class="lineno"> 1201</span>&#160;        arm::pipe::EmptyOptional(), arm::pipe::EmptyOptional(), arm::pipe::EmptyOptional(), readableData, offset);</div><div class="line"><a name="l01202"></a><span class="lineno"> 1202</span>&#160;</div><div class="line"><a name="l01203"></a><span class="lineno"> 1203</span>&#160;    <span class="comment">// Weights workload execution - event relationship</span></div><div class="line"><a name="l01204"></a><span class="lineno"> 1204</span>&#160;    <a class="code" href="_profiling_test_utils_8cpp.xhtml#af25b6f3b19654d8d589e54e4e1404acb">VerifyTimelineRelationshipBinaryPacketData</a>(ProfilingRelationshipType::ExecutionLink,</div><div class="line"><a name="l01205"></a><span class="lineno"> 1205</span>&#160;                                               arm::pipe::EmptyOptional(),</div><div class="line"><a name="l01206"></a><span class="lineno"> 1206</span>&#160;                                               weightsWorkloadExecutionGuid,</div><div class="line"><a name="l01207"></a><span class="lineno"> 1207</span>&#160;                                               weightsWorkloadExecutionSOLEventGuid,</div><div class="line"><a name="l01208"></a><span class="lineno"> 1208</span>&#160;                                               LabelsAndEventClasses::ARMNN_PROFILING_SOL_EVENT_CLASS,</div><div class="line"><a name="l01209"></a><span class="lineno"> 1209</span>&#160;                                               readableData,</div><div class="line"><a name="l01210"></a><span class="lineno"> 1210</span>&#160;                                               offset);</div><div class="line"><a name="l01211"></a><span class="lineno"> 1211</span>&#160;</div><div class="line"><a name="l01212"></a><span class="lineno"> 1212</span>&#160;    <span class="comment">// End of Weights workload execution life</span></div><div class="line"><a name="l01213"></a><span class="lineno"> 1213</span>&#160;    <span class="comment">// Event packet - timeline, threadId, eventGuid</span></div><div class="line"><a name="l01214"></a><span class="lineno"> 1214</span>&#160;    ProfilingGuid weightsWorkloadExecutionEOLEventGuid = <a class="code" href="_profiling_test_utils_8cpp.xhtml#ac6ded51288940367b65287093e49ffa5">VerifyTimelineEventBinaryPacket</a>(</div><div class="line"><a name="l01215"></a><span class="lineno"> 1215</span>&#160;        arm::pipe::EmptyOptional(), arm::pipe::EmptyOptional(), arm::pipe::EmptyOptional(), readableData, offset);</div><div class="line"><a name="l01216"></a><span class="lineno"> 1216</span>&#160;</div><div class="line"><a name="l01217"></a><span class="lineno"> 1217</span>&#160;    <span class="comment">// Weights workload execution - event relationship</span></div><div class="line"><a name="l01218"></a><span class="lineno"> 1218</span>&#160;    <a class="code" href="_profiling_test_utils_8cpp.xhtml#af25b6f3b19654d8d589e54e4e1404acb">VerifyTimelineRelationshipBinaryPacketData</a>(ProfilingRelationshipType::ExecutionLink,</div><div class="line"><a name="l01219"></a><span class="lineno"> 1219</span>&#160;                                               arm::pipe::EmptyOptional(),</div><div class="line"><a name="l01220"></a><span class="lineno"> 1220</span>&#160;                                               weightsWorkloadExecutionGuid,</div><div class="line"><a name="l01221"></a><span class="lineno"> 1221</span>&#160;                                               weightsWorkloadExecutionEOLEventGuid,</div><div class="line"><a name="l01222"></a><span class="lineno"> 1222</span>&#160;                                               LabelsAndEventClasses::ARMNN_PROFILING_EOL_EVENT_CLASS,</div><div class="line"><a name="l01223"></a><span class="lineno"> 1223</span>&#160;                                               readableData,</div><div class="line"><a name="l01224"></a><span class="lineno"> 1224</span>&#160;                                               offset);</div><div class="line"><a name="l01225"></a><span class="lineno"> 1225</span>&#160;</div><div class="line"><a name="l01226"></a><span class="lineno"> 1226</span>&#160;   <span class="comment">// Bias workload execution</span></div><div class="line"><a name="l01227"></a><span class="lineno"> 1227</span>&#160;    <span class="comment">// Bias workload execution entity</span></div><div class="line"><a name="l01228"></a><span class="lineno"> 1228</span>&#160;    ProfilingGuid biasWorkloadExecutionGuid = <a class="code" href="_profiling_test_utils_8cpp.xhtml#aca439c1ce381920dc07fbb20aa7ab747">VerifyTimelineEntityBinaryPacketData</a>(</div><div class="line"><a name="l01229"></a><span class="lineno"> 1229</span>&#160;        arm::pipe::EmptyOptional(), readableData, offset);</div><div class="line"><a name="l01230"></a><span class="lineno"> 1230</span>&#160;</div><div class="line"><a name="l01231"></a><span class="lineno"> 1231</span>&#160;    <span class="comment">// Entity - Type relationship</span></div><div class="line"><a name="l01232"></a><span class="lineno"> 1232</span>&#160;    <a class="code" href="_profiling_test_utils_8cpp.xhtml#af25b6f3b19654d8d589e54e4e1404acb">VerifyTimelineRelationshipBinaryPacketData</a>(ProfilingRelationshipType::LabelLink,</div><div class="line"><a name="l01233"></a><span class="lineno"> 1233</span>&#160;                                               arm::pipe::EmptyOptional(),</div><div class="line"><a name="l01234"></a><span class="lineno"> 1234</span>&#160;                                               biasWorkloadExecutionGuid,</div><div class="line"><a name="l01235"></a><span class="lineno"> 1235</span>&#160;                                               LabelsAndEventClasses::WORKLOAD_EXECUTION_GUID,</div><div class="line"><a name="l01236"></a><span class="lineno"> 1236</span>&#160;                                               LabelsAndEventClasses::TYPE_GUID,</div><div class="line"><a name="l01237"></a><span class="lineno"> 1237</span>&#160;                                               readableData,</div><div class="line"><a name="l01238"></a><span class="lineno"> 1238</span>&#160;                                               offset);</div><div class="line"><a name="l01239"></a><span class="lineno"> 1239</span>&#160;</div><div class="line"><a name="l01240"></a><span class="lineno"> 1240</span>&#160;    <span class="comment">// Inference - Workload execution relationship</span></div><div class="line"><a name="l01241"></a><span class="lineno"> 1241</span>&#160;    <a class="code" href="_profiling_test_utils_8cpp.xhtml#af25b6f3b19654d8d589e54e4e1404acb">VerifyTimelineRelationshipBinaryPacketData</a>(ProfilingRelationshipType::RetentionLink,</div><div class="line"><a name="l01242"></a><span class="lineno"> 1242</span>&#160;                                               arm::pipe::EmptyOptional(),</div><div class="line"><a name="l01243"></a><span class="lineno"> 1243</span>&#160;                                               inferenceGuid,</div><div class="line"><a name="l01244"></a><span class="lineno"> 1244</span>&#160;                                               biasWorkloadExecutionGuid,</div><div class="line"><a name="l01245"></a><span class="lineno"> 1245</span>&#160;                                               LabelsAndEventClasses::CHILD_GUID,</div><div class="line"><a name="l01246"></a><span class="lineno"> 1246</span>&#160;                                               readableData,</div><div class="line"><a name="l01247"></a><span class="lineno"> 1247</span>&#160;                                               offset);</div><div class="line"><a name="l01248"></a><span class="lineno"> 1248</span>&#160;</div><div class="line"><a name="l01249"></a><span class="lineno"> 1249</span>&#160;    <span class="comment">// Workload - Workload execution relationship</span></div><div class="line"><a name="l01250"></a><span class="lineno"> 1250</span>&#160;    <a class="code" href="_profiling_test_utils_8cpp.xhtml#af25b6f3b19654d8d589e54e4e1404acb">VerifyTimelineRelationshipBinaryPacketData</a>(ProfilingRelationshipType::RetentionLink,</div><div class="line"><a name="l01251"></a><span class="lineno"> 1251</span>&#160;                                               arm::pipe::EmptyOptional(),</div><div class="line"><a name="l01252"></a><span class="lineno"> 1252</span>&#160;                                               biasWorkloadGuid,</div><div class="line"><a name="l01253"></a><span class="lineno"> 1253</span>&#160;                                               biasWorkloadExecutionGuid,</div><div class="line"><a name="l01254"></a><span class="lineno"> 1254</span>&#160;                                               LabelsAndEventClasses::EXECUTION_OF_GUID,</div><div class="line"><a name="l01255"></a><span class="lineno"> 1255</span>&#160;                                               readableData,</div><div class="line"><a name="l01256"></a><span class="lineno"> 1256</span>&#160;                                               offset);</div><div class="line"><a name="l01257"></a><span class="lineno"> 1257</span>&#160;</div><div class="line"><a name="l01258"></a><span class="lineno"> 1258</span>&#160;    <span class="comment">// Start Bias workload execution life</span></div><div class="line"><a name="l01259"></a><span class="lineno"> 1259</span>&#160;    <span class="comment">// Event packet - timeline, threadId, eventGuid</span></div><div class="line"><a name="l01260"></a><span class="lineno"> 1260</span>&#160;    ProfilingGuid biasWorkloadExecutionSOLEventGuid = <a class="code" href="_profiling_test_utils_8cpp.xhtml#ac6ded51288940367b65287093e49ffa5">VerifyTimelineEventBinaryPacket</a>(</div><div class="line"><a name="l01261"></a><span class="lineno"> 1261</span>&#160;        arm::pipe::EmptyOptional(), arm::pipe::EmptyOptional(), arm::pipe::EmptyOptional(), readableData, offset);</div><div class="line"><a name="l01262"></a><span class="lineno"> 1262</span>&#160;</div><div class="line"><a name="l01263"></a><span class="lineno"> 1263</span>&#160;    <span class="comment">// Bias workload execution - event relationship</span></div><div class="line"><a name="l01264"></a><span class="lineno"> 1264</span>&#160;    <a class="code" href="_profiling_test_utils_8cpp.xhtml#af25b6f3b19654d8d589e54e4e1404acb">VerifyTimelineRelationshipBinaryPacketData</a>(ProfilingRelationshipType::ExecutionLink,</div><div class="line"><a name="l01265"></a><span class="lineno"> 1265</span>&#160;                                               arm::pipe::EmptyOptional(),</div><div class="line"><a name="l01266"></a><span class="lineno"> 1266</span>&#160;                                               biasWorkloadExecutionGuid,</div><div class="line"><a name="l01267"></a><span class="lineno"> 1267</span>&#160;                                               biasWorkloadExecutionSOLEventGuid,</div><div class="line"><a name="l01268"></a><span class="lineno"> 1268</span>&#160;                                               LabelsAndEventClasses::ARMNN_PROFILING_SOL_EVENT_CLASS,</div><div class="line"><a name="l01269"></a><span class="lineno"> 1269</span>&#160;                                               readableData,</div><div class="line"><a name="l01270"></a><span class="lineno"> 1270</span>&#160;                                               offset);</div><div class="line"><a name="l01271"></a><span class="lineno"> 1271</span>&#160;</div><div class="line"><a name="l01272"></a><span class="lineno"> 1272</span>&#160;    <span class="comment">// End of Bias workload execution life</span></div><div class="line"><a name="l01273"></a><span class="lineno"> 1273</span>&#160;    <span class="comment">// Event packet - timeline, threadId, eventGuid</span></div><div class="line"><a name="l01274"></a><span class="lineno"> 1274</span>&#160;    ProfilingGuid biasWorkloadExecutionEOLEventGuid = <a class="code" href="_profiling_test_utils_8cpp.xhtml#ac6ded51288940367b65287093e49ffa5">VerifyTimelineEventBinaryPacket</a>(</div><div class="line"><a name="l01275"></a><span class="lineno"> 1275</span>&#160;        arm::pipe::EmptyOptional(), arm::pipe::EmptyOptional(), arm::pipe::EmptyOptional(), readableData, offset);</div><div class="line"><a name="l01276"></a><span class="lineno"> 1276</span>&#160;</div><div class="line"><a name="l01277"></a><span class="lineno"> 1277</span>&#160;    <span class="comment">// Bias workload execution - event relationship</span></div><div class="line"><a name="l01278"></a><span class="lineno"> 1278</span>&#160;    <a class="code" href="_profiling_test_utils_8cpp.xhtml#af25b6f3b19654d8d589e54e4e1404acb">VerifyTimelineRelationshipBinaryPacketData</a>(ProfilingRelationshipType::ExecutionLink,</div><div class="line"><a name="l01279"></a><span class="lineno"> 1279</span>&#160;                                               arm::pipe::EmptyOptional(),</div><div class="line"><a name="l01280"></a><span class="lineno"> 1280</span>&#160;                                               biasWorkloadExecutionGuid,</div><div class="line"><a name="l01281"></a><span class="lineno"> 1281</span>&#160;                                               biasWorkloadExecutionEOLEventGuid,</div><div class="line"><a name="l01282"></a><span class="lineno"> 1282</span>&#160;                                               LabelsAndEventClasses::ARMNN_PROFILING_EOL_EVENT_CLASS,</div><div class="line"><a name="l01283"></a><span class="lineno"> 1283</span>&#160;                                               readableData,</div><div class="line"><a name="l01284"></a><span class="lineno"> 1284</span>&#160;                                               offset);</div><div class="line"><a name="l01285"></a><span class="lineno"> 1285</span>&#160;</div><div class="line"><a name="l01286"></a><span class="lineno"> 1286</span>&#160;    <span class="comment">// Conv2d workload execution</span></div><div class="line"><a name="l01287"></a><span class="lineno"> 1287</span>&#160;    <span class="comment">// Conv2d workload execution entity</span></div><div class="line"><a name="l01288"></a><span class="lineno"> 1288</span>&#160;    ProfilingGuid conv2DWorkloadExecutionGuid = <a class="code" href="_profiling_test_utils_8cpp.xhtml#aca439c1ce381920dc07fbb20aa7ab747">VerifyTimelineEntityBinaryPacketData</a>(</div><div class="line"><a name="l01289"></a><span class="lineno"> 1289</span>&#160;        arm::pipe::EmptyOptional(), readableData, offset);</div><div class="line"><a name="l01290"></a><span class="lineno"> 1290</span>&#160;</div><div class="line"><a name="l01291"></a><span class="lineno"> 1291</span>&#160;    <span class="comment">// Entity - Type relationship</span></div><div class="line"><a name="l01292"></a><span class="lineno"> 1292</span>&#160;    <a class="code" href="_profiling_test_utils_8cpp.xhtml#af25b6f3b19654d8d589e54e4e1404acb">VerifyTimelineRelationshipBinaryPacketData</a>(ProfilingRelationshipType::LabelLink,</div><div class="line"><a name="l01293"></a><span class="lineno"> 1293</span>&#160;                                               arm::pipe::EmptyOptional(),</div><div class="line"><a name="l01294"></a><span class="lineno"> 1294</span>&#160;                                               conv2DWorkloadExecutionGuid,</div><div class="line"><a name="l01295"></a><span class="lineno"> 1295</span>&#160;                                               LabelsAndEventClasses::WORKLOAD_EXECUTION_GUID,</div><div class="line"><a name="l01296"></a><span class="lineno"> 1296</span>&#160;                                               LabelsAndEventClasses::TYPE_GUID,</div><div class="line"><a name="l01297"></a><span class="lineno"> 1297</span>&#160;                                               readableData,</div><div class="line"><a name="l01298"></a><span class="lineno"> 1298</span>&#160;                                               offset);</div><div class="line"><a name="l01299"></a><span class="lineno"> 1299</span>&#160;</div><div class="line"><a name="l01300"></a><span class="lineno"> 1300</span>&#160;    <span class="comment">// Inference - Workload execution relationship</span></div><div class="line"><a name="l01301"></a><span class="lineno"> 1301</span>&#160;    <a class="code" href="_profiling_test_utils_8cpp.xhtml#af25b6f3b19654d8d589e54e4e1404acb">VerifyTimelineRelationshipBinaryPacketData</a>(ProfilingRelationshipType::RetentionLink,</div><div class="line"><a name="l01302"></a><span class="lineno"> 1302</span>&#160;                                               arm::pipe::EmptyOptional(),</div><div class="line"><a name="l01303"></a><span class="lineno"> 1303</span>&#160;                                               inferenceGuid,</div><div class="line"><a name="l01304"></a><span class="lineno"> 1304</span>&#160;                                               conv2DWorkloadExecutionGuid,</div><div class="line"><a name="l01305"></a><span class="lineno"> 1305</span>&#160;                                               LabelsAndEventClasses::CHILD_GUID,</div><div class="line"><a name="l01306"></a><span class="lineno"> 1306</span>&#160;                                               readableData,</div><div class="line"><a name="l01307"></a><span class="lineno"> 1307</span>&#160;                                               offset);</div><div class="line"><a name="l01308"></a><span class="lineno"> 1308</span>&#160;</div><div class="line"><a name="l01309"></a><span class="lineno"> 1309</span>&#160;    <span class="comment">// Workload - Workload execution relationship</span></div><div class="line"><a name="l01310"></a><span class="lineno"> 1310</span>&#160;    <a class="code" href="_profiling_test_utils_8cpp.xhtml#af25b6f3b19654d8d589e54e4e1404acb">VerifyTimelineRelationshipBinaryPacketData</a>(ProfilingRelationshipType::RetentionLink,</div><div class="line"><a name="l01311"></a><span class="lineno"> 1311</span>&#160;                                               arm::pipe::EmptyOptional(),</div><div class="line"><a name="l01312"></a><span class="lineno"> 1312</span>&#160;                                               conv2DWorkloadGuid,</div><div class="line"><a name="l01313"></a><span class="lineno"> 1313</span>&#160;                                               conv2DWorkloadExecutionGuid,</div><div class="line"><a name="l01314"></a><span class="lineno"> 1314</span>&#160;                                               LabelsAndEventClasses::EXECUTION_OF_GUID,</div><div class="line"><a name="l01315"></a><span class="lineno"> 1315</span>&#160;                                               readableData,</div><div class="line"><a name="l01316"></a><span class="lineno"> 1316</span>&#160;                                               offset);</div><div class="line"><a name="l01317"></a><span class="lineno"> 1317</span>&#160;</div><div class="line"><a name="l01318"></a><span class="lineno"> 1318</span>&#160;    <span class="comment">// Start Conv2d workload execution life</span></div><div class="line"><a name="l01319"></a><span class="lineno"> 1319</span>&#160;    <span class="comment">// Event packet - timeline, threadId, eventGuid</span></div><div class="line"><a name="l01320"></a><span class="lineno"> 1320</span>&#160;    ProfilingGuid conv2DWorkloadExecutionSOLEventGuid = <a class="code" href="_profiling_test_utils_8cpp.xhtml#ac6ded51288940367b65287093e49ffa5">VerifyTimelineEventBinaryPacket</a>(</div><div class="line"><a name="l01321"></a><span class="lineno"> 1321</span>&#160;        arm::pipe::EmptyOptional(), arm::pipe::EmptyOptional(), arm::pipe::EmptyOptional(), readableData, offset);</div><div class="line"><a name="l01322"></a><span class="lineno"> 1322</span>&#160;</div><div class="line"><a name="l01323"></a><span class="lineno"> 1323</span>&#160;    <span class="comment">// Conv2d workload execution - event relationship</span></div><div class="line"><a name="l01324"></a><span class="lineno"> 1324</span>&#160;    <a class="code" href="_profiling_test_utils_8cpp.xhtml#af25b6f3b19654d8d589e54e4e1404acb">VerifyTimelineRelationshipBinaryPacketData</a>(ProfilingRelationshipType::ExecutionLink,</div><div class="line"><a name="l01325"></a><span class="lineno"> 1325</span>&#160;                                               arm::pipe::EmptyOptional(),</div><div class="line"><a name="l01326"></a><span class="lineno"> 1326</span>&#160;                                               conv2DWorkloadExecutionGuid,</div><div class="line"><a name="l01327"></a><span class="lineno"> 1327</span>&#160;                                               conv2DWorkloadExecutionSOLEventGuid,</div><div class="line"><a name="l01328"></a><span class="lineno"> 1328</span>&#160;                                               LabelsAndEventClasses::ARMNN_PROFILING_SOL_EVENT_CLASS,</div><div class="line"><a name="l01329"></a><span class="lineno"> 1329</span>&#160;                                               readableData,</div><div class="line"><a name="l01330"></a><span class="lineno"> 1330</span>&#160;                                               offset);</div><div class="line"><a name="l01331"></a><span class="lineno"> 1331</span>&#160;</div><div class="line"><a name="l01332"></a><span class="lineno"> 1332</span>&#160;    <span class="comment">// End of Conv2d workload execution life</span></div><div class="line"><a name="l01333"></a><span class="lineno"> 1333</span>&#160;    <span class="comment">// Event packet - timeline, threadId, eventGuid</span></div><div class="line"><a name="l01334"></a><span class="lineno"> 1334</span>&#160;    ProfilingGuid conv2DWorkloadExecutionEOLEventGuid = <a class="code" href="_profiling_test_utils_8cpp.xhtml#ac6ded51288940367b65287093e49ffa5">VerifyTimelineEventBinaryPacket</a>(</div><div class="line"><a name="l01335"></a><span class="lineno"> 1335</span>&#160;        arm::pipe::EmptyOptional(), arm::pipe::EmptyOptional(), arm::pipe::EmptyOptional(), readableData, offset);</div><div class="line"><a name="l01336"></a><span class="lineno"> 1336</span>&#160;</div><div class="line"><a name="l01337"></a><span class="lineno"> 1337</span>&#160;    <span class="comment">// Conv2d workload execution - event relationship</span></div><div class="line"><a name="l01338"></a><span class="lineno"> 1338</span>&#160;    <a class="code" href="_profiling_test_utils_8cpp.xhtml#af25b6f3b19654d8d589e54e4e1404acb">VerifyTimelineRelationshipBinaryPacketData</a>(ProfilingRelationshipType::ExecutionLink,</div><div class="line"><a name="l01339"></a><span class="lineno"> 1339</span>&#160;                                               arm::pipe::EmptyOptional(),</div><div class="line"><a name="l01340"></a><span class="lineno"> 1340</span>&#160;                                               conv2DWorkloadExecutionGuid,</div><div class="line"><a name="l01341"></a><span class="lineno"> 1341</span>&#160;                                               conv2DWorkloadExecutionEOLEventGuid,</div><div class="line"><a name="l01342"></a><span class="lineno"> 1342</span>&#160;                                               LabelsAndEventClasses::ARMNN_PROFILING_EOL_EVENT_CLASS,</div><div class="line"><a name="l01343"></a><span class="lineno"> 1343</span>&#160;                                               readableData,</div><div class="line"><a name="l01344"></a><span class="lineno"> 1344</span>&#160;                                               offset);</div><div class="line"><a name="l01345"></a><span class="lineno"> 1345</span>&#160;</div><div class="line"><a name="l01346"></a><span class="lineno"> 1346</span>&#160;    <span class="comment">// Abs workload execution</span></div><div class="line"><a name="l01347"></a><span class="lineno"> 1347</span>&#160;    <span class="comment">// Abs workload execution entity</span></div><div class="line"><a name="l01348"></a><span class="lineno"> 1348</span>&#160;    ProfilingGuid absWorkloadExecutionGuid = <a class="code" href="_profiling_test_utils_8cpp.xhtml#aca439c1ce381920dc07fbb20aa7ab747">VerifyTimelineEntityBinaryPacketData</a>(</div><div class="line"><a name="l01349"></a><span class="lineno"> 1349</span>&#160;        arm::pipe::EmptyOptional(), readableData, offset);</div><div class="line"><a name="l01350"></a><span class="lineno"> 1350</span>&#160;</div><div class="line"><a name="l01351"></a><span class="lineno"> 1351</span>&#160;    <span class="comment">// Entity - Type relationship</span></div><div class="line"><a name="l01352"></a><span class="lineno"> 1352</span>&#160;    <a class="code" href="_profiling_test_utils_8cpp.xhtml#af25b6f3b19654d8d589e54e4e1404acb">VerifyTimelineRelationshipBinaryPacketData</a>(ProfilingRelationshipType::LabelLink,</div><div class="line"><a name="l01353"></a><span class="lineno"> 1353</span>&#160;                                               arm::pipe::EmptyOptional(),</div><div class="line"><a name="l01354"></a><span class="lineno"> 1354</span>&#160;                                               absWorkloadExecutionGuid,</div><div class="line"><a name="l01355"></a><span class="lineno"> 1355</span>&#160;                                               LabelsAndEventClasses::WORKLOAD_EXECUTION_GUID,</div><div class="line"><a name="l01356"></a><span class="lineno"> 1356</span>&#160;                                               LabelsAndEventClasses::TYPE_GUID,</div><div class="line"><a name="l01357"></a><span class="lineno"> 1357</span>&#160;                                               readableData,</div><div class="line"><a name="l01358"></a><span class="lineno"> 1358</span>&#160;                                               offset);</div><div class="line"><a name="l01359"></a><span class="lineno"> 1359</span>&#160;</div><div class="line"><a name="l01360"></a><span class="lineno"> 1360</span>&#160;    <span class="comment">// Inference - Workload execution relationship</span></div><div class="line"><a name="l01361"></a><span class="lineno"> 1361</span>&#160;    <a class="code" href="_profiling_test_utils_8cpp.xhtml#af25b6f3b19654d8d589e54e4e1404acb">VerifyTimelineRelationshipBinaryPacketData</a>(ProfilingRelationshipType::RetentionLink,</div><div class="line"><a name="l01362"></a><span class="lineno"> 1362</span>&#160;                                               arm::pipe::EmptyOptional(),</div><div class="line"><a name="l01363"></a><span class="lineno"> 1363</span>&#160;                                               inferenceGuid,</div><div class="line"><a name="l01364"></a><span class="lineno"> 1364</span>&#160;                                               absWorkloadExecutionGuid,</div><div class="line"><a name="l01365"></a><span class="lineno"> 1365</span>&#160;                                               LabelsAndEventClasses::CHILD_GUID,</div><div class="line"><a name="l01366"></a><span class="lineno"> 1366</span>&#160;                                               readableData,</div><div class="line"><a name="l01367"></a><span class="lineno"> 1367</span>&#160;                                               offset);</div><div class="line"><a name="l01368"></a><span class="lineno"> 1368</span>&#160;</div><div class="line"><a name="l01369"></a><span class="lineno"> 1369</span>&#160;    <span class="comment">// Workload - Workload execution relationship</span></div><div class="line"><a name="l01370"></a><span class="lineno"> 1370</span>&#160;    <a class="code" href="_profiling_test_utils_8cpp.xhtml#af25b6f3b19654d8d589e54e4e1404acb">VerifyTimelineRelationshipBinaryPacketData</a>(ProfilingRelationshipType::RetentionLink,</div><div class="line"><a name="l01371"></a><span class="lineno"> 1371</span>&#160;                                               arm::pipe::EmptyOptional(),</div><div class="line"><a name="l01372"></a><span class="lineno"> 1372</span>&#160;                                               absWorkloadGuid,</div><div class="line"><a name="l01373"></a><span class="lineno"> 1373</span>&#160;                                               absWorkloadExecutionGuid,</div><div class="line"><a name="l01374"></a><span class="lineno"> 1374</span>&#160;                                               LabelsAndEventClasses::EXECUTION_OF_GUID,</div><div class="line"><a name="l01375"></a><span class="lineno"> 1375</span>&#160;                                               readableData,</div><div class="line"><a name="l01376"></a><span class="lineno"> 1376</span>&#160;                                               offset);</div><div class="line"><a name="l01377"></a><span class="lineno"> 1377</span>&#160;</div><div class="line"><a name="l01378"></a><span class="lineno"> 1378</span>&#160;    <span class="comment">// Start Abs workload execution life</span></div><div class="line"><a name="l01379"></a><span class="lineno"> 1379</span>&#160;    <span class="comment">// Event packet - timeline, threadId, eventGuid</span></div><div class="line"><a name="l01380"></a><span class="lineno"> 1380</span>&#160;    ProfilingGuid absWorkloadExecutionSOLEventGuid = <a class="code" href="_profiling_test_utils_8cpp.xhtml#ac6ded51288940367b65287093e49ffa5">VerifyTimelineEventBinaryPacket</a>(</div><div class="line"><a name="l01381"></a><span class="lineno"> 1381</span>&#160;        arm::pipe::EmptyOptional(), arm::pipe::EmptyOptional(), arm::pipe::EmptyOptional(), readableData, offset);</div><div class="line"><a name="l01382"></a><span class="lineno"> 1382</span>&#160;</div><div class="line"><a name="l01383"></a><span class="lineno"> 1383</span>&#160;    <span class="comment">// Abs workload execution - event relationship</span></div><div class="line"><a name="l01384"></a><span class="lineno"> 1384</span>&#160;    <a class="code" href="_profiling_test_utils_8cpp.xhtml#af25b6f3b19654d8d589e54e4e1404acb">VerifyTimelineRelationshipBinaryPacketData</a>(ProfilingRelationshipType::ExecutionLink,</div><div class="line"><a name="l01385"></a><span class="lineno"> 1385</span>&#160;                                               arm::pipe::EmptyOptional(),</div><div class="line"><a name="l01386"></a><span class="lineno"> 1386</span>&#160;                                               absWorkloadExecutionGuid,</div><div class="line"><a name="l01387"></a><span class="lineno"> 1387</span>&#160;                                               absWorkloadExecutionSOLEventGuid,</div><div class="line"><a name="l01388"></a><span class="lineno"> 1388</span>&#160;                                               LabelsAndEventClasses::ARMNN_PROFILING_SOL_EVENT_CLASS,</div><div class="line"><a name="l01389"></a><span class="lineno"> 1389</span>&#160;                                               readableData,</div><div class="line"><a name="l01390"></a><span class="lineno"> 1390</span>&#160;                                               offset);</div><div class="line"><a name="l01391"></a><span class="lineno"> 1391</span>&#160;</div><div class="line"><a name="l01392"></a><span class="lineno"> 1392</span>&#160;    <span class="comment">// End of Abs workload execution life</span></div><div class="line"><a name="l01393"></a><span class="lineno"> 1393</span>&#160;    <span class="comment">// Event packet - timeline, threadId, eventGuid</span></div><div class="line"><a name="l01394"></a><span class="lineno"> 1394</span>&#160;    ProfilingGuid absWorkloadExecutionEOLEventGuid = <a class="code" href="_profiling_test_utils_8cpp.xhtml#ac6ded51288940367b65287093e49ffa5">VerifyTimelineEventBinaryPacket</a>(</div><div class="line"><a name="l01395"></a><span class="lineno"> 1395</span>&#160;        arm::pipe::EmptyOptional(), arm::pipe::EmptyOptional(), arm::pipe::EmptyOptional(), readableData, offset);</div><div class="line"><a name="l01396"></a><span class="lineno"> 1396</span>&#160;</div><div class="line"><a name="l01397"></a><span class="lineno"> 1397</span>&#160;    <span class="comment">// Abs workload execution - event relationship</span></div><div class="line"><a name="l01398"></a><span class="lineno"> 1398</span>&#160;    <a class="code" href="_profiling_test_utils_8cpp.xhtml#af25b6f3b19654d8d589e54e4e1404acb">VerifyTimelineRelationshipBinaryPacketData</a>(ProfilingRelationshipType::ExecutionLink,</div><div class="line"><a name="l01399"></a><span class="lineno"> 1399</span>&#160;                                               arm::pipe::EmptyOptional(),</div><div class="line"><a name="l01400"></a><span class="lineno"> 1400</span>&#160;                                               absWorkloadExecutionGuid,</div><div class="line"><a name="l01401"></a><span class="lineno"> 1401</span>&#160;                                               absWorkloadExecutionEOLEventGuid,</div><div class="line"><a name="l01402"></a><span class="lineno"> 1402</span>&#160;                                               LabelsAndEventClasses::ARMNN_PROFILING_EOL_EVENT_CLASS,</div><div class="line"><a name="l01403"></a><span class="lineno"> 1403</span>&#160;                                               readableData,</div><div class="line"><a name="l01404"></a><span class="lineno"> 1404</span>&#160;                                               offset);</div><div class="line"><a name="l01405"></a><span class="lineno"> 1405</span>&#160;</div><div class="line"><a name="l01406"></a><span class="lineno"> 1406</span>&#160;    <span class="comment">// Output workload execution</span></div><div class="line"><a name="l01407"></a><span class="lineno"> 1407</span>&#160;    <span class="comment">// Output workload execution entity</span></div><div class="line"><a name="l01408"></a><span class="lineno"> 1408</span>&#160;    ProfilingGuid outputWorkloadExecutionGuid = <a class="code" href="_profiling_test_utils_8cpp.xhtml#aca439c1ce381920dc07fbb20aa7ab747">VerifyTimelineEntityBinaryPacketData</a>(</div><div class="line"><a name="l01409"></a><span class="lineno"> 1409</span>&#160;        arm::pipe::EmptyOptional(), readableData, offset);</div><div class="line"><a name="l01410"></a><span class="lineno"> 1410</span>&#160;</div><div class="line"><a name="l01411"></a><span class="lineno"> 1411</span>&#160;    <span class="comment">// Entity - Type relationship</span></div><div class="line"><a name="l01412"></a><span class="lineno"> 1412</span>&#160;    <a class="code" href="_profiling_test_utils_8cpp.xhtml#af25b6f3b19654d8d589e54e4e1404acb">VerifyTimelineRelationshipBinaryPacketData</a>(ProfilingRelationshipType::LabelLink,</div><div class="line"><a name="l01413"></a><span class="lineno"> 1413</span>&#160;                                               arm::pipe::EmptyOptional(),</div><div class="line"><a name="l01414"></a><span class="lineno"> 1414</span>&#160;                                               outputWorkloadExecutionGuid,</div><div class="line"><a name="l01415"></a><span class="lineno"> 1415</span>&#160;                                               LabelsAndEventClasses::WORKLOAD_EXECUTION_GUID,</div><div class="line"><a name="l01416"></a><span class="lineno"> 1416</span>&#160;                                               LabelsAndEventClasses::TYPE_GUID,</div><div class="line"><a name="l01417"></a><span class="lineno"> 1417</span>&#160;                                               readableData,</div><div class="line"><a name="l01418"></a><span class="lineno"> 1418</span>&#160;                                               offset);</div><div class="line"><a name="l01419"></a><span class="lineno"> 1419</span>&#160;</div><div class="line"><a name="l01420"></a><span class="lineno"> 1420</span>&#160;    <span class="comment">// Inference - Workload execution relationship</span></div><div class="line"><a name="l01421"></a><span class="lineno"> 1421</span>&#160;    <a class="code" href="_profiling_test_utils_8cpp.xhtml#af25b6f3b19654d8d589e54e4e1404acb">VerifyTimelineRelationshipBinaryPacketData</a>(ProfilingRelationshipType::RetentionLink,</div><div class="line"><a name="l01422"></a><span class="lineno"> 1422</span>&#160;                                               arm::pipe::EmptyOptional(),</div><div class="line"><a name="l01423"></a><span class="lineno"> 1423</span>&#160;                                               inferenceGuid,</div><div class="line"><a name="l01424"></a><span class="lineno"> 1424</span>&#160;                                               outputWorkloadExecutionGuid,</div><div class="line"><a name="l01425"></a><span class="lineno"> 1425</span>&#160;                                               LabelsAndEventClasses::CHILD_GUID,</div><div class="line"><a name="l01426"></a><span class="lineno"> 1426</span>&#160;                                               readableData,</div><div class="line"><a name="l01427"></a><span class="lineno"> 1427</span>&#160;                                               offset);</div><div class="line"><a name="l01428"></a><span class="lineno"> 1428</span>&#160;</div><div class="line"><a name="l01429"></a><span class="lineno"> 1429</span>&#160;    <span class="comment">// Workload - Workload execution relationship</span></div><div class="line"><a name="l01430"></a><span class="lineno"> 1430</span>&#160;    <a class="code" href="_profiling_test_utils_8cpp.xhtml#af25b6f3b19654d8d589e54e4e1404acb">VerifyTimelineRelationshipBinaryPacketData</a>(ProfilingRelationshipType::RetentionLink,</div><div class="line"><a name="l01431"></a><span class="lineno"> 1431</span>&#160;                                               arm::pipe::EmptyOptional(),</div><div class="line"><a name="l01432"></a><span class="lineno"> 1432</span>&#160;                                               outputWorkloadGuid,</div><div class="line"><a name="l01433"></a><span class="lineno"> 1433</span>&#160;                                               outputWorkloadExecutionGuid,</div><div class="line"><a name="l01434"></a><span class="lineno"> 1434</span>&#160;                                               LabelsAndEventClasses::EXECUTION_OF_GUID,</div><div class="line"><a name="l01435"></a><span class="lineno"> 1435</span>&#160;                                               readableData,</div><div class="line"><a name="l01436"></a><span class="lineno"> 1436</span>&#160;                                               offset);</div><div class="line"><a name="l01437"></a><span class="lineno"> 1437</span>&#160;</div><div class="line"><a name="l01438"></a><span class="lineno"> 1438</span>&#160;    <span class="comment">// Start Output workload execution life</span></div><div class="line"><a name="l01439"></a><span class="lineno"> 1439</span>&#160;    <span class="comment">// Event packet - timeline, threadId, eventGuid</span></div><div class="line"><a name="l01440"></a><span class="lineno"> 1440</span>&#160;    ProfilingGuid outputWorkloadExecutionSOLEventGuid = <a class="code" href="_profiling_test_utils_8cpp.xhtml#ac6ded51288940367b65287093e49ffa5">VerifyTimelineEventBinaryPacket</a>(</div><div class="line"><a name="l01441"></a><span class="lineno"> 1441</span>&#160;        arm::pipe::EmptyOptional(), arm::pipe::EmptyOptional(), arm::pipe::EmptyOptional(), readableData, offset);</div><div class="line"><a name="l01442"></a><span class="lineno"> 1442</span>&#160;</div><div class="line"><a name="l01443"></a><span class="lineno"> 1443</span>&#160;    <span class="comment">// Output workload execution - event relationship</span></div><div class="line"><a name="l01444"></a><span class="lineno"> 1444</span>&#160;    <a class="code" href="_profiling_test_utils_8cpp.xhtml#af25b6f3b19654d8d589e54e4e1404acb">VerifyTimelineRelationshipBinaryPacketData</a>(ProfilingRelationshipType::ExecutionLink,</div><div class="line"><a name="l01445"></a><span class="lineno"> 1445</span>&#160;                                               arm::pipe::EmptyOptional(),</div><div class="line"><a name="l01446"></a><span class="lineno"> 1446</span>&#160;                                               outputWorkloadExecutionGuid,</div><div class="line"><a name="l01447"></a><span class="lineno"> 1447</span>&#160;                                               outputWorkloadExecutionSOLEventGuid,</div><div class="line"><a name="l01448"></a><span class="lineno"> 1448</span>&#160;                                               LabelsAndEventClasses::ARMNN_PROFILING_SOL_EVENT_CLASS,</div><div class="line"><a name="l01449"></a><span class="lineno"> 1449</span>&#160;                                               readableData,</div><div class="line"><a name="l01450"></a><span class="lineno"> 1450</span>&#160;                                               offset);</div><div class="line"><a name="l01451"></a><span class="lineno"> 1451</span>&#160;</div><div class="line"><a name="l01452"></a><span class="lineno"> 1452</span>&#160;    <span class="comment">// End of Normalize workload execution life</span></div><div class="line"><a name="l01453"></a><span class="lineno"> 1453</span>&#160;    <span class="comment">// Event packet - timeline, threadId, eventGuid</span></div><div class="line"><a name="l01454"></a><span class="lineno"> 1454</span>&#160;    ProfilingGuid outputWorkloadExecutionEOLEventGuid = <a class="code" href="_profiling_test_utils_8cpp.xhtml#ac6ded51288940367b65287093e49ffa5">VerifyTimelineEventBinaryPacket</a>(</div><div class="line"><a name="l01455"></a><span class="lineno"> 1455</span>&#160;        arm::pipe::EmptyOptional(), arm::pipe::EmptyOptional(), arm::pipe::EmptyOptional(), readableData, offset);</div><div class="line"><a name="l01456"></a><span class="lineno"> 1456</span>&#160;</div><div class="line"><a name="l01457"></a><span class="lineno"> 1457</span>&#160;    <span class="comment">// Output workload execution - event relationship</span></div><div class="line"><a name="l01458"></a><span class="lineno"> 1458</span>&#160;    <a class="code" href="_profiling_test_utils_8cpp.xhtml#af25b6f3b19654d8d589e54e4e1404acb">VerifyTimelineRelationshipBinaryPacketData</a>(ProfilingRelationshipType::ExecutionLink,</div><div class="line"><a name="l01459"></a><span class="lineno"> 1459</span>&#160;                                               arm::pipe::EmptyOptional(),</div><div class="line"><a name="l01460"></a><span class="lineno"> 1460</span>&#160;                                               outputWorkloadExecutionGuid,</div><div class="line"><a name="l01461"></a><span class="lineno"> 1461</span>&#160;                                               outputWorkloadExecutionEOLEventGuid,</div><div class="line"><a name="l01462"></a><span class="lineno"> 1462</span>&#160;                                               LabelsAndEventClasses::ARMNN_PROFILING_EOL_EVENT_CLASS,</div><div class="line"><a name="l01463"></a><span class="lineno"> 1463</span>&#160;                                               readableData,</div><div class="line"><a name="l01464"></a><span class="lineno"> 1464</span>&#160;                                               offset);</div><div class="line"><a name="l01465"></a><span class="lineno"> 1465</span>&#160;</div><div class="line"><a name="l01466"></a><span class="lineno"> 1466</span>&#160;    <span class="comment">// End of Inference life</span></div><div class="line"><a name="l01467"></a><span class="lineno"> 1467</span>&#160;    <span class="comment">// Event packet - timeline, threadId, eventGuid</span></div><div class="line"><a name="l01468"></a><span class="lineno"> 1468</span>&#160;    ProfilingGuid inferenceEOLEventGuid = <a class="code" href="_profiling_test_utils_8cpp.xhtml#ac6ded51288940367b65287093e49ffa5">VerifyTimelineEventBinaryPacket</a>(</div><div class="line"><a name="l01469"></a><span class="lineno"> 1469</span>&#160;        arm::pipe::EmptyOptional(), arm::pipe::EmptyOptional(), arm::pipe::EmptyOptional(), readableData, offset);</div><div class="line"><a name="l01470"></a><span class="lineno"> 1470</span>&#160;</div><div class="line"><a name="l01471"></a><span class="lineno"> 1471</span>&#160;    <span class="comment">// Inference - event relationship</span></div><div class="line"><a name="l01472"></a><span class="lineno"> 1472</span>&#160;    <a class="code" href="_profiling_test_utils_8cpp.xhtml#af25b6f3b19654d8d589e54e4e1404acb">VerifyTimelineRelationshipBinaryPacketData</a>(ProfilingRelationshipType::ExecutionLink,</div><div class="line"><a name="l01473"></a><span class="lineno"> 1473</span>&#160;                                               arm::pipe::EmptyOptional(),</div><div class="line"><a name="l01474"></a><span class="lineno"> 1474</span>&#160;                                               inferenceGuid,</div><div class="line"><a name="l01475"></a><span class="lineno"> 1475</span>&#160;                                               inferenceEOLEventGuid,</div><div class="line"><a name="l01476"></a><span class="lineno"> 1476</span>&#160;                                               LabelsAndEventClasses::ARMNN_PROFILING_EOL_EVENT_CLASS,</div><div class="line"><a name="l01477"></a><span class="lineno"> 1477</span>&#160;                                               readableData,</div><div class="line"><a name="l01478"></a><span class="lineno"> 1478</span>&#160;                                               offset);</div><div class="line"><a name="l01479"></a><span class="lineno"> 1479</span>&#160;</div><div class="line"><a name="l01480"></a><span class="lineno"> 1480</span>&#160;    bufferManager.MarkRead(inferenceReadableBuffer);</div><div class="line"><a name="l01481"></a><span class="lineno"> 1481</span>&#160;}</div><div class="line"><a name="l01482"></a><span class="lineno"> 1482</span>&#160;</div><div class="line"><a name="l01483"></a><span class="lineno"><a class="line" href="_profiling_test_utils_8hpp.xhtml#a574e305ad5b7b33c40fc025580e30dee"> 1483</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="_profiling_test_utils_8cpp.xhtml#a574e305ad5b7b33c40fc025580e30dee">CompareOutput</a>(std::vector&lt;std::string&gt; output, std::vector&lt;std::string&gt; expectedOutput)</div><div class="line"><a name="l01484"></a><span class="lineno"> 1484</span>&#160;{</div><div class="line"><a name="l01485"></a><span class="lineno"> 1485</span>&#160;    <span class="keywordflow">if</span> (output.size() != expectedOutput.size())</div><div class="line"><a name="l01486"></a><span class="lineno"> 1486</span>&#160;    {</div><div class="line"><a name="l01487"></a><span class="lineno"> 1487</span>&#160;        std::cerr &lt;&lt; <span class="stringliteral">&quot;output has [&quot;</span> &lt;&lt; output.size() &lt;&lt; <span class="stringliteral">&quot;] lines, expected was [&quot;</span></div><div class="line"><a name="l01488"></a><span class="lineno"> 1488</span>&#160;                  &lt;&lt; expectedOutput.size() &lt;&lt; <span class="stringliteral">&quot;] lines&quot;</span> &lt;&lt; std::endl;</div><div class="line"><a name="l01489"></a><span class="lineno"> 1489</span>&#160;        std::cerr &lt;&lt; std::endl &lt;&lt; <span class="stringliteral">&quot;actual&quot;</span> &lt;&lt; std::endl &lt;&lt; std::endl;</div><div class="line"><a name="l01490"></a><span class="lineno"> 1490</span>&#160;        <span class="keywordflow">for</span> (<span class="keyword">auto</span> line : output)</div><div class="line"><a name="l01491"></a><span class="lineno"> 1491</span>&#160;        {</div><div class="line"><a name="l01492"></a><span class="lineno"> 1492</span>&#160;            std::cerr &lt;&lt; line &lt;&lt; std::endl;</div><div class="line"><a name="l01493"></a><span class="lineno"> 1493</span>&#160;        }</div><div class="line"><a name="l01494"></a><span class="lineno"> 1494</span>&#160;        std::cerr &lt;&lt; std::endl &lt;&lt; <span class="stringliteral">&quot;expected&quot;</span> &lt;&lt; std::endl &lt;&lt; std::endl;</div><div class="line"><a name="l01495"></a><span class="lineno"> 1495</span>&#160;        <span class="keywordflow">for</span> (<span class="keyword">auto</span> line : expectedOutput)</div><div class="line"><a name="l01496"></a><span class="lineno"> 1496</span>&#160;        {</div><div class="line"><a name="l01497"></a><span class="lineno"> 1497</span>&#160;            std::cerr &lt;&lt; line &lt;&lt; std::endl;</div><div class="line"><a name="l01498"></a><span class="lineno"> 1498</span>&#160;        }</div><div class="line"><a name="l01499"></a><span class="lineno"> 1499</span>&#160;        <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l01500"></a><span class="lineno"> 1500</span>&#160;    }</div><div class="line"><a name="l01501"></a><span class="lineno"> 1501</span>&#160;    <span class="keywordtype">bool</span> bRet = <span class="keyword">true</span>;</div><div class="line"><a name="l01502"></a><span class="lineno"> 1502</span>&#160;    <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> i = 0; i &lt; output.size(); ++i)</div><div class="line"><a name="l01503"></a><span class="lineno"> 1503</span>&#160;    {</div><div class="line"><a name="l01504"></a><span class="lineno"> 1504</span>&#160;        <span class="keywordflow">if</span> (output[i] != expectedOutput[i])</div><div class="line"><a name="l01505"></a><span class="lineno"> 1505</span>&#160;        {</div><div class="line"><a name="l01506"></a><span class="lineno"> 1506</span>&#160;            bRet = <span class="keyword">false</span>;</div><div class="line"><a name="l01507"></a><span class="lineno"> 1507</span>&#160;            std::cerr &lt;&lt; i &lt;&lt; <span class="stringliteral">&quot;: actual [&quot;</span> &lt;&lt; output[i] &lt;&lt; <span class="stringliteral">&quot;] expected [&quot;</span> &lt;&lt; expectedOutput[i] &lt;&lt; <span class="stringliteral">&quot;]&quot;</span> &lt;&lt; std::endl;</div><div class="line"><a name="l01508"></a><span class="lineno"> 1508</span>&#160;        }</div><div class="line"><a name="l01509"></a><span class="lineno"> 1509</span>&#160;    }</div><div class="line"><a name="l01510"></a><span class="lineno"> 1510</span>&#160;    <span class="keywordflow">return</span> bRet;</div><div class="line"><a name="l01511"></a><span class="lineno"> 1511</span>&#160;}</div><div class="ttc" id="structarmnn_1_1_convolution2d_descriptor_xhtml_aa9e49717ebdb741e8c767741647fc618"><div class="ttname"><a href="structarmnn_1_1_convolution2d_descriptor.xhtml#aa9e49717ebdb741e8c767741647fc618">armnn::Convolution2dDescriptor::m_PadBottom</a></div><div class="ttdeci">uint32_t m_PadBottom</div><div class="ttdoc">Padding bottom value in the height dimension. </div><div class="ttdef"><b>Definition:</b> <a href="_descriptors_8hpp_source.xhtml#l00537">Descriptors.hpp:537</a></div></div>
<div class="ttc" id="structarmnn_1_1_convolution2d_descriptor_xhtml_aea202e14d8874cefd9a0f778022b7e25"><div class="ttname"><a href="structarmnn_1_1_convolution2d_descriptor.xhtml#aea202e14d8874cefd9a0f778022b7e25">armnn::Convolution2dDescriptor::m_BiasEnabled</a></div><div class="ttdeci">bool m_BiasEnabled</div><div class="ttdoc">Enable/disable bias. </div><div class="ttdef"><b>Definition:</b> <a href="_descriptors_8hpp_source.xhtml#l00547">Descriptors.hpp:547</a></div></div>
<div class="ttc" id="_arm_n_n_profiling_8hpp_xhtml"><div class="ttname"><a href="_arm_n_n_profiling_8hpp.xhtml">ArmNNProfiling.hpp</a></div></div>
<div class="ttc" id="structarmnn_1_1_runtime_impl_xhtml_aa198ca53eeb01b6e2134da924ec36405"><div class="ttname"><a href="structarmnn_1_1_runtime_impl.xhtml#aa198ca53eeb01b6e2134da924ec36405">armnn::RuntimeImpl::GetInputTensorInfo</a></div><div class="ttdeci">armnn::TensorInfo GetInputTensorInfo(NetworkId networkId, LayerBindingId layerId) const</div><div class="ttdef"><b>Definition:</b> <a href="_runtime_8cpp_source.xhtml#l00599">Runtime.cpp:599</a></div></div>
<div class="ttc" id="classarmnn_1_1_i_connectable_layer_xhtml"><div class="ttname"><a href="classarmnn_1_1_i_connectable_layer.xhtml">armnn::IConnectableLayer</a></div><div class="ttdoc">Interface for a layer that is connectable to other layers via InputSlots and OutputSlots. </div><div class="ttdef"><b>Definition:</b> <a href="_i_network_8hpp_source.xhtml#l00066">INetwork.hpp:66</a></div></div>
<div class="ttc" id="_profiling_test_utils_8cpp_xhtml_ae8508d42bb9bd2e705d05b921c83d2b0"><div class="ttname"><a href="_profiling_test_utils_8cpp.xhtml#ae8508d42bb9bd2e705d05b921c83d2b0">VerifyTimelineEventClassBinaryPacketData</a></div><div class="ttdeci">void VerifyTimelineEventClassBinaryPacketData(ProfilingGuid guid, ProfilingGuid nameGuid, const unsigned char *readableData, unsigned int &amp;offset)</div><div class="ttdef"><b>Definition:</b> <a href="_profiling_test_utils_8cpp_source.xhtml#l00155">ProfilingTestUtils.cpp:155</a></div></div>
<div class="ttc" id="classarm_1_1pipe_1_1_profiling_service_runtime_helper_xhtml_a33b6add40a385911fe653ac446124deb"><div class="ttname"><a href="classarm_1_1pipe_1_1_profiling_service_runtime_helper.xhtml#a33b6add40a385911fe653ac446124deb">arm::pipe::ProfilingServiceRuntimeHelper::GetProfilingBufferManager</a></div><div class="ttdeci">BufferManager &amp; GetProfilingBufferManager()</div><div class="ttdef"><b>Definition:</b> <a href="_profiling_test_utils_8hpp_source.xhtml#l00088">ProfilingTestUtils.hpp:88</a></div></div>
<div class="ttc" id="_profiling_test_utils_8cpp_xhtml_a63249ab17e3797a6c5e3c187a17dbce4"><div class="ttname"><a href="_profiling_test_utils_8cpp.xhtml#a63249ab17e3797a6c5e3c187a17dbce4">VerifyPostOptimisationStructureTestImpl</a></div><div class="ttdeci">void VerifyPostOptimisationStructureTestImpl(armnn::BackendId backendId)</div><div class="ttdef"><b>Definition:</b> <a href="_profiling_test_utils_8cpp_source.xhtml#l00371">ProfilingTestUtils.cpp:371</a></div></div>
<div class="ttc" id="namespacearmnn_xhtml_ae2f04a162585c0a5222a537efd5456aea83c2c4e9b658ccafbcbe6309c5d84c64"><div class="ttname"><a href="namespacearmnn.xhtml#ae2f04a162585c0a5222a537efd5456aea83c2c4e9b658ccafbcbe6309c5d84c64">armnn::Compute::CpuRef</a></div><div class="ttdoc">CPU Execution: Reference C++ kernels. </div></div>
<div class="ttc" id="classarmnn_1_1_optional_xhtml"><div class="ttname"><a href="classarmnn_1_1_optional.xhtml">armnn::Optional</a></div><div class="ttdef"><b>Definition:</b> <a href="_optional_8hpp_source.xhtml#l00270">Optional.hpp:270</a></div></div>
<div class="ttc" id="structarmnn_1_1abs_xhtml"><div class="ttname"><a href="structarmnn_1_1abs.xhtml">armnn::abs</a></div><div class="ttdef"><b>Definition:</b> <a href="_abs_8hpp_source.xhtml#l00013">Abs.hpp:13</a></div></div>
<div class="ttc" id="_deprecated_8hpp_xhtml_ab66a241a0ed3ee89c866e777b035d0ed"><div class="ttname"><a href="_deprecated_8hpp.xhtml#ab66a241a0ed3ee89c866e777b035d0ed">ARMNN_NO_DEPRECATE_WARN_BEGIN</a></div><div class="ttdeci">#define ARMNN_NO_DEPRECATE_WARN_BEGIN</div><div class="ttdef"><b>Definition:</b> <a href="_deprecated_8hpp_source.xhtml#l00033">Deprecated.hpp:33</a></div></div>
<div class="ttc" id="classarmnn_1_1_tensor_info_xhtml"><div class="ttname"><a href="classarmnn_1_1_tensor_info.xhtml">armnn::TensorInfo</a></div><div class="ttdef"><b>Definition:</b> <a href="_tensor_8hpp_source.xhtml#l00152">Tensor.hpp:152</a></div></div>
<div class="ttc" id="structarmnn_1_1_convolution2d_descriptor_xhtml"><div class="ttname"><a href="structarmnn_1_1_convolution2d_descriptor.xhtml">armnn::Convolution2dDescriptor</a></div><div class="ttdoc">A Convolution2dDescriptor for the Convolution2dLayer. </div><div class="ttdef"><b>Definition:</b> <a href="_descriptors_8hpp_source.xhtml#l00499">Descriptors.hpp:499</a></div></div>
<div class="ttc" id="_profiling_test_utils_8cpp_xhtml_aa449021ed1a9de7abcdbd0ca903577db"><div class="ttname"><a href="_profiling_test_utils_8cpp.xhtml#aa449021ed1a9de7abcdbd0ca903577db">GetStreamMetaDataPacketSize</a></div><div class="ttdeci">uint32_t GetStreamMetaDataPacketSize()</div><div class="ttdef"><b>Definition:</b> <a href="_profiling_test_utils_8cpp_source.xhtml#l00026">ProfilingTestUtils.cpp:26</a></div></div>
<div class="ttc" id="_profiling_test_utils_8cpp_xhtml_aca439c1ce381920dc07fbb20aa7ab747"><div class="ttname"><a href="_profiling_test_utils_8cpp.xhtml#aca439c1ce381920dc07fbb20aa7ab747">VerifyTimelineEntityBinaryPacketData</a></div><div class="ttdeci">ProfilingGuid VerifyTimelineEntityBinaryPacketData(arm::pipe::Optional&lt; ProfilingGuid &gt; guid, const unsigned char *readableData, unsigned int &amp;offset)</div><div class="ttdef"><b>Definition:</b> <a href="_profiling_test_utils_8cpp_source.xhtml#l00277">ProfilingTestUtils.cpp:277</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#l00015">BackendRegistry.cpp:15</a></div></div>
<div class="ttc" id="structarmnn_1_1_runtime_impl_xhtml_af92b5ae61208a778571bcea7e6aac7b4"><div class="ttname"><a href="structarmnn_1_1_runtime_impl.xhtml#af92b5ae61208a778571bcea7e6aac7b4">armnn::RuntimeImpl::LoadNetwork</a></div><div class="ttdeci">Status LoadNetwork(NetworkId &amp;networkIdOut, IOptimizedNetworkPtr network)</div><div class="ttdoc">Loads a complete network into the Runtime. </div><div class="ttdef"><b>Definition:</b> <a href="_runtime_8cpp_source.xhtml#l00163">Runtime.cpp:163</a></div></div>
<div class="ttc" id="namespacearmnn_xhtml_aa01bce88f89975a5a031db4cc8861527"><div class="ttname"><a href="namespacearmnn.xhtml#aa01bce88f89975a5a031db4cc8861527">armnn::InputTensors</a></div><div class="ttdeci">std::vector&lt; std::pair&lt; LayerBindingId, class ConstTensor &gt; &gt; InputTensors</div><div class="ttdef"><b>Definition:</b> <a href="_tensor_8hpp_source.xhtml#l00392">Tensor.hpp:392</a></div></div>
<div class="ttc" id="structarmnn_1_1_convolution2d_descriptor_xhtml_a002bc30e590d78cbb4f4d12171055ca7"><div class="ttname"><a href="structarmnn_1_1_convolution2d_descriptor.xhtml#a002bc30e590d78cbb4f4d12171055ca7">armnn::Convolution2dDescriptor::m_PadRight</a></div><div class="ttdeci">uint32_t m_PadRight</div><div class="ttdoc">Padding right value in the width dimension. </div><div class="ttdef"><b>Definition:</b> <a href="_descriptors_8hpp_source.xhtml#l00533">Descriptors.hpp:533</a></div></div>
<div class="ttc" id="structarmnn_1_1_runtime_impl_xhtml_a81c83702b94931626c6d84a3fa915362"><div class="ttname"><a href="structarmnn_1_1_runtime_impl.xhtml#a81c83702b94931626c6d84a3fa915362">armnn::RuntimeImpl::GetOutputTensorInfo</a></div><div class="ttdeci">armnn::TensorInfo GetOutputTensorInfo(NetworkId networkId, LayerBindingId layerId) const</div><div class="ttdef"><b>Definition:</b> <a href="_runtime_8cpp_source.xhtml#l00604">Runtime.cpp:604</a></div></div>
<div class="ttc" id="_profiling_options_converter_8hpp_xhtml"><div class="ttname"><a href="_profiling_options_converter_8hpp.xhtml">ProfilingOptionsConverter.hpp</a></div></div>
<div class="ttc" id="namespacearmnn_xhtml"><div class="ttname"><a href="namespacearmnn.xhtml">armnn</a></div><div class="ttdoc">Copyright (c) 2021 ARM Limited and Contributors. </div><div class="ttdef"><b>Definition:</b> <a href="01__00__quick__start_8dox_source.xhtml#l00006">01_00_quick_start.dox:6</a></div></div>
<div class="ttc" id="_profiling_test_utils_8cpp_xhtml_ae64165cd8af458ef4a8634c51892ef08"><div class="ttname"><a href="_profiling_test_utils_8cpp.xhtml#ae64165cd8af458ef4a8634c51892ef08">GetSuitableBackendRegistered</a></div><div class="ttdeci">std::vector&lt; BackendId &gt; GetSuitableBackendRegistered()</div><div class="ttdoc">Returns a vector of CpuRef, CpuAcc or GpuAcc backends if they where registered. </div><div class="ttdef"><b>Definition:</b> <a href="_profiling_test_utils_8cpp_source.xhtml#l00046">ProfilingTestUtils.cpp:46</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="ttdoc">Indicates whether external profiling is enabled or not. </div><div class="ttdef"><b>Definition:</b> <a href="_i_runtime_8hpp_source.xhtml#l00138">IRuntime.hpp:138</a></div></div>
<div class="ttc" id="classarmnn_1_1_i_output_slot_xhtml_a5ee4a6c9a2481245487b1b1a70d20fd0"><div class="ttname"><a href="classarmnn_1_1_i_output_slot.xhtml#a5ee4a6c9a2481245487b1b1a70d20fd0">armnn::IOutputSlot::SetTensorInfo</a></div><div class="ttdeci">virtual void SetTensorInfo(const TensorInfo &amp;tensorInfo)=0</div></div>
<div class="ttc" id="classarmnn_1_1_tensor_xhtml"><div class="ttname"><a href="classarmnn_1_1_tensor.xhtml">armnn::Tensor</a></div><div class="ttdoc">A tensor defined by a TensorInfo (shape and data type) and a mutable backing store. </div><div class="ttdef"><b>Definition:</b> <a href="_tensor_8hpp_source.xhtml#l00319">Tensor.hpp:319</a></div></div>
<div class="ttc" id="_profiling_test_utils_8cpp_xhtml_a197f0ee221203c2b65fbef6e9da54941"><div class="ttname"><a href="_profiling_test_utils_8cpp.xhtml#a197f0ee221203c2b65fbef6e9da54941">OffsetToNextWord</a></div><div class="ttdeci">unsigned int OffsetToNextWord(unsigned int numberOfBytes)</div><div class="ttdef"><b>Definition:</b> <a href="_profiling_test_utils_8cpp_source.xhtml#l00064">ProfilingTestUtils.cpp:64</a></div></div>
<div class="ttc" id="_profiling_test_utils_8cpp_xhtml_af25b6f3b19654d8d589e54e4e1404acb"><div class="ttname"><a href="_profiling_test_utils_8cpp.xhtml#af25b6f3b19654d8d589e54e4e1404acb">VerifyTimelineRelationshipBinaryPacketData</a></div><div class="ttdeci">void VerifyTimelineRelationshipBinaryPacketData(ProfilingRelationshipType relationshipType, arm::pipe::Optional&lt; ProfilingGuid &gt; relationshipGuid, arm::pipe::Optional&lt; ProfilingGuid &gt; headGuid, arm::pipe::Optional&lt; ProfilingGuid &gt; tailGuid, arm::pipe::Optional&lt; ProfilingGuid &gt; attributeGuid, const unsigned char *readableData, unsigned int &amp;offset)</div><div class="ttdef"><b>Definition:</b> <a href="_profiling_test_utils_8cpp_source.xhtml#l00183">ProfilingTestUtils.cpp:183</a></div></div>
<div class="ttc" id="structarmnn_1_1_convolution2d_descriptor_xhtml_a56b51f56cef50cdfa554258eecdab046"><div class="ttname"><a href="structarmnn_1_1_convolution2d_descriptor.xhtml#a56b51f56cef50cdfa554258eecdab046">armnn::Convolution2dDescriptor::m_PadTop</a></div><div class="ttdeci">uint32_t m_PadTop</div><div class="ttdoc">Padding top value in the height dimension. </div><div class="ttdef"><b>Definition:</b> <a href="_descriptors_8hpp_source.xhtml#l00535">Descriptors.hpp:535</a></div></div>
<div class="ttc" id="structarmnn_1_1_convolution2d_descriptor_xhtml_afe6a3377c4531315354def9023c8fdda"><div class="ttname"><a href="structarmnn_1_1_convolution2d_descriptor.xhtml#afe6a3377c4531315354def9023c8fdda">armnn::Convolution2dDescriptor::m_StrideX</a></div><div class="ttdeci">uint32_t m_StrideX</div><div class="ttdoc">Stride value when proceeding through input for the width dimension. </div><div class="ttdef"><b>Definition:</b> <a href="_descriptors_8hpp_source.xhtml#l00539">Descriptors.hpp:539</a></div></div>
<div class="ttc" id="namespacearmnn_xhtml_a67a0db04d321a74b7e7fcfd3f1a3f70ba505a83f220c02df2f85c3810cd9ceb38"><div class="ttname"><a href="namespacearmnn.xhtml#a67a0db04d321a74b7e7fcfd3f1a3f70ba505a83f220c02df2f85c3810cd9ceb38">armnn::Status::Success</a></div></div>
<div class="ttc" id="_deprecated_8hpp_xhtml_ad762b11b48e5c1d1c1743f529485728a"><div class="ttname"><a href="_deprecated_8hpp.xhtml#ad762b11b48e5c1d1c1743f529485728a">ARMNN_NO_DEPRECATE_WARN_END</a></div><div class="ttdeci">#define ARMNN_NO_DEPRECATE_WARN_END</div><div class="ttdef"><b>Definition:</b> <a href="_deprecated_8hpp_source.xhtml#l00034">Deprecated.hpp:34</a></div></div>
<div class="ttc" id="namespacearmnn_xhtml_a82e98ef05fd67036d1195ba17174d685"><div class="ttname"><a href="namespacearmnn.xhtml#a82e98ef05fd67036d1195ba17174d685">armnn::Optimize</a></div><div class="ttdeci">IOptimizedNetworkPtr Optimize(const INetwork &amp;network, const std::vector&lt; BackendId &gt; &amp;backendPreferences, const IDeviceSpec &amp;deviceSpec, const OptimizerOptions &amp;options=OptimizerOptions(), Optional&lt; std::vector&lt; std::string &gt; &amp;&gt; messages=EmptyOptional())</div><div class="ttdoc">Create an optimized version of the network. </div><div class="ttdef"><b>Definition:</b> <a href="_network_8cpp_source.xhtml#l01847">Network.cpp:1847</a></div></div>
<div class="ttc" id="_profiling_test_utils_8cpp_xhtml_a574e305ad5b7b33c40fc025580e30dee"><div class="ttname"><a href="_profiling_test_utils_8cpp.xhtml#a574e305ad5b7b33c40fc025580e30dee">CompareOutput</a></div><div class="ttdeci">bool CompareOutput(std::vector&lt; std::string &gt; output, std::vector&lt; std::string &gt; expectedOutput)</div><div class="ttdef"><b>Definition:</b> <a href="_profiling_test_utils_8cpp_source.xhtml#l01483">ProfilingTestUtils.cpp:1483</a></div></div>
<div class="ttc" id="structarmnn_1_1_runtime_impl_xhtml_ace3a3fbd42ff981af628e91fbeb254d5"><div class="ttname"><a href="structarmnn_1_1_runtime_impl.xhtml#ace3a3fbd42ff981af628e91fbeb254d5">armnn::RuntimeImpl::GetDeviceSpec</a></div><div class="ttdeci">const IDeviceSpec &amp; GetDeviceSpec() const</div><div class="ttdef"><b>Definition:</b> <a href="_runtime_8hpp_source.xhtml#l00090">Runtime.hpp:90</a></div></div>
<div class="ttc" id="_arm_n_n_profiling_service_initialiser_8hpp_xhtml"><div class="ttname"><a href="_arm_n_n_profiling_service_initialiser_8hpp.xhtml">ArmNNProfilingServiceInitialiser.hpp</a></div></div>
<div class="ttc" id="classarmnn_1_1_i_connectable_layer_xhtml_afb5e65c770f6cee222db8af7581541a6"><div class="ttname"><a href="classarmnn_1_1_i_connectable_layer.xhtml#afb5e65c770f6cee222db8af7581541a6">armnn::IConnectableLayer::GetGuid</a></div><div class="ttdeci">virtual LayerGuid GetGuid() const =0</div><div class="ttdoc">Returns the unique id of the layer. </div></div>
<div class="ttc" id="namespacearmnn_xhtml_a0d8160388a127c1a23b37bc88dc6e2ec"><div class="ttname"><a href="namespacearmnn.xhtml#a0d8160388a127c1a23b37bc88dc6e2ec">armnn::NetworkId</a></div><div class="ttdeci">int NetworkId</div><div class="ttdef"><b>Definition:</b> <a href="_i_runtime_8hpp_source.xhtml#l00027">IRuntime.hpp:27</a></div></div>
<div class="ttc" id="classarmnn_1_1_const_tensor_xhtml"><div class="ttname"><a href="classarmnn_1_1_const_tensor.xhtml">armnn::ConstTensor</a></div><div class="ttdoc">A tensor defined by a TensorInfo (shape and data type) and an immutable backing store. </div><div class="ttdef"><b>Definition:</b> <a href="_tensor_8hpp_source.xhtml#l00327">Tensor.hpp:327</a></div></div>
<div class="ttc" id="namespacearmnn_xhtml_a8f091a512915d1cb29a4ebf13dfc53ea"><div class="ttname"><a href="namespacearmnn.xhtml#a8f091a512915d1cb29a4ebf13dfc53ea">armnn::OutputTensors</a></div><div class="ttdeci">std::vector&lt; std::pair&lt; LayerBindingId, class Tensor &gt; &gt; OutputTensors</div><div class="ttdef"><b>Definition:</b> <a href="_tensor_8hpp_source.xhtml#l00393">Tensor.hpp:393</a></div></div>
<div class="ttc" id="namespacearmnn_xhtml_a674efcf6cbdb9e831d653ff0e821fb38"><div class="ttname"><a href="namespacearmnn.xhtml#a674efcf6cbdb9e831d653ff0e821fb38">armnn::IOptimizedNetworkPtr</a></div><div class="ttdeci">std::unique_ptr&lt; IOptimizedNetwork, void(*)(IOptimizedNetwork *network)&gt; IOptimizedNetworkPtr</div><div class="ttdef"><b>Definition:</b> <a href="_i_network_8hpp_source.xhtml#l00242">INetwork.hpp:242</a></div></div>
<div class="ttc" id="_profiling_test_utils_8cpp_xhtml_a845d7ded3f1981b1a101c23465f99407"><div class="ttname"><a href="_profiling_test_utils_8cpp.xhtml#a845d7ded3f1981b1a101c23465f99407">VerifyTimelineLabelBinaryPacketData</a></div><div class="ttdeci">ProfilingGuid VerifyTimelineLabelBinaryPacketData(arm::pipe::Optional&lt; ProfilingGuid &gt; guid, const std::string &amp;label, const unsigned char *readableData, unsigned int &amp;offset)</div><div class="ttdef"><b>Definition:</b> <a href="_profiling_test_utils_8cpp_source.xhtml#l00105">ProfilingTestUtils.cpp:105</a></div></div>
<div class="ttc" id="namespacearm_1_1pipe_xhtml_aedd5bf7f3d6df99a1b42e7826c5b380b"><div class="ttname"><a href="namespacearm_1_1pipe.xhtml#aedd5bf7f3d6df99a1b42e7826c5b380b">arm::pipe::ConvertExternalProfilingOptions</a></div><div class="ttdeci">ProfilingOptions ConvertExternalProfilingOptions(const armnn::IRuntime::CreationOptions::ExternalProfilingOptions &amp;options)</div><div class="ttdef"><b>Definition:</b> <a href="_profiling_options_converter_8cpp_source.xhtml#l00017">ProfilingOptionsConverter.cpp:17</a></div></div>
<div class="ttc" id="namespacearmnn_xhtml_a6bab17bfd45c2fa4592c431bc25ad10e"><div class="ttname"><a href="namespacearmnn.xhtml#a6bab17bfd45c2fa4592c431bc25ad10e">armnn::GetComputeDeviceAsCString</a></div><div class="ttdeci">constexpr char const  * GetComputeDeviceAsCString(Compute compute)</div><div class="ttdoc">Deprecated function that will be removed together with the Compute enum. </div><div class="ttdef"><b>Definition:</b> <a href="_backend_id_8hpp_source.xhtml#l00034">BackendId.hpp:34</a></div></div>
<div class="ttc" id="namespacearmnn_xhtml_ae2f04a162585c0a5222a537efd5456aeafaa4524e3df19ada32643ce9a222362b"><div class="ttname"><a href="namespacearmnn.xhtml#ae2f04a162585c0a5222a537efd5456aeafaa4524e3df19ada32643ce9a222362b">armnn::Compute::GpuAcc</a></div><div class="ttdoc">GPU Execution: OpenCL: ArmCompute. </div></div>
<div class="ttc" id="structarmnn_1_1_runtime_impl_xhtml"><div class="ttname"><a href="structarmnn_1_1_runtime_impl.xhtml">armnn::RuntimeImpl</a></div><div class="ttdef"><b>Definition:</b> <a href="_runtime_8hpp_source.xhtml#l00030">Runtime.hpp:30</a></div></div>
<div class="ttc" id="structarmnn_1_1_convolution2d_descriptor_xhtml_ac1fe174bbadfb39a2b636940c2e647c8"><div class="ttname"><a href="structarmnn_1_1_convolution2d_descriptor.xhtml#ac1fe174bbadfb39a2b636940c2e647c8">armnn::Convolution2dDescriptor::m_StrideY</a></div><div class="ttdeci">uint32_t m_StrideY</div><div class="ttdoc">Stride value when proceeding through input for the height dimension. </div><div class="ttdef"><b>Definition:</b> <a href="_descriptors_8hpp_source.xhtml#l00541">Descriptors.hpp:541</a></div></div>
<div class="ttc" id="_profiling_test_utils_8cpp_xhtml_a6bd6e8ba2f989621f7348d2bb6ce13a4"><div class="ttname"><a href="_profiling_test_utils_8cpp.xhtml#a6bd6e8ba2f989621f7348d2bb6ce13a4">VerifyTimelineHeaderBinary</a></div><div class="ttdeci">void VerifyTimelineHeaderBinary(const unsigned char *readableData, unsigned int &amp;offset, uint32_t packetDataLength)</div><div class="ttdef"><b>Definition:</b> <a href="_profiling_test_utils_8cpp_source.xhtml#l00077">ProfilingTestUtils.cpp:77</a></div></div>
<div class="ttc" id="structarmnn_1_1_i_runtime_1_1_creation_options_xhtml"><div class="ttname"><a href="structarmnn_1_1_i_runtime_1_1_creation_options.xhtml">armnn::IRuntime::CreationOptions</a></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="structarmnn_1_1_runtime_impl_xhtml_aca51209383683ab8dbe801bbfddfe0c0"><div class="ttname"><a href="structarmnn_1_1_runtime_impl.xhtml#aca51209383683ab8dbe801bbfddfe0c0">armnn::RuntimeImpl::EnqueueWorkload</a></div><div class="ttdeci">Status EnqueueWorkload(NetworkId networkId, const InputTensors &amp;inputTensors, const OutputTensors &amp;outputTensors, std::vector&lt; ImportedInputId &gt; preImportedInputIds={}, std::vector&lt; ImportedOutputId &gt; preImportedOutputIds={})</div><div class="ttdef"><b>Definition:</b> <a href="_runtime_8cpp_source.xhtml#l00630">Runtime.cpp:630</a></div></div>
<div class="ttc" id="structarmnn_1_1_elementwise_unary_descriptor_xhtml"><div class="ttname"><a href="structarmnn_1_1_elementwise_unary_descriptor.xhtml">armnn::ElementwiseUnaryDescriptor</a></div><div class="ttdoc">A ElementwiseUnaryDescriptor for the ElementwiseUnaryLayer. </div><div class="ttdef"><b>Definition:</b> <a href="_descriptors_8hpp_source.xhtml#l00109">Descriptors.hpp:109</a></div></div>
<div class="ttc" id="classarm_1_1pipe_1_1_profiling_service_runtime_helper_xhtml_a03f72b1ccbef21ab7caafb037ce2144c"><div class="ttname"><a href="classarm_1_1pipe_1_1_profiling_service_runtime_helper.xhtml#a03f72b1ccbef21ab7caafb037ce2144c">arm::pipe::ProfilingServiceRuntimeHelper::ForceTransitionToState</a></div><div class="ttdeci">void ForceTransitionToState(ProfilingState newState)</div><div class="ttdef"><b>Definition:</b> <a href="_profiling_test_utils_8hpp_source.xhtml#l00094">ProfilingTestUtils.hpp:94</a></div></div>
<div class="ttc" id="classarm_1_1pipe_1_1_profiling_service_runtime_helper_xhtml"><div class="ttname"><a href="classarm_1_1pipe_1_1_profiling_service_runtime_helper.xhtml">arm::pipe::ProfilingServiceRuntimeHelper</a></div><div class="ttdef"><b>Definition:</b> <a href="_profiling_test_utils_8hpp_source.xhtml#l00074">ProfilingTestUtils.hpp:74</a></div></div>
<div class="ttc" id="_descriptors_8hpp_xhtml"><div class="ttname"><a href="_descriptors_8hpp.xhtml">Descriptors.hpp</a></div></div>
<div class="ttc" id="namespacearmnn_xhtml_ae2f04a162585c0a5222a537efd5456aea39f8662ca778258e9c6a14f26fec5ec1"><div class="ttname"><a href="namespacearmnn.xhtml#ae2f04a162585c0a5222a537efd5456aea39f8662ca778258e9c6a14f26fec5ec1">armnn::Compute::CpuAcc</a></div><div class="ttdoc">CPU Execution: NEON: ArmCompute. </div></div>
<div class="ttc" id="classarmnn_1_1_backend_id_xhtml_af7445617163d3f07c47b92ae56c6cf8b"><div class="ttname"><a href="classarmnn_1_1_backend_id.xhtml#af7445617163d3f07c47b92ae56c6cf8b">armnn::BackendId::Get</a></div><div class="ttdeci">const std::string &amp; Get() const</div><div class="ttdef"><b>Definition:</b> <a href="_backend_id_8hpp_source.xhtml#l00138">BackendId.hpp:138</a></div></div>
<div class="ttc" id="classarmnn_1_1_i_connectable_layer_xhtml_a6ec9e0eb66d7d6a01240492a0b18104c"><div class="ttname"><a href="classarmnn_1_1_i_connectable_layer.xhtml#a6ec9e0eb66d7d6a01240492a0b18104c">armnn::IConnectableLayer::GetInputSlot</a></div><div class="ttdeci">virtual const IInputSlot &amp; GetInputSlot(unsigned int index) const =0</div><div class="ttdoc">Get a const input slot handle by slot index. </div></div>
<div class="ttc" id="classarmnn_1_1_tensor_info_xhtml_a8ffca1e21bdfa7f945617acd606aac91"><div class="ttname"><a href="classarmnn_1_1_tensor_info.xhtml#a8ffca1e21bdfa7f945617acd606aac91">armnn::TensorInfo::SetConstant</a></div><div class="ttdeci">void SetConstant(const bool IsConstant=true)</div><div class="ttdoc">Marks the data corresponding to this tensor info as constant. </div><div class="ttdef"><b>Definition:</b> <a href="_tensor_8cpp_source.xhtml#l00514">Tensor.cpp:514</a></div></div>
<div class="ttc" id="namespacearmnn_xhtml_a375ca3cff9f1b005d1412dc5f3cf5b6e"><div class="ttname"><a href="namespacearmnn.xhtml#a375ca3cff9f1b005d1412dc5f3cf5b6e">armnn::numeric_cast</a></div><div class="ttdeci">std::enable_if_t&lt; std::is_unsigned&lt; Source &gt;::value &amp;&amp;std::is_unsigned&lt; Dest &gt;::value, Dest &gt; numeric_cast(Source source)</div><div class="ttdef"><b>Definition:</b> <a href="_numeric_cast_8hpp_source.xhtml#l00035">NumericCast.hpp:35</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="ttdoc">Indicates whether external timeline profiling is enabled or not. </div><div class="ttdef"><b>Definition:</b> <a href="_i_runtime_8hpp_source.xhtml#l00140">IRuntime.hpp:140</a></div></div>
<div class="ttc" id="namespacearmnn_xhtml_ad8ed01ff3ff33333d8e19db4d2818bb6a166495adc0d0f53bee6baecc577f5204"><div class="ttname"><a href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a166495adc0d0f53bee6baecc577f5204">armnn::DataType::Float32</a></div></div>
<div class="ttc" id="classarmnn_1_1_i_connectable_layer_xhtml_a80ac4eda2e7f2757ec9dd96fc96dbd16"><div class="ttname"><a href="classarmnn_1_1_i_connectable_layer.xhtml#a80ac4eda2e7f2757ec9dd96fc96dbd16">armnn::IConnectableLayer::GetOutputSlot</a></div><div class="ttdeci">virtual const IOutputSlot &amp; GetOutputSlot(unsigned int index) const =0</div><div class="ttdoc">Get the const output slot handle by slot index. </div></div>
<div class="ttc" id="_profiling_test_utils_8hpp_xhtml"><div class="ttname"><a href="_profiling_test_utils_8hpp.xhtml">ProfilingTestUtils.hpp</a></div></div>
<div class="ttc" id="namespacearmnn_xhtml_ace74f6f9feb95a964a49d79458232703"><div class="ttname"><a href="namespacearmnn.xhtml#ace74f6f9feb95a964a49d79458232703">armnn::INetworkPtr</a></div><div class="ttdeci">std::unique_ptr&lt; INetwork, void(*)(INetwork *network)&gt; INetworkPtr</div><div class="ttdef"><b>Definition:</b> <a href="_i_network_8hpp_source.xhtml#l00241">INetwork.hpp:241</a></div></div>
<div class="ttc" id="classarmnn_1_1_arm_n_n_profiling_service_initialiser_xhtml"><div class="ttname"><a href="classarmnn_1_1_arm_n_n_profiling_service_initialiser.xhtml">armnn::ArmNNProfilingServiceInitialiser</a></div><div class="ttdef"><b>Definition:</b> <a href="_arm_n_n_profiling_service_initialiser_8hpp_source.xhtml#l00014">ArmNNProfilingServiceInitialiser.hpp:14</a></div></div>
<div class="ttc" id="classarmnn_1_1_i_output_slot_xhtml_ac1835f8756a9f03c02fcf9664e3a0fce"><div class="ttname"><a href="classarmnn_1_1_i_output_slot.xhtml#ac1835f8756a9f03c02fcf9664e3a0fce">armnn::IOutputSlot::Connect</a></div><div class="ttdeci">virtual int Connect(IInputSlot &amp;destination)=0</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#l00153">IRuntime.hpp:153</a></div></div>
<div class="ttc" id="namespacearmnn_xhtml_a292c96e5bbde0ca0242b1138bea6195d"><div class="ttname"><a href="namespacearmnn.xhtml#a292c96e5bbde0ca0242b1138bea6195d">armnn::GetProfilingService</a></div><div class="ttdeci">arm::pipe::IProfilingService &amp; GetProfilingService(armnn::RuntimeImpl *runtime)</div><div class="ttdef"><b>Definition:</b> <a href="_test_utils_8cpp_source.xhtml#l00059">TestUtils.cpp:59</a></div></div>
<div class="ttc" id="_profiling_test_utils_8cpp_xhtml_ac6ded51288940367b65287093e49ffa5"><div class="ttname"><a href="_profiling_test_utils_8cpp.xhtml#ac6ded51288940367b65287093e49ffa5">VerifyTimelineEventBinaryPacket</a></div><div class="ttdeci">ProfilingGuid VerifyTimelineEventBinaryPacket(arm::pipe::Optional&lt; uint64_t &gt; timestamp, arm::pipe::Optional&lt; int &gt; threadId, arm::pipe::Optional&lt; ProfilingGuid &gt; eventGuid, const unsigned char *readableData, unsigned int &amp;offset)</div><div class="ttdef"><b>Definition:</b> <a href="_profiling_test_utils_8cpp_source.xhtml#l00311">ProfilingTestUtils.cpp:311</a></div></div>
<div class="ttc" id="classarmnn_1_1_i_network_xhtml_a464f0ff87b1aabf71febaa71321dd40b"><div class="ttname"><a href="classarmnn_1_1_i_network.xhtml#a464f0ff87b1aabf71febaa71321dd40b">armnn::INetwork::Create</a></div><div class="ttdeci">static INetworkPtr Create(NetworkOptions networkOptions={})</div><div class="ttdef"><b>Definition:</b> <a href="_network_8cpp_source.xhtml#l00476">Network.cpp:476</a></div></div>
<div class="ttc" id="structarmnn_1_1_convolution2d_descriptor_xhtml_ac18546ebbebbb32fe0a03baa9bf2c600"><div class="ttname"><a href="structarmnn_1_1_convolution2d_descriptor.xhtml#ac18546ebbebbb32fe0a03baa9bf2c600">armnn::Convolution2dDescriptor::m_PadLeft</a></div><div class="ttdeci">uint32_t m_PadLeft</div><div class="ttdoc">Padding left value in the width dimension. </div><div class="ttdef"><b>Definition:</b> <a href="_descriptors_8hpp_source.xhtml#l00531">Descriptors.hpp:531</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><!-- 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_68267d1309a1af8e8297ef4c3efbcdba.xhtml">src</a></li><li class="navelem"><a class="el" href="dir_637c692f14729569dd2eac0c18e2a54a.xhtml">profiling</a></li><li class="navelem"><a class="el" href="dir_6b1198f6e738611120ec65b09506d2f8.xhtml">test</a></li><li class="navelem"><a class="el" href="_profiling_test_utils_8cpp.xhtml">ProfilingTestUtils.cpp</a></li>
    <li class="footer">Generated on Tue May 24 2022 11:27:15 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>