arm_compute v18.05
[platform/upstream/armcl.git] / documentation / classarm__compute_1_1_c_l_tensor_allocator.xhtml
1 <!-- HTML header for doxygen 1.8.9.1-->
2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://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.11"/>
8 <meta name="robots" content="NOINDEX, NOFOLLOW" /> <!-- Prevent indexing by search engines -->
9 <title>Compute Library: CLTensorAllocator 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 <script type="text/javascript">
18   $(document).ready(initResizable);
19   $(window).load(resizeHeight);
20 </script>
21 <link href="search/search.css" rel="stylesheet" type="text/css"/>
22 <script type="text/javascript" src="search/searchdata.js"></script>
23 <script type="text/javascript" src="search/search.js"></script>
24 <script type="text/javascript">
25   $(document).ready(function() { init_search(); });
26 </script>
27 <script type="text/x-mathjax-config">
28   MathJax.Hub.Config({
29     extensions: ["tex2jax.js"],
30     jax: ["input/TeX","output/HTML-CSS"],
31 });
32 </script><script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js"></script>
33 <link href="doxygen.css" rel="stylesheet" type="text/css" />
34 </head>
35 <body>
36 <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
37 <div id="titlearea">
38 <table cellspacing="0" cellpadding="0">
39  <tbody>
40  <tr style="height: 56px;">
41   <td style="padding-left: 0.5em;">
42    <div id="projectname">Compute Library
43    &#160;<span id="projectnumber">18.05</span>
44    </div>
45   </td>
46  </tr>
47  </tbody>
48 </table>
49 </div>
50 <!-- end header part -->
51 <!-- Generated by Doxygen 1.8.11 -->
52 <script type="text/javascript">
53 var searchBox = new SearchBox("searchBox", "search",false,'Search');
54 </script>
55   <div id="navrow1" class="tabs">
56     <ul class="tablist">
57       <li><a href="index.xhtml"><span>Main&#160;Page</span></a></li>
58       <li><a href="pages.xhtml"><span>Related&#160;Pages</span></a></li>
59       <li><a href="namespaces.xhtml"><span>Namespaces</span></a></li>
60       <li class="current"><a href="annotated.xhtml"><span>Data&#160;Structures</span></a></li>
61       <li><a href="files.xhtml"><span>Files</span></a></li>
62       <li>
63         <div id="MSearchBox" class="MSearchBoxInactive">
64         <span class="left">
65           <img id="MSearchSelect" src="search/mag_sel.png"
66                onmouseover="return searchBox.OnSearchSelectShow()"
67                onmouseout="return searchBox.OnSearchSelectHide()"
68                alt=""/>
69           <input type="text" id="MSearchField" value="Search" accesskey="S"
70                onfocus="searchBox.OnSearchFieldFocus(true)" 
71                onblur="searchBox.OnSearchFieldFocus(false)" 
72                onkeyup="searchBox.OnSearchFieldChange(event)"/>
73           </span><span class="right">
74             <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
75           </span>
76         </div>
77       </li>
78     </ul>
79   </div>
80   <div id="navrow2" class="tabs2">
81     <ul class="tablist">
82       <li><a href="annotated.xhtml"><span>Data&#160;Structures</span></a></li>
83       <li><a href="classes.xhtml"><span>Data&#160;Structure&#160;Index</span></a></li>
84       <li><a href="inherits.xhtml"><span>Class&#160;Hierarchy</span></a></li>
85       <li><a href="functions.xhtml"><span>Data&#160;Fields</span></a></li>
86     </ul>
87   </div>
88 </div><!-- top -->
89 <div id="side-nav" class="ui-resizable side-nav-resizable">
90   <div id="nav-tree">
91     <div id="nav-tree-contents">
92       <div id="nav-sync" class="sync"></div>
93     </div>
94   </div>
95   <div id="splitbar" style="-moz-user-select:none;" 
96        class="ui-resizable-handle">
97   </div>
98 </div>
99 <script type="text/javascript">
100 $(document).ready(function(){initNavTree('classarm__compute_1_1_c_l_tensor_allocator.xhtml','');});
101 </script>
102 <div id="doc-content">
103 <!-- window showing the filter options -->
104 <div id="MSearchSelectWindow"
105      onmouseover="return searchBox.OnSearchSelectShow()"
106      onmouseout="return searchBox.OnSearchSelectHide()"
107      onkeydown="return searchBox.OnSearchSelectKey(event)">
108 </div>
109
110 <!-- iframe showing the search results (closed by default) -->
111 <div id="MSearchResultsWindow">
112 <iframe src="javascript:void(0)" frameborder="0" 
113         name="MSearchResults" id="MSearchResults">
114 </iframe>
115 </div>
116
117 <div class="header">
118   <div class="summary">
119 <a href="#pub-methods">Public Member Functions</a>  </div>
120   <div class="headertitle">
121 <div class="title">CLTensorAllocator Class Reference</div>  </div>
122 </div><!--header-->
123 <div class="contents">
124
125 <p>Basic implementation of a CL memory tensor allocator.  
126  <a href="classarm__compute_1_1_c_l_tensor_allocator.xhtml#details">More...</a></p>
127
128 <p><code>#include &lt;<a class="el" href="_c_l_tensor_allocator_8h_source.xhtml">CLTensorAllocator.h</a>&gt;</code></p>
129 <div class="dynheader">
130 Collaboration diagram for CLTensorAllocator:</div>
131 <div class="dyncontent">
132 <div class="center"><iframe scrolling="no" frameborder="0" src="classarm__compute_1_1_c_l_tensor_allocator__coll__graph.svg" width="144" height="112"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
133 </div>
134 <center><span class="legend">[<a target="top" href="graph_legend.xhtml">legend</a>]</span></center></div>
135 <table class="memberdecls">
136 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
137 Public Member Functions</h2></td></tr>
138 <tr class="memitem:a3eb6246839f0d541494d40991336ddf5"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_tensor_allocator.xhtml#a3eb6246839f0d541494d40991336ddf5">CLTensorAllocator</a> (<a class="el" href="classarm__compute_1_1_c_l_tensor.xhtml">CLTensor</a> *owner=nullptr)</td></tr>
139 <tr class="memdesc:a3eb6246839f0d541494d40991336ddf5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default constructor.  <a href="#a3eb6246839f0d541494d40991336ddf5">More...</a><br /></td></tr>
140 <tr class="separator:a3eb6246839f0d541494d40991336ddf5"><td class="memSeparator" colspan="2">&#160;</td></tr>
141 <tr class="memitem:a6172726c0856dd159f491aa0c4c37022"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_tensor_allocator.xhtml#a6172726c0856dd159f491aa0c4c37022">CLTensorAllocator</a> (const <a class="el" href="classarm__compute_1_1_c_l_tensor_allocator.xhtml">CLTensorAllocator</a> &amp;)=delete</td></tr>
142 <tr class="memdesc:a6172726c0856dd159f491aa0c4c37022"><td class="mdescLeft">&#160;</td><td class="mdescRight">Prevent instances of this class from being copied (As this class contains pointers)  <a href="#a6172726c0856dd159f491aa0c4c37022">More...</a><br /></td></tr>
143 <tr class="separator:a6172726c0856dd159f491aa0c4c37022"><td class="memSeparator" colspan="2">&#160;</td></tr>
144 <tr class="memitem:a74c9c61e0615334fdeb176f21828a98f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classarm__compute_1_1_c_l_tensor_allocator.xhtml">CLTensorAllocator</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_tensor_allocator.xhtml#a74c9c61e0615334fdeb176f21828a98f">operator=</a> (const <a class="el" href="classarm__compute_1_1_c_l_tensor_allocator.xhtml">CLTensorAllocator</a> &amp;)=delete</td></tr>
145 <tr class="memdesc:a74c9c61e0615334fdeb176f21828a98f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Prevent instances of this class from being copy assigned (As this class contains pointers)  <a href="#a74c9c61e0615334fdeb176f21828a98f">More...</a><br /></td></tr>
146 <tr class="separator:a74c9c61e0615334fdeb176f21828a98f"><td class="memSeparator" colspan="2">&#160;</td></tr>
147 <tr class="memitem:a4b47d05b98222ee556784032d684637e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_tensor_allocator.xhtml#a4b47d05b98222ee556784032d684637e">CLTensorAllocator</a> (<a class="el" href="classarm__compute_1_1_c_l_tensor_allocator.xhtml">CLTensorAllocator</a> &amp;&amp;)=default</td></tr>
148 <tr class="memdesc:a4b47d05b98222ee556784032d684637e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allow instances of this class to be moved.  <a href="#a4b47d05b98222ee556784032d684637e">More...</a><br /></td></tr>
149 <tr class="separator:a4b47d05b98222ee556784032d684637e"><td class="memSeparator" colspan="2">&#160;</td></tr>
150 <tr class="memitem:aba115eb9c458f9e99b8c3fa3975a74a3"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classarm__compute_1_1_c_l_tensor_allocator.xhtml">CLTensorAllocator</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_tensor_allocator.xhtml#aba115eb9c458f9e99b8c3fa3975a74a3">operator=</a> (<a class="el" href="classarm__compute_1_1_c_l_tensor_allocator.xhtml">CLTensorAllocator</a> &amp;&amp;)=default</td></tr>
151 <tr class="memdesc:aba115eb9c458f9e99b8c3fa3975a74a3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allow instances of this class to be moved.  <a href="#aba115eb9c458f9e99b8c3fa3975a74a3">More...</a><br /></td></tr>
152 <tr class="separator:aba115eb9c458f9e99b8c3fa3975a74a3"><td class="memSeparator" colspan="2">&#160;</td></tr>
153 <tr class="memitem:a6a731c70d12750586b67c6cde637b650"><td class="memItemLeft" align="right" valign="top">uint8_t *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_tensor_allocator.xhtml#a6a731c70d12750586b67c6cde637b650">data</a> ()</td></tr>
154 <tr class="memdesc:a6a731c70d12750586b67c6cde637b650"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface to be implemented by the child class to return the pointer to the mapped data.  <a href="#a6a731c70d12750586b67c6cde637b650">More...</a><br /></td></tr>
155 <tr class="separator:a6a731c70d12750586b67c6cde637b650"><td class="memSeparator" colspan="2">&#160;</td></tr>
156 <tr class="memitem:a7f4714c4a9320d1760102ef78a984241"><td class="memItemLeft" align="right" valign="top">const cl::Buffer &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_tensor_allocator.xhtml#a7f4714c4a9320d1760102ef78a984241">cl_data</a> () const </td></tr>
157 <tr class="memdesc:a7f4714c4a9320d1760102ef78a984241"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface to be implemented by the child class to return the pointer to the CL data.  <a href="#a7f4714c4a9320d1760102ef78a984241">More...</a><br /></td></tr>
158 <tr class="separator:a7f4714c4a9320d1760102ef78a984241"><td class="memSeparator" colspan="2">&#160;</td></tr>
159 <tr class="memitem:a460f371bafd64854b2332d96697939b3"><td class="memItemLeft" align="right" valign="top">uint8_t *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_tensor_allocator.xhtml#a460f371bafd64854b2332d96697939b3">map</a> (cl::CommandQueue &amp;q, bool blocking)</td></tr>
160 <tr class="memdesc:a460f371bafd64854b2332d96697939b3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enqueue a map operation of the allocated buffer on the given queue.  <a href="#a460f371bafd64854b2332d96697939b3">More...</a><br /></td></tr>
161 <tr class="separator:a460f371bafd64854b2332d96697939b3"><td class="memSeparator" colspan="2">&#160;</td></tr>
162 <tr class="memitem:a34b854d640d247bd7422f60ca2f3a05c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_tensor_allocator.xhtml#a34b854d640d247bd7422f60ca2f3a05c">unmap</a> (cl::CommandQueue &amp;q, uint8_t *mapping)</td></tr>
163 <tr class="memdesc:a34b854d640d247bd7422f60ca2f3a05c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enqueue an unmap operation of the allocated buffer on the given queue.  <a href="#a34b854d640d247bd7422f60ca2f3a05c">More...</a><br /></td></tr>
164 <tr class="separator:a34b854d640d247bd7422f60ca2f3a05c"><td class="memSeparator" colspan="2">&#160;</td></tr>
165 <tr class="memitem:a6e509c2a177b0b29e9e2369535094dee"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_tensor_allocator.xhtml#a6e509c2a177b0b29e9e2369535094dee">allocate</a> () override</td></tr>
166 <tr class="memdesc:a6e509c2a177b0b29e9e2369535094dee"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allocate size specified by <a class="el" href="classarm__compute_1_1_tensor_info.xhtml" title="Store the tensor&#39;s metadata. ">TensorInfo</a> of OpenCL memory.  <a href="#a6e509c2a177b0b29e9e2369535094dee">More...</a><br /></td></tr>
167 <tr class="separator:a6e509c2a177b0b29e9e2369535094dee"><td class="memSeparator" colspan="2">&#160;</td></tr>
168 <tr class="memitem:a1468b0adb6ec3f9d38aa7d60b8a91974"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_tensor_allocator.xhtml#a1468b0adb6ec3f9d38aa7d60b8a91974">free</a> () override</td></tr>
169 <tr class="memdesc:a1468b0adb6ec3f9d38aa7d60b8a91974"><td class="mdescLeft">&#160;</td><td class="mdescRight">Free allocated OpenCL memory.  <a href="#a1468b0adb6ec3f9d38aa7d60b8a91974">More...</a><br /></td></tr>
170 <tr class="separator:a1468b0adb6ec3f9d38aa7d60b8a91974"><td class="memSeparator" colspan="2">&#160;</td></tr>
171 <tr class="memitem:a226c7393e540675983eb9da796b64a14"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classarm__compute_1_1_status.xhtml">arm_compute::Status</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_tensor_allocator.xhtml#a226c7393e540675983eb9da796b64a14">import_memory</a> (<a class="el" href="classarm__compute_1_1_c_l_memory.xhtml">CLMemory</a> memory)</td></tr>
172 <tr class="memdesc:a226c7393e540675983eb9da796b64a14"><td class="mdescLeft">&#160;</td><td class="mdescRight">Import an existing memory as a tensor's backing memory.  <a href="#a226c7393e540675983eb9da796b64a14">More...</a><br /></td></tr>
173 <tr class="separator:a226c7393e540675983eb9da796b64a14"><td class="memSeparator" colspan="2">&#160;</td></tr>
174 <tr class="memitem:ae1746928cddc235a148f11132f0fa8f2"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_tensor_allocator.xhtml#ae1746928cddc235a148f11132f0fa8f2">set_associated_memory_group</a> (<a class="el" href="namespacearm__compute.xhtml#ac87d48489667d7ff7fc4cc7d0d12c52e">CLMemoryGroup</a> *associated_memory_group)</td></tr>
175 <tr class="memdesc:ae1746928cddc235a148f11132f0fa8f2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Associates the tensor with a memory group.  <a href="#ae1746928cddc235a148f11132f0fa8f2">More...</a><br /></td></tr>
176 <tr class="separator:ae1746928cddc235a148f11132f0fa8f2"><td class="memSeparator" colspan="2">&#160;</td></tr>
177 <tr class="inherit_header pub_methods_classarm__compute_1_1_i_tensor_allocator"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classarm__compute_1_1_i_tensor_allocator')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classarm__compute_1_1_i_tensor_allocator.xhtml">ITensorAllocator</a></td></tr>
178 <tr class="memitem:af97d553d2aa86688c92db8ed9a67cf0e inherit pub_methods_classarm__compute_1_1_i_tensor_allocator"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_tensor_allocator.xhtml#af97d553d2aa86688c92db8ed9a67cf0e">ITensorAllocator</a> ()</td></tr>
179 <tr class="memdesc:af97d553d2aa86688c92db8ed9a67cf0e inherit pub_methods_classarm__compute_1_1_i_tensor_allocator"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default constructor.  <a href="#af97d553d2aa86688c92db8ed9a67cf0e">More...</a><br /></td></tr>
180 <tr class="separator:af97d553d2aa86688c92db8ed9a67cf0e inherit pub_methods_classarm__compute_1_1_i_tensor_allocator"><td class="memSeparator" colspan="2">&#160;</td></tr>
181 <tr class="memitem:ae82acbc677aa7d77c6a3f5e3547ef917 inherit pub_methods_classarm__compute_1_1_i_tensor_allocator"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_tensor_allocator.xhtml#ae82acbc677aa7d77c6a3f5e3547ef917">ITensorAllocator</a> (const <a class="el" href="classarm__compute_1_1_i_tensor_allocator.xhtml">ITensorAllocator</a> &amp;)=default</td></tr>
182 <tr class="memdesc:ae82acbc677aa7d77c6a3f5e3547ef917 inherit pub_methods_classarm__compute_1_1_i_tensor_allocator"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allow instances of this class to be copy constructed.  <a href="#ae82acbc677aa7d77c6a3f5e3547ef917">More...</a><br /></td></tr>
183 <tr class="separator:ae82acbc677aa7d77c6a3f5e3547ef917 inherit pub_methods_classarm__compute_1_1_i_tensor_allocator"><td class="memSeparator" colspan="2">&#160;</td></tr>
184 <tr class="memitem:a12e5f2915e2461321b130dcf84f3e268 inherit pub_methods_classarm__compute_1_1_i_tensor_allocator"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classarm__compute_1_1_i_tensor_allocator.xhtml">ITensorAllocator</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_tensor_allocator.xhtml#a12e5f2915e2461321b130dcf84f3e268">operator=</a> (const <a class="el" href="classarm__compute_1_1_i_tensor_allocator.xhtml">ITensorAllocator</a> &amp;)=default</td></tr>
185 <tr class="memdesc:a12e5f2915e2461321b130dcf84f3e268 inherit pub_methods_classarm__compute_1_1_i_tensor_allocator"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allow instances of this class to be copied.  <a href="#a12e5f2915e2461321b130dcf84f3e268">More...</a><br /></td></tr>
186 <tr class="separator:a12e5f2915e2461321b130dcf84f3e268 inherit pub_methods_classarm__compute_1_1_i_tensor_allocator"><td class="memSeparator" colspan="2">&#160;</td></tr>
187 <tr class="memitem:a4fe09d257ff33e01defc7074ca22dc98 inherit pub_methods_classarm__compute_1_1_i_tensor_allocator"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_tensor_allocator.xhtml#a4fe09d257ff33e01defc7074ca22dc98">ITensorAllocator</a> (<a class="el" href="classarm__compute_1_1_i_tensor_allocator.xhtml">ITensorAllocator</a> &amp;&amp;)=default</td></tr>
188 <tr class="memdesc:a4fe09d257ff33e01defc7074ca22dc98 inherit pub_methods_classarm__compute_1_1_i_tensor_allocator"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allow instances of this class to be move constructed.  <a href="#a4fe09d257ff33e01defc7074ca22dc98">More...</a><br /></td></tr>
189 <tr class="separator:a4fe09d257ff33e01defc7074ca22dc98 inherit pub_methods_classarm__compute_1_1_i_tensor_allocator"><td class="memSeparator" colspan="2">&#160;</td></tr>
190 <tr class="memitem:a46277b6e964a66a9936e06f9989f0ff6 inherit pub_methods_classarm__compute_1_1_i_tensor_allocator"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classarm__compute_1_1_i_tensor_allocator.xhtml">ITensorAllocator</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_tensor_allocator.xhtml#a46277b6e964a66a9936e06f9989f0ff6">operator=</a> (<a class="el" href="classarm__compute_1_1_i_tensor_allocator.xhtml">ITensorAllocator</a> &amp;&amp;)=default</td></tr>
191 <tr class="memdesc:a46277b6e964a66a9936e06f9989f0ff6 inherit pub_methods_classarm__compute_1_1_i_tensor_allocator"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allow instances of this class to be moved.  <a href="#a46277b6e964a66a9936e06f9989f0ff6">More...</a><br /></td></tr>
192 <tr class="separator:a46277b6e964a66a9936e06f9989f0ff6 inherit pub_methods_classarm__compute_1_1_i_tensor_allocator"><td class="memSeparator" colspan="2">&#160;</td></tr>
193 <tr class="memitem:a8378fc6c887231765b885f8033c7bb99 inherit pub_methods_classarm__compute_1_1_i_tensor_allocator"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_tensor_allocator.xhtml#a8378fc6c887231765b885f8033c7bb99">~ITensorAllocator</a> ()=default</td></tr>
194 <tr class="memdesc:a8378fc6c887231765b885f8033c7bb99 inherit pub_methods_classarm__compute_1_1_i_tensor_allocator"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default virtual destructor.  <a href="#a8378fc6c887231765b885f8033c7bb99">More...</a><br /></td></tr>
195 <tr class="separator:a8378fc6c887231765b885f8033c7bb99 inherit pub_methods_classarm__compute_1_1_i_tensor_allocator"><td class="memSeparator" colspan="2">&#160;</td></tr>
196 <tr class="memitem:aa72161e0e3c0f6b2da20f835de6af680 inherit pub_methods_classarm__compute_1_1_i_tensor_allocator"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_tensor_allocator.xhtml#aa72161e0e3c0f6b2da20f835de6af680">init</a> (const <a class="el" href="classarm__compute_1_1_tensor_info.xhtml">TensorInfo</a> &amp;input)</td></tr>
197 <tr class="memdesc:aa72161e0e3c0f6b2da20f835de6af680 inherit pub_methods_classarm__compute_1_1_i_tensor_allocator"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tensor based on the passed <a class="el" href="classarm__compute_1_1_tensor_info.xhtml">TensorInfo</a>.  <a href="#aa72161e0e3c0f6b2da20f835de6af680">More...</a><br /></td></tr>
198 <tr class="separator:aa72161e0e3c0f6b2da20f835de6af680 inherit pub_methods_classarm__compute_1_1_i_tensor_allocator"><td class="memSeparator" colspan="2">&#160;</td></tr>
199 <tr class="memitem:a2b12680d0e794d5e81f489df22b38231 inherit pub_methods_classarm__compute_1_1_i_tensor_allocator"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classarm__compute_1_1_tensor_info.xhtml">TensorInfo</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_tensor_allocator.xhtml#a2b12680d0e794d5e81f489df22b38231">info</a> ()</td></tr>
200 <tr class="memdesc:a2b12680d0e794d5e81f489df22b38231 inherit pub_methods_classarm__compute_1_1_i_tensor_allocator"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return a reference to the tensor's metadata.  <a href="#a2b12680d0e794d5e81f489df22b38231">More...</a><br /></td></tr>
201 <tr class="separator:a2b12680d0e794d5e81f489df22b38231 inherit pub_methods_classarm__compute_1_1_i_tensor_allocator"><td class="memSeparator" colspan="2">&#160;</td></tr>
202 <tr class="memitem:ad129de4883c35830834987e9b68314e1 inherit pub_methods_classarm__compute_1_1_i_tensor_allocator"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classarm__compute_1_1_tensor_info.xhtml">TensorInfo</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_tensor_allocator.xhtml#ad129de4883c35830834987e9b68314e1">info</a> () const </td></tr>
203 <tr class="memdesc:ad129de4883c35830834987e9b68314e1 inherit pub_methods_classarm__compute_1_1_i_tensor_allocator"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return a constant reference to the tensor's metadata.  <a href="#ad129de4883c35830834987e9b68314e1">More...</a><br /></td></tr>
204 <tr class="separator:ad129de4883c35830834987e9b68314e1 inherit pub_methods_classarm__compute_1_1_i_tensor_allocator"><td class="memSeparator" colspan="2">&#160;</td></tr>
205 </table>
206 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
207 <div class="textblock"><p>Basic implementation of a CL memory tensor allocator. </p>
208
209 <p>Definition at line <a class="el" href="_c_l_tensor_allocator_8h_source.xhtml#l00043">43</a> of file <a class="el" href="_c_l_tensor_allocator_8h_source.xhtml">CLTensorAllocator.h</a>.</p>
210 </div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
211 <a class="anchor" id="a3eb6246839f0d541494d40991336ddf5"></a>
212 <div class="memitem">
213 <div class="memproto">
214       <table class="memname">
215         <tr>
216           <td class="memname"><a class="el" href="classarm__compute_1_1_c_l_tensor_allocator.xhtml">CLTensorAllocator</a> </td>
217           <td>(</td>
218           <td class="paramtype"><a class="el" href="classarm__compute_1_1_c_l_tensor.xhtml">CLTensor</a> *&#160;</td>
219           <td class="paramname"><em>owner</em> = <code>nullptr</code></td><td>)</td>
220           <td></td>
221         </tr>
222       </table>
223 </div><div class="memdoc">
224
225 <p>Default constructor. </p>
226 <dl class="params"><dt>Parameters</dt><dd>
227   <table class="params">
228     <tr><td class="paramdir">[in]</td><td class="paramname">owner</td><td>(Optional) Owner of the allocator. </td></tr>
229   </table>
230   </dd>
231 </dl>
232
233 </div>
234 </div>
235 <a class="anchor" id="a6172726c0856dd159f491aa0c4c37022"></a>
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="classarm__compute_1_1_c_l_tensor_allocator.xhtml">CLTensorAllocator</a> </td>
244           <td>(</td>
245           <td class="paramtype">const <a class="el" href="classarm__compute_1_1_c_l_tensor_allocator.xhtml">CLTensorAllocator</a> &amp;&#160;</td>
246           <td class="paramname"></td><td>)</td>
247           <td></td>
248         </tr>
249       </table>
250   </td>
251   <td class="mlabels-right">
252 <span class="mlabels"><span class="mlabel">delete</span></span>  </td>
253   </tr>
254 </table>
255 </div><div class="memdoc">
256
257 <p>Prevent instances of this class from being copied (As this class contains pointers) </p>
258
259 </div>
260 </div>
261 <a class="anchor" id="a4b47d05b98222ee556784032d684637e"></a>
262 <div class="memitem">
263 <div class="memproto">
264 <table class="mlabels">
265   <tr>
266   <td class="mlabels-left">
267       <table class="memname">
268         <tr>
269           <td class="memname"><a class="el" href="classarm__compute_1_1_c_l_tensor_allocator.xhtml">CLTensorAllocator</a> </td>
270           <td>(</td>
271           <td class="paramtype"><a class="el" href="classarm__compute_1_1_c_l_tensor_allocator.xhtml">CLTensorAllocator</a> &amp;&amp;&#160;</td>
272           <td class="paramname"></td><td>)</td>
273           <td></td>
274         </tr>
275       </table>
276   </td>
277   <td class="mlabels-right">
278 <span class="mlabels"><span class="mlabel">default</span></span>  </td>
279   </tr>
280 </table>
281 </div><div class="memdoc">
282
283 <p>Allow instances of this class to be moved. </p>
284
285 </div>
286 </div>
287 <h2 class="groupheader">Member Function Documentation</h2>
288 <a class="anchor" id="a6e509c2a177b0b29e9e2369535094dee"></a>
289 <div class="memitem">
290 <div class="memproto">
291 <table class="mlabels">
292   <tr>
293   <td class="mlabels-left">
294       <table class="memname">
295         <tr>
296           <td class="memname">void allocate </td>
297           <td>(</td>
298           <td class="paramname"></td><td>)</td>
299           <td></td>
300         </tr>
301       </table>
302   </td>
303   <td class="mlabels-right">
304 <span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span>  </td>
305   </tr>
306 </table>
307 </div><div class="memdoc">
308
309 <p>Allocate size specified by <a class="el" href="classarm__compute_1_1_tensor_info.xhtml" title="Store the tensor&#39;s metadata. ">TensorInfo</a> of OpenCL memory. </p>
310 <dl class="section note"><dt>Note</dt><dd>: The tensor must not already be allocated when calling this function. </dd></dl>
311
312 <p>Implements <a class="el" href="classarm__compute_1_1_i_tensor_allocator.xhtml#aa8a4946cd749d482dd996874d295af85">ITensorAllocator</a>.</p>
313
314 <p>Referenced by <a class="el" href="_c_l_2_fill_border_8cpp_source.xhtml#l00052">arm_compute::test::validation::DATA_TEST_CASE()</a>.</p>
315
316 </div>
317 </div>
318 <a class="anchor" id="a7f4714c4a9320d1760102ef78a984241"></a>
319 <div class="memitem">
320 <div class="memproto">
321       <table class="memname">
322         <tr>
323           <td class="memname">const cl::Buffer&amp; cl_data </td>
324           <td>(</td>
325           <td class="paramname"></td><td>)</td>
326           <td> const</td>
327         </tr>
328       </table>
329 </div><div class="memdoc">
330
331 <p>Interface to be implemented by the child class to return the pointer to the CL data. </p>
332 <dl class="section return"><dt>Returns</dt><dd>pointer to the CL data. </dd></dl>
333
334 </div>
335 </div>
336 <a class="anchor" id="a6a731c70d12750586b67c6cde637b650"></a>
337 <div class="memitem">
338 <div class="memproto">
339       <table class="memname">
340         <tr>
341           <td class="memname">uint8_t* data </td>
342           <td>(</td>
343           <td class="paramname"></td><td>)</td>
344           <td></td>
345         </tr>
346       </table>
347 </div><div class="memdoc">
348
349 <p>Interface to be implemented by the child class to return the pointer to the mapped data. </p>
350 <dl class="section return"><dt>Returns</dt><dd>pointer to the mapped data. </dd></dl>
351
352 </div>
353 </div>
354 <a class="anchor" id="a1468b0adb6ec3f9d38aa7d60b8a91974"></a>
355 <div class="memitem">
356 <div class="memproto">
357 <table class="mlabels">
358   <tr>
359   <td class="mlabels-left">
360       <table class="memname">
361         <tr>
362           <td class="memname">void free </td>
363           <td>(</td>
364           <td class="paramname"></td><td>)</td>
365           <td></td>
366         </tr>
367       </table>
368   </td>
369   <td class="mlabels-right">
370 <span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span>  </td>
371   </tr>
372 </table>
373 </div><div class="memdoc">
374
375 <p>Free allocated OpenCL memory. </p>
376 <dl class="section note"><dt>Note</dt><dd>The tensor must have been allocated when calling this function. </dd></dl>
377
378 <p>Implements <a class="el" href="classarm__compute_1_1_i_tensor_allocator.xhtml#a1781eecaabd2bc97d074437d01b2c683">ITensorAllocator</a>.</p>
379
380 </div>
381 </div>
382 <a class="anchor" id="a226c7393e540675983eb9da796b64a14"></a>
383 <div class="memitem">
384 <div class="memproto">
385       <table class="memname">
386         <tr>
387           <td class="memname"><a class="el" href="classarm__compute_1_1_status.xhtml">arm_compute::Status</a> import_memory </td>
388           <td>(</td>
389           <td class="paramtype"><a class="el" href="classarm__compute_1_1_c_l_memory.xhtml">CLMemory</a>&#160;</td>
390           <td class="paramname"><em>memory</em></td><td>)</td>
391           <td></td>
392         </tr>
393       </table>
394 </div><div class="memdoc">
395
396 <p>Import an existing memory as a tensor's backing memory. </p>
397 <dl class="section warning"><dt>Warning</dt><dd>If the tensor is flagged to be managed by a memory manager, this call will lead to an error. </dd>
398 <dd>
399 Ownership of memory depends on the way the <a class="el" href="classarm__compute_1_1_c_l_memory.xhtml">CLMemory</a> object was constructed </dd></dl>
400 <dl class="section note"><dt>Note</dt><dd>Calling free on a tensor with imported memory will just clear the internal pointer value.</dd></dl>
401 <dl class="params"><dt>Parameters</dt><dd>
402   <table class="params">
403     <tr><td class="paramdir">[in]</td><td class="paramname">memory</td><td><a class="el" href="classarm__compute_1_1_memory.xhtml" title="CPU implementation of memory object. ">Memory</a> to import</td></tr>
404   </table>
405   </dd>
406 </dl>
407 <dl class="section return"><dt>Returns</dt><dd>error status </dd></dl>
408
409 </div>
410 </div>
411 <a class="anchor" id="a460f371bafd64854b2332d96697939b3"></a>
412 <div class="memitem">
413 <div class="memproto">
414       <table class="memname">
415         <tr>
416           <td class="memname">uint8_t* map </td>
417           <td>(</td>
418           <td class="paramtype">cl::CommandQueue &amp;&#160;</td>
419           <td class="paramname"><em>q</em>, </td>
420         </tr>
421         <tr>
422           <td class="paramkey"></td>
423           <td></td>
424           <td class="paramtype">bool&#160;</td>
425           <td class="paramname"><em>blocking</em>&#160;</td>
426         </tr>
427         <tr>
428           <td></td>
429           <td>)</td>
430           <td></td><td></td>
431         </tr>
432       </table>
433 </div><div class="memdoc">
434
435 <p>Enqueue a map operation of the allocated buffer on the given queue. </p>
436 <dl class="params"><dt>Parameters</dt><dd>
437   <table class="params">
438     <tr><td class="paramdir">[in,out]</td><td class="paramname">q</td><td>The CL command queue to use for the mapping operation. </td></tr>
439     <tr><td class="paramdir">[in]</td><td class="paramname">blocking</td><td>If true, then the mapping will be ready to use by the time this method returns, else it is the caller's responsibility to flush the queue and wait for the mapping operation to have completed before using the returned mapping pointer.</td></tr>
440   </table>
441   </dd>
442 </dl>
443 <dl class="section return"><dt>Returns</dt><dd>The mapping address. </dd></dl>
444
445 </div>
446 </div>
447 <a class="anchor" id="a74c9c61e0615334fdeb176f21828a98f"></a>
448 <div class="memitem">
449 <div class="memproto">
450 <table class="mlabels">
451   <tr>
452   <td class="mlabels-left">
453       <table class="memname">
454         <tr>
455           <td class="memname"><a class="el" href="classarm__compute_1_1_c_l_tensor_allocator.xhtml">CLTensorAllocator</a>&amp; operator= </td>
456           <td>(</td>
457           <td class="paramtype">const <a class="el" href="classarm__compute_1_1_c_l_tensor_allocator.xhtml">CLTensorAllocator</a> &amp;&#160;</td>
458           <td class="paramname"></td><td>)</td>
459           <td></td>
460         </tr>
461       </table>
462   </td>
463   <td class="mlabels-right">
464 <span class="mlabels"><span class="mlabel">delete</span></span>  </td>
465   </tr>
466 </table>
467 </div><div class="memdoc">
468
469 <p>Prevent instances of this class from being copy assigned (As this class contains pointers) </p>
470
471 </div>
472 </div>
473 <a class="anchor" id="aba115eb9c458f9e99b8c3fa3975a74a3"></a>
474 <div class="memitem">
475 <div class="memproto">
476 <table class="mlabels">
477   <tr>
478   <td class="mlabels-left">
479       <table class="memname">
480         <tr>
481           <td class="memname"><a class="el" href="classarm__compute_1_1_c_l_tensor_allocator.xhtml">CLTensorAllocator</a>&amp; operator= </td>
482           <td>(</td>
483           <td class="paramtype"><a class="el" href="classarm__compute_1_1_c_l_tensor_allocator.xhtml">CLTensorAllocator</a> &amp;&amp;&#160;</td>
484           <td class="paramname"></td><td>)</td>
485           <td></td>
486         </tr>
487       </table>
488   </td>
489   <td class="mlabels-right">
490 <span class="mlabels"><span class="mlabel">default</span></span>  </td>
491   </tr>
492 </table>
493 </div><div class="memdoc">
494
495 <p>Allow instances of this class to be moved. </p>
496
497 </div>
498 </div>
499 <a class="anchor" id="ae1746928cddc235a148f11132f0fa8f2"></a>
500 <div class="memitem">
501 <div class="memproto">
502       <table class="memname">
503         <tr>
504           <td class="memname">void set_associated_memory_group </td>
505           <td>(</td>
506           <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#ac87d48489667d7ff7fc4cc7d0d12c52e">CLMemoryGroup</a> *&#160;</td>
507           <td class="paramname"><em>associated_memory_group</em></td><td>)</td>
508           <td></td>
509         </tr>
510       </table>
511 </div><div class="memdoc">
512
513 <p>Associates the tensor with a memory group. </p>
514 <dl class="params"><dt>Parameters</dt><dd>
515   <table class="params">
516     <tr><td class="paramdir">[in]</td><td class="paramname">associated_memory_group</td><td><a class="el" href="classarm__compute_1_1_memory.xhtml" title="CPU implementation of memory object. ">Memory</a> group to associate the tensor with </td></tr>
517   </table>
518   </dd>
519 </dl>
520
521 </div>
522 </div>
523 <a class="anchor" id="a34b854d640d247bd7422f60ca2f3a05c"></a>
524 <div class="memitem">
525 <div class="memproto">
526       <table class="memname">
527         <tr>
528           <td class="memname">void unmap </td>
529           <td>(</td>
530           <td class="paramtype">cl::CommandQueue &amp;&#160;</td>
531           <td class="paramname"><em>q</em>, </td>
532         </tr>
533         <tr>
534           <td class="paramkey"></td>
535           <td></td>
536           <td class="paramtype">uint8_t *&#160;</td>
537           <td class="paramname"><em>mapping</em>&#160;</td>
538         </tr>
539         <tr>
540           <td></td>
541           <td>)</td>
542           <td></td><td></td>
543         </tr>
544       </table>
545 </div><div class="memdoc">
546
547 <p>Enqueue an unmap operation of the allocated buffer on the given queue. </p>
548 <dl class="section note"><dt>Note</dt><dd>This method simply enqueue the unmap operation, it is the caller's responsibility to flush the queue and make sure the unmap is finished before the memory is accessed by the device.</dd></dl>
549 <dl class="params"><dt>Parameters</dt><dd>
550   <table class="params">
551     <tr><td class="paramdir">[in,out]</td><td class="paramname">q</td><td>The CL command queue to use for the mapping operation. </td></tr>
552     <tr><td class="paramdir">[in]</td><td class="paramname">mapping</td><td>The cpu mapping to unmap. </td></tr>
553   </table>
554   </dd>
555 </dl>
556
557 </div>
558 </div>
559 <hr/>The documentation for this class was generated from the following file:<ul>
560 <li>arm_compute/runtime/CL/<a class="el" href="_c_l_tensor_allocator_8h_source.xhtml">CLTensorAllocator.h</a></li>
561 </ul>
562 </div><!-- contents -->
563 </div><!-- doc-content -->
564 <!-- start footer part -->
565 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
566   <ul>
567     <li class="navelem"><a class="el" href="namespacearm__compute.xhtml">arm_compute</a></li><li class="navelem"><a class="el" href="classarm__compute_1_1_c_l_tensor_allocator.xhtml">CLTensorAllocator</a></li>
568     <li class="footer">Generated on Wed May 23 2018 11:36:41 for Compute Library by
569     <a href="http://www.doxygen.org/index.html">
570     <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.11 </li>
571   </ul>
572 </div>
573 </body>
574 </html>