blob: 086e4648fc34cec2d995856f367566e1d39c8de5 [file] [log] [blame]
Ryan OSheade36e4a2020-03-13 16:26:19 +00001<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2<html xmlns="http://www.w3.org/1999/xhtml">
3<head>
4<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
5<meta http-equiv="X-UA-Compatible" content="IE=9"/>
6<meta name="generator" content="Doxygen 1.8.13"/>
7<meta name="viewport" content="width=device-width, initial-scale=1"/>
8<title>ArmNN: RefBackend Class Reference</title>
9<link href="tabs.css" rel="stylesheet" type="text/css"/>
10<script type="text/javascript" src="jquery.js"></script>
11<script type="text/javascript" src="dynsections.js"></script>
12<link href="navtree.css" rel="stylesheet" type="text/css"/>
13<script type="text/javascript" src="resize.js"></script>
14<script type="text/javascript" src="navtreedata.js"></script>
15<script type="text/javascript" src="navtree.js"></script>
16<script type="text/javascript">
17 $(document).ready(initResizable);
18</script>
19<link href="search/search.css" rel="stylesheet" type="text/css"/>
20<script type="text/javascript" src="search/searchdata.js"></script>
21<script type="text/javascript" src="search/search.js"></script>
22<link href="doxygen.css" rel="stylesheet" type="text/css" />
23</head>
24<body>
25<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
26<div id="titlearea">
27<table cellspacing="0" cellpadding="0">
28 <tbody>
29 <tr style="height: 56px;">
30 <td id="projectalign" style="padding-left: 0.5em;">
31 <div id="projectname">ArmNN
32 &#160;<span id="projectnumber">NotReleased</span>
33 </div>
34 </td>
35 </tr>
36 </tbody>
37</table>
38</div>
39<!-- end header part -->
40<!-- Generated by Doxygen 1.8.13 -->
41<script type="text/javascript">
42var searchBox = new SearchBox("searchBox", "search",false,'Search');
43</script>
44<script type="text/javascript" src="menudata.js"></script>
45<script type="text/javascript" src="menu.js"></script>
46<script type="text/javascript">
47$(function() {
48 initMenu('',true,false,'search.php','Search');
49 $(document).ready(function() { init_search(); });
50});
51</script>
52<div id="main-nav"></div>
53</div><!-- top -->
54<div id="side-nav" class="ui-resizable side-nav-resizable">
55 <div id="nav-tree">
56 <div id="nav-tree-contents">
57 <div id="nav-sync" class="sync"></div>
58 </div>
59 </div>
60 <div id="splitbar" style="-moz-user-select:none;"
61 class="ui-resizable-handle">
62 </div>
63</div>
64<script type="text/javascript">
65$(document).ready(function(){initNavTree('classarmnn_1_1_ref_backend.html','');});
66</script>
67<div id="doc-content">
68<!-- window showing the filter options -->
69<div id="MSearchSelectWindow"
70 onmouseover="return searchBox.OnSearchSelectShow()"
71 onmouseout="return searchBox.OnSearchSelectHide()"
72 onkeydown="return searchBox.OnSearchSelectKey(event)">
73</div>
74
75<!-- iframe showing the search results (closed by default) -->
76<div id="MSearchResultsWindow">
77<iframe src="javascript:void(0)" frameborder="0"
78 name="MSearchResults" id="MSearchResults">
79</iframe>
80</div>
81
82<div class="header">
83 <div class="summary">
84<a href="#pub-methods">Public Member Functions</a> &#124;
85<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
86<a href="classarmnn_1_1_ref_backend-members.html">List of all members</a> </div>
87 <div class="headertitle">
88<div class="title">RefBackend Class Reference</div> </div>
89</div><!--header-->
90<div class="contents">
91
92<p><code>#include &lt;<a class="el" href="_ref_backend_8hpp_source.html">RefBackend.hpp</a>&gt;</code></p>
93<div class="dynheader">
94Inheritance diagram for RefBackend:</div>
95<div class="dyncontent">
96 <div class="center">
97 <img src="classarmnn_1_1_ref_backend.png" usemap="#RefBackend_map" alt=""/>
98 <map id="RefBackend_map" name="RefBackend_map">
99<area href="classarmnn_1_1_i_backend_internal.html" alt="IBackendInternal" shape="rect" coords="0,56,106,80"/>
100<area href="classarmnn_1_1_i_backend.html" title="Each backend should implement an IBackend. " alt="IBackend" shape="rect" coords="0,0,106,24"/>
101</map>
102 </div></div>
103<table class="memberdecls">
104<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
105Public Member Functions</h2></td></tr>
106<tr class="memitem:a57ed562a609099926af1f9b4ae7c0fee"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_ref_backend.html#a57ed562a609099926af1f9b4ae7c0fee">RefBackend</a> ()=default</td></tr>
107<tr class="separator:a57ed562a609099926af1f9b4ae7c0fee"><td class="memSeparator" colspan="2">&#160;</td></tr>
108<tr class="memitem:ae9d9d836f0915de82f45a07f6a77d18c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_ref_backend.html#ae9d9d836f0915de82f45a07f6a77d18c">~RefBackend</a> ()=default</td></tr>
109<tr class="separator:ae9d9d836f0915de82f45a07f6a77d18c"><td class="memSeparator" colspan="2">&#160;</td></tr>
110<tr class="memitem:a6c6c3d137a7792e264a89cc40ea94bb0"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classarmnn_1_1_backend_id.html">BackendId</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_ref_backend.html#a6c6c3d137a7792e264a89cc40ea94bb0">GetId</a> () const override</td></tr>
111<tr class="separator:a6c6c3d137a7792e264a89cc40ea94bb0"><td class="memSeparator" colspan="2">&#160;</td></tr>
112<tr class="memitem:a93fcb3bff141d8c77b53466a44b58eee"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classarmnn_1_1_i_backend_internal.html#a12bff6d51d63dac1375c89bc8415dc46">IBackendInternal::IMemoryManagerUniquePtr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_ref_backend.html#a93fcb3bff141d8c77b53466a44b58eee">CreateMemoryManager</a> () const override</td></tr>
113<tr class="separator:a93fcb3bff141d8c77b53466a44b58eee"><td class="memSeparator" colspan="2">&#160;</td></tr>
114<tr class="memitem:a8e19e275c8162e34e6d8d10a9245dbc9"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classarmnn_1_1_i_backend_internal.html#a72ca1cf423bda4b0a9ffb789627126de">IBackendInternal::IWorkloadFactoryPtr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_ref_backend.html#a8e19e275c8162e34e6d8d10a9245dbc9">CreateWorkloadFactory</a> (const <a class="el" href="classarmnn_1_1_i_backend_internal.html#a693b40e6b94e958836aeb0410ca186bd">IBackendInternal::IMemoryManagerSharedPtr</a> &amp;memoryManager=nullptr) const override</td></tr>
115<tr class="separator:a8e19e275c8162e34e6d8d10a9245dbc9"><td class="memSeparator" colspan="2">&#160;</td></tr>
116<tr class="memitem:afb0e4b4255c996c68fe87e3c13451a43"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classarmnn_1_1_i_backend_internal.html#a72ca1cf423bda4b0a9ffb789627126de">IBackendInternal::IWorkloadFactoryPtr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_ref_backend.html#afb0e4b4255c996c68fe87e3c13451a43">CreateWorkloadFactory</a> (class <a class="el" href="classarmnn_1_1_tensor_handle_factory_registry.html">TensorHandleFactoryRegistry</a> &amp;tensorHandleFactoryRegistry) const override</td></tr>
117<tr class="separator:afb0e4b4255c996c68fe87e3c13451a43"><td class="memSeparator" colspan="2">&#160;</td></tr>
118<tr class="memitem:a801cf3170dc777aca3e6f926d1bd70a5"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classarmnn_1_1_i_backend_internal.html#ada6d56575c0fe53cf23c7ae4610c6367">IBackendInternal::IBackendContextPtr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_ref_backend.html#a801cf3170dc777aca3e6f926d1bd70a5">CreateBackendContext</a> (const <a class="el" href="structarmnn_1_1_i_runtime_1_1_creation_options.html">IRuntime::CreationOptions</a> &amp;) const override</td></tr>
119<tr class="separator:a801cf3170dc777aca3e6f926d1bd70a5"><td class="memSeparator" colspan="2">&#160;</td></tr>
120<tr class="memitem:ac2480fbc4ae790e2e64f55d78b7f31a0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classarmnn_1_1_i_backend_internal.html#aaece3a614f6691da8de8c7295cb1b07f">IBackendInternal::IBackendProfilingContextPtr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_ref_backend.html#ac2480fbc4ae790e2e64f55d78b7f31a0">CreateBackendProfilingContext</a> (const <a class="el" href="structarmnn_1_1_i_runtime_1_1_creation_options.html">IRuntime::CreationOptions</a> &amp;creationOptions, <a class="el" href="classarmnn_1_1_i_backend_internal.html#a34ab83489d1c5043b2b9b4a2ec13c481">IBackendProfilingPtr</a> &amp;backendProfiling) override</td></tr>
121<tr class="memdesc:ac2480fbc4ae790e2e64f55d78b7f31a0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create context specifically used for profiling interaction from backends. <a href="#ac2480fbc4ae790e2e64f55d78b7f31a0">More...</a><br /></td></tr>
122<tr class="separator:ac2480fbc4ae790e2e64f55d78b7f31a0"><td class="memSeparator" colspan="2">&#160;</td></tr>
123<tr class="memitem:a87acb43c72272d9db21c547d4f4996cb"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classarmnn_1_1_i_backend_internal.html#ad1794808004025d6e06c176507197b24">IBackendInternal::Optimizations</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_ref_backend.html#a87acb43c72272d9db21c547d4f4996cb">GetOptimizations</a> () const override</td></tr>
124<tr class="separator:a87acb43c72272d9db21c547d4f4996cb"><td class="memSeparator" colspan="2">&#160;</td></tr>
125<tr class="memitem:a93d4285a3ea5e4e3b35578484d889daa"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classarmnn_1_1_i_backend_internal.html#a11fa919c11fe46aad613b2e960fcfe90">IBackendInternal::ILayerSupportSharedPtr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_ref_backend.html#a93d4285a3ea5e4e3b35578484d889daa">GetLayerSupport</a> () const override</td></tr>
126<tr class="separator:a93d4285a3ea5e4e3b35578484d889daa"><td class="memSeparator" colspan="2">&#160;</td></tr>
127<tr class="memitem:a3c7ed3d210544740ecb3fa9c28d56c34"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classarmnn_1_1_optimization_views.html">OptimizationViews</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_ref_backend.html#a3c7ed3d210544740ecb3fa9c28d56c34">OptimizeSubgraphView</a> (const <a class="el" href="classarmnn_1_1_subgraph_view.html">SubgraphView</a> &amp;subgraph) const override</td></tr>
128<tr class="separator:a3c7ed3d210544740ecb3fa9c28d56c34"><td class="memSeparator" colspan="2">&#160;</td></tr>
129<tr class="memitem:a63559c7f206c265f5fff5ffcc8a58e3e"><td class="memItemLeft" align="right" valign="top">std::vector&lt; <a class="el" href="classarmnn_1_1_i_tensor_handle_factory.html#a32f4aa6a7089d877af08928139c2c277">ITensorHandleFactory::FactoryId</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_ref_backend.html#a63559c7f206c265f5fff5ffcc8a58e3e">GetHandleFactoryPreferences</a> () const override</td></tr>
130<tr class="memdesc:a63559c7f206c265f5fff5ffcc8a58e3e"><td class="mdescLeft">&#160;</td><td class="mdescRight">(<a class="el" href="classarmnn_1_1_optional.html">Optional</a>) Returns a vector of supported TensorHandleFactory ids in preference order. <a href="#a63559c7f206c265f5fff5ffcc8a58e3e">More...</a><br /></td></tr>
131<tr class="separator:a63559c7f206c265f5fff5ffcc8a58e3e"><td class="memSeparator" colspan="2">&#160;</td></tr>
132<tr class="memitem:a583bc4404a9d27ee1f8c46239637125d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_ref_backend.html#a583bc4404a9d27ee1f8c46239637125d">RegisterTensorHandleFactories</a> (class <a class="el" href="classarmnn_1_1_tensor_handle_factory_registry.html">TensorHandleFactoryRegistry</a> &amp;registry) override</td></tr>
133<tr class="separator:a583bc4404a9d27ee1f8c46239637125d"><td class="memSeparator" colspan="2">&#160;</td></tr>
134<tr class="inherit_header pub_methods_classarmnn_1_1_i_backend_internal"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classarmnn_1_1_i_backend_internal')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classarmnn_1_1_i_backend_internal.html">IBackendInternal</a></td></tr>
135<tr class="memitem:a8c507c220869f89aec2dc370ea6c5a0b inherit pub_methods_classarmnn_1_1_i_backend_internal"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_i_backend_internal.html#a8c507c220869f89aec2dc370ea6c5a0b">~IBackendInternal</a> () override=default</td></tr>
136<tr class="separator:a8c507c220869f89aec2dc370ea6c5a0b inherit pub_methods_classarmnn_1_1_i_backend_internal"><td class="memSeparator" colspan="2">&#160;</td></tr>
137<tr class="memitem:af0244952bb3d1d56b57736041c5a9fd3 inherit pub_methods_classarmnn_1_1_i_backend_internal"><td class="memItemLeft" align="right" valign="top">virtual ISubGraphConverterPtr&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_i_backend_internal.html#af0244952bb3d1d56b57736041c5a9fd3">CreateSubGraphConverter</a> (const std::shared_ptr&lt; SubGraph &gt; &amp;subGraph) const</td></tr>
138<tr class="separator:af0244952bb3d1d56b57736041c5a9fd3 inherit pub_methods_classarmnn_1_1_i_backend_internal"><td class="memSeparator" colspan="2">&#160;</td></tr>
139<tr class="memitem:a226207e25fec42b47bd86621f3176686 inherit pub_methods_classarmnn_1_1_i_backend_internal"><td class="memItemLeft" align="right" valign="top">virtual SubGraphUniquePtr&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_i_backend_internal.html#a226207e25fec42b47bd86621f3176686">OptimizeSubGraph</a> (const SubGraph &amp;subGraph, bool &amp;optimizationAttempted) const</td></tr>
140<tr class="separator:a226207e25fec42b47bd86621f3176686 inherit pub_methods_classarmnn_1_1_i_backend_internal"><td class="memSeparator" colspan="2">&#160;</td></tr>
141<tr class="memitem:af8f716b0eab6b9d63196d5a53d5fac81 inherit pub_methods_classarmnn_1_1_i_backend_internal"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_i_backend_internal.html#af8f716b0eab6b9d63196d5a53d5fac81">SupportsTensorAllocatorAPI</a> () const</td></tr>
142<tr class="separator:af8f716b0eab6b9d63196d5a53d5fac81 inherit pub_methods_classarmnn_1_1_i_backend_internal"><td class="memSeparator" colspan="2">&#160;</td></tr>
143<tr class="memitem:a6ccbb386cc96a5336a8295a3c25d33dd inherit pub_methods_classarmnn_1_1_i_backend_internal"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classarmnn_1_1_i_tensor_handle_factory.html#a32f4aa6a7089d877af08928139c2c277">ITensorHandleFactory::FactoryId</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_i_backend_internal.html#a6ccbb386cc96a5336a8295a3c25d33dd">GetBackwardCompatibleFavoriteHandleFactory</a> ()</td></tr>
144<tr class="separator:a6ccbb386cc96a5336a8295a3c25d33dd inherit pub_methods_classarmnn_1_1_i_backend_internal"><td class="memSeparator" colspan="2">&#160;</td></tr>
145</table><table class="memberdecls">
146<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
147Static Public Member Functions</h2></td></tr>
148<tr class="memitem:a177af502214bbc8123fbb4a3c4f0a1b8"><td class="memItemLeft" align="right" valign="top">static const <a class="el" href="classarmnn_1_1_backend_id.html">BackendId</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_ref_backend.html#a177af502214bbc8123fbb4a3c4f0a1b8">GetIdStatic</a> ()</td></tr>
149<tr class="separator:a177af502214bbc8123fbb4a3c4f0a1b8"><td class="memSeparator" colspan="2">&#160;</td></tr>
150<tr class="inherit_header pub_static_methods_classarmnn_1_1_i_backend_internal"><td colspan="2" onclick="javascript:toggleInherit('pub_static_methods_classarmnn_1_1_i_backend_internal')"><img src="closed.png" alt="-"/>&#160;Static Public Member Functions inherited from <a class="el" href="classarmnn_1_1_i_backend_internal.html">IBackendInternal</a></td></tr>
151<tr class="memitem:a878b8f50d8a2f92ed624803e9f6968ae inherit pub_static_methods_classarmnn_1_1_i_backend_internal"><td class="memItemLeft" align="right" valign="top">static constexpr <a class="el" href="structarmnn_1_1_backend_version.html">BackendVersion</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_i_backend_internal.html#a878b8f50d8a2f92ed624803e9f6968ae">GetApiVersion</a> ()</td></tr>
152<tr class="memdesc:a878b8f50d8a2f92ed624803e9f6968ae inherit pub_static_methods_classarmnn_1_1_i_backend_internal"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the version of the Backend API. <a href="classarmnn_1_1_i_backend_internal.html#a878b8f50d8a2f92ed624803e9f6968ae">More...</a><br /></td></tr>
153<tr class="separator:a878b8f50d8a2f92ed624803e9f6968ae inherit pub_static_methods_classarmnn_1_1_i_backend_internal"><td class="memSeparator" colspan="2">&#160;</td></tr>
154</table><table class="memberdecls">
155<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
156Additional Inherited Members</h2></td></tr>
157<tr class="inherit_header pub_types_classarmnn_1_1_i_backend_internal"><td colspan="2" onclick="javascript:toggleInherit('pub_types_classarmnn_1_1_i_backend_internal')"><img src="closed.png" alt="-"/>&#160;Public Types inherited from <a class="el" href="classarmnn_1_1_i_backend_internal.html">IBackendInternal</a></td></tr>
158<tr class="memitem:a72ca1cf423bda4b0a9ffb789627126de inherit pub_types_classarmnn_1_1_i_backend_internal"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_i_backend_internal.html#a72ca1cf423bda4b0a9ffb789627126de">IWorkloadFactoryPtr</a> = std::unique_ptr&lt; <a class="el" href="classarmnn_1_1_i_workload_factory.html">IWorkloadFactory</a> &gt;</td></tr>
159<tr class="separator:a72ca1cf423bda4b0a9ffb789627126de inherit pub_types_classarmnn_1_1_i_backend_internal"><td class="memSeparator" colspan="2">&#160;</td></tr>
160<tr class="memitem:ada6d56575c0fe53cf23c7ae4610c6367 inherit pub_types_classarmnn_1_1_i_backend_internal"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_i_backend_internal.html#ada6d56575c0fe53cf23c7ae4610c6367">IBackendContextPtr</a> = std::unique_ptr&lt; <a class="el" href="classarmnn_1_1_i_backend_context.html">IBackendContext</a> &gt;</td></tr>
161<tr class="separator:ada6d56575c0fe53cf23c7ae4610c6367 inherit pub_types_classarmnn_1_1_i_backend_internal"><td class="memSeparator" colspan="2">&#160;</td></tr>
162<tr class="memitem:aaece3a614f6691da8de8c7295cb1b07f inherit pub_types_classarmnn_1_1_i_backend_internal"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_i_backend_internal.html#aaece3a614f6691da8de8c7295cb1b07f">IBackendProfilingContextPtr</a> = std::shared_ptr&lt; <a class="el" href="classarmnn_1_1profiling_1_1_i_backend_profiling_context.html">armnn::profiling::IBackendProfilingContext</a> &gt;</td></tr>
163<tr class="separator:aaece3a614f6691da8de8c7295cb1b07f inherit pub_types_classarmnn_1_1_i_backend_internal"><td class="memSeparator" colspan="2">&#160;</td></tr>
164<tr class="memitem:a34ab83489d1c5043b2b9b4a2ec13c481 inherit pub_types_classarmnn_1_1_i_backend_internal"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_i_backend_internal.html#a34ab83489d1c5043b2b9b4a2ec13c481">IBackendProfilingPtr</a> = std::unique_ptr&lt; <a class="el" href="classarmnn_1_1profiling_1_1_i_backend_profiling.html">armnn::profiling::IBackendProfiling</a> &gt;</td></tr>
165<tr class="separator:a34ab83489d1c5043b2b9b4a2ec13c481 inherit pub_types_classarmnn_1_1_i_backend_internal"><td class="memSeparator" colspan="2">&#160;</td></tr>
166<tr class="memitem:a621bdb49c4a2f879b27d27e771693a46 inherit pub_types_classarmnn_1_1_i_backend_internal"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_i_backend_internal.html#a621bdb49c4a2f879b27d27e771693a46">OptimizationPtr</a> = std::unique_ptr&lt; <a class="el" href="classarmnn_1_1_optimization.html">Optimization</a> &gt;</td></tr>
167<tr class="separator:a621bdb49c4a2f879b27d27e771693a46 inherit pub_types_classarmnn_1_1_i_backend_internal"><td class="memSeparator" colspan="2">&#160;</td></tr>
168<tr class="memitem:ad1794808004025d6e06c176507197b24 inherit pub_types_classarmnn_1_1_i_backend_internal"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_i_backend_internal.html#ad1794808004025d6e06c176507197b24">Optimizations</a> = std::vector&lt; <a class="el" href="classarmnn_1_1_i_backend_internal.html#a621bdb49c4a2f879b27d27e771693a46">OptimizationPtr</a> &gt;</td></tr>
169<tr class="separator:ad1794808004025d6e06c176507197b24 inherit pub_types_classarmnn_1_1_i_backend_internal"><td class="memSeparator" colspan="2">&#160;</td></tr>
170<tr class="memitem:a11fa919c11fe46aad613b2e960fcfe90 inherit pub_types_classarmnn_1_1_i_backend_internal"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_i_backend_internal.html#a11fa919c11fe46aad613b2e960fcfe90">ILayerSupportSharedPtr</a> = std::shared_ptr&lt; <a class="el" href="classarmnn_1_1_i_layer_support.html">ILayerSupport</a> &gt;</td></tr>
171<tr class="separator:a11fa919c11fe46aad613b2e960fcfe90 inherit pub_types_classarmnn_1_1_i_backend_internal"><td class="memSeparator" colspan="2">&#160;</td></tr>
172<tr class="memitem:a12bff6d51d63dac1375c89bc8415dc46 inherit pub_types_classarmnn_1_1_i_backend_internal"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_i_backend_internal.html#a12bff6d51d63dac1375c89bc8415dc46">IMemoryManagerUniquePtr</a> = std::unique_ptr&lt; <a class="el" href="classarmnn_1_1_i_memory_manager.html">IMemoryManager</a> &gt;</td></tr>
173<tr class="separator:a12bff6d51d63dac1375c89bc8415dc46 inherit pub_types_classarmnn_1_1_i_backend_internal"><td class="memSeparator" colspan="2">&#160;</td></tr>
174<tr class="memitem:a693b40e6b94e958836aeb0410ca186bd inherit pub_types_classarmnn_1_1_i_backend_internal"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_i_backend_internal.html#a693b40e6b94e958836aeb0410ca186bd">IMemoryManagerSharedPtr</a> = std::shared_ptr&lt; <a class="el" href="classarmnn_1_1_i_memory_manager.html">IMemoryManager</a> &gt;</td></tr>
175<tr class="separator:a693b40e6b94e958836aeb0410ca186bd inherit pub_types_classarmnn_1_1_i_backend_internal"><td class="memSeparator" colspan="2">&#160;</td></tr>
176<tr class="memitem:a5d9d4ef183078690e3306320dc74b945 inherit pub_types_classarmnn_1_1_i_backend_internal"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_i_backend_internal.html#a5d9d4ef183078690e3306320dc74b945">GraphUniquePtr</a> = std::unique_ptr&lt; <a class="el" href="classarmnn_1_1_graph.html">Graph</a> &gt;</td></tr>
177<tr class="separator:a5d9d4ef183078690e3306320dc74b945 inherit pub_types_classarmnn_1_1_i_backend_internal"><td class="memSeparator" colspan="2">&#160;</td></tr>
178<tr class="memitem:a25114a92f06d5d0a915111d97c7c4d7a inherit pub_types_classarmnn_1_1_i_backend_internal"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_i_backend_internal.html#a25114a92f06d5d0a915111d97c7c4d7a">SubgraphViewUniquePtr</a> = std::unique_ptr&lt; <a class="el" href="classarmnn_1_1_subgraph_view.html">SubgraphView</a> &gt;</td></tr>
179<tr class="separator:a25114a92f06d5d0a915111d97c7c4d7a inherit pub_types_classarmnn_1_1_i_backend_internal"><td class="memSeparator" colspan="2">&#160;</td></tr>
180<tr class="memitem:a928c74de863a45a07986816d7c9ad68a inherit pub_types_classarmnn_1_1_i_backend_internal"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_i_backend_internal.html#a928c74de863a45a07986816d7c9ad68a">supported</a> = std::unique_ptr&lt; ISubGraphConverter &gt;</td></tr>
181<tr class="separator:a928c74de863a45a07986816d7c9ad68a inherit pub_types_classarmnn_1_1_i_backend_internal"><td class="memSeparator" colspan="2">&#160;</td></tr>
182<tr class="memitem:afe076d3d98038ede095765ae6ee294ac inherit pub_types_classarmnn_1_1_i_backend_internal"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_i_backend_internal.html#afe076d3d98038ede095765ae6ee294ac">instead</a> = std::unique_ptr&lt; SubGraph &gt;</td></tr>
183<tr class="separator:afe076d3d98038ede095765ae6ee294ac inherit pub_types_classarmnn_1_1_i_backend_internal"><td class="memSeparator" colspan="2">&#160;</td></tr>
184<tr class="inherit_header pro_methods_classarmnn_1_1_i_backend_internal"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classarmnn_1_1_i_backend_internal')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classarmnn_1_1_i_backend_internal.html">IBackendInternal</a></td></tr>
185<tr class="memitem:a675fed08e681be4343fb09ae73eb7641 inherit pro_methods_classarmnn_1_1_i_backend_internal"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_i_backend_internal.html#a675fed08e681be4343fb09ae73eb7641">IBackendInternal</a> ()=default</td></tr>
186<tr class="separator:a675fed08e681be4343fb09ae73eb7641 inherit pro_methods_classarmnn_1_1_i_backend_internal"><td class="memSeparator" colspan="2">&#160;</td></tr>
187<tr class="inherit_header pro_methods_classarmnn_1_1_i_backend"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classarmnn_1_1_i_backend')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classarmnn_1_1_i_backend.html">IBackend</a></td></tr>
188<tr class="memitem:a7cfc55eae265fa65b7d25e7dd3203f22 inherit pro_methods_classarmnn_1_1_i_backend"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_i_backend.html#a7cfc55eae265fa65b7d25e7dd3203f22">IBackend</a> ()</td></tr>
189<tr class="separator:a7cfc55eae265fa65b7d25e7dd3203f22 inherit pro_methods_classarmnn_1_1_i_backend"><td class="memSeparator" colspan="2">&#160;</td></tr>
190<tr class="memitem:aa73289e0503a4f7ec5909e117a57aa2b inherit pro_methods_classarmnn_1_1_i_backend"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_i_backend.html#aa73289e0503a4f7ec5909e117a57aa2b">~IBackend</a> ()</td></tr>
191<tr class="separator:aa73289e0503a4f7ec5909e117a57aa2b inherit pro_methods_classarmnn_1_1_i_backend"><td class="memSeparator" colspan="2">&#160;</td></tr>
192</table>
193<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
194<div class="textblock">
195<p class="definition">Definition at line <a class="el" href="_ref_backend_8hpp_source.html#l00012">12</a> of file <a class="el" href="_ref_backend_8hpp_source.html">RefBackend.hpp</a>.</p>
196</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
197<a id="a57ed562a609099926af1f9b4ae7c0fee"></a>
198<h2 class="memtitle"><span class="permalink"><a href="#a57ed562a609099926af1f9b4ae7c0fee">&#9670;&nbsp;</a></span>RefBackend()</h2>
199
200<div class="memitem">
201<div class="memproto">
202<table class="mlabels">
203 <tr>
204 <td class="mlabels-left">
205 <table class="memname">
206 <tr>
207 <td class="memname"><a class="el" href="classarmnn_1_1_ref_backend.html">RefBackend</a> </td>
208 <td>(</td>
209 <td class="paramname"></td><td>)</td>
210 <td></td>
211 </tr>
212 </table>
213 </td>
214 <td class="mlabels-right">
215<span class="mlabels"><span class="mlabel">default</span></span> </td>
216 </tr>
217</table>
218</div><div class="memdoc">
219
220</div>
221</div>
222<a id="ae9d9d836f0915de82f45a07f6a77d18c"></a>
223<h2 class="memtitle"><span class="permalink"><a href="#ae9d9d836f0915de82f45a07f6a77d18c">&#9670;&nbsp;</a></span>~RefBackend()</h2>
224
225<div class="memitem">
226<div class="memproto">
227<table class="mlabels">
228 <tr>
229 <td class="mlabels-left">
230 <table class="memname">
231 <tr>
232 <td class="memname">~<a class="el" href="classarmnn_1_1_ref_backend.html">RefBackend</a> </td>
233 <td>(</td>
234 <td class="paramname"></td><td>)</td>
235 <td></td>
236 </tr>
237 </table>
238 </td>
239 <td class="mlabels-right">
240<span class="mlabels"><span class="mlabel">default</span></span> </td>
241 </tr>
242</table>
243</div><div class="memdoc">
244
245</div>
246</div>
247<h2 class="groupheader">Member Function Documentation</h2>
248<a id="a801cf3170dc777aca3e6f926d1bd70a5"></a>
249<h2 class="memtitle"><span class="permalink"><a href="#a801cf3170dc777aca3e6f926d1bd70a5">&#9670;&nbsp;</a></span>CreateBackendContext()</h2>
250
251<div class="memitem">
252<div class="memproto">
253<table class="mlabels">
254 <tr>
255 <td class="mlabels-left">
256 <table class="memname">
257 <tr>
258 <td class="memname"><a class="el" href="classarmnn_1_1_i_backend_internal.html#ada6d56575c0fe53cf23c7ae4610c6367">IBackendInternal::IBackendContextPtr</a> CreateBackendContext </td>
259 <td>(</td>
260 <td class="paramtype">const <a class="el" href="structarmnn_1_1_i_runtime_1_1_creation_options.html">IRuntime::CreationOptions</a> &amp;&#160;</td>
261 <td class="paramname"></td><td>)</td>
262 <td> const</td>
263 </tr>
264 </table>
265 </td>
266 <td class="mlabels-right">
267<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
268 </tr>
269</table>
270</div><div class="memdoc">
271<p>Create the runtime context of the backend</p>
272<p>Implementations may return a default-constructed IBackendContextPtr if no context is needed at runtime. Implementations must throw <a class="el" href="classarmnn_1_1_backend_unavailable_exception.html" title="Class for non-fatal exceptions raised while initialising a backend. ">BackendUnavailableException</a> if the backend cannot be used (for example, necessary accelerator hardware is not present). The default implementation always returns a default-constructed pointer. </p>
273
274<p>Reimplemented from <a class="el" href="classarmnn_1_1_i_backend_internal.html#a07a1b3f9ac897364b5c2aacc227cbebc">IBackendInternal</a>.</p>
275
276<p class="definition">Definition at line <a class="el" href="_ref_backend_8cpp_source.html#l00046">46</a> of file <a class="el" href="_ref_backend_8cpp_source.html">RefBackend.cpp</a>.</p>
277
278<p class="reference">Referenced by <a class="el" href="_ref_backend_8hpp_source.html#l00019">RefBackend::GetId()</a>.</p>
279<div class="fragment"><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; <span class="keywordflow">return</span> <a class="code" href="classarmnn_1_1_i_backend_internal.html#ada6d56575c0fe53cf23c7ae4610c6367">IBackendContextPtr</a>{};</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;}</div><div class="ttc" id="classarmnn_1_1_i_backend_internal_html_ada6d56575c0fe53cf23c7ae4610c6367"><div class="ttname"><a href="classarmnn_1_1_i_backend_internal.html#ada6d56575c0fe53cf23c7ae4610c6367">armnn::IBackendInternal::IBackendContextPtr</a></div><div class="ttdeci">std::unique_ptr&lt; IBackendContext &gt; IBackendContextPtr</div><div class="ttdef"><b>Definition:</b> <a href="include_2armnn_2backends_2_i_backend_internal_8hpp_source.html#l00081">IBackendInternal.hpp:81</a></div></div>
280</div><!-- fragment -->
281</div>
282</div>
283<a id="ac2480fbc4ae790e2e64f55d78b7f31a0"></a>
284<h2 class="memtitle"><span class="permalink"><a href="#ac2480fbc4ae790e2e64f55d78b7f31a0">&#9670;&nbsp;</a></span>CreateBackendProfilingContext()</h2>
285
286<div class="memitem">
287<div class="memproto">
288<table class="mlabels">
289 <tr>
290 <td class="mlabels-left">
291 <table class="memname">
292 <tr>
293 <td class="memname"><a class="el" href="classarmnn_1_1_i_backend_internal.html#aaece3a614f6691da8de8c7295cb1b07f">IBackendInternal::IBackendProfilingContextPtr</a> CreateBackendProfilingContext </td>
294 <td>(</td>
295 <td class="paramtype">const <a class="el" href="structarmnn_1_1_i_runtime_1_1_creation_options.html">IRuntime::CreationOptions</a> &amp;&#160;</td>
296 <td class="paramname"><em>creationOptions</em>, </td>
297 </tr>
298 <tr>
299 <td class="paramkey"></td>
300 <td></td>
301 <td class="paramtype"><a class="el" href="classarmnn_1_1_i_backend_internal.html#a34ab83489d1c5043b2b9b4a2ec13c481">IBackendProfilingPtr</a> &amp;&#160;</td>
302 <td class="paramname"><em>backendProfiling</em>&#160;</td>
303 </tr>
304 <tr>
305 <td></td>
306 <td>)</td>
307 <td></td><td></td>
308 </tr>
309 </table>
310 </td>
311 <td class="mlabels-right">
312<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
313 </tr>
314</table>
315</div><div class="memdoc">
316
317<p>Create context specifically used for profiling interaction from backends. </p>
318
319<p>Reimplemented from <a class="el" href="classarmnn_1_1_i_backend_internal.html#a6c5064ef6323af5c547674d01b15d7ab">IBackendInternal</a>.</p>
320
321<p class="definition">Definition at line <a class="el" href="_ref_backend_8cpp_source.html#l00051">51</a> of file <a class="el" href="_ref_backend_8cpp_source.html">RefBackend.cpp</a>.</p>
322
323<p class="reference">Referenced by <a class="el" href="_ref_backend_8hpp_source.html#l00019">RefBackend::GetId()</a>.</p>
324<div class="fragment"><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;{</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classarmnn_1_1_i_backend_internal.html#aaece3a614f6691da8de8c7295cb1b07f">IBackendProfilingContextPtr</a>{};</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;}</div><div class="ttc" id="classarmnn_1_1_i_backend_internal_html_aaece3a614f6691da8de8c7295cb1b07f"><div class="ttname"><a href="classarmnn_1_1_i_backend_internal.html#aaece3a614f6691da8de8c7295cb1b07f">armnn::IBackendInternal::IBackendProfilingContextPtr</a></div><div class="ttdeci">std::shared_ptr&lt; armnn::profiling::IBackendProfilingContext &gt; IBackendProfilingContextPtr</div><div class="ttdef"><b>Definition:</b> <a href="include_2armnn_2backends_2_i_backend_internal_8hpp_source.html#l00083">IBackendInternal.hpp:83</a></div></div>
325</div><!-- fragment -->
326</div>
327</div>
328<a id="a93fcb3bff141d8c77b53466a44b58eee"></a>
329<h2 class="memtitle"><span class="permalink"><a href="#a93fcb3bff141d8c77b53466a44b58eee">&#9670;&nbsp;</a></span>CreateMemoryManager()</h2>
330
331<div class="memitem">
332<div class="memproto">
333<table class="mlabels">
334 <tr>
335 <td class="mlabels-left">
336 <table class="memname">
337 <tr>
338 <td class="memname"><a class="el" href="classarmnn_1_1_i_backend_internal.html#a12bff6d51d63dac1375c89bc8415dc46">IBackendInternal::IMemoryManagerUniquePtr</a> CreateMemoryManager </td>
339 <td>(</td>
340 <td class="paramname"></td><td>)</td>
341 <td> const</td>
342 </tr>
343 </table>
344 </td>
345 <td class="mlabels-right">
346<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
347 </tr>
348</table>
349</div><div class="memdoc">
350
351<p>Reimplemented from <a class="el" href="classarmnn_1_1_i_backend_internal.html#a0e8cb8533d1d0b2cb93f926dac11dd16">IBackendInternal</a>.</p>
352
353<p class="definition">Definition at line <a class="el" href="_ref_backend_8cpp_source.html#l00057">57</a> of file <a class="el" href="_ref_backend_8cpp_source.html">RefBackend.cpp</a>.</p>
354
355<p class="reference">Referenced by <a class="el" href="_ref_backend_8hpp_source.html#l00019">RefBackend::GetId()</a>.</p>
356<div class="fragment"><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; <span class="keywordflow">return</span> std::make_unique&lt;RefMemoryManager&gt;();</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;}</div></div><!-- fragment -->
357</div>
358</div>
359<a id="a8e19e275c8162e34e6d8d10a9245dbc9"></a>
360<h2 class="memtitle"><span class="permalink"><a href="#a8e19e275c8162e34e6d8d10a9245dbc9">&#9670;&nbsp;</a></span>CreateWorkloadFactory() <span class="overload">[1/2]</span></h2>
361
362<div class="memitem">
363<div class="memproto">
364<table class="mlabels">
365 <tr>
366 <td class="mlabels-left">
367 <table class="memname">
368 <tr>
369 <td class="memname"><a class="el" href="classarmnn_1_1_i_backend_internal.html#a72ca1cf423bda4b0a9ffb789627126de">IBackendInternal::IWorkloadFactoryPtr</a> CreateWorkloadFactory </td>
370 <td>(</td>
371 <td class="paramtype">const <a class="el" href="classarmnn_1_1_i_backend_internal.html#a693b40e6b94e958836aeb0410ca186bd">IBackendInternal::IMemoryManagerSharedPtr</a> &amp;&#160;</td>
372 <td class="paramname"><em>memoryManager</em> = <code>nullptr</code></td><td>)</td>
373 <td> const</td>
374 </tr>
375 </table>
376 </td>
377 <td class="mlabels-right">
378<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
379 </tr>
380</table>
381</div><div class="memdoc">
382
383<p>Implements <a class="el" href="classarmnn_1_1_i_backend_internal.html#afd5a5e90515b31c0174f76ec8897e9b1">IBackendInternal</a>.</p>
384
385<p class="definition">Definition at line <a class="el" href="_ref_backend_8cpp_source.html#l00030">30</a> of file <a class="el" href="_ref_backend_8cpp_source.html">RefBackend.cpp</a>.</p>
386
387<p class="reference">Referenced by <a class="el" href="_ref_backend_8hpp_source.html#l00019">RefBackend::GetId()</a>.</p>
388<div class="fragment"><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;{</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <span class="keywordflow">return</span> std::make_unique&lt;RefWorkloadFactory&gt;(boost::polymorphic_pointer_downcast&lt;RefMemoryManager&gt;(memoryManager));</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;}</div></div><!-- fragment -->
389</div>
390</div>
391<a id="afb0e4b4255c996c68fe87e3c13451a43"></a>
392<h2 class="memtitle"><span class="permalink"><a href="#afb0e4b4255c996c68fe87e3c13451a43">&#9670;&nbsp;</a></span>CreateWorkloadFactory() <span class="overload">[2/2]</span></h2>
393
394<div class="memitem">
395<div class="memproto">
396<table class="mlabels">
397 <tr>
398 <td class="mlabels-left">
399 <table class="memname">
400 <tr>
401 <td class="memname"><a class="el" href="classarmnn_1_1_i_backend_internal.html#a72ca1cf423bda4b0a9ffb789627126de">IBackendInternal::IWorkloadFactoryPtr</a> CreateWorkloadFactory </td>
402 <td>(</td>
403 <td class="paramtype">class <a class="el" href="classarmnn_1_1_tensor_handle_factory_registry.html">TensorHandleFactoryRegistry</a> &amp;&#160;</td>
404 <td class="paramname"><em>tensorHandleFactoryRegistry</em></td><td>)</td>
405 <td> const</td>
406 </tr>
407 </table>
408 </td>
409 <td class="mlabels-right">
410<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
411 </tr>
412</table>
413</div><div class="memdoc">
414
415<p>Reimplemented from <a class="el" href="classarmnn_1_1_i_backend_internal.html#a41c5c170ef6708c1efc683d900f624ff">IBackendInternal</a>.</p>
416
417<p class="definition">Definition at line <a class="el" href="_ref_backend_8cpp_source.html#l00036">36</a> of file <a class="el" href="_ref_backend_8cpp_source.html">RefBackend.cpp</a>.</p>
418
419<p class="reference">References <a class="el" href="_tensor_handle_factory_registry_8cpp_source.html#l00034">TensorHandleFactoryRegistry::RegisterMemoryManager()</a>.</p>
420<div class="fragment"><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;{</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <span class="keyword">auto</span> memoryManager = std::make_shared&lt;RefMemoryManager&gt;();</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; tensorHandleFactoryRegistry.RegisterMemoryManager(memoryManager);</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> std::make_unique&lt;RefWorkloadFactory&gt;(boost::polymorphic_pointer_downcast&lt;RefMemoryManager&gt;(memoryManager));</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;}</div></div><!-- fragment -->
421</div>
422</div>
423<a id="a63559c7f206c265f5fff5ffcc8a58e3e"></a>
424<h2 class="memtitle"><span class="permalink"><a href="#a63559c7f206c265f5fff5ffcc8a58e3e">&#9670;&nbsp;</a></span>GetHandleFactoryPreferences()</h2>
425
426<div class="memitem">
427<div class="memproto">
428<table class="mlabels">
429 <tr>
430 <td class="mlabels-left">
431 <table class="memname">
432 <tr>
433 <td class="memname">std::vector&lt; <a class="el" href="classarmnn_1_1_i_tensor_handle_factory.html#a32f4aa6a7089d877af08928139c2c277">ITensorHandleFactory::FactoryId</a> &gt; GetHandleFactoryPreferences </td>
434 <td>(</td>
435 <td class="paramname"></td><td>)</td>
436 <td> const</td>
437 </tr>
438 </table>
439 </td>
440 <td class="mlabels-right">
441<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
442 </tr>
443</table>
444</div><div class="memdoc">
445
446<p>(<a class="el" href="classarmnn_1_1_optional.html">Optional</a>) Returns a vector of supported TensorHandleFactory ids in preference order. </p>
447
448<p>Reimplemented from <a class="el" href="classarmnn_1_1_i_backend_internal.html#ac5d107c5672f446603b6e6b92bce6244">IBackendInternal</a>.</p>
449
450<p class="definition">Definition at line <a class="el" href="_ref_backend_8cpp_source.html#l00082">82</a> of file <a class="el" href="_ref_backend_8cpp_source.html">RefBackend.cpp</a>.</p>
451
452<p class="reference">References <a class="el" href="_ref_tensor_handle_factory_8cpp_source.html#l00016">RefTensorHandleFactory::GetIdStatic()</a>.</p>
453
454<p class="reference">Referenced by <a class="el" href="_ref_backend_8hpp_source.html#l00019">RefBackend::GetId()</a>.</p>
455<div class="fragment"><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;{</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="keywordflow">return</span> std::vector&lt;ITensorHandleFactory::FactoryId&gt; { <a class="code" href="classarmnn_1_1_ref_tensor_handle_factory.html#acdecb5b442434112c2cc8fc48c0ea922">RefTensorHandleFactory::GetIdStatic</a>() };</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;}</div><div class="ttc" id="classarmnn_1_1_ref_tensor_handle_factory_html_acdecb5b442434112c2cc8fc48c0ea922"><div class="ttname"><a href="classarmnn_1_1_ref_tensor_handle_factory.html#acdecb5b442434112c2cc8fc48c0ea922">armnn::RefTensorHandleFactory::GetIdStatic</a></div><div class="ttdeci">static const FactoryId &amp; GetIdStatic()</div><div class="ttdef"><b>Definition:</b> <a href="_ref_tensor_handle_factory_8cpp_source.html#l00016">RefTensorHandleFactory.cpp:16</a></div></div>
456</div><!-- fragment -->
457</div>
458</div>
459<a id="a6c6c3d137a7792e264a89cc40ea94bb0"></a>
460<h2 class="memtitle"><span class="permalink"><a href="#a6c6c3d137a7792e264a89cc40ea94bb0">&#9670;&nbsp;</a></span>GetId()</h2>
461
462<div class="memitem">
463<div class="memproto">
464<table class="mlabels">
465 <tr>
466 <td class="mlabels-left">
467 <table class="memname">
468 <tr>
469 <td class="memname">const <a class="el" href="classarmnn_1_1_backend_id.html">BackendId</a>&amp; GetId </td>
470 <td>(</td>
471 <td class="paramname"></td><td>)</td>
472 <td> const</td>
473 </tr>
474 </table>
475 </td>
476 <td class="mlabels-right">
477<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
478 </tr>
479</table>
480</div><div class="memdoc">
481
482<p>Implements <a class="el" href="classarmnn_1_1_i_backend.html#aa9fc23b7155bd678232eeb351059b748">IBackend</a>.</p>
483
484<p class="definition">Definition at line <a class="el" href="_ref_backend_8hpp_source.html#l00019">19</a> of file <a class="el" href="_ref_backend_8hpp_source.html">RefBackend.hpp</a>.</p>
485
486<p class="reference">References <a class="el" href="_ref_backend_8cpp_source.html#l00046">RefBackend::CreateBackendContext()</a>, <a class="el" href="_ref_backend_8cpp_source.html#l00051">RefBackend::CreateBackendProfilingContext()</a>, <a class="el" href="_ref_backend_8cpp_source.html#l00057">RefBackend::CreateMemoryManager()</a>, <a class="el" href="_ref_backend_8cpp_source.html#l00030">RefBackend::CreateWorkloadFactory()</a>, <a class="el" href="_ref_backend_8cpp_source.html#l00082">RefBackend::GetHandleFactoryPreferences()</a>, <a class="el" href="_ref_backend_8cpp_source.html#l00024">RefBackend::GetIdStatic()</a>, <a class="el" href="_ref_backend_8cpp_source.html#l00067">RefBackend::GetLayerSupport()</a>, <a class="el" href="_ref_backend_8cpp_source.html#l00062">RefBackend::GetOptimizations()</a>, <a class="el" href="_ref_backend_8cpp_source.html#l00073">RefBackend::OptimizeSubgraphView()</a>, and <a class="el" href="_ref_backend_8cpp_source.html#l00087">RefBackend::RegisterTensorHandleFactories()</a>.</p>
487<div class="fragment"><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;{ <span class="keywordflow">return</span> <a class="code" href="classarmnn_1_1_ref_backend.html#a177af502214bbc8123fbb4a3c4f0a1b8">GetIdStatic</a>(); }</div><div class="ttc" id="classarmnn_1_1_ref_backend_html_a177af502214bbc8123fbb4a3c4f0a1b8"><div class="ttname"><a href="classarmnn_1_1_ref_backend.html#a177af502214bbc8123fbb4a3c4f0a1b8">armnn::RefBackend::GetIdStatic</a></div><div class="ttdeci">static const BackendId &amp; GetIdStatic()</div><div class="ttdef"><b>Definition:</b> <a href="_ref_backend_8cpp_source.html#l00024">RefBackend.cpp:24</a></div></div>
488</div><!-- fragment -->
489</div>
490</div>
491<a id="a177af502214bbc8123fbb4a3c4f0a1b8"></a>
492<h2 class="memtitle"><span class="permalink"><a href="#a177af502214bbc8123fbb4a3c4f0a1b8">&#9670;&nbsp;</a></span>GetIdStatic()</h2>
493
494<div class="memitem">
495<div class="memproto">
496<table class="mlabels">
497 <tr>
498 <td class="mlabels-left">
499 <table class="memname">
500 <tr>
501 <td class="memname">const <a class="el" href="classarmnn_1_1_backend_id.html">BackendId</a> &amp; GetIdStatic </td>
502 <td>(</td>
503 <td class="paramname"></td><td>)</td>
504 <td></td>
505 </tr>
506 </table>
507 </td>
508 <td class="mlabels-right">
509<span class="mlabels"><span class="mlabel">static</span></span> </td>
510 </tr>
511</table>
512</div><div class="memdoc">
513
514<p class="definition">Definition at line <a class="el" href="_ref_backend_8cpp_source.html#l00024">24</a> of file <a class="el" href="_ref_backend_8cpp_source.html">RefBackend.cpp</a>.</p>
515
516<p class="reference">References <a class="el" href="_ref_backend_id_8hpp_source.html#l00010">armnn::RefBackendId()</a>.</p>
517
518<p class="reference">Referenced by <a class="el" href="_ref_dynamic_backend_8cpp_source.html#l00012">GetBackendId()</a>, and <a class="el" href="_ref_backend_8hpp_source.html#l00019">RefBackend::GetId()</a>.</p>
519<div class="fragment"><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;{</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; <span class="keyword">static</span> <span class="keyword">const</span> BackendId s_Id{<a class="code" href="namespacearmnn.html#ae7d50846b2769f81521af24d063bc093">RefBackendId</a>()};</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; <span class="keywordflow">return</span> s_Id;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;}</div><div class="ttc" id="namespacearmnn_html_ae7d50846b2769f81521af24d063bc093"><div class="ttname"><a href="namespacearmnn.html#ae7d50846b2769f81521af24d063bc093">armnn::RefBackendId</a></div><div class="ttdeci">constexpr const char * RefBackendId()</div><div class="ttdef"><b>Definition:</b> <a href="_ref_backend_id_8hpp_source.html#l00010">RefBackendId.hpp:10</a></div></div>
520</div><!-- fragment -->
521</div>
522</div>
523<a id="a93d4285a3ea5e4e3b35578484d889daa"></a>
524<h2 class="memtitle"><span class="permalink"><a href="#a93d4285a3ea5e4e3b35578484d889daa">&#9670;&nbsp;</a></span>GetLayerSupport()</h2>
525
526<div class="memitem">
527<div class="memproto">
528<table class="mlabels">
529 <tr>
530 <td class="mlabels-left">
531 <table class="memname">
532 <tr>
533 <td class="memname"><a class="el" href="classarmnn_1_1_i_backend_internal.html#a11fa919c11fe46aad613b2e960fcfe90">IBackendInternal::ILayerSupportSharedPtr</a> GetLayerSupport </td>
534 <td>(</td>
535 <td class="paramname"></td><td>)</td>
536 <td> const</td>
537 </tr>
538 </table>
539 </td>
540 <td class="mlabels-right">
541<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
542 </tr>
543</table>
544</div><div class="memdoc">
545
546<p>Implements <a class="el" href="classarmnn_1_1_i_backend_internal.html#ad86597efa7c25997572c80dc29f3104a">IBackendInternal</a>.</p>
547
548<p class="definition">Definition at line <a class="el" href="_ref_backend_8cpp_source.html#l00067">67</a> of file <a class="el" href="_ref_backend_8cpp_source.html">RefBackend.cpp</a>.</p>
549
550<p class="reference">Referenced by <a class="el" href="_ref_backend_8hpp_source.html#l00019">RefBackend::GetId()</a>.</p>
551<div class="fragment"><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;{</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keyword">static</span> <a class="code" href="classarmnn_1_1_i_backend_internal.html#a11fa919c11fe46aad613b2e960fcfe90">ILayerSupportSharedPtr</a> layerSupport{<span class="keyword">new</span> RefLayerSupport};</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keywordflow">return</span> layerSupport;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;}</div><div class="ttc" id="classarmnn_1_1_i_backend_internal_html_a11fa919c11fe46aad613b2e960fcfe90"><div class="ttname"><a href="classarmnn_1_1_i_backend_internal.html#a11fa919c11fe46aad613b2e960fcfe90">armnn::IBackendInternal::ILayerSupportSharedPtr</a></div><div class="ttdeci">std::shared_ptr&lt; ILayerSupport &gt; ILayerSupportSharedPtr</div><div class="ttdef"><b>Definition:</b> <a href="include_2armnn_2backends_2_i_backend_internal_8hpp_source.html#l00087">IBackendInternal.hpp:87</a></div></div>
552</div><!-- fragment -->
553</div>
554</div>
555<a id="a87acb43c72272d9db21c547d4f4996cb"></a>
556<h2 class="memtitle"><span class="permalink"><a href="#a87acb43c72272d9db21c547d4f4996cb">&#9670;&nbsp;</a></span>GetOptimizations()</h2>
557
558<div class="memitem">
559<div class="memproto">
560<table class="mlabels">
561 <tr>
562 <td class="mlabels-left">
563 <table class="memname">
564 <tr>
565 <td class="memname"><a class="el" href="classarmnn_1_1_i_backend_internal.html#ad1794808004025d6e06c176507197b24">IBackendInternal::Optimizations</a> GetOptimizations </td>
566 <td>(</td>
567 <td class="paramname"></td><td>)</td>
568 <td> const</td>
569 </tr>
570 </table>
571 </td>
572 <td class="mlabels-right">
573<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
574 </tr>
575</table>
576</div><div class="memdoc">
577
578<p>Reimplemented from <a class="el" href="classarmnn_1_1_i_backend_internal.html#ad870e6e2951ea3693d9f89a7bf77d695">IBackendInternal</a>.</p>
579
580<p class="definition">Definition at line <a class="el" href="_ref_backend_8cpp_source.html#l00062">62</a> of file <a class="el" href="_ref_backend_8cpp_source.html">RefBackend.cpp</a>.</p>
581
582<p class="reference">Referenced by <a class="el" href="_ref_backend_8hpp_source.html#l00019">RefBackend::GetId()</a>.</p>
583<div class="fragment"><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;{</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classarmnn_1_1_i_backend_internal.html#ad1794808004025d6e06c176507197b24">Optimizations</a>{};</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;}</div><div class="ttc" id="classarmnn_1_1_i_backend_internal_html_ad1794808004025d6e06c176507197b24"><div class="ttname"><a href="classarmnn_1_1_i_backend_internal.html#ad1794808004025d6e06c176507197b24">armnn::IBackendInternal::Optimizations</a></div><div class="ttdeci">std::vector&lt; OptimizationPtr &gt; Optimizations</div><div class="ttdef"><b>Definition:</b> <a href="include_2armnn_2backends_2_i_backend_internal_8hpp_source.html#l00086">IBackendInternal.hpp:86</a></div></div>
584</div><!-- fragment -->
585</div>
586</div>
587<a id="a3c7ed3d210544740ecb3fa9c28d56c34"></a>
588<h2 class="memtitle"><span class="permalink"><a href="#a3c7ed3d210544740ecb3fa9c28d56c34">&#9670;&nbsp;</a></span>OptimizeSubgraphView()</h2>
589
590<div class="memitem">
591<div class="memproto">
592<table class="mlabels">
593 <tr>
594 <td class="mlabels-left">
595 <table class="memname">
596 <tr>
597 <td class="memname"><a class="el" href="classarmnn_1_1_optimization_views.html">OptimizationViews</a> OptimizeSubgraphView </td>
598 <td>(</td>
599 <td class="paramtype">const <a class="el" href="classarmnn_1_1_subgraph_view.html">SubgraphView</a> &amp;&#160;</td>
600 <td class="paramname"><em>subgraph</em></td><td>)</td>
601 <td> const</td>
602 </tr>
603 </table>
604 </td>
605 <td class="mlabels-right">
606<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
607 </tr>
608</table>
609</div><div class="memdoc">
610
611<p>Reimplemented from <a class="el" href="classarmnn_1_1_i_backend_internal.html#a674f56c735a3d6300463cefb642f808a">IBackendInternal</a>.</p>
612
613<p class="definition">Definition at line <a class="el" href="_ref_backend_8cpp_source.html#l00073">73</a> of file <a class="el" href="_ref_backend_8cpp_source.html">RefBackend.cpp</a>.</p>
614
615<p class="reference">References <a class="el" href="include_2armnn_2backends_2_optimization_views_8hpp_source.html#l00044">OptimizationViews::AddUntouchedSubgraph()</a>.</p>
616
617<p class="reference">Referenced by <a class="el" href="_ref_backend_8hpp_source.html#l00019">RefBackend::GetId()</a>.</p>
618<div class="fragment"><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;{</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; OptimizationViews optimizationViews;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; optimizationViews.AddUntouchedSubgraph(SubgraphView(subgraph));</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keywordflow">return</span> optimizationViews;</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;}</div></div><!-- fragment -->
619</div>
620</div>
621<a id="a583bc4404a9d27ee1f8c46239637125d"></a>
622<h2 class="memtitle"><span class="permalink"><a href="#a583bc4404a9d27ee1f8c46239637125d">&#9670;&nbsp;</a></span>RegisterTensorHandleFactories()</h2>
623
624<div class="memitem">
625<div class="memproto">
626<table class="mlabels">
627 <tr>
628 <td class="mlabels-left">
629 <table class="memname">
630 <tr>
631 <td class="memname">void RegisterTensorHandleFactories </td>
632 <td>(</td>
633 <td class="paramtype">class <a class="el" href="classarmnn_1_1_tensor_handle_factory_registry.html">TensorHandleFactoryRegistry</a> &amp;&#160;</td>
634 <td class="paramname"></td><td>)</td>
635 <td></td>
636 </tr>
637 </table>
638 </td>
639 <td class="mlabels-right">
640<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
641 </tr>
642</table>
643</div><div class="memdoc">
644<p>(<a class="el" href="classarmnn_1_1_optional.html">Optional</a>) Register TensorHandleFactories Either this method or <a class="el" href="classarmnn_1_1_ref_backend.html#a93fcb3bff141d8c77b53466a44b58eee">CreateMemoryManager()</a> and IWorkloadFactory::CreateTensor()/IWorkloadFactory::CreateSubtensor() methods must be implemented. </p>
645
646<p>Reimplemented from <a class="el" href="classarmnn_1_1_i_backend_internal.html#a517bc1a44d6d2d7a45c1847fba287135">IBackendInternal</a>.</p>
647
648<p class="definition">Definition at line <a class="el" href="_ref_backend_8cpp_source.html#l00087">87</a> of file <a class="el" href="_ref_backend_8cpp_source.html">RefBackend.cpp</a>.</p>
649
650<p class="reference">References <a class="el" href="_tensor_handle_factory_registry_8cpp_source.html#l00012">TensorHandleFactoryRegistry::RegisterFactory()</a>, and <a class="el" href="_tensor_handle_factory_registry_8cpp_source.html#l00034">TensorHandleFactoryRegistry::RegisterMemoryManager()</a>.</p>
651
652<p class="reference">Referenced by <a class="el" href="_ref_backend_8hpp_source.html#l00019">RefBackend::GetId()</a>.</p>
653<div class="fragment"><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;{</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <span class="keyword">auto</span> memoryManager = std::make_shared&lt;RefMemoryManager&gt;();</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; registry.RegisterMemoryManager(memoryManager);</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; registry.RegisterFactory(std::make_unique&lt;RefTensorHandleFactory&gt;(memoryManager));</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;}</div></div><!-- fragment -->
654</div>
655</div>
656<hr/>The documentation for this class was generated from the following files:<ul>
657<li>src/backends/reference/<a class="el" href="_ref_backend_8hpp_source.html">RefBackend.hpp</a></li>
658<li>src/backends/reference/<a class="el" href="_ref_backend_8cpp_source.html">RefBackend.cpp</a></li>
659</ul>
660</div><!-- contents -->
661</div><!-- doc-content -->
662<!-- start footer part -->
663<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
664 <ul>
665 <li class="navelem"><a class="el" href="namespacearmnn.html">armnn</a></li><li class="navelem"><a class="el" href="classarmnn_1_1_ref_backend.html">RefBackend</a></li>
666 <li class="footer">Generated on Fri Mar 13 2020 16:07:04 for ArmNN by
667 <a href="http://www.doxygen.org/index.html">
668 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
669 </ul>
670</div>
671</body>
672</html>