blob: 236952fb2c23daddfac972242511bacba7971701 [file] [log] [blame]
Nikhil Raj8d2ca732023-02-24 10:28:19 +00001<!-- Copyright (c) 2020 ARM Limited. -->
2<!-- -->
3<!-- SPDX-License-Identifier: MIT -->
4<!-- -->
5<!-- HTML header for doxygen 1.8.13-->
6<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
7<html xmlns="http://www.w3.org/1999/xhtml">
8<head>
9<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
10<meta http-equiv="X-UA-Compatible" content="IE=9"/>
11<meta name="generator" content="Doxygen 1.8.13"/>
12<meta name="robots" content="NOINDEX, NOFOLLOW" />
13<meta name="viewport" content="width=device-width, initial-scale=1"/>
14<title>ArmNN: NeonInterceptorScheduler Class Reference</title>
15<link href="tabs.css" rel="stylesheet" type="text/css"/>
16<script type="text/javascript" src="jquery.js"></script>
17<script type="text/javascript" src="dynsections.js"></script>
18<link href="navtree.css" rel="stylesheet" type="text/css"/>
19<script type="text/javascript" src="resize.js"></script>
20<script type="text/javascript" src="navtreedata.js"></script>
21<script type="text/javascript" src="navtree.js"></script>
22<script type="text/javascript">
23 $(document).ready(initResizable);
24</script>
25<link href="search/search.css" rel="stylesheet" type="text/css"/>
26<script type="text/javascript" src="search/searchdata.js"></script>
27<script type="text/javascript" src="search/search.js"></script>
28<script type="text/x-mathjax-config">
29 MathJax.Hub.Config({
30 extensions: ["tex2jax.js"],
31 jax: ["input/TeX","output/HTML-CSS"],
32});
33</script><script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js"></script>
34<link href="doxygen.css" rel="stylesheet" type="text/css" />
35<link href="stylesheet.css" rel="stylesheet" type="text/css"/>
36</head>
37<body>
38<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
39<div id="titlearea">
40<table cellspacing="0" cellpadding="0">
41 <tbody>
42 <tr style="height: 56px;">
43 <img alt="ArmNN" src="Arm_NN_horizontal_blue.png" style="max-width: 10rem; margin-top: .5rem; margin-left 10px"/>
44 <td style="padding-left: 0.5em;">
45 <div id="projectname">
46 &#160;<span id="projectnumber">23.02</span>
47 </div>
48 </td>
49 </tr>
50 </tbody>
51</table>
52</div>
53<!-- end header part -->
54<!-- Generated by Doxygen 1.8.13 -->
55<script type="text/javascript">
56var searchBox = new SearchBox("searchBox", "search",false,'Search');
57</script>
58<script type="text/javascript" src="menudata.js"></script>
59<script type="text/javascript" src="menu.js"></script>
60<script type="text/javascript">
61$(function() {
62 initMenu('',true,false,'search.php','Search');
63 $(document).ready(function() { init_search(); });
64});
65</script>
66<div id="main-nav"></div>
67</div><!-- top -->
68<div id="side-nav" class="ui-resizable side-nav-resizable">
69 <div id="nav-tree">
70 <div id="nav-tree-contents">
71 <div id="nav-sync" class="sync"></div>
72 </div>
73 </div>
74 <div id="splitbar" style="-moz-user-select:none;"
75 class="ui-resizable-handle">
76 </div>
77</div>
78<script type="text/javascript">
79$(document).ready(function(){initNavTree('classarmnn_1_1_neon_interceptor_scheduler.xhtml','');});
80</script>
81<div id="doc-content">
82<!-- window showing the filter options -->
83<div id="MSearchSelectWindow"
84 onmouseover="return searchBox.OnSearchSelectShow()"
85 onmouseout="return searchBox.OnSearchSelectHide()"
86 onkeydown="return searchBox.OnSearchSelectKey(event)">
87</div>
88
89<!-- iframe showing the search results (closed by default) -->
90<div id="MSearchResultsWindow">
91<iframe src="javascript:void(0)" frameborder="0"
92 name="MSearchResults" id="MSearchResults">
93</iframe>
94</div>
95
96<div class="header">
97 <div class="summary">
98<a href="#pub-methods">Public Member Functions</a> &#124;
99<a href="classarmnn_1_1_neon_interceptor_scheduler-members.xhtml">List of all members</a> </div>
100 <div class="headertitle">
101<div class="title">NeonInterceptorScheduler Class Reference</div> </div>
102</div><!--header-->
103<div class="contents">
104
105<p><code>#include &lt;<a class="el" href="_neon_interceptor_scheduler_8hpp_source.xhtml">NeonInterceptorScheduler.hpp</a>&gt;</code></p>
106<div class="dynheader">
107Inheritance diagram for NeonInterceptorScheduler:</div>
108<div class="dyncontent">
109 <div class="center">
110 <img src="classarmnn_1_1_neon_interceptor_scheduler.png" usemap="#NeonInterceptorScheduler_map" alt=""/>
111 <map id="NeonInterceptorScheduler_map" name="NeonInterceptorScheduler_map">
112</map>
113 </div></div>
114<table class="memberdecls">
115<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
116Public Member Functions</h2></td></tr>
117<tr class="memitem:a54394a4d67b6c4e7878cdf36ace0b9a8"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_neon_interceptor_scheduler.xhtml#a54394a4d67b6c4e7878cdf36ace0b9a8">NeonInterceptorScheduler</a> (arm_compute::IScheduler &amp;realScheduler)</td></tr>
118<tr class="separator:a54394a4d67b6c4e7878cdf36ace0b9a8"><td class="memSeparator" colspan="2">&#160;</td></tr>
119<tr class="memitem:a896550e0f6cf5c9d7fa652e04529a06e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_neon_interceptor_scheduler.xhtml#a896550e0f6cf5c9d7fa652e04529a06e">~NeonInterceptorScheduler</a> ()=default</td></tr>
120<tr class="separator:a896550e0f6cf5c9d7fa652e04529a06e"><td class="memSeparator" colspan="2">&#160;</td></tr>
121<tr class="memitem:ad0debf97bd7013d6aadba6db2fd0dc14"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_neon_interceptor_scheduler.xhtml#ad0debf97bd7013d6aadba6db2fd0dc14">set_num_threads</a> (unsigned int numThreads) override</td></tr>
122<tr class="separator:ad0debf97bd7013d6aadba6db2fd0dc14"><td class="memSeparator" colspan="2">&#160;</td></tr>
123<tr class="memitem:a0da94220ee1e0f4928aa31ed0d4b30f7"><td class="memItemLeft" align="right" valign="top">unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_neon_interceptor_scheduler.xhtml#a0da94220ee1e0f4928aa31ed0d4b30f7">num_threads</a> () const override</td></tr>
124<tr class="separator:a0da94220ee1e0f4928aa31ed0d4b30f7"><td class="memSeparator" colspan="2">&#160;</td></tr>
125<tr class="memitem:ae5ed8b38eb9777881ee7c7e56025b5cb"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_neon_interceptor_scheduler.xhtml#ae5ed8b38eb9777881ee7c7e56025b5cb">schedule</a> (arm_compute::ICPPKernel *kernel, const Hints &amp;hints) override</td></tr>
126<tr class="separator:ae5ed8b38eb9777881ee7c7e56025b5cb"><td class="memSeparator" colspan="2">&#160;</td></tr>
127<tr class="memitem:acbe7dbaeedd9d2cf45f50a4c1c4260c3"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_neon_interceptor_scheduler.xhtml#acbe7dbaeedd9d2cf45f50a4c1c4260c3">run_workloads</a> (std::vector&lt; Workload &gt; &amp;workloads) override</td></tr>
128<tr class="separator:acbe7dbaeedd9d2cf45f50a4c1c4260c3"><td class="memSeparator" colspan="2">&#160;</td></tr>
129<tr class="memitem:a666fa6ef79ac975094aaf8844ffee914"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_neon_interceptor_scheduler.xhtml#a666fa6ef79ac975094aaf8844ffee914">run_tagged_workloads</a> (std::vector&lt; Workload &gt; &amp;workloads, const char *tag) override</td></tr>
130<tr class="separator:a666fa6ef79ac975094aaf8844ffee914"><td class="memSeparator" colspan="2">&#160;</td></tr>
131<tr class="memitem:a263bc4fda3d6b99de64681a2ae5661ef"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_neon_interceptor_scheduler.xhtml#a263bc4fda3d6b99de64681a2ae5661ef">SetKernels</a> (<a class="el" href="classarmnn_1_1_neon_timer.xhtml#a278b62df38ce93dfb6de3fa2a711f5bb">NeonTimer::KernelMeasurements</a> *kernels)</td></tr>
132<tr class="separator:a263bc4fda3d6b99de64681a2ae5661ef"><td class="memSeparator" colspan="2">&#160;</td></tr>
133<tr class="memitem:ac050f766763f2140578363b25f324617"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classarmnn_1_1_neon_timer.xhtml#a278b62df38ce93dfb6de3fa2a711f5bb">NeonTimer::KernelMeasurements</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_neon_interceptor_scheduler.xhtml#ac050f766763f2140578363b25f324617">GetKernels</a> ()</td></tr>
134<tr class="separator:ac050f766763f2140578363b25f324617"><td class="memSeparator" colspan="2">&#160;</td></tr>
135<tr class="memitem:aaace9a11bd4824ee1f2b40488da0064d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_neon_interceptor_scheduler.xhtml#aaace9a11bd4824ee1f2b40488da0064d">schedule_op</a> (arm_compute::ICPPKernel *kernel, const Hints &amp;hints, const arm_compute::Window &amp;window, arm_compute::ITensorPack &amp;tensors) override</td></tr>
136<tr class="separator:aaace9a11bd4824ee1f2b40488da0064d"><td class="memSeparator" colspan="2">&#160;</td></tr>
137</table>
138<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
139<div class="textblock">
140<p class="definition">Definition at line <a class="el" href="_neon_interceptor_scheduler_8hpp_source.xhtml#l00017">17</a> of file <a class="el" href="_neon_interceptor_scheduler_8hpp_source.xhtml">NeonInterceptorScheduler.hpp</a>.</p>
141</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
142<a id="a54394a4d67b6c4e7878cdf36ace0b9a8"></a>
143<h2 class="memtitle"><span class="permalink"><a href="#a54394a4d67b6c4e7878cdf36ace0b9a8">&#9670;&nbsp;</a></span>NeonInterceptorScheduler()</h2>
144
145<div class="memitem">
146<div class="memproto">
147 <table class="memname">
148 <tr>
149 <td class="memname"><a class="el" href="classarmnn_1_1_neon_interceptor_scheduler.xhtml">NeonInterceptorScheduler</a> </td>
150 <td>(</td>
151 <td class="paramtype">arm_compute::IScheduler &amp;&#160;</td>
152 <td class="paramname"><em>realScheduler</em></td><td>)</td>
153 <td></td>
154 </tr>
155 </table>
156</div><div class="memdoc">
157
158<p class="definition">Definition at line <a class="el" href="_neon_interceptor_scheduler_8cpp_source.xhtml#l00010">10</a> of file <a class="el" href="_neon_interceptor_scheduler_8cpp_source.xhtml">NeonInterceptorScheduler.cpp</a>.</p>
159<div class="fragment"><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160; : m_Kernels(<span class="keyword">nullptr</span>), m_RealScheduler(realScheduler)</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;}</div></div><!-- fragment -->
160</div>
161</div>
162<a id="a896550e0f6cf5c9d7fa652e04529a06e"></a>
163<h2 class="memtitle"><span class="permalink"><a href="#a896550e0f6cf5c9d7fa652e04529a06e">&#9670;&nbsp;</a></span>~NeonInterceptorScheduler()</h2>
164
165<div class="memitem">
166<div class="memproto">
167<table class="mlabels">
168 <tr>
169 <td class="mlabels-left">
170 <table class="memname">
171 <tr>
172 <td class="memname">~<a class="el" href="classarmnn_1_1_neon_interceptor_scheduler.xhtml">NeonInterceptorScheduler</a> </td>
173 <td>(</td>
174 <td class="paramname"></td><td>)</td>
175 <td></td>
176 </tr>
177 </table>
178 </td>
179 <td class="mlabels-right">
180<span class="mlabels"><span class="mlabel">default</span></span> </td>
181 </tr>
182</table>
183</div><div class="memdoc">
184
185</div>
186</div>
187<h2 class="groupheader">Member Function Documentation</h2>
188<a id="ac050f766763f2140578363b25f324617"></a>
189<h2 class="memtitle"><span class="permalink"><a href="#ac050f766763f2140578363b25f324617">&#9670;&nbsp;</a></span>GetKernels()</h2>
190
191<div class="memitem">
192<div class="memproto">
193<table class="mlabels">
194 <tr>
195 <td class="mlabels-left">
196 <table class="memname">
197 <tr>
198 <td class="memname"><a class="el" href="classarmnn_1_1_neon_timer.xhtml#a278b62df38ce93dfb6de3fa2a711f5bb">NeonTimer::KernelMeasurements</a>* GetKernels </td>
199 <td>(</td>
200 <td class="paramname"></td><td>)</td>
201 <td></td>
202 </tr>
203 </table>
204 </td>
205 <td class="mlabels-right">
206<span class="mlabels"><span class="mlabel">inline</span></span> </td>
207 </tr>
208</table>
209</div><div class="memdoc">
210
211<p class="definition">Definition at line <a class="el" href="_neon_interceptor_scheduler_8hpp_source.xhtml#l00034">34</a> of file <a class="el" href="_neon_interceptor_scheduler_8hpp_source.xhtml">NeonInterceptorScheduler.hpp</a>.</p>
212
213<p class="reference">References <a class="el" href="_neon_interceptor_scheduler_8cpp_source.xhtml#l00055">NeonInterceptorScheduler::schedule_op()</a>.</p>
214<div class="fragment"><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;{ <span class="keywordflow">return</span> m_Kernels; }</div></div><!-- fragment -->
215</div>
216</div>
217<a id="a0da94220ee1e0f4928aa31ed0d4b30f7"></a>
218<h2 class="memtitle"><span class="permalink"><a href="#a0da94220ee1e0f4928aa31ed0d4b30f7">&#9670;&nbsp;</a></span>num_threads()</h2>
219
220<div class="memitem">
221<div class="memproto">
222<table class="mlabels">
223 <tr>
224 <td class="mlabels-left">
225 <table class="memname">
226 <tr>
227 <td class="memname">unsigned int num_threads </td>
228 <td>(</td>
229 <td class="paramname"></td><td>)</td>
230 <td> const</td>
231 </tr>
232 </table>
233 </td>
234 <td class="mlabels-right">
235<span class="mlabels"><span class="mlabel">override</span></span> </td>
236 </tr>
237</table>
238</div><div class="memdoc">
239
240<p class="definition">Definition at line <a class="el" href="_neon_interceptor_scheduler_8cpp_source.xhtml#l00020">20</a> of file <a class="el" href="_neon_interceptor_scheduler_8cpp_source.xhtml">NeonInterceptorScheduler.cpp</a>.</p>
241<div class="fragment"><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="keywordflow">return</span> m_RealScheduler.num_threads();</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;}</div></div><!-- fragment -->
242</div>
243</div>
244<a id="a666fa6ef79ac975094aaf8844ffee914"></a>
245<h2 class="memtitle"><span class="permalink"><a href="#a666fa6ef79ac975094aaf8844ffee914">&#9670;&nbsp;</a></span>run_tagged_workloads()</h2>
246
247<div class="memitem">
248<div class="memproto">
249<table class="mlabels">
250 <tr>
251 <td class="mlabels-left">
252 <table class="memname">
253 <tr>
254 <td class="memname">void run_tagged_workloads </td>
255 <td>(</td>
256 <td class="paramtype">std::vector&lt; Workload &gt; &amp;&#160;</td>
257 <td class="paramname"><em>workloads</em>, </td>
258 </tr>
259 <tr>
260 <td class="paramkey"></td>
261 <td></td>
262 <td class="paramtype">const char *&#160;</td>
263 <td class="paramname"><em>tag</em>&#160;</td>
264 </tr>
265 <tr>
266 <td></td>
267 <td>)</td>
268 <td></td><td></td>
269 </tr>
270 </table>
271 </td>
272 <td class="mlabels-right">
273<span class="mlabels"><span class="mlabel">override</span></span> </td>
274 </tr>
275</table>
276</div><div class="memdoc">
277
278<p class="definition">Definition at line <a class="el" href="_neon_interceptor_scheduler_8cpp_source.xhtml#l00045">45</a> of file <a class="el" href="_neon_interceptor_scheduler_8cpp_source.xhtml">NeonInterceptorScheduler.cpp</a>.</p>
279<div class="fragment"><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;{</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; WallClockTimer::clock::time_point startTime = WallClockTimer::clock::now();</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; m_RealScheduler.run_tagged_workloads(workloads, tag);</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; WallClockTimer::clock::time_point stopTime = WallClockTimer::clock::now();</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; <span class="keyword">const</span> <span class="keyword">auto</span> delta = std::chrono::duration&lt;double, std::micro&gt;(stopTime - startTime);</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; m_Kernels-&gt;emplace_back(std::string(tag != <span class="keyword">nullptr</span> ? tag : <span class="stringliteral">&quot;Unknown&quot;</span>), delta.count(), Measurement::Unit::TIME_US);</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;}</div></div><!-- fragment -->
280</div>
281</div>
282<a id="acbe7dbaeedd9d2cf45f50a4c1c4260c3"></a>
283<h2 class="memtitle"><span class="permalink"><a href="#acbe7dbaeedd9d2cf45f50a4c1c4260c3">&#9670;&nbsp;</a></span>run_workloads()</h2>
284
285<div class="memitem">
286<div class="memproto">
287<table class="mlabels">
288 <tr>
289 <td class="mlabels-left">
290 <table class="memname">
291 <tr>
292 <td class="memname">void run_workloads </td>
293 <td>(</td>
294 <td class="paramtype">std::vector&lt; Workload &gt; &amp;&#160;</td>
295 <td class="paramname"><em>workloads</em></td><td>)</td>
296 <td></td>
297 </tr>
298 </table>
299 </td>
300 <td class="mlabels-right">
301<span class="mlabels"><span class="mlabel">override</span></span> </td>
302 </tr>
303</table>
304</div><div class="memdoc">
305
306<p class="definition">Definition at line <a class="el" href="_neon_interceptor_scheduler_8cpp_source.xhtml#l00035">35</a> of file <a class="el" href="_neon_interceptor_scheduler_8cpp_source.xhtml">NeonInterceptorScheduler.cpp</a>.</p>
307<div class="fragment"><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;{</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; WallClockTimer::clock::time_point startTime = WallClockTimer::clock::now();</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; m_RealScheduler.run_tagged_workloads(workloads, <span class="keyword">nullptr</span>);</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; WallClockTimer::clock::time_point stopTime = WallClockTimer::clock::now();</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <span class="keyword">const</span> <span class="keyword">auto</span> delta = std::chrono::duration&lt;double, std::micro&gt;(stopTime - startTime);</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; m_Kernels-&gt;emplace_back(std::string(<span class="stringliteral">&quot;Workload&quot;</span>), delta.count(), Measurement::Unit::TIME_US);</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;}</div></div><!-- fragment -->
308</div>
309</div>
310<a id="ae5ed8b38eb9777881ee7c7e56025b5cb"></a>
311<h2 class="memtitle"><span class="permalink"><a href="#ae5ed8b38eb9777881ee7c7e56025b5cb">&#9670;&nbsp;</a></span>schedule()</h2>
312
313<div class="memitem">
314<div class="memproto">
315<table class="mlabels">
316 <tr>
317 <td class="mlabels-left">
318 <table class="memname">
319 <tr>
320 <td class="memname">void schedule </td>
321 <td>(</td>
322 <td class="paramtype">arm_compute::ICPPKernel *&#160;</td>
323 <td class="paramname"><em>kernel</em>, </td>
324 </tr>
325 <tr>
326 <td class="paramkey"></td>
327 <td></td>
328 <td class="paramtype">const Hints &amp;&#160;</td>
329 <td class="paramname"><em>hints</em>&#160;</td>
330 </tr>
331 <tr>
332 <td></td>
333 <td>)</td>
334 <td></td><td></td>
335 </tr>
336 </table>
337 </td>
338 <td class="mlabels-right">
339<span class="mlabels"><span class="mlabel">override</span></span> </td>
340 </tr>
341</table>
342</div><div class="memdoc">
343
344<p class="definition">Definition at line <a class="el" href="_neon_interceptor_scheduler_8cpp_source.xhtml#l00025">25</a> of file <a class="el" href="_neon_interceptor_scheduler_8cpp_source.xhtml">NeonInterceptorScheduler.cpp</a>.</p>
345<div class="fragment"><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;{</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; WallClockTimer::clock::time_point startTime = WallClockTimer::clock::now();</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; m_RealScheduler.schedule(kernel, hints.split_dimension());</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; WallClockTimer::clock::time_point stopTime = WallClockTimer::clock::now();</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; <span class="keyword">const</span> <span class="keyword">auto</span> delta = std::chrono::duration&lt;double, std::micro&gt;(stopTime - startTime);</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; m_Kernels-&gt;emplace_back(kernel-&gt;name(), delta.count(), Measurement::Unit::TIME_US);</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;}</div></div><!-- fragment -->
346</div>
347</div>
348<a id="aaace9a11bd4824ee1f2b40488da0064d"></a>
349<h2 class="memtitle"><span class="permalink"><a href="#aaace9a11bd4824ee1f2b40488da0064d">&#9670;&nbsp;</a></span>schedule_op()</h2>
350
351<div class="memitem">
352<div class="memproto">
353<table class="mlabels">
354 <tr>
355 <td class="mlabels-left">
356 <table class="memname">
357 <tr>
358 <td class="memname">void schedule_op </td>
359 <td>(</td>
360 <td class="paramtype">arm_compute::ICPPKernel *&#160;</td>
361 <td class="paramname"><em>kernel</em>, </td>
362 </tr>
363 <tr>
364 <td class="paramkey"></td>
365 <td></td>
366 <td class="paramtype">const Hints &amp;&#160;</td>
367 <td class="paramname"><em>hints</em>, </td>
368 </tr>
369 <tr>
370 <td class="paramkey"></td>
371 <td></td>
372 <td class="paramtype">const arm_compute::Window &amp;&#160;</td>
373 <td class="paramname"><em>window</em>, </td>
374 </tr>
375 <tr>
376 <td class="paramkey"></td>
377 <td></td>
378 <td class="paramtype">arm_compute::ITensorPack &amp;&#160;</td>
379 <td class="paramname"><em>tensors</em>&#160;</td>
380 </tr>
381 <tr>
382 <td></td>
383 <td>)</td>
384 <td></td><td></td>
385 </tr>
386 </table>
387 </td>
388 <td class="mlabels-right">
389<span class="mlabels"><span class="mlabel">override</span></span> </td>
390 </tr>
391</table>
392</div><div class="memdoc">
393
394<p class="definition">Definition at line <a class="el" href="_neon_interceptor_scheduler_8cpp_source.xhtml#l00055">55</a> of file <a class="el" href="_neon_interceptor_scheduler_8cpp_source.xhtml">NeonInterceptorScheduler.cpp</a>.</p>
395
396<p class="reference">Referenced by <a class="el" href="_neon_interceptor_scheduler_8hpp_source.xhtml#l00034">NeonInterceptorScheduler::GetKernels()</a>.</p>
397<div class="fragment"><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;{</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; WallClockTimer::clock::time_point startTime = WallClockTimer::clock::now();</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; m_RealScheduler.schedule_op(kernel, hints, window, tensors);</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; WallClockTimer::clock::time_point stopTime = WallClockTimer::clock::now();</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keyword">const</span> <span class="keyword">auto</span> delta = std::chrono::duration&lt;double, std::micro&gt;(stopTime - startTime);</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; m_Kernels-&gt;emplace_back(kernel-&gt;name(), delta.count(), Measurement::Unit::TIME_US);</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;}</div></div><!-- fragment -->
398</div>
399</div>
400<a id="ad0debf97bd7013d6aadba6db2fd0dc14"></a>
401<h2 class="memtitle"><span class="permalink"><a href="#ad0debf97bd7013d6aadba6db2fd0dc14">&#9670;&nbsp;</a></span>set_num_threads()</h2>
402
403<div class="memitem">
404<div class="memproto">
405<table class="mlabels">
406 <tr>
407 <td class="mlabels-left">
408 <table class="memname">
409 <tr>
410 <td class="memname">void set_num_threads </td>
411 <td>(</td>
412 <td class="paramtype">unsigned int&#160;</td>
413 <td class="paramname"><em>numThreads</em></td><td>)</td>
414 <td></td>
415 </tr>
416 </table>
417 </td>
418 <td class="mlabels-right">
419<span class="mlabels"><span class="mlabel">override</span></span> </td>
420 </tr>
421</table>
422</div><div class="memdoc">
423
424<p class="definition">Definition at line <a class="el" href="_neon_interceptor_scheduler_8cpp_source.xhtml#l00015">15</a> of file <a class="el" href="_neon_interceptor_scheduler_8cpp_source.xhtml">NeonInterceptorScheduler.cpp</a>.</p>
425<div class="fragment"><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;{</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; m_RealScheduler.set_num_threads(numThreads);</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;}</div></div><!-- fragment -->
426</div>
427</div>
428<a id="a263bc4fda3d6b99de64681a2ae5661ef"></a>
429<h2 class="memtitle"><span class="permalink"><a href="#a263bc4fda3d6b99de64681a2ae5661ef">&#9670;&nbsp;</a></span>SetKernels()</h2>
430
431<div class="memitem">
432<div class="memproto">
433<table class="mlabels">
434 <tr>
435 <td class="mlabels-left">
436 <table class="memname">
437 <tr>
438 <td class="memname">void SetKernels </td>
439 <td>(</td>
440 <td class="paramtype"><a class="el" href="classarmnn_1_1_neon_timer.xhtml#a278b62df38ce93dfb6de3fa2a711f5bb">NeonTimer::KernelMeasurements</a> *&#160;</td>
441 <td class="paramname"><em>kernels</em></td><td>)</td>
442 <td></td>
443 </tr>
444 </table>
445 </td>
446 <td class="mlabels-right">
447<span class="mlabels"><span class="mlabel">inline</span></span> </td>
448 </tr>
449</table>
450</div><div class="memdoc">
451
452<p class="definition">Definition at line <a class="el" href="_neon_interceptor_scheduler_8hpp_source.xhtml#l00033">33</a> of file <a class="el" href="_neon_interceptor_scheduler_8hpp_source.xhtml">NeonInterceptorScheduler.hpp</a>.</p>
453<div class="fragment"><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;{ m_Kernels = kernels; }</div></div><!-- fragment -->
454</div>
455</div>
456<hr/>The documentation for this class was generated from the following files:<ul>
457<li>src/backends/neon/<a class="el" href="_neon_interceptor_scheduler_8hpp_source.xhtml">NeonInterceptorScheduler.hpp</a></li>
458<li>src/backends/neon/<a class="el" href="_neon_interceptor_scheduler_8cpp_source.xhtml">NeonInterceptorScheduler.cpp</a></li>
459</ul>
460</div><!-- contents -->
461</div><!-- doc-content -->
462<!-- start footer part -->
463<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
464 <ul>
465 <li class="navelem"><a class="el" href="namespacearmnn.xhtml">armnn</a></li><li class="navelem"><a class="el" href="classarmnn_1_1_neon_interceptor_scheduler.xhtml">NeonInterceptorScheduler</a></li>
466 <li class="footer">Generated on Fri Feb 24 2023 10:24:31 for ArmNN by
467 <a href="http://www.doxygen.org/index.html">
468 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
469 </ul>
470</div>
471</body>
472</html>