blob: 67112886a9e7994c00af71d15a1be9592daf4e44 [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: ClBackend 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_cl_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_cl_backend-members.html">List of all members</a> </div>
87 <div class="headertitle">
88<div class="title">ClBackend Class Reference</div> </div>
89</div><!--header-->
90<div class="contents">
91
92<p><code>#include &lt;<a class="el" href="_cl_backend_8hpp_source.html">ClBackend.hpp</a>&gt;</code></p>
93<div class="dynheader">
94Inheritance diagram for ClBackend:</div>
95<div class="dyncontent">
96 <div class="center">
97 <img src="classarmnn_1_1_cl_backend.png" usemap="#ClBackend_map" alt=""/>
98 <map id="ClBackend_map" name="ClBackend_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:a8070dd32107b20fc94ef55710c0e2f04"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_cl_backend.html#a8070dd32107b20fc94ef55710c0e2f04">ClBackend</a> ()=default</td></tr>
107<tr class="separator:a8070dd32107b20fc94ef55710c0e2f04"><td class="memSeparator" colspan="2">&#160;</td></tr>
108<tr class="memitem:a2d10800539d28eead01057c1cc75815d"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_cl_backend.html#a2d10800539d28eead01057c1cc75815d">~ClBackend</a> ()=default</td></tr>
109<tr class="separator:a2d10800539d28eead01057c1cc75815d"><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_cl_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_cl_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_cl_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:aa2d432e503780e146c08729323da519a"><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_cl_backend.html#aa2d432e503780e146c08729323da519a">CreateWorkloadFactory</a> (<a class="el" href="classarmnn_1_1_tensor_handle_factory_registry.html">TensorHandleFactoryRegistry</a> &amp;registry) const override</td></tr>
117<tr class="separator:aa2d432e503780e146c08729323da519a"><td class="memSeparator" colspan="2">&#160;</td></tr>
118<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_cl_backend.html#a63559c7f206c265f5fff5ffcc8a58e3e">GetHandleFactoryPreferences</a> () const override</td></tr>
119<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>
120<tr class="separator:a63559c7f206c265f5fff5ffcc8a58e3e"><td class="memSeparator" colspan="2">&#160;</td></tr>
121<tr class="memitem:a531177ce89c53c6af616175b0b05e5c0"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_cl_backend.html#a531177ce89c53c6af616175b0b05e5c0">RegisterTensorHandleFactories</a> (<a class="el" href="classarmnn_1_1_tensor_handle_factory_registry.html">TensorHandleFactoryRegistry</a> &amp;registry) override</td></tr>
122<tr class="separator:a531177ce89c53c6af616175b0b05e5c0"><td class="memSeparator" colspan="2">&#160;</td></tr>
123<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_cl_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>
124<tr class="separator:a801cf3170dc777aca3e6f926d1bd70a5"><td class="memSeparator" colspan="2">&#160;</td></tr>
125<tr class="memitem:a68c2ef244261cc9649799284774af132"><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_cl_backend.html#a68c2ef244261cc9649799284774af132">CreateBackendProfilingContext</a> (const <a class="el" href="structarmnn_1_1_i_runtime_1_1_creation_options.html">IRuntime::CreationOptions</a> &amp;, <a class="el" href="classarmnn_1_1_i_backend_internal.html#a34ab83489d1c5043b2b9b4a2ec13c481">IBackendProfilingPtr</a> &amp;backendProfiling) override</td></tr>
126<tr class="memdesc:a68c2ef244261cc9649799284774af132"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create context specifically used for profiling interaction from backends. <a href="#a68c2ef244261cc9649799284774af132">More...</a><br /></td></tr>
127<tr class="separator:a68c2ef244261cc9649799284774af132"><td class="memSeparator" colspan="2">&#160;</td></tr>
128<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_cl_backend.html#a87acb43c72272d9db21c547d4f4996cb">GetOptimizations</a> () const override</td></tr>
129<tr class="separator:a87acb43c72272d9db21c547d4f4996cb"><td class="memSeparator" colspan="2">&#160;</td></tr>
130<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_cl_backend.html#a93d4285a3ea5e4e3b35578484d889daa">GetLayerSupport</a> () const override</td></tr>
131<tr class="separator:a93d4285a3ea5e4e3b35578484d889daa"><td class="memSeparator" colspan="2">&#160;</td></tr>
132<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_cl_backend.html#a3c7ed3d210544740ecb3fa9c28d56c34">OptimizeSubgraphView</a> (const <a class="el" href="classarmnn_1_1_subgraph_view.html">SubgraphView</a> &amp;subgraph) const override</td></tr>
133<tr class="separator:a3c7ed3d210544740ecb3fa9c28d56c34"><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_cl_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="_cl_backend_8hpp_source.html#l00012">12</a> of file <a class="el" href="_cl_backend_8hpp_source.html">ClBackend.hpp</a>.</p>
196</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
197<a id="a8070dd32107b20fc94ef55710c0e2f04"></a>
198<h2 class="memtitle"><span class="permalink"><a href="#a8070dd32107b20fc94ef55710c0e2f04">&#9670;&nbsp;</a></span>ClBackend()</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_cl_backend.html">ClBackend</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="a2d10800539d28eead01057c1cc75815d"></a>
223<h2 class="memtitle"><span class="permalink"><a href="#a2d10800539d28eead01057c1cc75815d">&#9670;&nbsp;</a></span>~ClBackend()</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_cl_backend.html">ClBackend</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="_cl_backend_8cpp_source.html#l00072">72</a> of file <a class="el" href="_cl_backend_8cpp_source.html">ClBackend.cpp</a>.</p>
277
278<p class="reference">Referenced by <a class="el" href="_cl_backend_8hpp_source.html#l00019">ClBackend::GetId()</a>.</p>
279<div class="fragment"><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> <a class="code" href="classarmnn_1_1_i_backend_internal.html#ada6d56575c0fe53cf23c7ae4610c6367">IBackendContextPtr</a>{<span class="keyword">new</span> ClBackendContext{<a class="code" href="_file_only_profiling_decorator_tests_8cpp.html#a6560146509197f3e197d8d36f76c1347">options</a>}};</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</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 class="ttc" id="_file_only_profiling_decorator_tests_8cpp_html_a6560146509197f3e197d8d36f76c1347"><div class="ttname"><a href="_file_only_profiling_decorator_tests_8cpp.html#a6560146509197f3e197d8d36f76c1347">options</a></div><div class="ttdeci">armnn::Runtime::CreationOptions::ExternalProfilingOptions options</div><div class="ttdef"><b>Definition:</b> <a href="_file_only_profiling_decorator_tests_8cpp_source.html#l00045">FileOnlyProfilingDecoratorTests.cpp:45</a></div></div>
281</div><!-- fragment -->
282</div>
283</div>
284<a id="a68c2ef244261cc9649799284774af132"></a>
285<h2 class="memtitle"><span class="permalink"><a href="#a68c2ef244261cc9649799284774af132">&#9670;&nbsp;</a></span>CreateBackendProfilingContext()</h2>
286
287<div class="memitem">
288<div class="memproto">
289<table class="mlabels">
290 <tr>
291 <td class="mlabels-left">
292 <table class="memname">
293 <tr>
294 <td class="memname"><a class="el" href="classarmnn_1_1_i_backend_internal.html#aaece3a614f6691da8de8c7295cb1b07f">IBackendInternal::IBackendProfilingContextPtr</a> CreateBackendProfilingContext </td>
295 <td>(</td>
296 <td class="paramtype">const <a class="el" href="structarmnn_1_1_i_runtime_1_1_creation_options.html">IRuntime::CreationOptions</a> &amp;&#160;</td>
297 <td class="paramname"><em>creationOptions</em>, </td>
298 </tr>
299 <tr>
300 <td class="paramkey"></td>
301 <td></td>
302 <td class="paramtype"><a class="el" href="classarmnn_1_1_i_backend_internal.html#a34ab83489d1c5043b2b9b4a2ec13c481">IBackendProfilingPtr</a> &amp;&#160;</td>
303 <td class="paramname"><em>backendProfiling</em>&#160;</td>
304 </tr>
305 <tr>
306 <td></td>
307 <td>)</td>
308 <td></td><td></td>
309 </tr>
310 </table>
311 </td>
312 <td class="mlabels-right">
313<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
314 </tr>
315</table>
316</div><div class="memdoc">
317
318<p>Create context specifically used for profiling interaction from backends. </p>
319
320<p>Reimplemented from <a class="el" href="classarmnn_1_1_i_backend_internal.html#a6c5064ef6323af5c547674d01b15d7ab">IBackendInternal</a>.</p>
321
322<p class="definition">Definition at line <a class="el" href="_cl_backend_8cpp_source.html#l00077">77</a> of file <a class="el" href="_cl_backend_8cpp_source.html">ClBackend.cpp</a>.</p>
323
324<p class="reference">Referenced by <a class="el" href="_cl_backend_8hpp_source.html#l00019">ClBackend::GetId()</a>.</p>
325<div class="fragment"><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;{</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</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="l00081"></a><span class="lineno"> 81</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>
326</div><!-- fragment -->
327</div>
328</div>
329<a id="a93fcb3bff141d8c77b53466a44b58eee"></a>
330<h2 class="memtitle"><span class="permalink"><a href="#a93fcb3bff141d8c77b53466a44b58eee">&#9670;&nbsp;</a></span>CreateMemoryManager()</h2>
331
332<div class="memitem">
333<div class="memproto">
334<table class="mlabels">
335 <tr>
336 <td class="mlabels-left">
337 <table class="memname">
338 <tr>
339 <td class="memname"><a class="el" href="classarmnn_1_1_i_backend_internal.html#a12bff6d51d63dac1375c89bc8415dc46">IBackendInternal::IMemoryManagerUniquePtr</a> CreateMemoryManager </td>
340 <td>(</td>
341 <td class="paramname"></td><td>)</td>
342 <td> const</td>
343 </tr>
344 </table>
345 </td>
346 <td class="mlabels-right">
347<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
348 </tr>
349</table>
350</div><div class="memdoc">
351
352<p>Reimplemented from <a class="el" href="classarmnn_1_1_i_backend_internal.html#a0e8cb8533d1d0b2cb93f926dac11dd16">IBackendInternal</a>.</p>
353
354<p class="definition">Definition at line <a class="el" href="_cl_backend_8cpp_source.html#l00035">35</a> of file <a class="el" href="_cl_backend_8cpp_source.html">ClBackend.cpp</a>.</p>
355
356<p class="reference">Referenced by <a class="el" href="_cl_backend_8hpp_source.html#l00019">ClBackend::GetId()</a>.</p>
357<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; <span class="keywordflow">return</span> std::make_unique&lt;ClMemoryManager&gt;(std::make_unique&lt;arm_compute::CLBufferAllocator&gt;());</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;}</div></div><!-- fragment -->
358</div>
359</div>
360<a id="a8e19e275c8162e34e6d8d10a9245dbc9"></a>
361<h2 class="memtitle"><span class="permalink"><a href="#a8e19e275c8162e34e6d8d10a9245dbc9">&#9670;&nbsp;</a></span>CreateWorkloadFactory() <span class="overload">[1/2]</span></h2>
362
363<div class="memitem">
364<div class="memproto">
365<table class="mlabels">
366 <tr>
367 <td class="mlabels-left">
368 <table class="memname">
369 <tr>
370 <td class="memname"><a class="el" href="classarmnn_1_1_i_backend_internal.html#a72ca1cf423bda4b0a9ffb789627126de">IBackendInternal::IWorkloadFactoryPtr</a> CreateWorkloadFactory </td>
371 <td>(</td>
372 <td class="paramtype">const <a class="el" href="classarmnn_1_1_i_backend_internal.html#a693b40e6b94e958836aeb0410ca186bd">IBackendInternal::IMemoryManagerSharedPtr</a> &amp;&#160;</td>
373 <td class="paramname"><em>memoryManager</em> = <code>nullptr</code></td><td>)</td>
374 <td> const</td>
375 </tr>
376 </table>
377 </td>
378 <td class="mlabels-right">
379<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
380 </tr>
381</table>
382</div><div class="memdoc">
383
384<p>Implements <a class="el" href="classarmnn_1_1_i_backend_internal.html#afd5a5e90515b31c0174f76ec8897e9b1">IBackendInternal</a>.</p>
385
386<p class="definition">Definition at line <a class="el" href="_cl_backend_8cpp_source.html#l00040">40</a> of file <a class="el" href="_cl_backend_8cpp_source.html">ClBackend.cpp</a>.</p>
387
388<p class="reference">Referenced by <a class="el" href="_cl_backend_8hpp_source.html#l00019">ClBackend::GetId()</a>.</p>
389<div class="fragment"><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;ClWorkloadFactory&gt;(</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; boost::polymorphic_pointer_downcast&lt;ClMemoryManager&gt;(memoryManager));</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;}</div></div><!-- fragment -->
390</div>
391</div>
392<a id="aa2d432e503780e146c08729323da519a"></a>
393<h2 class="memtitle"><span class="permalink"><a href="#aa2d432e503780e146c08729323da519a">&#9670;&nbsp;</a></span>CreateWorkloadFactory() <span class="overload">[2/2]</span></h2>
394
395<div class="memitem">
396<div class="memproto">
397<table class="mlabels">
398 <tr>
399 <td class="mlabels-left">
400 <table class="memname">
401 <tr>
402 <td class="memname"><a class="el" href="classarmnn_1_1_i_backend_internal.html#a72ca1cf423bda4b0a9ffb789627126de">IBackendInternal::IWorkloadFactoryPtr</a> CreateWorkloadFactory </td>
403 <td>(</td>
404 <td class="paramtype"><a class="el" href="classarmnn_1_1_tensor_handle_factory_registry.html">TensorHandleFactoryRegistry</a> &amp;&#160;</td>
405 <td class="paramname"><em>registry</em></td><td>)</td>
406 <td> const</td>
407 </tr>
408 </table>
409 </td>
410 <td class="mlabels-right">
411<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
412 </tr>
413</table>
414</div><div class="memdoc">
415
416<p>Reimplemented from <a class="el" href="classarmnn_1_1_i_backend_internal.html#a41c5c170ef6708c1efc683d900f624ff">IBackendInternal</a>.</p>
417
418<p class="definition">Definition at line <a class="el" href="_cl_backend_8cpp_source.html#l00047">47</a> of file <a class="el" href="_cl_backend_8cpp_source.html">ClBackend.cpp</a>.</p>
419
420<p class="reference">References <a class="el" href="_tensor_handle_factory_registry_8cpp_source.html#l00034">TensorHandleFactoryRegistry::RegisterMemoryManager()</a>.</p>
421<div class="fragment"><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;{</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keyword">auto</span> memoryManager = std::make_shared&lt;ClMemoryManager&gt;(std::make_unique&lt;arm_compute::CLBufferAllocator&gt;());</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; registry.RegisterMemoryManager(memoryManager);</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keywordflow">return</span> std::make_unique&lt;ClWorkloadFactory&gt;(</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; boost::polymorphic_pointer_downcast&lt;ClMemoryManager&gt;(memoryManager));</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;}</div></div><!-- fragment -->
422</div>
423</div>
424<a id="a63559c7f206c265f5fff5ffcc8a58e3e"></a>
425<h2 class="memtitle"><span class="permalink"><a href="#a63559c7f206c265f5fff5ffcc8a58e3e">&#9670;&nbsp;</a></span>GetHandleFactoryPreferences()</h2>
426
427<div class="memitem">
428<div class="memproto">
429<table class="mlabels">
430 <tr>
431 <td class="mlabels-left">
432 <table class="memname">
433 <tr>
434 <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>
435 <td>(</td>
436 <td class="paramname"></td><td>)</td>
437 <td> const</td>
438 </tr>
439 </table>
440 </td>
441 <td class="mlabels-right">
442<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
443 </tr>
444</table>
445</div><div class="memdoc">
446
447<p>(<a class="el" href="classarmnn_1_1_optional.html">Optional</a>) Returns a vector of supported TensorHandleFactory ids in preference order. </p>
448
449<p>Reimplemented from <a class="el" href="classarmnn_1_1_i_backend_internal.html#ac5d107c5672f446603b6e6b92bce6244">IBackendInternal</a>.</p>
450
451<p class="definition">Definition at line <a class="el" href="_cl_backend_8cpp_source.html#l00058">58</a> of file <a class="el" href="_cl_backend_8cpp_source.html">ClBackend.cpp</a>.</p>
452
453<p class="reference">References <a class="el" href="_cl_tensor_handle_factory_8cpp_source.html#l00082">ClTensorHandleFactory::GetIdStatic()</a>.</p>
454
455<p class="reference">Referenced by <a class="el" href="_cl_backend_8hpp_source.html#l00019">ClBackend::GetId()</a>.</p>
456<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; <span class="keywordflow">return</span> std::vector&lt;ITensorHandleFactory::FactoryId&gt; {<a class="code" href="classarmnn_1_1_cl_tensor_handle_factory.html#acdecb5b442434112c2cc8fc48c0ea922">ClTensorHandleFactory::GetIdStatic</a>()};</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;}</div><div class="ttc" id="classarmnn_1_1_cl_tensor_handle_factory_html_acdecb5b442434112c2cc8fc48c0ea922"><div class="ttname"><a href="classarmnn_1_1_cl_tensor_handle_factory.html#acdecb5b442434112c2cc8fc48c0ea922">armnn::ClTensorHandleFactory::GetIdStatic</a></div><div class="ttdeci">static const FactoryId &amp; GetIdStatic()</div><div class="ttdef"><b>Definition:</b> <a href="_cl_tensor_handle_factory_8cpp_source.html#l00082">ClTensorHandleFactory.cpp:82</a></div></div>
457</div><!-- fragment -->
458</div>
459</div>
460<a id="a6c6c3d137a7792e264a89cc40ea94bb0"></a>
461<h2 class="memtitle"><span class="permalink"><a href="#a6c6c3d137a7792e264a89cc40ea94bb0">&#9670;&nbsp;</a></span>GetId()</h2>
462
463<div class="memitem">
464<div class="memproto">
465<table class="mlabels">
466 <tr>
467 <td class="mlabels-left">
468 <table class="memname">
469 <tr>
470 <td class="memname">const <a class="el" href="classarmnn_1_1_backend_id.html">BackendId</a>&amp; GetId </td>
471 <td>(</td>
472 <td class="paramname"></td><td>)</td>
473 <td> const</td>
474 </tr>
475 </table>
476 </td>
477 <td class="mlabels-right">
478<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
479 </tr>
480</table>
481</div><div class="memdoc">
482
483<p>Implements <a class="el" href="classarmnn_1_1_i_backend.html#aa9fc23b7155bd678232eeb351059b748">IBackend</a>.</p>
484
485<p class="definition">Definition at line <a class="el" href="_cl_backend_8hpp_source.html#l00019">19</a> of file <a class="el" href="_cl_backend_8hpp_source.html">ClBackend.hpp</a>.</p>
486
487<p class="reference">References <a class="el" href="_cl_backend_8cpp_source.html#l00072">ClBackend::CreateBackendContext()</a>, <a class="el" href="_cl_backend_8cpp_source.html#l00077">ClBackend::CreateBackendProfilingContext()</a>, <a class="el" href="_cl_backend_8cpp_source.html#l00035">ClBackend::CreateMemoryManager()</a>, <a class="el" href="_cl_backend_8cpp_source.html#l00040">ClBackend::CreateWorkloadFactory()</a>, <a class="el" href="_cl_backend_8cpp_source.html#l00058">ClBackend::GetHandleFactoryPreferences()</a>, <a class="el" href="_cl_backend_8cpp_source.html#l00029">ClBackend::GetIdStatic()</a>, <a class="el" href="_cl_backend_8cpp_source.html#l00088">ClBackend::GetLayerSupport()</a>, <a class="el" href="_cl_backend_8cpp_source.html#l00083">ClBackend::GetOptimizations()</a>, <a class="el" href="_cl_backend_8cpp_source.html#l00094">ClBackend::OptimizeSubgraphView()</a>, and <a class="el" href="_cl_backend_8cpp_source.html#l00063">ClBackend::RegisterTensorHandleFactories()</a>.</p>
488<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_cl_backend.html#a177af502214bbc8123fbb4a3c4f0a1b8">GetIdStatic</a>(); }</div><div class="ttc" id="classarmnn_1_1_cl_backend_html_a177af502214bbc8123fbb4a3c4f0a1b8"><div class="ttname"><a href="classarmnn_1_1_cl_backend.html#a177af502214bbc8123fbb4a3c4f0a1b8">armnn::ClBackend::GetIdStatic</a></div><div class="ttdeci">static const BackendId &amp; GetIdStatic()</div><div class="ttdef"><b>Definition:</b> <a href="_cl_backend_8cpp_source.html#l00029">ClBackend.cpp:29</a></div></div>
489</div><!-- fragment -->
490</div>
491</div>
492<a id="a177af502214bbc8123fbb4a3c4f0a1b8"></a>
493<h2 class="memtitle"><span class="permalink"><a href="#a177af502214bbc8123fbb4a3c4f0a1b8">&#9670;&nbsp;</a></span>GetIdStatic()</h2>
494
495<div class="memitem">
496<div class="memproto">
497<table class="mlabels">
498 <tr>
499 <td class="mlabels-left">
500 <table class="memname">
501 <tr>
502 <td class="memname">const <a class="el" href="classarmnn_1_1_backend_id.html">BackendId</a> &amp; GetIdStatic </td>
503 <td>(</td>
504 <td class="paramname"></td><td>)</td>
505 <td></td>
506 </tr>
507 </table>
508 </td>
509 <td class="mlabels-right">
510<span class="mlabels"><span class="mlabel">static</span></span> </td>
511 </tr>
512</table>
513</div><div class="memdoc">
514
515<p class="definition">Definition at line <a class="el" href="_cl_backend_8cpp_source.html#l00029">29</a> of file <a class="el" href="_cl_backend_8cpp_source.html">ClBackend.cpp</a>.</p>
516
517<p class="reference">References <a class="el" href="_cl_backend_id_8hpp_source.html#l00010">armnn::ClBackendId()</a>.</p>
518
519<p class="reference">Referenced by <a class="el" href="_cl_backend_8hpp_source.html#l00019">ClBackend::GetId()</a>.</p>
520<div class="fragment"><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">static</span> <span class="keyword">const</span> BackendId s_Id{<a class="code" href="namespacearmnn.html#adfe10e7086e3e3b98927cf84aee03dd0">ClBackendId</a>()};</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; <span class="keywordflow">return</span> s_Id;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;}</div><div class="ttc" id="namespacearmnn_html_adfe10e7086e3e3b98927cf84aee03dd0"><div class="ttname"><a href="namespacearmnn.html#adfe10e7086e3e3b98927cf84aee03dd0">armnn::ClBackendId</a></div><div class="ttdeci">constexpr const char * ClBackendId()</div><div class="ttdef"><b>Definition:</b> <a href="_cl_backend_id_8hpp_source.html#l00010">ClBackendId.hpp:10</a></div></div>
521</div><!-- fragment -->
522</div>
523</div>
524<a id="a93d4285a3ea5e4e3b35578484d889daa"></a>
525<h2 class="memtitle"><span class="permalink"><a href="#a93d4285a3ea5e4e3b35578484d889daa">&#9670;&nbsp;</a></span>GetLayerSupport()</h2>
526
527<div class="memitem">
528<div class="memproto">
529<table class="mlabels">
530 <tr>
531 <td class="mlabels-left">
532 <table class="memname">
533 <tr>
534 <td class="memname"><a class="el" href="classarmnn_1_1_i_backend_internal.html#a11fa919c11fe46aad613b2e960fcfe90">IBackendInternal::ILayerSupportSharedPtr</a> GetLayerSupport </td>
535 <td>(</td>
536 <td class="paramname"></td><td>)</td>
537 <td> const</td>
538 </tr>
539 </table>
540 </td>
541 <td class="mlabels-right">
542<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
543 </tr>
544</table>
545</div><div class="memdoc">
546
547<p>Implements <a class="el" href="classarmnn_1_1_i_backend_internal.html#ad86597efa7c25997572c80dc29f3104a">IBackendInternal</a>.</p>
548
549<p class="definition">Definition at line <a class="el" href="_cl_backend_8cpp_source.html#l00088">88</a> of file <a class="el" href="_cl_backend_8cpp_source.html">ClBackend.cpp</a>.</p>
550
551<p class="reference">Referenced by <a class="el" href="_cl_backend_8hpp_source.html#l00019">ClBackend::GetId()</a>.</p>
552<div class="fragment"><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;{</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</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> ClLayerSupport};</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="keywordflow">return</span> layerSupport;</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</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>
553</div><!-- fragment -->
554</div>
555</div>
556<a id="a87acb43c72272d9db21c547d4f4996cb"></a>
557<h2 class="memtitle"><span class="permalink"><a href="#a87acb43c72272d9db21c547d4f4996cb">&#9670;&nbsp;</a></span>GetOptimizations()</h2>
558
559<div class="memitem">
560<div class="memproto">
561<table class="mlabels">
562 <tr>
563 <td class="mlabels-left">
564 <table class="memname">
565 <tr>
566 <td class="memname"><a class="el" href="classarmnn_1_1_i_backend_internal.html#ad1794808004025d6e06c176507197b24">IBackendInternal::Optimizations</a> GetOptimizations </td>
567 <td>(</td>
568 <td class="paramname"></td><td>)</td>
569 <td> const</td>
570 </tr>
571 </table>
572 </td>
573 <td class="mlabels-right">
574<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
575 </tr>
576</table>
577</div><div class="memdoc">
578
579<p>Reimplemented from <a class="el" href="classarmnn_1_1_i_backend_internal.html#ad870e6e2951ea3693d9f89a7bf77d695">IBackendInternal</a>.</p>
580
581<p class="definition">Definition at line <a class="el" href="_cl_backend_8cpp_source.html#l00083">83</a> of file <a class="el" href="_cl_backend_8cpp_source.html">ClBackend.cpp</a>.</p>
582
583<p class="reference">Referenced by <a class="el" href="_cl_backend_8hpp_source.html#l00019">ClBackend::GetId()</a>.</p>
584<div class="fragment"><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;{</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</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="l00086"></a><span class="lineno"> 86</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>
585</div><!-- fragment -->
586</div>
587</div>
588<a id="a3c7ed3d210544740ecb3fa9c28d56c34"></a>
589<h2 class="memtitle"><span class="permalink"><a href="#a3c7ed3d210544740ecb3fa9c28d56c34">&#9670;&nbsp;</a></span>OptimizeSubgraphView()</h2>
590
591<div class="memitem">
592<div class="memproto">
593<table class="mlabels">
594 <tr>
595 <td class="mlabels-left">
596 <table class="memname">
597 <tr>
598 <td class="memname"><a class="el" href="classarmnn_1_1_optimization_views.html">OptimizationViews</a> OptimizeSubgraphView </td>
599 <td>(</td>
600 <td class="paramtype">const <a class="el" href="classarmnn_1_1_subgraph_view.html">SubgraphView</a> &amp;&#160;</td>
601 <td class="paramname"><em>subgraph</em></td><td>)</td>
602 <td> const</td>
603 </tr>
604 </table>
605 </td>
606 <td class="mlabels-right">
607<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
608 </tr>
609</table>
610</div><div class="memdoc">
611
612<p>Reimplemented from <a class="el" href="classarmnn_1_1_i_backend_internal.html#a674f56c735a3d6300463cefb642f808a">IBackendInternal</a>.</p>
613
614<p class="definition">Definition at line <a class="el" href="_cl_backend_8cpp_source.html#l00094">94</a> of file <a class="el" href="_cl_backend_8cpp_source.html">ClBackend.cpp</a>.</p>
615
616<p class="reference">References <a class="el" href="include_2armnn_2backends_2_optimization_views_8hpp_source.html#l00044">OptimizationViews::AddUntouchedSubgraph()</a>.</p>
617
618<p class="reference">Referenced by <a class="el" href="_cl_backend_8hpp_source.html#l00019">ClBackend::GetId()</a>.</p>
619<div class="fragment"><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;{</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; OptimizationViews optimizationViews;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; optimizationViews.AddUntouchedSubgraph(SubgraphView(subgraph));</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <span class="keywordflow">return</span> optimizationViews;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;}</div></div><!-- fragment -->
620</div>
621</div>
622<a id="a531177ce89c53c6af616175b0b05e5c0"></a>
623<h2 class="memtitle"><span class="permalink"><a href="#a531177ce89c53c6af616175b0b05e5c0">&#9670;&nbsp;</a></span>RegisterTensorHandleFactories()</h2>
624
625<div class="memitem">
626<div class="memproto">
627<table class="mlabels">
628 <tr>
629 <td class="mlabels-left">
630 <table class="memname">
631 <tr>
632 <td class="memname">void RegisterTensorHandleFactories </td>
633 <td>(</td>
634 <td class="paramtype"><a class="el" href="classarmnn_1_1_tensor_handle_factory_registry.html">TensorHandleFactoryRegistry</a> &amp;&#160;</td>
635 <td class="paramname"></td><td>)</td>
636 <td></td>
637 </tr>
638 </table>
639 </td>
640 <td class="mlabels-right">
641<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
642 </tr>
643</table>
644</div><div class="memdoc">
645<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_cl_backend.html#a93fcb3bff141d8c77b53466a44b58eee">CreateMemoryManager()</a> and IWorkloadFactory::CreateTensor()/IWorkloadFactory::CreateSubtensor() methods must be implemented. </p>
646
647<p>Reimplemented from <a class="el" href="classarmnn_1_1_i_backend_internal.html#a517bc1a44d6d2d7a45c1847fba287135">IBackendInternal</a>.</p>
648
649<p class="definition">Definition at line <a class="el" href="_cl_backend_8cpp_source.html#l00063">63</a> of file <a class="el" href="_cl_backend_8cpp_source.html">ClBackend.cpp</a>.</p>
650
651<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>
652
653<p class="reference">Referenced by <a class="el" href="_cl_backend_8hpp_source.html#l00019">ClBackend::GetId()</a>.</p>
654<div class="fragment"><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">auto</span> mgr = std::make_shared&lt;ClMemoryManager&gt;(std::make_unique&lt;arm_compute::CLBufferAllocator&gt;());</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; registry.RegisterMemoryManager(mgr);</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; registry.RegisterFactory(std::make_unique&lt;ClTensorHandleFactory&gt;(mgr));</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;}</div></div><!-- fragment -->
655</div>
656</div>
657<hr/>The documentation for this class was generated from the following files:<ul>
658<li>src/backends/cl/<a class="el" href="_cl_backend_8hpp_source.html">ClBackend.hpp</a></li>
659<li>src/backends/cl/<a class="el" href="_cl_backend_8cpp_source.html">ClBackend.cpp</a></li>
660</ul>
661</div><!-- contents -->
662</div><!-- doc-content -->
663<!-- start footer part -->
664<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
665 <ul>
666 <li class="navelem"><a class="el" href="namespacearmnn.html">armnn</a></li><li class="navelem"><a class="el" href="classarmnn_1_1_cl_backend.html">ClBackend</a></li>
667 <li class="footer">Generated on Fri Mar 13 2020 16:07:02 for ArmNN by
668 <a href="http://www.doxygen.org/index.html">
669 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
670 </ul>
671</div>
672</body>
673</html>