blob: 409789a71bc3e73b16c310ab569e4727d525feb8 [file] [log] [blame]
Nikhil Raj03c7ff32023-08-22 12:00:04 +01001<!-- HTML header for doxygen 1.8.17-->
2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3<html xmlns="http://www.w3.org/1999/xhtml">
4<head>
5<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
6<meta http-equiv="X-UA-Compatible" content="IE=9"/>
7<meta name="generator" content="Doxygen 1.8.17"/>
8<meta name="viewport" content="width=device-width, initial-scale=1"/>
9<title>Arm NN: TosaRefBackend Class Reference</title>
10<link href="tabs.css" rel="stylesheet" type="text/css"/>
11<script type="text/javascript" src="jquery.js"></script>
12<script type="text/javascript" src="dynsections.js"></script>
13<link href="navtree.css" rel="stylesheet" type="text/css"/>
14<script type="text/javascript" src="resize.js"></script>
15<script type="text/javascript" src="navtreedata.js"></script>
16<script type="text/javascript" src="navtree.js"></script>
17<link href="search/search.css" rel="stylesheet" type="text/css"/>
18<script type="text/javascript" src="search/searchdata.js"></script>
19<script type="text/javascript" src="search/search.js"></script>
20<script type="text/x-mathjax-config">
21 MathJax.Hub.Config({
22 extensions: ["tex2jax.js"],
23 jax: ["input/TeX","output/HTML-CSS"],
24});
25</script>
26<script type="text/javascript" async="async" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js"></script>
27<link href="doxygen.css" rel="stylesheet" type="text/css" />
28<link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
29</head>
30<body>
31<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
32<div id="titlearea">
33<table cellspacing="0" cellpadding="0">
34 <tbody>
35 <tr style="height: 56px;">
36 <img alt="ArmNN" src="Arm_NN_horizontal_blue.png" style="max-width: 15rem; margin-top: .5rem; margin-left 13px"/>
37 <td id="projectalign" style="padding-left: 0.9em;">
38 <div id="projectname">
Nikhil Raj1dc83fe2024-05-16 09:47:51 +010039 &#160;<span id="projectnumber">24.05</span>
Nikhil Raj03c7ff32023-08-22 12:00:04 +010040 </div>
41 </td>
42 </tr>
43 </tbody>
44</table>
45</div>
46<!-- end header part -->
47<!-- Generated by Doxygen 1.8.17 -->
48<script type="text/javascript">
49/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
50var searchBox = new SearchBox("searchBox", "search",false,'Search');
51/* @license-end */
52</script>
53<script type="text/javascript" src="menudata.js"></script>
54<script type="text/javascript" src="menu.js"></script>
55<script type="text/javascript">
56/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
57$(function() {
58 initMenu('',true,false,'search.php','Search');
59 $(document).ready(function() { init_search(); });
60});
61/* @license-end */</script>
62<div id="main-nav"></div>
63</div><!-- top -->
64<div id="side-nav" class="ui-resizable side-nav-resizable">
65 <div id="nav-tree">
66 <div id="nav-tree-contents">
67 <div id="nav-sync" class="sync"></div>
68 </div>
69 </div>
70 <div id="splitbar" style="-moz-user-select:none;"
71 class="ui-resizable-handle">
72 </div>
73</div>
74<script type="text/javascript">
75/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
76$(document).ready(function(){initNavTree('classarmnn_1_1_tosa_ref_backend.html',''); initResizable(); });
77/* @license-end */
78</script>
79<div id="doc-content">
80<!-- window showing the filter options -->
81<div id="MSearchSelectWindow"
82 onmouseover="return searchBox.OnSearchSelectShow()"
83 onmouseout="return searchBox.OnSearchSelectHide()"
84 onkeydown="return searchBox.OnSearchSelectKey(event)">
85</div>
86
87<!-- iframe showing the search results (closed by default) -->
88<div id="MSearchResultsWindow">
89<iframe src="javascript:void(0)" frameborder="0"
90 name="MSearchResults" id="MSearchResults">
91</iframe>
92</div>
93
94<div class="header">
95 <div class="summary">
96<a href="#pub-methods">Public Member Functions</a> &#124;
97<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
98<a href="classarmnn_1_1_tosa_ref_backend-members.html">List of all members</a> </div>
99 <div class="headertitle">
100<div class="title">TosaRefBackend Class Reference</div> </div>
101</div><!--header-->
102<div class="contents">
103
104<p><code>#include &lt;<a class="el" href="_tosa_ref_backend_8hpp_source.html">TosaRefBackend.hpp</a>&gt;</code></p>
105<div class="dynheader">
106Inheritance diagram for TosaRefBackend:</div>
107<div class="dyncontent">
108<div class="center"><iframe scrolling="no" frameborder="0" src="classarmnn_1_1_tosa_ref_backend__inherit__graph.svg" width="142" height="187"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
109</div>
110<center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div>
111<div class="dynheader">
112Collaboration diagram for TosaRefBackend:</div>
113<div class="dyncontent">
114<div class="center"><iframe scrolling="no" frameborder="0" src="classarmnn_1_1_tosa_ref_backend__coll__graph.svg" width="142" height="187"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
115</div>
116<center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div>
117<table class="memberdecls">
118<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
119Public Member Functions</h2></td></tr>
120<tr class="memitem:a60cc8b80574dc3f61804e581542ec1f8"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_tosa_ref_backend.html#a60cc8b80574dc3f61804e581542ec1f8">TosaRefBackend</a> ()=default</td></tr>
121<tr class="separator:a60cc8b80574dc3f61804e581542ec1f8"><td class="memSeparator" colspan="2">&#160;</td></tr>
122<tr class="memitem:a9cefd72bfcd12468a7c1efbf83ae1661"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_tosa_ref_backend.html#a9cefd72bfcd12468a7c1efbf83ae1661">~TosaRefBackend</a> ()=default</td></tr>
123<tr class="separator:a9cefd72bfcd12468a7c1efbf83ae1661"><td class="memSeparator" colspan="2">&#160;</td></tr>
124<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_tosa_ref_backend.html#a6c6c3d137a7792e264a89cc40ea94bb0">GetId</a> () const override</td></tr>
125<tr class="separator:a6c6c3d137a7792e264a89cc40ea94bb0"><td class="memSeparator" colspan="2">&#160;</td></tr>
126<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_tosa_ref_backend.html#a93fcb3bff141d8c77b53466a44b58eee">CreateMemoryManager</a> () const override</td></tr>
127<tr class="separator:a93fcb3bff141d8c77b53466a44b58eee"><td class="memSeparator" colspan="2">&#160;</td></tr>
128<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_tosa_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>
129<tr class="separator:a8e19e275c8162e34e6d8d10a9245dbc9"><td class="memSeparator" colspan="2">&#160;</td></tr>
130<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_tosa_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>
131<tr class="separator:afb0e4b4255c996c68fe87e3c13451a43"><td class="memSeparator" colspan="2">&#160;</td></tr>
132<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_tosa_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>
133<tr class="memdesc:a801cf3170dc777aca3e6f926d1bd70a5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create the runtime context of the backend. <a href="classarmnn_1_1_tosa_ref_backend.html#a801cf3170dc777aca3e6f926d1bd70a5">More...</a><br /></td></tr>
134<tr class="separator:a801cf3170dc777aca3e6f926d1bd70a5"><td class="memSeparator" colspan="2">&#160;</td></tr>
135<tr class="memitem:ac2480fbc4ae790e2e64f55d78b7f31a0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classarmnn_1_1_i_backend_internal.html#ae44a82b0e485e551a0f77150b1076e06">IBackendInternal::IBackendProfilingContextPtr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_tosa_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#a335964abd41c91f7e6ef5c65865a7b98">IBackendProfilingPtr</a> &amp;backendProfiling) override</td></tr>
136<tr class="memdesc:ac2480fbc4ae790e2e64f55d78b7f31a0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create context specifically used for profiling interaction from backends. <a href="classarmnn_1_1_tosa_ref_backend.html#ac2480fbc4ae790e2e64f55d78b7f31a0">More...</a><br /></td></tr>
137<tr class="separator:ac2480fbc4ae790e2e64f55d78b7f31a0"><td class="memSeparator" colspan="2">&#160;</td></tr>
138<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_tosa_ref_backend.html#a93d4285a3ea5e4e3b35578484d889daa">GetLayerSupport</a> () const override</td></tr>
139<tr class="separator:a93d4285a3ea5e4e3b35578484d889daa"><td class="memSeparator" colspan="2">&#160;</td></tr>
140<tr class="memitem:a339efc194a1738cd93fcdde4d948a5cd"><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_tosa_ref_backend.html#a339efc194a1738cd93fcdde4d948a5cd">OptimizeSubgraphView</a> (const <a class="el" href="classarmnn_1_1_subgraph_view.html">SubgraphView</a> &amp;subgraph, const <a class="el" href="namespacearmnn.html#a5b6893cda5b69359a4244c06054da18f">ModelOptions</a> &amp;modelOptions) const override</td></tr>
141<tr class="separator:a339efc194a1738cd93fcdde4d948a5cd"><td class="memSeparator" colspan="2">&#160;</td></tr>
142<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_tosa_ref_backend.html#a63559c7f206c265f5fff5ffcc8a58e3e">GetHandleFactoryPreferences</a> () const override</td></tr>
143<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="classarmnn_1_1_tosa_ref_backend.html#a63559c7f206c265f5fff5ffcc8a58e3e">More...</a><br /></td></tr>
144<tr class="separator:a63559c7f206c265f5fff5ffcc8a58e3e"><td class="memSeparator" colspan="2">&#160;</td></tr>
145<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_tosa_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>
146<tr class="memdesc:a583bc4404a9d27ee1f8c46239637125d"><td class="mdescLeft">&#160;</td><td class="mdescRight">(<a class="el" href="classarmnn_1_1_optional.html">Optional</a>) Register TensorHandleFactories Either this method or <a class="el" href="classarmnn_1_1_tosa_ref_backend.html#a93fcb3bff141d8c77b53466a44b58eee">CreateMemoryManager()</a> and IWorkloadFactory::CreateTensor() IWorkloadFactory::CreateSubtensor() methods must be implemented. <a href="classarmnn_1_1_tosa_ref_backend.html#a583bc4404a9d27ee1f8c46239637125d">More...</a><br /></td></tr>
147<tr class="separator:a583bc4404a9d27ee1f8c46239637125d"><td class="memSeparator" colspan="2">&#160;</td></tr>
148<tr class="memitem:afb75bad43612f5314622c4fa8a16e63d"><td class="memItemLeft" align="right" valign="top">std::unique_ptr&lt; <a class="el" href="classarmnn_1_1_i_custom_allocator.html">ICustomAllocator</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_tosa_ref_backend.html#afb75bad43612f5314622c4fa8a16e63d">GetDefaultAllocator</a> () const override</td></tr>
149<tr class="memdesc:afb75bad43612f5314622c4fa8a16e63d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the default memory allocator for the backend. <a href="classarmnn_1_1_tosa_ref_backend.html#afb75bad43612f5314622c4fa8a16e63d">More...</a><br /></td></tr>
150<tr class="separator:afb75bad43612f5314622c4fa8a16e63d"><td class="memSeparator" colspan="2">&#160;</td></tr>
151<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>
152<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>
153<tr class="memdesc:a8c507c220869f89aec2dc370ea6c5a0b inherit pub_methods_classarmnn_1_1_i_backend_internal"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allow backends created by the factory function to be destroyed through <a class="el" href="classarmnn_1_1_i_backend_internal.html">IBackendInternal</a>. <a href="classarmnn_1_1_i_backend_internal.html#a8c507c220869f89aec2dc370ea6c5a0b">More...</a><br /></td></tr>
154<tr class="separator:a8c507c220869f89aec2dc370ea6c5a0b inherit pub_methods_classarmnn_1_1_i_backend_internal"><td class="memSeparator" colspan="2">&#160;</td></tr>
155<tr class="memitem:a22973198ab5ac5624b4caa78100d2d25 inherit pub_methods_classarmnn_1_1_i_backend_internal"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classarmnn_1_1_i_backend_internal.html#a72ca1cf423bda4b0a9ffb789627126de">IWorkloadFactoryPtr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_i_backend_internal.html#a22973198ab5ac5624b4caa78100d2d25">CreateWorkloadFactory</a> (const <a class="el" href="classarmnn_1_1_i_backend_internal.html#a693b40e6b94e958836aeb0410ca186bd">IMemoryManagerSharedPtr</a> &amp;memoryManager, const <a class="el" href="namespacearmnn.html#a5b6893cda5b69359a4244c06054da18f">ModelOptions</a> &amp;modelOptions) const</td></tr>
156<tr class="separator:a22973198ab5ac5624b4caa78100d2d25 inherit pub_methods_classarmnn_1_1_i_backend_internal"><td class="memSeparator" colspan="2">&#160;</td></tr>
157<tr class="memitem:aebacbea86fddc46858f6329671ccf750 inherit pub_methods_classarmnn_1_1_i_backend_internal"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classarmnn_1_1_i_backend_internal.html#a72ca1cf423bda4b0a9ffb789627126de">IWorkloadFactoryPtr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_i_backend_internal.html#aebacbea86fddc46858f6329671ccf750">CreateWorkloadFactory</a> (class <a class="el" href="classarmnn_1_1_tensor_handle_factory_registry.html">TensorHandleFactoryRegistry</a> &amp;tensorHandleFactoryRegistry, const <a class="el" href="namespacearmnn.html#a5b6893cda5b69359a4244c06054da18f">ModelOptions</a> &amp;modelOptions) const</td></tr>
158<tr class="separator:aebacbea86fddc46858f6329671ccf750 inherit pub_methods_classarmnn_1_1_i_backend_internal"><td class="memSeparator" colspan="2">&#160;</td></tr>
159<tr class="memitem:a6abedf4465c7f6b634a207d228cdf284 inherit pub_methods_classarmnn_1_1_i_backend_internal"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classarmnn_1_1_i_backend_internal.html#a72ca1cf423bda4b0a9ffb789627126de">IWorkloadFactoryPtr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_i_backend_internal.html#a6abedf4465c7f6b634a207d228cdf284">CreateWorkloadFactory</a> (class <a class="el" href="classarmnn_1_1_tensor_handle_factory_registry.html">TensorHandleFactoryRegistry</a> &amp;tensorHandleFactoryRegistry, const <a class="el" href="namespacearmnn.html#a5b6893cda5b69359a4244c06054da18f">ModelOptions</a> &amp;modelOptions, <a class="el" href="namespacearmnn.html#a5b05f3b7208ec7cea3338e30057c0bac">MemorySourceFlags</a> inputFlags, <a class="el" href="namespacearmnn.html#a5b05f3b7208ec7cea3338e30057c0bac">MemorySourceFlags</a> outputFlags) const</td></tr>
160<tr class="separator:a6abedf4465c7f6b634a207d228cdf284 inherit pub_methods_classarmnn_1_1_i_backend_internal"><td class="memSeparator" colspan="2">&#160;</td></tr>
161<tr class="memitem:a41f38c8c2182463dec4f03769ea54f63 inherit pub_methods_classarmnn_1_1_i_backend_internal"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classarmnn_1_1_i_backend_internal.html#a4d0238968a7643dbb170547dd22bba54">IBackendSpecificModelContextPtr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_i_backend_internal.html#a41f38c8c2182463dec4f03769ea54f63">CreateBackendSpecificModelContext</a> (const <a class="el" href="namespacearmnn.html#a5b6893cda5b69359a4244c06054da18f">ModelOptions</a> &amp;modelOptions) const</td></tr>
162<tr class="separator:a41f38c8c2182463dec4f03769ea54f63 inherit pub_methods_classarmnn_1_1_i_backend_internal"><td class="memSeparator" colspan="2">&#160;</td></tr>
163<tr class="memitem:aa654fe558005ad90f2e9a2e1f175ebce inherit pub_methods_classarmnn_1_1_i_backend_internal"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classarmnn_1_1_i_backend_internal.html#a11fa919c11fe46aad613b2e960fcfe90">ILayerSupportSharedPtr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_i_backend_internal.html#aa654fe558005ad90f2e9a2e1f175ebce">GetLayerSupport</a> (const <a class="el" href="namespacearmnn.html#a5b6893cda5b69359a4244c06054da18f">ModelOptions</a> &amp;modelOptions) const</td></tr>
164<tr class="separator:aa654fe558005ad90f2e9a2e1f175ebce inherit pub_methods_classarmnn_1_1_i_backend_internal"><td class="memSeparator" colspan="2">&#160;</td></tr>
165<tr class="memitem:a674f56c735a3d6300463cefb642f808a inherit pub_methods_classarmnn_1_1_i_backend_internal"><td class="memItemLeft" align="right" valign="top">virtual <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_i_backend_internal.html#a674f56c735a3d6300463cefb642f808a">OptimizeSubgraphView</a> (const <a class="el" href="classarmnn_1_1_subgraph_view.html">SubgraphView</a> &amp;subgraph) const</td></tr>
166<tr class="separator:a674f56c735a3d6300463cefb642f808a inherit pub_methods_classarmnn_1_1_i_backend_internal"><td class="memSeparator" colspan="2">&#160;</td></tr>
167<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>
168<tr class="separator:af8f716b0eab6b9d63196d5a53d5fac81 inherit pub_methods_classarmnn_1_1_i_backend_internal"><td class="memSeparator" colspan="2">&#160;</td></tr>
169<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>
170<tr class="separator:a6ccbb386cc96a5336a8295a3c25d33dd inherit pub_methods_classarmnn_1_1_i_backend_internal"><td class="memSeparator" colspan="2">&#160;</td></tr>
171<tr class="memitem:a36b46ce669164b5188cb21796557d897 inherit pub_methods_classarmnn_1_1_i_backend_internal"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_i_backend_internal.html#a36b46ce669164b5188cb21796557d897">RegisterTensorHandleFactories</a> (class <a class="el" href="classarmnn_1_1_tensor_handle_factory_registry.html">TensorHandleFactoryRegistry</a> &amp;registry, <a class="el" href="namespacearmnn.html#a5b05f3b7208ec7cea3338e30057c0bac">MemorySourceFlags</a> inputFlags, <a class="el" href="namespacearmnn.html#a5b05f3b7208ec7cea3338e30057c0bac">MemorySourceFlags</a> outputFlags)</td></tr>
172<tr class="memdesc:a36b46ce669164b5188cb21796557d897 inherit pub_methods_classarmnn_1_1_i_backend_internal"><td class="mdescLeft">&#160;</td><td class="mdescRight">(<a class="el" href="classarmnn_1_1_optional.html">Optional</a>) Register TensorHandleFactories Either this method or <a class="el" href="classarmnn_1_1_i_backend_internal.html#a0fe4c12c8f1f0722d2a91f61c02a687a">CreateMemoryManager()</a> and IWorkloadFactory::CreateTensor() IWorkloadFactory::CreateSubtensor() methods must be implemented. <a href="classarmnn_1_1_i_backend_internal.html#a36b46ce669164b5188cb21796557d897">More...</a><br /></td></tr>
173<tr class="separator:a36b46ce669164b5188cb21796557d897 inherit pub_methods_classarmnn_1_1_i_backend_internal"><td class="memSeparator" colspan="2">&#160;</td></tr>
174<tr class="memitem:a057f6c5c3ab3248050ed548273c4beb9 inherit pub_methods_classarmnn_1_1_i_backend_internal"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespacearmnn.html#aa9c506b558b8aa33a228b15164f40dc3">BackendCapabilities</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_i_backend_internal.html#a057f6c5c3ab3248050ed548273c4beb9">GetCapabilities</a> () const</td></tr>
175<tr class="memdesc:a057f6c5c3ab3248050ed548273c4beb9 inherit pub_methods_classarmnn_1_1_i_backend_internal"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a BackendCapability if the backend lists the capability The BackendCapability must then be inspected to check whether or not that BackendCapability is supported Otherwise returns an <a class="el" href="structarmnn_1_1_empty_optional.html" title="EmptyOptional is used to initialize the Optional class in case we want to have default value for an O...">EmptyOptional</a> if the BackendCapability is unlisted. <a href="classarmnn_1_1_i_backend_internal.html#a057f6c5c3ab3248050ed548273c4beb9">More...</a><br /></td></tr>
176<tr class="separator:a057f6c5c3ab3248050ed548273c4beb9 inherit pub_methods_classarmnn_1_1_i_backend_internal"><td class="memSeparator" colspan="2">&#160;</td></tr>
177<tr class="memitem:a8a8eb1a5eb458445a2e5a7c7cd4424cb inherit pub_methods_classarmnn_1_1_i_backend_internal"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_i_backend_internal.html#a8a8eb1a5eb458445a2e5a7c7cd4424cb">UseCustomMemoryAllocator</a> (std::shared_ptr&lt; <a class="el" href="classarmnn_1_1_i_custom_allocator.html">ICustomAllocator</a> &gt; allocator, <a class="el" href="classarmnn_1_1_optional.html">armnn::Optional</a>&lt; std::string &amp; &gt; errMsg)</td></tr>
178<tr class="memdesc:a8a8eb1a5eb458445a2e5a7c7cd4424cb inherit pub_methods_classarmnn_1_1_i_backend_internal"><td class="mdescLeft">&#160;</td><td class="mdescRight">Signals the backend to use a custom memory allocator provided by the user. <a href="classarmnn_1_1_i_backend_internal.html#a8a8eb1a5eb458445a2e5a7c7cd4424cb">More...</a><br /></td></tr>
179<tr class="separator:a8a8eb1a5eb458445a2e5a7c7cd4424cb inherit pub_methods_classarmnn_1_1_i_backend_internal"><td class="memSeparator" colspan="2">&#160;</td></tr>
180<tr class="memitem:a87d128382876683170ffc3529aadabbf inherit pub_methods_classarmnn_1_1_i_backend_internal"><td class="memItemLeft" align="right" valign="top">virtual unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_i_backend_internal.html#a87d128382876683170ffc3529aadabbf">GetNumberOfCacheFiles</a> () const</td></tr>
181<tr class="memdesc:a87d128382876683170ffc3529aadabbf inherit pub_methods_classarmnn_1_1_i_backend_internal"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the number of files cached if backend supports caching. <a href="classarmnn_1_1_i_backend_internal.html#a87d128382876683170ffc3529aadabbf">More...</a><br /></td></tr>
182<tr class="separator:a87d128382876683170ffc3529aadabbf inherit pub_methods_classarmnn_1_1_i_backend_internal"><td class="memSeparator" colspan="2">&#160;</td></tr>
183<tr class="memitem:a86a4b2845b0da158907d657c7b147ab0 inherit pub_methods_classarmnn_1_1_i_backend_internal"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="structarmnn_1_1experimental_1_1_execution_data.html">ExecutionData</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_i_backend_internal.html#a86a4b2845b0da158907d657c7b147ab0">CreateExecutionData</a> (<a class="el" href="structarmnn_1_1experimental_1_1_working_mem_descriptor.html">WorkingMemDescriptor</a> &amp;workingMemDescriptor) const</td></tr>
184<tr class="memdesc:a86a4b2845b0da158907d657c7b147ab0 inherit pub_methods_classarmnn_1_1_i_backend_internal"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns ExecutionData for the backend. <a href="classarmnn_1_1_i_backend_internal.html#a86a4b2845b0da158907d657c7b147ab0">More...</a><br /></td></tr>
185<tr class="separator:a86a4b2845b0da158907d657c7b147ab0 inherit pub_methods_classarmnn_1_1_i_backend_internal"><td class="memSeparator" colspan="2">&#160;</td></tr>
186<tr class="memitem:adf96527a67532246f07ce44266e95e79 inherit pub_methods_classarmnn_1_1_i_backend_internal"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_i_backend_internal.html#adf96527a67532246f07ce44266e95e79">UpdateExecutionData</a> (<a class="el" href="structarmnn_1_1experimental_1_1_execution_data.html">ExecutionData</a> &amp;executionData, <a class="el" href="structarmnn_1_1experimental_1_1_working_mem_descriptor.html">WorkingMemDescriptor</a> &amp;workingMemDescriptor) const</td></tr>
187<tr class="memdesc:adf96527a67532246f07ce44266e95e79 inherit pub_methods_classarmnn_1_1_i_backend_internal"><td class="mdescLeft">&#160;</td><td class="mdescRight">Update the ExecutionData for a layer. <a href="classarmnn_1_1_i_backend_internal.html#adf96527a67532246f07ce44266e95e79">More...</a><br /></td></tr>
188<tr class="separator:adf96527a67532246f07ce44266e95e79 inherit pub_methods_classarmnn_1_1_i_backend_internal"><td class="memSeparator" colspan="2">&#160;</td></tr>
189</table><table class="memberdecls">
190<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
191Static Public Member Functions</h2></td></tr>
192<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_tosa_ref_backend.html#a177af502214bbc8123fbb4a3c4f0a1b8">GetIdStatic</a> ()</td></tr>
193<tr class="separator:a177af502214bbc8123fbb4a3c4f0a1b8"><td class="memSeparator" colspan="2">&#160;</td></tr>
194<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>
195<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>
196<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>
197<tr class="separator:a878b8f50d8a2f92ed624803e9f6968ae inherit pub_static_methods_classarmnn_1_1_i_backend_internal"><td class="memSeparator" colspan="2">&#160;</td></tr>
198</table><table class="memberdecls">
199<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
200Additional Inherited Members</h2></td></tr>
201<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>
202<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>
203<tr class="separator:a72ca1cf423bda4b0a9ffb789627126de inherit pub_types_classarmnn_1_1_i_backend_internal"><td class="memSeparator" colspan="2">&#160;</td></tr>
204<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>
205<tr class="separator:ada6d56575c0fe53cf23c7ae4610c6367 inherit pub_types_classarmnn_1_1_i_backend_internal"><td class="memSeparator" colspan="2">&#160;</td></tr>
206<tr class="memitem:ae44a82b0e485e551a0f77150b1076e06 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#ae44a82b0e485e551a0f77150b1076e06">IBackendProfilingContextPtr</a> = std::shared_ptr&lt; arm::pipe::IBackendProfilingContext &gt;</td></tr>
207<tr class="memdesc:ae44a82b0e485e551a0f77150b1076e06 inherit pub_types_classarmnn_1_1_i_backend_internal"><td class="mdescLeft">&#160;</td><td class="mdescRight">This is the bridge between backend and backend profiling we'll keep it in the backend namespace. <a href="classarmnn_1_1_i_backend_internal.html#ae44a82b0e485e551a0f77150b1076e06">More...</a><br /></td></tr>
208<tr class="separator:ae44a82b0e485e551a0f77150b1076e06 inherit pub_types_classarmnn_1_1_i_backend_internal"><td class="memSeparator" colspan="2">&#160;</td></tr>
209<tr class="memitem:a335964abd41c91f7e6ef5c65865a7b98 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#a335964abd41c91f7e6ef5c65865a7b98">IBackendProfilingPtr</a> = std::unique_ptr&lt; arm::pipe::IBackendProfiling &gt;</td></tr>
210<tr class="separator:a335964abd41c91f7e6ef5c65865a7b98 inherit pub_types_classarmnn_1_1_i_backend_internal"><td class="memSeparator" colspan="2">&#160;</td></tr>
211<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>
212<tr class="separator:a11fa919c11fe46aad613b2e960fcfe90 inherit pub_types_classarmnn_1_1_i_backend_internal"><td class="memSeparator" colspan="2">&#160;</td></tr>
213<tr class="memitem:a4d0238968a7643dbb170547dd22bba54 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#a4d0238968a7643dbb170547dd22bba54">IBackendSpecificModelContextPtr</a> = std::shared_ptr&lt; <a class="el" href="classarmnn_1_1_i_backend_model_context.html">IBackendModelContext</a> &gt;</td></tr>
214<tr class="separator:a4d0238968a7643dbb170547dd22bba54 inherit pub_types_classarmnn_1_1_i_backend_internal"><td class="memSeparator" colspan="2">&#160;</td></tr>
215<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>
216<tr class="separator:a12bff6d51d63dac1375c89bc8415dc46 inherit pub_types_classarmnn_1_1_i_backend_internal"><td class="memSeparator" colspan="2">&#160;</td></tr>
217<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>
218<tr class="separator:a693b40e6b94e958836aeb0410ca186bd inherit pub_types_classarmnn_1_1_i_backend_internal"><td class="memSeparator" colspan="2">&#160;</td></tr>
219<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>
220<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>
221<tr class="memdesc:a675fed08e681be4343fb09ae73eb7641 inherit pro_methods_classarmnn_1_1_i_backend_internal"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creation must be done through a specific backend interface. <a href="classarmnn_1_1_i_backend_internal.html#a675fed08e681be4343fb09ae73eb7641">More...</a><br /></td></tr>
222<tr class="separator:a675fed08e681be4343fb09ae73eb7641 inherit pro_methods_classarmnn_1_1_i_backend_internal"><td class="memSeparator" colspan="2">&#160;</td></tr>
223<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>
224<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>
225<tr class="separator:a7cfc55eae265fa65b7d25e7dd3203f22 inherit pro_methods_classarmnn_1_1_i_backend"><td class="memSeparator" colspan="2">&#160;</td></tr>
226<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>
227<tr class="separator:aa73289e0503a4f7ec5909e117a57aa2b inherit pro_methods_classarmnn_1_1_i_backend"><td class="memSeparator" colspan="2">&#160;</td></tr>
228</table>
229<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
230<div class="textblock">
231<p class="definition">Definition at line <a class="el" href="_tosa_ref_backend_8hpp_source.html#l00012">12</a> of file <a class="el" href="_tosa_ref_backend_8hpp_source.html">TosaRefBackend.hpp</a>.</p>
232</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
233<a id="a60cc8b80574dc3f61804e581542ec1f8"></a>
234<h2 class="memtitle"><span class="permalink"><a href="#a60cc8b80574dc3f61804e581542ec1f8">&#9670;&nbsp;</a></span>TosaRefBackend()</h2>
235
236<div class="memitem">
237<div class="memproto">
238<table class="mlabels">
239 <tr>
240 <td class="mlabels-left">
241 <table class="memname">
242 <tr>
243 <td class="memname"><a class="el" href="classarmnn_1_1_tosa_ref_backend.html">TosaRefBackend</a> </td>
244 <td>(</td>
245 <td class="paramname"></td><td>)</td>
246 <td></td>
247 </tr>
248 </table>
249 </td>
250 <td class="mlabels-right">
251<span class="mlabels"><span class="mlabel">default</span></span> </td>
252 </tr>
253</table>
254</div><div class="memdoc">
255
256</div>
257</div>
258<a id="a9cefd72bfcd12468a7c1efbf83ae1661"></a>
259<h2 class="memtitle"><span class="permalink"><a href="#a9cefd72bfcd12468a7c1efbf83ae1661">&#9670;&nbsp;</a></span>~TosaRefBackend()</h2>
260
261<div class="memitem">
262<div class="memproto">
263<table class="mlabels">
264 <tr>
265 <td class="mlabels-left">
266 <table class="memname">
267 <tr>
268 <td class="memname">~<a class="el" href="classarmnn_1_1_tosa_ref_backend.html">TosaRefBackend</a> </td>
269 <td>(</td>
270 <td class="paramname"></td><td>)</td>
271 <td></td>
272 </tr>
273 </table>
274 </td>
275 <td class="mlabels-right">
276<span class="mlabels"><span class="mlabel">default</span></span> </td>
277 </tr>
278</table>
279</div><div class="memdoc">
280
281</div>
282</div>
283<h2 class="groupheader">Member Function Documentation</h2>
284<a id="a801cf3170dc777aca3e6f926d1bd70a5"></a>
285<h2 class="memtitle"><span class="permalink"><a href="#a801cf3170dc777aca3e6f926d1bd70a5">&#9670;&nbsp;</a></span>CreateBackendContext()</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#ada6d56575c0fe53cf23c7ae4610c6367">IBackendInternal::IBackendContextPtr</a> CreateBackendContext </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"></td><td>)</td>
298 <td> const</td>
299 </tr>
300 </table>
301 </td>
302 <td class="mlabels-right">
303<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
304 </tr>
305</table>
306</div><div class="memdoc">
307
308<p>Create the runtime context of the backend. </p>
309<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>
310
311<p>Reimplemented from <a class="el" href="classarmnn_1_1_i_backend_internal.html#a07a1b3f9ac897364b5c2aacc227cbebc">IBackendInternal</a>.</p>
312
313<p class="definition">Definition at line <a class="el" href="_tosa_ref_backend_8cpp_source.html#l00060">60</a> of file <a class="el" href="_tosa_ref_backend_8cpp_source.html">TosaRefBackend.cpp</a>.</p>
314<div class="fragment"><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;{</div>
315<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classarmnn_1_1_i_backend_internal.html#ada6d56575c0fe53cf23c7ae4610c6367">IBackendContextPtr</a>{};</div>
316<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;}</div>
317</div><!-- fragment -->
318</div>
319</div>
320<a id="ac2480fbc4ae790e2e64f55d78b7f31a0"></a>
321<h2 class="memtitle"><span class="permalink"><a href="#ac2480fbc4ae790e2e64f55d78b7f31a0">&#9670;&nbsp;</a></span>CreateBackendProfilingContext()</h2>
322
323<div class="memitem">
324<div class="memproto">
325<table class="mlabels">
326 <tr>
327 <td class="mlabels-left">
328 <table class="memname">
329 <tr>
330 <td class="memname"><a class="el" href="classarmnn_1_1_i_backend_internal.html#ae44a82b0e485e551a0f77150b1076e06">IBackendInternal::IBackendProfilingContextPtr</a> CreateBackendProfilingContext </td>
331 <td>(</td>
332 <td class="paramtype">const <a class="el" href="structarmnn_1_1_i_runtime_1_1_creation_options.html">IRuntime::CreationOptions</a> &amp;&#160;</td>
333 <td class="paramname"><em>creationOptions</em>, </td>
334 </tr>
335 <tr>
336 <td class="paramkey"></td>
337 <td></td>
338 <td class="paramtype"><a class="el" href="classarmnn_1_1_i_backend_internal.html#a335964abd41c91f7e6ef5c65865a7b98">IBackendProfilingPtr</a> &amp;&#160;</td>
339 <td class="paramname"><em>backendProfiling</em>&#160;</td>
340 </tr>
341 <tr>
342 <td></td>
343 <td>)</td>
344 <td></td><td></td>
345 </tr>
346 </table>
347 </td>
348 <td class="mlabels-right">
349<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
350 </tr>
351</table>
352</div><div class="memdoc">
353
354<p>Create context specifically used for profiling interaction from backends. </p>
355
356<p>Reimplemented from <a class="el" href="classarmnn_1_1_i_backend_internal.html#a6c5064ef6323af5c547674d01b15d7ab">IBackendInternal</a>.</p>
357
358<p class="definition">Definition at line <a class="el" href="_tosa_ref_backend_8cpp_source.html#l00065">65</a> of file <a class="el" href="_tosa_ref_backend_8cpp_source.html">TosaRefBackend.cpp</a>.</p>
359<div class="fragment"><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;{</div>
360<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classarmnn_1_1_i_backend_internal.html#ae44a82b0e485e551a0f77150b1076e06">IBackendProfilingContextPtr</a>{};</div>
361<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;}</div>
362</div><!-- fragment -->
363</div>
364</div>
365<a id="a93fcb3bff141d8c77b53466a44b58eee"></a>
366<h2 class="memtitle"><span class="permalink"><a href="#a93fcb3bff141d8c77b53466a44b58eee">&#9670;&nbsp;</a></span>CreateMemoryManager()</h2>
367
368<div class="memitem">
369<div class="memproto">
370<table class="mlabels">
371 <tr>
372 <td class="mlabels-left">
373 <table class="memname">
374 <tr>
375 <td class="memname"><a class="el" href="classarmnn_1_1_i_backend_internal.html#a12bff6d51d63dac1375c89bc8415dc46">IBackendInternal::IMemoryManagerUniquePtr</a> CreateMemoryManager </td>
376 <td>(</td>
377 <td class="paramname"></td><td>)</td>
378 <td> const</td>
379 </tr>
380 </table>
381 </td>
382 <td class="mlabels-right">
383<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
384 </tr>
385</table>
386</div><div class="memdoc">
387
388<p>Reimplemented from <a class="el" href="classarmnn_1_1_i_backend_internal.html#a0fe4c12c8f1f0722d2a91f61c02a687a">IBackendInternal</a>.</p>
389
390<p class="definition">Definition at line <a class="el" href="_tosa_ref_backend_8cpp_source.html#l00071">71</a> of file <a class="el" href="_tosa_ref_backend_8cpp_source.html">TosaRefBackend.cpp</a>.</p>
391<div class="fragment"><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;{</div>
392<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keywordflow">return</span> std::make_unique&lt;TosaRefMemoryManager&gt;();</div>
393<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;}</div>
394</div><!-- fragment -->
395</div>
396</div>
397<a id="afb0e4b4255c996c68fe87e3c13451a43"></a>
398<h2 class="memtitle"><span class="permalink"><a href="#afb0e4b4255c996c68fe87e3c13451a43">&#9670;&nbsp;</a></span>CreateWorkloadFactory() <span class="overload">[1/2]</span></h2>
399
400<div class="memitem">
401<div class="memproto">
402<table class="mlabels">
403 <tr>
404 <td class="mlabels-left">
405 <table class="memname">
406 <tr>
407 <td class="memname"><a class="el" href="classarmnn_1_1_i_backend_internal.html#a72ca1cf423bda4b0a9ffb789627126de">IBackendInternal::IWorkloadFactoryPtr</a> CreateWorkloadFactory </td>
408 <td>(</td>
409 <td class="paramtype">class <a class="el" href="classarmnn_1_1_tensor_handle_factory_registry.html">TensorHandleFactoryRegistry</a> &amp;&#160;</td>
410 <td class="paramname"><em>tensorHandleFactoryRegistry</em></td><td>)</td>
411 <td> const</td>
412 </tr>
413 </table>
414 </td>
415 <td class="mlabels-right">
416<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
417 </tr>
418</table>
419</div><div class="memdoc">
420
421<p>Reimplemented from <a class="el" href="classarmnn_1_1_i_backend_internal.html#a41c5c170ef6708c1efc683d900f624ff">IBackendInternal</a>.</p>
422
423<p class="definition">Definition at line <a class="el" href="_tosa_ref_backend_8cpp_source.html#l00044">44</a> of file <a class="el" href="_tosa_ref_backend_8cpp_source.html">TosaRefBackend.cpp</a>.</p>
424<div class="fragment"><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;{</div>
425<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keyword">auto</span> memoryManager = std::make_shared&lt;TosaRefMemoryManager&gt;();</div>
426<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; </div>
427<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; tensorHandleFactoryRegistry.RegisterMemoryManager(memoryManager);</div>
428<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; </div>
429<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keyword">auto</span> factory = std::make_unique&lt;TosaRefTensorHandleFactory&gt;(memoryManager);</div>
430<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="comment">// Register copy and import factory pair</span></div>
431<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; tensorHandleFactoryRegistry.RegisterCopyAndImportFactoryPair(factory-&gt;GetId(), factory-&gt;GetId());</div>
432<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="comment">// Register the factory</span></div>
433<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; tensorHandleFactoryRegistry.RegisterFactory(std::move(factory));</div>
434<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; </div>
435<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keywordflow">return</span> std::make_unique&lt;TosaRefWorkloadFactory&gt;(PolymorphicPointerDowncast&lt;TosaRefMemoryManager&gt;(memoryManager));</div>
436<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;}</div>
437</div><!-- fragment -->
438<p class="reference">References <a class="el" href="_tensor_handle_factory_registry_8cpp_source.html#l00066">TensorHandleFactoryRegistry::RegisterCopyAndImportFactoryPair()</a>, <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>
439
440</div>
441</div>
442<a id="a8e19e275c8162e34e6d8d10a9245dbc9"></a>
443<h2 class="memtitle"><span class="permalink"><a href="#a8e19e275c8162e34e6d8d10a9245dbc9">&#9670;&nbsp;</a></span>CreateWorkloadFactory() <span class="overload">[2/2]</span></h2>
444
445<div class="memitem">
446<div class="memproto">
447<table class="mlabels">
448 <tr>
449 <td class="mlabels-left">
450 <table class="memname">
451 <tr>
452 <td class="memname"><a class="el" href="classarmnn_1_1_i_backend_internal.html#a72ca1cf423bda4b0a9ffb789627126de">IBackendInternal::IWorkloadFactoryPtr</a> CreateWorkloadFactory </td>
453 <td>(</td>
454 <td class="paramtype">const <a class="el" href="classarmnn_1_1_i_backend_internal.html#a693b40e6b94e958836aeb0410ca186bd">IBackendInternal::IMemoryManagerSharedPtr</a> &amp;&#160;</td>
455 <td class="paramname"><em>memoryManager</em> = <code>nullptr</code></td><td>)</td>
456 <td> const</td>
457 </tr>
458 </table>
459 </td>
460 <td class="mlabels-right">
461<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
462 </tr>
463</table>
464</div><div class="memdoc">
465
466<p>Implements <a class="el" href="classarmnn_1_1_i_backend_internal.html#afd5a5e90515b31c0174f76ec8897e9b1">IBackendInternal</a>.</p>
467
468<p class="definition">Definition at line <a class="el" href="_tosa_ref_backend_8cpp_source.html#l00038">38</a> of file <a class="el" href="_tosa_ref_backend_8cpp_source.html">TosaRefBackend.cpp</a>.</p>
469<div class="fragment"><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;{</div>
470<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <span class="keywordflow">return</span> std::make_unique&lt;TosaRefWorkloadFactory&gt;(PolymorphicPointerDowncast&lt;TosaRefMemoryManager&gt;(memoryManager));</div>
471<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;}</div>
472</div><!-- fragment -->
473</div>
474</div>
475<a id="afb75bad43612f5314622c4fa8a16e63d"></a>
476<h2 class="memtitle"><span class="permalink"><a href="#afb75bad43612f5314622c4fa8a16e63d">&#9670;&nbsp;</a></span>GetDefaultAllocator()</h2>
477
478<div class="memitem">
479<div class="memproto">
480<table class="mlabels">
481 <tr>
482 <td class="mlabels-left">
483 <table class="memname">
484 <tr>
485 <td class="memname">std::unique_ptr&lt; <a class="el" href="classarmnn_1_1_i_custom_allocator.html">ICustomAllocator</a> &gt; GetDefaultAllocator </td>
486 <td>(</td>
487 <td class="paramname"></td><td>)</td>
488 <td> const</td>
489 </tr>
490 </table>
491 </td>
492 <td class="mlabels-right">
493<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
494 </tr>
495</table>
496</div><div class="memdoc">
497
498<p>Returns the default memory allocator for the backend. </p>
499<dl class="section return"><dt>Returns</dt><dd>- Returns unique pointer to the Default <a class="el" href="structarmnn_1_1_allocator.html">Allocator</a> of the Backend </dd></dl>
500
501<p>Reimplemented from <a class="el" href="classarmnn_1_1_i_backend_internal.html#a563472222884844adc3183c433f38e54">IBackendInternal</a>.</p>
502
Nikhil Raj1dc83fe2024-05-16 09:47:51 +0100503<p class="definition">Definition at line <a class="el" href="_tosa_ref_backend_8cpp_source.html#l00187">187</a> of file <a class="el" href="_tosa_ref_backend_8cpp_source.html">TosaRefBackend.cpp</a>.</p>
504<div class="fragment"><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;{</div>
505<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <span class="keywordflow">return</span> std::make_unique&lt;DefaultAllocator&gt;();</div>
506<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160;}</div>
Nikhil Raj03c7ff32023-08-22 12:00:04 +0100507</div><!-- fragment -->
508</div>
509</div>
510<a id="a63559c7f206c265f5fff5ffcc8a58e3e"></a>
511<h2 class="memtitle"><span class="permalink"><a href="#a63559c7f206c265f5fff5ffcc8a58e3e">&#9670;&nbsp;</a></span>GetHandleFactoryPreferences()</h2>
512
513<div class="memitem">
514<div class="memproto">
515<table class="mlabels">
516 <tr>
517 <td class="mlabels-left">
518 <table class="memname">
519 <tr>
520 <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>
521 <td>(</td>
522 <td class="paramname"></td><td>)</td>
523 <td> const</td>
524 </tr>
525 </table>
526 </td>
527 <td class="mlabels-right">
528<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
529 </tr>
530</table>
531</div><div class="memdoc">
532
533<p>(<a class="el" href="classarmnn_1_1_optional.html">Optional</a>) Returns a vector of supported TensorHandleFactory ids in preference order. </p>
534
535<p>Reimplemented from <a class="el" href="classarmnn_1_1_i_backend_internal.html#ac5d107c5672f446603b6e6b92bce6244">IBackendInternal</a>.</p>
536
Nikhil Raj1dc83fe2024-05-16 09:47:51 +0100537<p class="definition">Definition at line <a class="el" href="_tosa_ref_backend_8cpp_source.html#l00168">168</a> of file <a class="el" href="_tosa_ref_backend_8cpp_source.html">TosaRefBackend.cpp</a>.</p>
538<div class="fragment"><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;{</div>
539<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <span class="keywordflow">return</span> std::vector&lt;ITensorHandleFactory::FactoryId&gt; { <a class="code" href="classarmnn_1_1_tosa_ref_tensor_handle_factory.html#acdecb5b442434112c2cc8fc48c0ea922">TosaRefTensorHandleFactory::GetIdStatic</a>() };</div>
540<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;}</div>
Nikhil Raj03c7ff32023-08-22 12:00:04 +0100541</div><!-- fragment -->
542<p class="reference">References <a class="el" href="_tosa_ref_tensor_handle_factory_8cpp_source.html#l00016">TosaRefTensorHandleFactory::GetIdStatic()</a>.</p>
543
544</div>
545</div>
546<a id="a6c6c3d137a7792e264a89cc40ea94bb0"></a>
547<h2 class="memtitle"><span class="permalink"><a href="#a6c6c3d137a7792e264a89cc40ea94bb0">&#9670;&nbsp;</a></span>GetId()</h2>
548
549<div class="memitem">
550<div class="memproto">
551<table class="mlabels">
552 <tr>
553 <td class="mlabels-left">
554 <table class="memname">
555 <tr>
556 <td class="memname">const <a class="el" href="classarmnn_1_1_backend_id.html">BackendId</a>&amp; GetId </td>
557 <td>(</td>
558 <td class="paramname"></td><td>)</td>
559 <td> const</td>
560 </tr>
561 </table>
562 </td>
563 <td class="mlabels-right">
564<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
565 </tr>
566</table>
567</div><div class="memdoc">
568
569<p>Implements <a class="el" href="classarmnn_1_1_i_backend.html#aa9fc23b7155bd678232eeb351059b748">IBackend</a>.</p>
570
571<p class="definition">Definition at line <a class="el" href="_tosa_ref_backend_8hpp_source.html#l00019">19</a> of file <a class="el" href="_tosa_ref_backend_8hpp_source.html">TosaRefBackend.hpp</a>.</p>
572<div class="fragment"><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; {</div>
573<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classarmnn_1_1_tosa_ref_backend.html#a177af502214bbc8123fbb4a3c4f0a1b8">GetIdStatic</a>();</div>
574<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; }</div>
575</div><!-- fragment -->
576<p class="reference">References <a class="el" href="_tosa_ref_backend_8cpp_source.html#l00032">TosaRefBackend::GetIdStatic()</a>.</p>
577
578<p class="reference">Referenced by <a class="el" href="_tosa_ref_backend_8cpp_source.html#l00082">TosaRefBackend::OptimizeSubgraphView()</a>.</p>
579
580</div>
581</div>
582<a id="a177af502214bbc8123fbb4a3c4f0a1b8"></a>
583<h2 class="memtitle"><span class="permalink"><a href="#a177af502214bbc8123fbb4a3c4f0a1b8">&#9670;&nbsp;</a></span>GetIdStatic()</h2>
584
585<div class="memitem">
586<div class="memproto">
587<table class="mlabels">
588 <tr>
589 <td class="mlabels-left">
590 <table class="memname">
591 <tr>
592 <td class="memname">const <a class="el" href="classarmnn_1_1_backend_id.html">BackendId</a> &amp; GetIdStatic </td>
593 <td>(</td>
594 <td class="paramname"></td><td>)</td>
595 <td></td>
596 </tr>
597 </table>
598 </td>
599 <td class="mlabels-right">
600<span class="mlabels"><span class="mlabel">static</span></span> </td>
601 </tr>
602</table>
603</div><div class="memdoc">
604
605<p class="definition">Definition at line <a class="el" href="_tosa_ref_backend_8cpp_source.html#l00032">32</a> of file <a class="el" href="_tosa_ref_backend_8cpp_source.html">TosaRefBackend.cpp</a>.</p>
606<div class="fragment"><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;{</div>
607<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; <span class="keyword">static</span> <span class="keyword">const</span> <a class="code" href="classarmnn_1_1_backend_id.html">BackendId</a> s_Id{<a class="code" href="namespacearmnn.html#a40fd83a6a69162220440c353f27e8c78">TosaRefBackendId</a>()};</div>
608<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; <span class="keywordflow">return</span> s_Id;</div>
609<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;}</div>
610</div><!-- fragment -->
611<p class="reference">References <a class="el" href="_tosa_ref_backend_id_8hpp_source.html#l00010">armnn::TosaRefBackendId()</a>.</p>
612
613<p class="reference">Referenced by <a class="el" href="_tosa_ref_backend_8hpp_source.html#l00019">TosaRefBackend::GetId()</a>.</p>
614
615</div>
616</div>
617<a id="a93d4285a3ea5e4e3b35578484d889daa"></a>
618<h2 class="memtitle"><span class="permalink"><a href="#a93d4285a3ea5e4e3b35578484d889daa">&#9670;&nbsp;</a></span>GetLayerSupport()</h2>
619
620<div class="memitem">
621<div class="memproto">
622<table class="mlabels">
623 <tr>
624 <td class="mlabels-left">
625 <table class="memname">
626 <tr>
627 <td class="memname"><a class="el" href="classarmnn_1_1_i_backend_internal.html#a11fa919c11fe46aad613b2e960fcfe90">IBackendInternal::ILayerSupportSharedPtr</a> GetLayerSupport </td>
628 <td>(</td>
629 <td class="paramname"></td><td>)</td>
630 <td> const</td>
631 </tr>
632 </table>
633 </td>
634 <td class="mlabels-right">
635<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
636 </tr>
637</table>
638</div><div class="memdoc">
639
640<p>Implements <a class="el" href="classarmnn_1_1_i_backend_internal.html#ad86597efa7c25997572c80dc29f3104a">IBackendInternal</a>.</p>
641
642<p class="definition">Definition at line <a class="el" href="_tosa_ref_backend_8cpp_source.html#l00076">76</a> of file <a class="el" href="_tosa_ref_backend_8cpp_source.html">TosaRefBackend.cpp</a>.</p>
643<div class="fragment"><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;{</div>
644<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keyword">static</span> <a class="code" href="namespacearmnn.html#a11fa919c11fe46aad613b2e960fcfe90">ILayerSupportSharedPtr</a> layerSupport{<span class="keyword">new</span> <a class="code" href="classarmnn_1_1_tosa_ref_layer_support.html">TosaRefLayerSupport</a>};</div>
645<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keywordflow">return</span> layerSupport;</div>
646<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;}</div>
647</div><!-- fragment -->
648</div>
649</div>
650<a id="a339efc194a1738cd93fcdde4d948a5cd"></a>
651<h2 class="memtitle"><span class="permalink"><a href="#a339efc194a1738cd93fcdde4d948a5cd">&#9670;&nbsp;</a></span>OptimizeSubgraphView()</h2>
652
653<div class="memitem">
654<div class="memproto">
655<table class="mlabels">
656 <tr>
657 <td class="mlabels-left">
658 <table class="memname">
659 <tr>
660 <td class="memname"><a class="el" href="classarmnn_1_1_optimization_views.html">OptimizationViews</a> OptimizeSubgraphView </td>
661 <td>(</td>
662 <td class="paramtype">const <a class="el" href="classarmnn_1_1_subgraph_view.html">SubgraphView</a> &amp;&#160;</td>
663 <td class="paramname"><em>subgraph</em>, </td>
664 </tr>
665 <tr>
666 <td class="paramkey"></td>
667 <td></td>
668 <td class="paramtype">const <a class="el" href="namespacearmnn.html#a5b6893cda5b69359a4244c06054da18f">ModelOptions</a> &amp;&#160;</td>
669 <td class="paramname"><em>modelOptions</em>&#160;</td>
670 </tr>
671 <tr>
672 <td></td>
673 <td>)</td>
674 <td></td><td> const</td>
675 </tr>
676 </table>
677 </td>
678 <td class="mlabels-right">
679<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
680 </tr>
681</table>
682</div><div class="memdoc">
683
684<p>Reimplemented from <a class="el" href="classarmnn_1_1_i_backend_internal.html#a3623ac8294bf071d68eb7d71383e9a83">IBackendInternal</a>.</p>
685
686<p class="definition">Definition at line <a class="el" href="_tosa_ref_backend_8cpp_source.html#l00082">82</a> of file <a class="el" href="_tosa_ref_backend_8cpp_source.html">TosaRefBackend.cpp</a>.</p>
687<div class="fragment"><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;{</div>
688<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <a class="code" href="classarmnn_1_1_optimization_views.html">OptimizationViews</a> optimizationViews(modelOptions);</div>
689<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; </div>
690<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="keyword">auto</span> handler = std::make_unique&lt;TosaSerializationHandler&gt;();</div>
691<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; </div>
692<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; std::vector&lt;std::string&gt; graphInputs;</div>
693<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; std::vector&lt;std::string&gt; graphOutputs;</div>
694<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; </div>
695<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; std::vector&lt;TosaSerializationOperator*&gt; operators;</div>
696<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; std::vector&lt;TosaSerializationTensor*&gt; tensors;</div>
697<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; </div>
Nikhil Raj1dc83fe2024-05-16 09:47:51 +0100698<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <span class="keyword">auto</span> it = subgraph.<a class="code" href="classarmnn_1_1_subgraph_view.html#ad2570202bb366163f8b4660bfe78c49d">begin</a>();</div>
699<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keywordflow">while</span> (it != subgraph.<a class="code" href="classarmnn_1_1_subgraph_view.html#afc40490fb4f488bd2a211e81c06a6971">end</a>())</div>
Nikhil Raj03c7ff32023-08-22 12:00:04 +0100700<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; {</div>
Nikhil Raj1dc83fe2024-05-16 09:47:51 +0100701<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <a class="code" href="classarmnn_1_1_layer.html">Layer</a>&amp; base = *(PolymorphicDowncast&lt;Layer*&gt;(*it));</div>
702<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; </div>
703<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <span class="keywordflow">if</span>(base.<a class="code" href="classarmnn_1_1_layer.html#ad8e15c530c929ab823d89ae9fd2d3f11">GetType</a>() == <a class="code" href="namespacearmnn.html#a56943a0946e5f15e5e58054b8e7a04a4a324118a6721dd6b8a9b9f4e327df2bf5">armnn::LayerType::Input</a> ||</div>
704<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; base.<a class="code" href="classarmnn_1_1_layer.html#ad8e15c530c929ab823d89ae9fd2d3f11">GetType</a>() == <a class="code" href="namespacearmnn.html#a56943a0946e5f15e5e58054b8e7a04a4a29c2c02a361c9d7028472e5d92cd4a54">armnn::LayerType::Output</a>)</div>
705<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; {</div>
706<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; ++it;</div>
Nikhil Raj03c7ff32023-08-22 12:00:04 +0100707<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <span class="keywordflow">continue</span>;</div>
708<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; }</div>
709<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; </div>
Nikhil Raj1dc83fe2024-05-16 09:47:51 +0100710<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; tosa::TosaSerializationBasicBlock* mappings = <a class="code" href="_tosa_mappings_8cpp.html#af741ea62119eaf93678da444e5b9f8eb">GetTosaMappingFromLayer</a>(&amp;base);</div>
Nikhil Raj03c7ff32023-08-22 12:00:04 +0100711<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; </div>
712<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="comment">// Loop through inputs to see if there are any graph inputs, if so save them.</span></div>
713<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <span class="comment">// If it&#39;s an input to the graph &quot;input&quot; can be found in the string.</span></div>
Nikhil Raj1dc83fe2024-05-16 09:47:51 +0100714<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> std::string&amp; blockInputName : mappings-&gt;GetInputs())</div>
Nikhil Raj03c7ff32023-08-22 12:00:04 +0100715<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; {</div>
Nikhil Raj1dc83fe2024-05-16 09:47:51 +0100716<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <span class="keywordflow">if</span> (blockInputName.find(<span class="stringliteral">&quot;input&quot;</span>) != std::string::npos)</div>
717<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; {</div>
718<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; graphInputs.push_back(blockInputName);</div>
719<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; }</div>
720<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; }</div>
721<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; </div>
722<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="comment">// Loop through outputs to see if there are any graph outputs, if so save them.</span></div>
723<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <span class="comment">// If it&#39;s an output to the graph &quot;output&quot; can be found in the string.</span></div>
724<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> std::string&amp; blockOutputName : mappings-&gt;GetOutputs())</div>
725<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; {</div>
726<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="keywordflow">if</span> (blockOutputName.find(<span class="stringliteral">&quot;output&quot;</span>) != std::string::npos)</div>
727<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; {</div>
728<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; graphOutputs.push_back(blockOutputName);</div>
729<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; }</div>
730<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; }</div>
731<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; </div>
732<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <span class="keyword">auto</span> blockOperators = mappings-&gt;GetOperators();</div>
733<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; operators.insert(operators.end(), blockOperators.begin(), blockOperators.end());</div>
734<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; </div>
735<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <span class="keyword">auto</span> blockTensors = mappings-&gt;GetTensors();</div>
736<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; tensors.insert(tensors.end(), blockTensors.begin(), blockTensors.end());</div>
737<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; </div>
738<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; ++it;</div>
739<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; }</div>
740<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; </div>
741<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <span class="comment">// Add all mappings to main block.</span></div>
742<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <span class="keyword">auto</span>* block = <span class="keyword">new</span> TosaSerializationBasicBlock(<span class="stringliteral">&quot;main&quot;</span>, <span class="stringliteral">&quot;main&quot;</span>, operators, tensors, graphInputs, graphOutputs);</div>
743<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; </div>
744<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; std::vector&lt;TosaSerializationBasicBlock*&gt; blocks;</div>
745<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; blocks.emplace_back(block);</div>
746<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; </div>
747<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <span class="comment">// Add blocks to the main region.</span></div>
748<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <span class="keyword">auto</span>* region = <span class="keyword">new</span> TosaSerializationRegion(<span class="stringliteral">&quot;main&quot;</span>, blocks);</div>
749<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; handler-&gt;GetRegions().emplace_back(region);</div>
750<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; </div>
751<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="keyword">auto</span> compiledBlob =</div>
752<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; std::make_unique&lt;PreCompiledObjectPtr&gt;(handler.release(), DeleteAsType&lt;TosaSerializationHandler&gt;);</div>
753<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; </div>
754<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <a class="code" href="classarmnn_1_1_i_connectable_layer.html">IConnectableLayer</a>* preCompiledLayer = optimizationViews.GetINetwork()-&gt;AddPrecompiledLayer(</div>
755<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <a class="code" href="structarmnn_1_1_pre_compiled_descriptor.html">PreCompiledDescriptor</a>(subgraph.<a class="code" href="classarmnn_1_1_subgraph_view.html#a6cbf14f4d57ef2de2cfed9a903db1643">GetNumInputSlots</a>(), subgraph.<a class="code" href="classarmnn_1_1_subgraph_view.html#a59a4100374e80a3504f4bb4d13695d0b">GetNumOutputSlots</a>()),</div>
756<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; std::move(*compiledBlob),</div>
757<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <a class="code" href="classarmnn_1_1_optional.html">armnn::Optional&lt;BackendId&gt;</a>(<a class="code" href="classarmnn_1_1_tosa_ref_backend.html#a6c6c3d137a7792e264a89cc40ea94bb0">GetId</a>()),</div>
758<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <span class="stringliteral">&quot;TOSA_Pre_Compiled_Layer&quot;</span>);</div>
759<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; </div>
760<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <span class="comment">// Copy the output tensor infos from sub-graph</span></div>
761<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i &lt; subgraph.<a class="code" href="classarmnn_1_1_subgraph_view.html#a59a4100374e80a3504f4bb4d13695d0b">GetNumOutputSlots</a>(); i++)</div>
762<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; {</div>
763<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; preCompiledLayer-&gt;<a class="code" href="classarmnn_1_1_i_connectable_layer.html#a80ac4eda2e7f2757ec9dd96fc96dbd16">GetOutputSlot</a>(i).<a class="code" href="classarmnn_1_1_i_output_slot.html#a5ee4a6c9a2481245487b1b1a70d20fd0">SetTensorInfo</a>(subgraph.<a class="code" href="classarmnn_1_1_subgraph_view.html#a92f32e6689a8fe52aa043ba5395c7b57">GetIOutputSlot</a>(i)-&gt;<a class="code" href="classarmnn_1_1_i_output_slot.html#a9943775a364fc4ab53b85ac88f311886">GetTensorInfo</a>());</div>
764<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; }</div>
765<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; </div>
766<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; optimizationViews.AddSubstitution({ std::move(subgraph), <a class="code" href="classarmnn_1_1_subgraph_view.html">SubgraphView</a>(preCompiledLayer) });</div>
767<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <span class="keywordflow">return</span> optimizationViews;</div>
768<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;}</div>
Nikhil Raj03c7ff32023-08-22 12:00:04 +0100769</div><!-- fragment -->
Nikhil Raj1dc83fe2024-05-16 09:47:51 +0100770<p class="reference">References <a class="el" href="_network_8cpp_source.html#l00368">INetwork::AddPrecompiledLayer()</a>, <a class="el" href="_optimization_views_8hpp_source.html#l00038">OptimizationViews::AddSubstitution()</a>, <a class="el" href="_subgraph_view_8cpp_source.html#l00286">SubgraphView::begin()</a>, <a class="el" href="_subgraph_view_8cpp_source.html#l00291">SubgraphView::end()</a>, <a class="el" href="_tosa_ref_backend_8hpp_source.html#l00019">TosaRefBackend::GetId()</a>, <a class="el" href="_optimization_views_8hpp_source.html#l00069">OptimizationViews::GetINetwork()</a>, <a class="el" href="_subgraph_view_8cpp_source.html#l00256">SubgraphView::GetIOutputSlot()</a>, <a class="el" href="_subgraph_view_8cpp_source.html#l00271">SubgraphView::GetNumInputSlots()</a>, <a class="el" href="_subgraph_view_8cpp_source.html#l00276">SubgraphView::GetNumOutputSlots()</a>, <a class="el" href="classarmnn_1_1_i_connectable_layer.html#a80ac4eda2e7f2757ec9dd96fc96dbd16">IConnectableLayer::GetOutputSlot()</a>, <a class="el" href="classarmnn_1_1_i_output_slot.html#a9943775a364fc4ab53b85ac88f311886">IOutputSlot::GetTensorInfo()</a>, <a class="el" href="_tosa_mappings_8cpp_source.html#l00130">GetTosaMappingFromLayer()</a>, <a class="el" href="_layer_8hpp_source.html#l00286">Layer::GetType()</a>, <a class="el" href="namespacearmnn.html#a56943a0946e5f15e5e58054b8e7a04a4a324118a6721dd6b8a9b9f4e327df2bf5">armnn::Input</a>, <a class="el" href="namespacearmnn.html#a56943a0946e5f15e5e58054b8e7a04a4a29c2c02a361c9d7028472e5d92cd4a54">armnn::Output</a>, and <a class="el" href="classarmnn_1_1_i_output_slot.html#a5ee4a6c9a2481245487b1b1a70d20fd0">IOutputSlot::SetTensorInfo()</a>.</p>
Nikhil Raj03c7ff32023-08-22 12:00:04 +0100771
772</div>
773</div>
774<a id="a583bc4404a9d27ee1f8c46239637125d"></a>
775<h2 class="memtitle"><span class="permalink"><a href="#a583bc4404a9d27ee1f8c46239637125d">&#9670;&nbsp;</a></span>RegisterTensorHandleFactories()</h2>
776
777<div class="memitem">
778<div class="memproto">
779<table class="mlabels">
780 <tr>
781 <td class="mlabels-left">
782 <table class="memname">
783 <tr>
784 <td class="memname">void RegisterTensorHandleFactories </td>
785 <td>(</td>
786 <td class="paramtype">class <a class="el" href="classarmnn_1_1_tensor_handle_factory_registry.html">TensorHandleFactoryRegistry</a> &amp;&#160;</td>
787 <td class="paramname"></td><td>)</td>
788 <td></td>
789 </tr>
790 </table>
791 </td>
792 <td class="mlabels-right">
793<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
794 </tr>
795</table>
796</div><div class="memdoc">
797
798<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_tosa_ref_backend.html#a93fcb3bff141d8c77b53466a44b58eee">CreateMemoryManager()</a> and IWorkloadFactory::CreateTensor() IWorkloadFactory::CreateSubtensor() methods must be implemented. </p>
799
800<p>Reimplemented from <a class="el" href="classarmnn_1_1_i_backend_internal.html#a517bc1a44d6d2d7a45c1847fba287135">IBackendInternal</a>.</p>
801
Nikhil Raj1dc83fe2024-05-16 09:47:51 +0100802<p class="definition">Definition at line <a class="el" href="_tosa_ref_backend_8cpp_source.html#l00173">173</a> of file <a class="el" href="_tosa_ref_backend_8cpp_source.html">TosaRefBackend.cpp</a>.</p>
803<div class="fragment"><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;{</div>
804<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <span class="keyword">auto</span> memoryManager = std::make_shared&lt;TosaRefMemoryManager&gt;();</div>
805<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; </div>
806<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; registry.RegisterMemoryManager(memoryManager);</div>
Nikhil Raj6f92c8e2023-11-22 11:41:15 +0000807<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; </div>
Nikhil Raj1dc83fe2024-05-16 09:47:51 +0100808<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <span class="keyword">auto</span> factory = std::make_unique&lt;TosaRefTensorHandleFactory&gt;(memoryManager);</div>
Nikhil Raj6f92c8e2023-11-22 11:41:15 +0000809<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; </div>
Nikhil Raj1dc83fe2024-05-16 09:47:51 +0100810<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <span class="comment">// Register copy and import factory pair</span></div>
811<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; registry.RegisterCopyAndImportFactoryPair(factory-&gt;GetId(), factory-&gt;GetId());</div>
812<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <span class="comment">// Register the factory</span></div>
813<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; registry.RegisterFactory(std::move(factory));</div>
814<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160;}</div>
Nikhil Raj03c7ff32023-08-22 12:00:04 +0100815</div><!-- fragment -->
816<p class="reference">References <a class="el" href="_tensor_handle_factory_registry_8cpp_source.html#l00066">TensorHandleFactoryRegistry::RegisterCopyAndImportFactoryPair()</a>, <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>
817
818</div>
819</div>
820<hr/>The documentation for this class was generated from the following files:<ul>
821<li>src/backends/tosaReference/<a class="el" href="_tosa_ref_backend_8hpp_source.html">TosaRefBackend.hpp</a></li>
822<li>src/backends/tosaReference/<a class="el" href="_tosa_ref_backend_8cpp_source.html">TosaRefBackend.cpp</a></li>
823</ul>
824</div><!-- contents -->
825</div><!-- doc-content -->
826<div class="ttc" id="anamespacearmnn_html_a40fd83a6a69162220440c353f27e8c78"><div class="ttname"><a href="namespacearmnn.html#a40fd83a6a69162220440c353f27e8c78">armnn::TosaRefBackendId</a></div><div class="ttdeci">constexpr const char * TosaRefBackendId()</div><div class="ttdef"><b>Definition:</b> <a href="_tosa_ref_backend_id_8hpp_source.html#l00010">TosaRefBackendId.hpp:10</a></div></div>
827<div class="ttc" id="aclassarmnn_1_1_optional_html"><div class="ttname"><a href="classarmnn_1_1_optional.html">armnn::Optional</a></div><div class="ttdef"><b>Definition:</b> <a href="_optional_8hpp_source.html#l00270">Optional.hpp:270</a></div></div>
Nikhil Raj1dc83fe2024-05-16 09:47:51 +0100828<div class="ttc" id="aclassarmnn_1_1_subgraph_view_html_a92f32e6689a8fe52aa043ba5395c7b57"><div class="ttname"><a href="classarmnn_1_1_subgraph_view.html#a92f32e6689a8fe52aa043ba5395c7b57">armnn::SubgraphView::GetIOutputSlot</a></div><div class="ttdeci">const IOutputSlot * GetIOutputSlot(unsigned int index) const</div><div class="ttdef"><b>Definition:</b> <a href="_subgraph_view_8cpp_source.html#l00256">SubgraphView.cpp:256</a></div></div>
829<div class="ttc" id="aclassarmnn_1_1_subgraph_view_html_a6cbf14f4d57ef2de2cfed9a903db1643"><div class="ttname"><a href="classarmnn_1_1_subgraph_view.html#a6cbf14f4d57ef2de2cfed9a903db1643">armnn::SubgraphView::GetNumInputSlots</a></div><div class="ttdeci">unsigned int GetNumInputSlots() const</div><div class="ttdef"><b>Definition:</b> <a href="_subgraph_view_8cpp_source.html#l00271">SubgraphView.cpp:271</a></div></div>
Nikhil Raj03c7ff32023-08-22 12:00:04 +0100830<div class="ttc" id="aclassarmnn_1_1_i_output_slot_html_a9943775a364fc4ab53b85ac88f311886"><div class="ttname"><a href="classarmnn_1_1_i_output_slot.html#a9943775a364fc4ab53b85ac88f311886">armnn::IOutputSlot::GetTensorInfo</a></div><div class="ttdeci">virtual const TensorInfo &amp; GetTensorInfo() const =0</div></div>
831<div class="ttc" id="aclassarmnn_1_1_tosa_ref_layer_support_html"><div class="ttname"><a href="classarmnn_1_1_tosa_ref_layer_support.html">armnn::TosaRefLayerSupport</a></div><div class="ttdef"><b>Definition:</b> <a href="_tosa_ref_layer_support_8hpp_source.html#l00012">TosaRefLayerSupport.hpp:12</a></div></div>
832<div class="ttc" id="aclassarmnn_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="_i_backend_internal_8hpp_source.html#l00090">IBackendInternal.hpp:90</a></div></div>
833<div class="ttc" id="aclassarmnn_1_1_layer_html"><div class="ttname"><a href="classarmnn_1_1_layer.html">armnn::Layer</a></div><div class="ttdef"><b>Definition:</b> <a href="_layer_8hpp_source.html#l00230">Layer.hpp:230</a></div></div>
Nikhil Raj1dc83fe2024-05-16 09:47:51 +0100834<div class="ttc" id="a_tosa_mappings_8cpp_html_af741ea62119eaf93678da444e5b9f8eb"><div class="ttname"><a href="_tosa_mappings_8cpp.html#af741ea62119eaf93678da444e5b9f8eb">GetTosaMappingFromLayer</a></div><div class="ttdeci">TosaSerializationBasicBlock * GetTosaMappingFromLayer(const Layer *layer)</div><div class="ttdef"><b>Definition:</b> <a href="_tosa_mappings_8cpp_source.html#l00130">TosaMappings.cpp:130</a></div></div>
Nikhil Raj03c7ff32023-08-22 12:00:04 +0100835<div class="ttc" id="aclassarmnn_1_1_tosa_ref_backend_html_a6c6c3d137a7792e264a89cc40ea94bb0"><div class="ttname"><a href="classarmnn_1_1_tosa_ref_backend.html#a6c6c3d137a7792e264a89cc40ea94bb0">armnn::TosaRefBackend::GetId</a></div><div class="ttdeci">const BackendId &amp; GetId() const override</div><div class="ttdef"><b>Definition:</b> <a href="_tosa_ref_backend_8hpp_source.html#l00019">TosaRefBackend.hpp:19</a></div></div>
Nikhil Raj1dc83fe2024-05-16 09:47:51 +0100836<div class="ttc" id="aclassarmnn_1_1_subgraph_view_html_ad2570202bb366163f8b4660bfe78c49d"><div class="ttname"><a href="classarmnn_1_1_subgraph_view.html#ad2570202bb366163f8b4660bfe78c49d">armnn::SubgraphView::begin</a></div><div class="ttdeci">IConnectableLayerIterator begin()</div><div class="ttdef"><b>Definition:</b> <a href="_subgraph_view_8cpp_source.html#l00286">SubgraphView.cpp:286</a></div></div>
Nikhil Raj03c7ff32023-08-22 12:00:04 +0100837<div class="ttc" id="aclassarmnn_1_1_i_output_slot_html_a5ee4a6c9a2481245487b1b1a70d20fd0"><div class="ttname"><a href="classarmnn_1_1_i_output_slot.html#a5ee4a6c9a2481245487b1b1a70d20fd0">armnn::IOutputSlot::SetTensorInfo</a></div><div class="ttdeci">virtual void SetTensorInfo(const TensorInfo &amp;tensorInfo)=0</div></div>
838<div class="ttc" id="aclassarmnn_1_1_subgraph_view_html"><div class="ttname"><a href="classarmnn_1_1_subgraph_view.html">armnn::SubgraphView</a></div><div class="ttdoc">The SubgraphView class represents a subgraph of a Graph.</div><div class="ttdef"><b>Definition:</b> <a href="_subgraph_view_8hpp_source.html#l00031">SubgraphView.hpp:31</a></div></div>
839<div class="ttc" id="aclassarmnn_1_1_optimization_views_html"><div class="ttname"><a href="classarmnn_1_1_optimization_views.html">armnn::OptimizationViews</a></div><div class="ttdef"><b>Definition:</b> <a href="_optimization_views_8hpp_source.html#l00017">OptimizationViews.hpp:17</a></div></div>
840<div class="ttc" id="aclassarmnn_1_1_tosa_ref_tensor_handle_factory_html_acdecb5b442434112c2cc8fc48c0ea922"><div class="ttname"><a href="classarmnn_1_1_tosa_ref_tensor_handle_factory.html#acdecb5b442434112c2cc8fc48c0ea922">armnn::TosaRefTensorHandleFactory::GetIdStatic</a></div><div class="ttdeci">static const FactoryId &amp; GetIdStatic()</div><div class="ttdef"><b>Definition:</b> <a href="_tosa_ref_tensor_handle_factory_8cpp_source.html#l00016">TosaRefTensorHandleFactory.cpp:16</a></div></div>
841<div class="ttc" id="aclassarmnn_1_1_tosa_ref_backend_html_a177af502214bbc8123fbb4a3c4f0a1b8"><div class="ttname"><a href="classarmnn_1_1_tosa_ref_backend.html#a177af502214bbc8123fbb4a3c4f0a1b8">armnn::TosaRefBackend::GetIdStatic</a></div><div class="ttdeci">static const BackendId &amp; GetIdStatic()</div><div class="ttdef"><b>Definition:</b> <a href="_tosa_ref_backend_8cpp_source.html#l00032">TosaRefBackend.cpp:32</a></div></div>
842<div class="ttc" id="aclassarmnn_1_1_i_backend_internal_html_ae44a82b0e485e551a0f77150b1076e06"><div class="ttname"><a href="classarmnn_1_1_i_backend_internal.html#ae44a82b0e485e551a0f77150b1076e06">armnn::IBackendInternal::IBackendProfilingContextPtr</a></div><div class="ttdeci">std::shared_ptr&lt; arm::pipe::IBackendProfilingContext &gt; IBackendProfilingContextPtr</div><div class="ttdoc">This is the bridge between backend and backend profiling we'll keep it in the backend namespace.</div><div class="ttdef"><b>Definition:</b> <a href="_i_backend_internal_8hpp_source.html#l00092">IBackendInternal.hpp:92</a></div></div>
843<div class="ttc" id="aclassarmnn_1_1_layer_html_ad8e15c530c929ab823d89ae9fd2d3f11"><div class="ttname"><a href="classarmnn_1_1_layer.html#ad8e15c530c929ab823d89ae9fd2d3f11">armnn::Layer::GetType</a></div><div class="ttdeci">LayerType GetType() const override</div><div class="ttdoc">Returns the armnn::LayerType of this layer.</div><div class="ttdef"><b>Definition:</b> <a href="_layer_8hpp_source.html#l00286">Layer.hpp:286</a></div></div>
Nikhil Raj1dc83fe2024-05-16 09:47:51 +0100844<div class="ttc" id="aclassarmnn_1_1_subgraph_view_html_a59a4100374e80a3504f4bb4d13695d0b"><div class="ttname"><a href="classarmnn_1_1_subgraph_view.html#a59a4100374e80a3504f4bb4d13695d0b">armnn::SubgraphView::GetNumOutputSlots</a></div><div class="ttdeci">unsigned int GetNumOutputSlots() const</div><div class="ttdef"><b>Definition:</b> <a href="_subgraph_view_8cpp_source.html#l00276">SubgraphView.cpp:276</a></div></div>
845<div class="ttc" id="aclassarmnn_1_1_subgraph_view_html_afc40490fb4f488bd2a211e81c06a6971"><div class="ttname"><a href="classarmnn_1_1_subgraph_view.html#afc40490fb4f488bd2a211e81c06a6971">armnn::SubgraphView::end</a></div><div class="ttdeci">IConnectableLayerIterator end()</div><div class="ttdef"><b>Definition:</b> <a href="_subgraph_view_8cpp_source.html#l00291">SubgraphView.cpp:291</a></div></div>
Nikhil Raj03c7ff32023-08-22 12:00:04 +0100846<div class="ttc" id="aclassarmnn_1_1_backend_id_html"><div class="ttname"><a href="classarmnn_1_1_backend_id.html">armnn::BackendId</a></div><div class="ttdef"><b>Definition:</b> <a href="_backend_id_8hpp_source.html#l00075">BackendId.hpp:75</a></div></div>
847<div class="ttc" id="aclassarmnn_1_1_i_connectable_layer_html_a80ac4eda2e7f2757ec9dd96fc96dbd16"><div class="ttname"><a href="classarmnn_1_1_i_connectable_layer.html#a80ac4eda2e7f2757ec9dd96fc96dbd16">armnn::IConnectableLayer::GetOutputSlot</a></div><div class="ttdeci">virtual const IOutputSlot &amp; GetOutputSlot(unsigned int index) const =0</div><div class="ttdoc">Get the const output slot handle by slot index.</div></div>
848<div class="ttc" id="aclassarmnn_1_1_i_connectable_layer_html"><div class="ttname"><a href="classarmnn_1_1_i_connectable_layer.html">armnn::IConnectableLayer</a></div><div class="ttdoc">Interface for a layer that is connectable to other layers via InputSlots and OutputSlots.</div><div class="ttdef"><b>Definition:</b> <a href="_i_network_8hpp_source.html#l00080">INetwork.hpp:80</a></div></div>
849<div class="ttc" id="anamespacearmnn_html_a11fa919c11fe46aad613b2e960fcfe90"><div class="ttname"><a href="namespacearmnn.html#a11fa919c11fe46aad613b2e960fcfe90">armnn::ILayerSupportSharedPtr</a></div><div class="ttdeci">std::shared_ptr&lt; ILayerSupport &gt; ILayerSupportSharedPtr</div><div class="ttdef"><b>Definition:</b> <a href="_i_layer_support_8hpp_source.html#l00040">ILayerSupport.hpp:40</a></div></div>
850<div class="ttc" id="anamespacearmnn_html_a56943a0946e5f15e5e58054b8e7a04a4a324118a6721dd6b8a9b9f4e327df2bf5"><div class="ttname"><a href="namespacearmnn.html#a56943a0946e5f15e5e58054b8e7a04a4a324118a6721dd6b8a9b9f4e327df2bf5">armnn::LayerType::Input</a></div><div class="ttdeci">@ Input</div></div>
Nikhil Raj6f92c8e2023-11-22 11:41:15 +0000851<div class="ttc" id="astructarmnn_1_1_pre_compiled_descriptor_html"><div class="ttname"><a href="structarmnn_1_1_pre_compiled_descriptor.html">armnn::PreCompiledDescriptor</a></div><div class="ttdoc">A PreCompiledDescriptor for the PreCompiledLayer.</div><div class="ttdef"><b>Definition:</b> <a href="_descriptors_8hpp_source.html#l01367">Descriptors.hpp:1367</a></div></div>
Nikhil Raj03c7ff32023-08-22 12:00:04 +0100852<div class="ttc" id="anamespacearmnn_html_a56943a0946e5f15e5e58054b8e7a04a4a29c2c02a361c9d7028472e5d92cd4a54"><div class="ttname"><a href="namespacearmnn.html#a56943a0946e5f15e5e58054b8e7a04a4a29c2c02a361c9d7028472e5d92cd4a54">armnn::LayerType::Output</a></div><div class="ttdeci">@ Output</div></div>
853<!-- start footer part -->
854<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
855 <ul>
856 <li class="navelem"><a class="el" href="namespacearmnn.html">armnn</a></li><li class="navelem"><a class="el" href="classarmnn_1_1_tosa_ref_backend.html">TosaRefBackend</a></li>
Nikhil Raj1dc83fe2024-05-16 09:47:51 +0100857 <li class="footer">Generated on Thu May 16 2024 09:31:59 for Arm NN by
Nikhil Raj03c7ff32023-08-22 12:00:04 +0100858 <a href="http://www.doxygen.org/index.html">
859 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.17 </li>
860 </ul>
861</div>
862</body>
863</html>