blob: 768df2602a6c241ec6ef38a6399536765173f60c [file] [log] [blame]
<!-- HTML header for doxygen 1.8.15-->
<!-- Remember to use version doxygen 1.8.15 +-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.15"/>
<meta name="robots" content="NOINDEX, NOFOLLOW" /> <!-- Prevent indexing by search engines -->
<title>Compute Library: CLTensorAllocator Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(initResizable);
/* @license-end */</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script><script type="text/javascript" async="async" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="stylesheet.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<img alt="Compute Library" src="https://raw.githubusercontent.com/ARM-software/ComputeLibrary/gh-pages/ACL_logo.png" style="max-width: 100%;margin-top: 15px;margin-left: 10px"/>
<td style="padding-left: 0.5em;">
<div id="projectname">
&#160;<span id="projectnumber">19.08</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.15 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('classarm__compute_1_1_c_l_tensor_allocator.xhtml','');});
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> </div>
<div class="headertitle">
<div class="title">CLTensorAllocator Class Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>Basic implementation of a CL memory tensor allocator.
<a href="classarm__compute_1_1_c_l_tensor_allocator.xhtml#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="_c_l_tensor_allocator_8h_source.xhtml">CLTensorAllocator.h</a>&gt;</code></p>
<div class="dynheader">
Collaboration diagram for CLTensorAllocator:</div>
<div class="dyncontent">
<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>
</div>
<center><span class="legend">[<a target="top" href="graph_legend.xhtml">legend</a>]</span></center></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<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>
<tr class="memdesc:a3eb6246839f0d541494d40991336ddf5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default constructor. <a href="#a3eb6246839f0d541494d40991336ddf5">More...</a><br /></td></tr>
<tr class="separator:a3eb6246839f0d541494d40991336ddf5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<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>
<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>
<tr class="separator:a6172726c0856dd159f491aa0c4c37022"><td class="memSeparator" colspan="2">&#160;</td></tr>
<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>
<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>
<tr class="separator:a74c9c61e0615334fdeb176f21828a98f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<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>
<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>
<tr class="separator:a4b47d05b98222ee556784032d684637e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<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>
<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>
<tr class="separator:aba115eb9c458f9e99b8c3fa3975a74a3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a99c07c946023f413991a249db8b99ab0"><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#a99c07c946023f413991a249db8b99ab0">data</a> ()</td></tr>
<tr class="memdesc:a99c07c946023f413991a249db8b99ab0"><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="#a99c07c946023f413991a249db8b99ab0">More...</a><br /></td></tr>
<tr class="separator:a99c07c946023f413991a249db8b99ab0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac7e247b94ceae35db2a172961ab83df9"><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#ac7e247b94ceae35db2a172961ab83df9">cl_data</a> () const</td></tr>
<tr class="memdesc:ac7e247b94ceae35db2a172961ab83df9"><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="#ac7e247b94ceae35db2a172961ab83df9">More...</a><br /></td></tr>
<tr class="separator:ac7e247b94ceae35db2a172961ab83df9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5c27e81a1ad958e4de947c1da77f4cf1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structarm__compute_1_1_c_l_quantization.xhtml">CLQuantization</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_tensor_allocator.xhtml#a5c27e81a1ad958e4de947c1da77f4cf1">quantization</a> () const</td></tr>
<tr class="memdesc:a5c27e81a1ad958e4de947c1da77f4cf1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Wrapped quantization info data accessor. <a href="#a5c27e81a1ad958e4de947c1da77f4cf1">More...</a><br /></td></tr>
<tr class="separator:a5c27e81a1ad958e4de947c1da77f4cf1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a15eaecea13a8a49c8d259fddefcbd7ac"><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#a15eaecea13a8a49c8d259fddefcbd7ac">map</a> (cl::CommandQueue &amp;q, bool blocking)</td></tr>
<tr class="memdesc:a15eaecea13a8a49c8d259fddefcbd7ac"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enqueue a map operation of the allocated buffer on the given queue. <a href="#a15eaecea13a8a49c8d259fddefcbd7ac">More...</a><br /></td></tr>
<tr class="separator:a15eaecea13a8a49c8d259fddefcbd7ac"><td class="memSeparator" colspan="2">&#160;</td></tr>
<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>
<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>
<tr class="separator:a34b854d640d247bd7422f60ca2f3a05c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<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>
<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>
<tr class="separator:a6e509c2a177b0b29e9e2369535094dee"><td class="memSeparator" colspan="2">&#160;</td></tr>
<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>
<tr class="memdesc:a1468b0adb6ec3f9d38aa7d60b8a91974"><td class="mdescLeft">&#160;</td><td class="mdescRight">Free allocated OpenCL memory. <a href="#a1468b0adb6ec3f9d38aa7d60b8a91974">More...</a><br /></td></tr>
<tr class="separator:a1468b0adb6ec3f9d38aa7d60b8a91974"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aee45c9a6939cadf66a6e7d998c6f59df"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classarm__compute_1_1_status.xhtml">Status</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_tensor_allocator.xhtml#aee45c9a6939cadf66a6e7d998c6f59df">import_memory</a> (cl::Buffer buffer)</td></tr>
<tr class="memdesc:aee45c9a6939cadf66a6e7d998c6f59df"><td class="mdescLeft">&#160;</td><td class="mdescRight">Import an existing memory as a tensor's backing memory. <a href="#aee45c9a6939cadf66a6e7d998c6f59df">More...</a><br /></td></tr>
<tr class="separator:aee45c9a6939cadf66a6e7d998c6f59df"><td class="memSeparator" colspan="2">&#160;</td></tr>
<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>
<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>
<tr class="separator:ae1746928cddc235a148f11132f0fa8f2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<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>
<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>
<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="classarm__compute_1_1_i_tensor_allocator.xhtml#af97d553d2aa86688c92db8ed9a67cf0e">More...</a><br /></td></tr>
<tr class="separator:af97d553d2aa86688c92db8ed9a67cf0e inherit pub_methods_classarm__compute_1_1_i_tensor_allocator"><td class="memSeparator" colspan="2">&#160;</td></tr>
<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>
<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="classarm__compute_1_1_i_tensor_allocator.xhtml#ae82acbc677aa7d77c6a3f5e3547ef917">More...</a><br /></td></tr>
<tr class="separator:ae82acbc677aa7d77c6a3f5e3547ef917 inherit pub_methods_classarm__compute_1_1_i_tensor_allocator"><td class="memSeparator" colspan="2">&#160;</td></tr>
<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>
<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="classarm__compute_1_1_i_tensor_allocator.xhtml#a12e5f2915e2461321b130dcf84f3e268">More...</a><br /></td></tr>
<tr class="separator:a12e5f2915e2461321b130dcf84f3e268 inherit pub_methods_classarm__compute_1_1_i_tensor_allocator"><td class="memSeparator" colspan="2">&#160;</td></tr>
<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>
<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="classarm__compute_1_1_i_tensor_allocator.xhtml#a4fe09d257ff33e01defc7074ca22dc98">More...</a><br /></td></tr>
<tr class="separator:a4fe09d257ff33e01defc7074ca22dc98 inherit pub_methods_classarm__compute_1_1_i_tensor_allocator"><td class="memSeparator" colspan="2">&#160;</td></tr>
<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>
<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="classarm__compute_1_1_i_tensor_allocator.xhtml#a46277b6e964a66a9936e06f9989f0ff6">More...</a><br /></td></tr>
<tr class="separator:a46277b6e964a66a9936e06f9989f0ff6 inherit pub_methods_classarm__compute_1_1_i_tensor_allocator"><td class="memSeparator" colspan="2">&#160;</td></tr>
<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>
<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="classarm__compute_1_1_i_tensor_allocator.xhtml#a8378fc6c887231765b885f8033c7bb99">More...</a><br /></td></tr>
<tr class="separator:a8378fc6c887231765b885f8033c7bb99 inherit pub_methods_classarm__compute_1_1_i_tensor_allocator"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af36143939a43fa124312e395975091ed 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#af36143939a43fa124312e395975091ed">init</a> (const <a class="el" href="classarm__compute_1_1_tensor_info.xhtml">TensorInfo</a> &amp;input, size_t <a class="el" href="classarm__compute_1_1_i_tensor_allocator.xhtml#a32899157b4898866a4a58440f2f7b13f">alignment</a>=0)</td></tr>
<tr class="memdesc:af36143939a43fa124312e395975091ed 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="classarm__compute_1_1_i_tensor_allocator.xhtml#af36143939a43fa124312e395975091ed">More...</a><br /></td></tr>
<tr class="separator:af36143939a43fa124312e395975091ed inherit pub_methods_classarm__compute_1_1_i_tensor_allocator"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a29737b25723597c9708c662c7088e6c3 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#a29737b25723597c9708c662c7088e6c3">info</a> ()</td></tr>
<tr class="memdesc:a29737b25723597c9708c662c7088e6c3 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="classarm__compute_1_1_i_tensor_allocator.xhtml#a29737b25723597c9708c662c7088e6c3">More...</a><br /></td></tr>
<tr class="separator:a29737b25723597c9708c662c7088e6c3 inherit pub_methods_classarm__compute_1_1_i_tensor_allocator"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af3461a6d7c86f09c854cbb7ab5578c4e 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#af3461a6d7c86f09c854cbb7ab5578c4e">info</a> () const</td></tr>
<tr class="memdesc:af3461a6d7c86f09c854cbb7ab5578c4e 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="classarm__compute_1_1_i_tensor_allocator.xhtml#af3461a6d7c86f09c854cbb7ab5578c4e">More...</a><br /></td></tr>
<tr class="separator:af3461a6d7c86f09c854cbb7ab5578c4e inherit pub_methods_classarm__compute_1_1_i_tensor_allocator"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a32899157b4898866a4a58440f2f7b13f inherit pub_methods_classarm__compute_1_1_i_tensor_allocator"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_tensor_allocator.xhtml#a32899157b4898866a4a58440f2f7b13f">alignment</a> () const</td></tr>
<tr class="memdesc:a32899157b4898866a4a58440f2f7b13f inherit pub_methods_classarm__compute_1_1_i_tensor_allocator"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return underlying's tensor buffer alignment. <a href="classarm__compute_1_1_i_tensor_allocator.xhtml#a32899157b4898866a4a58440f2f7b13f">More...</a><br /></td></tr>
<tr class="separator:a32899157b4898866a4a58440f2f7b13f inherit pub_methods_classarm__compute_1_1_i_tensor_allocator"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Basic implementation of a CL memory tensor allocator. </p>
<p class="definition">Definition at line <a class="el" href="_c_l_tensor_allocator_8h_source.xhtml#l00045">45</a> of file <a class="el" href="_c_l_tensor_allocator_8h_source.xhtml">CLTensorAllocator.h</a>.</p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="a3eb6246839f0d541494d40991336ddf5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3eb6246839f0d541494d40991336ddf5">&#9670;&nbsp;</a></span>CLTensorAllocator() <span class="overload">[1/3]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classarm__compute_1_1_c_l_tensor_allocator.xhtml">CLTensorAllocator</a> </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classarm__compute_1_1_c_l_tensor.xhtml">CLTensor</a> *&#160;</td>
<td class="paramname"><em>owner</em> = <code>nullptr</code></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Default constructor. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">owner</td><td>(Optional) Owner of the allocator. </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="_c_l_tensor_allocator_8cpp_source.xhtml#l00099">99</a> of file <a class="el" href="_c_l_tensor_allocator_8cpp_source.xhtml">CLTensorAllocator.cpp</a>.</p>
<div class="fragment"><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; : _associated_memory_group(<span class="keyword">nullptr</span>), _memory(), _mapping(<span class="keyword">nullptr</span>), _owner(owner), _scale(), _offset()</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;{</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;}</div></div><!-- fragment -->
</div>
</div>
<a id="a6172726c0856dd159f491aa0c4c37022"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6172726c0856dd159f491aa0c4c37022">&#9670;&nbsp;</a></span>CLTensorAllocator() <span class="overload">[2/3]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classarm__compute_1_1_c_l_tensor_allocator.xhtml">CLTensorAllocator</a> </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classarm__compute_1_1_c_l_tensor_allocator.xhtml">CLTensorAllocator</a> &amp;&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">delete</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Prevent instances of this class from being copied (As this class contains pointers) </p>
</div>
</div>
<a id="a4b47d05b98222ee556784032d684637e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4b47d05b98222ee556784032d684637e">&#9670;&nbsp;</a></span>CLTensorAllocator() <span class="overload">[3/3]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classarm__compute_1_1_c_l_tensor_allocator.xhtml">CLTensorAllocator</a> </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classarm__compute_1_1_c_l_tensor_allocator.xhtml">CLTensorAllocator</a> &amp;&amp;&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">default</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Allow instances of this class to be moved. </p>
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="a6e509c2a177b0b29e9e2369535094dee"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6e509c2a177b0b29e9e2369535094dee">&#9670;&nbsp;</a></span>allocate()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void allocate </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<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>
<dl class="section note"><dt>Note</dt><dd>: The tensor must not already be allocated when calling this function. </dd></dl>
<p>Implements <a class="el" href="classarm__compute_1_1_i_tensor_allocator.xhtml#aa8a4946cd749d482dd996874d295af85">ITensorAllocator</a>.</p>
<p class="definition">Definition at line <a class="el" href="_c_l_tensor_allocator_8cpp_source.xhtml#l00119">119</a> of file <a class="el" href="_c_l_tensor_allocator_8cpp_source.xhtml">CLTensorAllocator.cpp</a>.</p>
<div class="fragment"><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;{</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="comment">// Allocate tensor backing memory</span></div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="keywordflow">if</span>(_associated_memory_group == <span class="keyword">nullptr</span>)</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; {</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <span class="keywordflow">if</span>(_memory.<a class="code" href="classarm__compute_1_1_c_l_memory.xhtml#a146cb960b44f4b1fb11ef4420382021a">region</a>() != <span class="keyword">nullptr</span> &amp;&amp; _memory.<a class="code" href="classarm__compute_1_1_c_l_memory.xhtml#a4ca2850f9acbac8fb013038b4d9b684d">cl_region</a>()-&gt;<a class="code" href="classarm__compute_1_1_i_c_l_memory_region.xhtml#ac7e247b94ceae35db2a172961ab83df9">cl_data</a>().get() != <span class="keyword">nullptr</span>)</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; {</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <span class="comment">// Memory is already allocated. Reuse it if big enough, otherwise fire an assertion</span></div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <a class="code" href="_error_8h.xhtml#a5bbdcf574d3f5e412fa6a1117911e67b">ARM_COMPUTE_ERROR_ON_MSG</a>(<a class="code" href="classarm__compute_1_1_i_tensor_allocator.xhtml#a29737b25723597c9708c662c7088e6c3">info</a>().total_size() &gt; _memory.<a class="code" href="classarm__compute_1_1_c_l_memory.xhtml#a146cb960b44f4b1fb11ef4420382021a">region</a>()-&gt;<a class="code" href="classarm__compute_1_1_i_memory_region.xhtml#a259cb5a711406a8c3e5d937eb9350cca">size</a>(),</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <span class="stringliteral">&quot;Reallocation of a bigger memory region is not allowed!&quot;</span>);</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; }</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; {</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <span class="comment">// Perform memory allocation</span></div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; _memory.<a class="code" href="classarm__compute_1_1_c_l_memory.xhtml#af2d30bc4b38a0f4703ff154a39f1b422">set_owned_region</a>(allocate_region(<a class="code" href="classarm__compute_1_1_c_l_scheduler.xhtml#a9b58d0eb9a2af8e6d7908695e1557d6c">CLScheduler::get</a>().context(), <a class="code" href="classarm__compute_1_1_i_tensor_allocator.xhtml#a29737b25723597c9708c662c7088e6c3">info</a>().total_size(), 0));</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; }</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; }</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; {</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; _associated_memory_group-&gt;<a class="code" href="classarm__compute_1_1_memory_group_base.xhtml#a2e02f3a65b77943a43daed6f90970abf">finalize_memory</a>(_owner, _memory, <a class="code" href="classarm__compute_1_1_i_tensor_allocator.xhtml#a29737b25723597c9708c662c7088e6c3">info</a>().total_size());</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; }</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <span class="comment">// Allocate and fill the quantization parameter arrays</span></div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classarm__compute_1_1_i_tensor_allocator.xhtml#a29737b25723597c9708c662c7088e6c3">info</a>().<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a5f5b6c4337eac9e2e0046ca2304d80dc">data_type</a>() == <a class="code" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a34f500e941c4df30b870126ec868ebd5">DataType::QSYMM8_PER_CHANNEL</a>)</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; {</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <span class="keyword">const</span> <span class="keywordtype">size_t</span> pad_size = 0;</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; populate_quantization_info(_scale, _offset, <a class="code" href="classarm__compute_1_1_i_tensor_allocator.xhtml#a29737b25723597c9708c662c7088e6c3">info</a>().quantization_info(), pad_size);</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; }</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="comment">// Lock allocator</span></div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <a class="code" href="classarm__compute_1_1_i_tensor_allocator.xhtml#a29737b25723597c9708c662c7088e6c3">info</a>().<a class="code" href="classarm__compute_1_1_tensor_info.xhtml#a78bf77b2d9b959259f77a32b9a412184">set_is_resizable</a>(<span class="keyword">false</span>);</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;}</div><div class="ttc" id="classarm__compute_1_1_c_l_scheduler_xhtml_a9b58d0eb9a2af8e6d7908695e1557d6c"><div class="ttname"><a href="classarm__compute_1_1_c_l_scheduler.xhtml#a9b58d0eb9a2af8e6d7908695e1557d6c">arm_compute::CLScheduler::get</a></div><div class="ttdeci">static CLScheduler &amp; get()</div><div class="ttdoc">Access the scheduler singleton.</div><div class="ttdef"><b>Definition:</b> <a href="_c_l_scheduler_8cpp_source.xhtml#l00041">CLScheduler.cpp:41</a></div></div>
<div class="ttc" id="classarm__compute_1_1_i_c_l_memory_region_xhtml_ac7e247b94ceae35db2a172961ab83df9"><div class="ttname"><a href="classarm__compute_1_1_i_c_l_memory_region.xhtml#ac7e247b94ceae35db2a172961ab83df9">arm_compute::ICLMemoryRegion::cl_data</a></div><div class="ttdeci">const cl::Buffer &amp; cl_data() const</div><div class="ttdoc">Returns the underlying CL buffer.</div><div class="ttdef"><b>Definition:</b> <a href="_c_l_memory_region_8cpp_source.xhtml#l00036">CLMemoryRegion.cpp:36</a></div></div>
<div class="ttc" id="classarm__compute_1_1_c_l_memory_xhtml_af2d30bc4b38a0f4703ff154a39f1b422"><div class="ttname"><a href="classarm__compute_1_1_c_l_memory.xhtml#af2d30bc4b38a0f4703ff154a39f1b422">arm_compute::CLMemory::set_owned_region</a></div><div class="ttdeci">void set_owned_region(std::unique_ptr&lt; IMemoryRegion &gt; region) final</div><div class="ttdoc">Sets a memory region.</div><div class="ttdef"><b>Definition:</b> <a href="_c_l_memory_8cpp_source.xhtml#l00076">CLMemory.cpp:76</a></div></div>
<div class="ttc" id="classarm__compute_1_1_memory_group_base_xhtml_a2e02f3a65b77943a43daed6f90970abf"><div class="ttname"><a href="classarm__compute_1_1_memory_group_base.xhtml#a2e02f3a65b77943a43daed6f90970abf">arm_compute::MemoryGroupBase::finalize_memory</a></div><div class="ttdeci">void finalize_memory(TensorType *obj, IMemory &amp;obj_memory, size_t size, size_t alignment=0)</div><div class="ttdoc">Finalizes memory for a given object.</div><div class="ttdef"><b>Definition:</b> <a href="_memory_group_base_8h_source.xhtml#l00120">MemoryGroupBase.h:120</a></div></div>
<div class="ttc" id="classarm__compute_1_1_c_l_memory_xhtml_a146cb960b44f4b1fb11ef4420382021a"><div class="ttname"><a href="classarm__compute_1_1_c_l_memory.xhtml#a146cb960b44f4b1fb11ef4420382021a">arm_compute::CLMemory::region</a></div><div class="ttdeci">IMemoryRegion * region() final</div><div class="ttdoc">Region accessor.</div><div class="ttdef"><b>Definition:</b> <a href="_c_l_memory_8cpp_source.xhtml#l00059">CLMemory.cpp:59</a></div></div>
<div class="ttc" id="classarm__compute_1_1_c_l_memory_xhtml_a4ca2850f9acbac8fb013038b4d9b684d"><div class="ttname"><a href="classarm__compute_1_1_c_l_memory.xhtml#a4ca2850f9acbac8fb013038b4d9b684d">arm_compute::CLMemory::cl_region</a></div><div class="ttdeci">ICLMemoryRegion * cl_region()</div><div class="ttdoc">OpenCL Region accessor.</div><div class="ttdef"><b>Definition:</b> <a href="_c_l_memory_8cpp_source.xhtml#l00049">CLMemory.cpp:49</a></div></div>
<div class="ttc" id="classarm__compute_1_1_tensor_info_xhtml_a78bf77b2d9b959259f77a32b9a412184"><div class="ttname"><a href="classarm__compute_1_1_tensor_info.xhtml#a78bf77b2d9b959259f77a32b9a412184">arm_compute::TensorInfo::set_is_resizable</a></div><div class="ttdeci">ITensorInfo &amp; set_is_resizable(bool is_resizable) override</div><div class="ttdoc">Set the flag whether the tensor size can be changed.</div><div class="ttdef"><b>Definition:</b> <a href="_tensor_info_8h_source.xhtml#l00280">TensorInfo.h:280</a></div></div>
<div class="ttc" id="classarm__compute_1_1_i_tensor_allocator_xhtml_a29737b25723597c9708c662c7088e6c3"><div class="ttname"><a href="classarm__compute_1_1_i_tensor_allocator.xhtml#a29737b25723597c9708c662c7088e6c3">arm_compute::ITensorAllocator::info</a></div><div class="ttdeci">TensorInfo &amp; info()</div><div class="ttdoc">Return a reference to the tensor's metadata.</div><div class="ttdef"><b>Definition:</b> <a href="_i_tensor_allocator_8cpp_source.xhtml#l00044">ITensorAllocator.cpp:44</a></div></div>
<div class="ttc" id="namespacearm__compute_xhtml_ad8ed01ff3ff33333d8e19db4d2818bb6a34f500e941c4df30b870126ec868ebd5"><div class="ttname"><a href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a34f500e941c4df30b870126ec868ebd5">arm_compute::DataType::QSYMM8_PER_CHANNEL</a></div><div class="ttdoc">quantized, symmetric per channel fixed-point 8-bit number</div></div>
<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a5f5b6c4337eac9e2e0046ca2304d80dc"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a5f5b6c4337eac9e2e0046ca2304d80dc">arm_compute::test::validation::data_type</a></div><div class="ttdeci">data_type</div><div class="ttdef"><b>Definition:</b> <a href="_c_l_2_arithmetic_addition_8cpp_source.xhtml#l00135">ArithmeticAddition.cpp:135</a></div></div>
<div class="ttc" id="classarm__compute_1_1_i_memory_region_xhtml_a259cb5a711406a8c3e5d937eb9350cca"><div class="ttname"><a href="classarm__compute_1_1_i_memory_region.xhtml#a259cb5a711406a8c3e5d937eb9350cca">arm_compute::IMemoryRegion::size</a></div><div class="ttdeci">size_t size() const</div><div class="ttdoc">Memory region size accessor.</div><div class="ttdef"><b>Definition:</b> <a href="_i_memory_region_8h_source.xhtml#l00073">IMemoryRegion.h:73</a></div></div>
<div class="ttc" id="_error_8h_xhtml_a5bbdcf574d3f5e412fa6a1117911e67b"><div class="ttname"><a href="_error_8h.xhtml#a5bbdcf574d3f5e412fa6a1117911e67b">ARM_COMPUTE_ERROR_ON_MSG</a></div><div class="ttdeci">#define ARM_COMPUTE_ERROR_ON_MSG(cond,...)</div><div class="ttdef"><b>Definition:</b> <a href="_error_8h_source.xhtml#l00328">Error.h:328</a></div></div>
</div><!-- fragment -->
<p class="reference">References <a class="el" href="_error_8h_source.xhtml#l00328">ARM_COMPUTE_ERROR_ON_MSG</a>, <a class="el" href="_c_l_memory_region_8cpp_source.xhtml#l00036">ICLMemoryRegion::cl_data()</a>, <a class="el" href="_c_l_memory_8cpp_source.xhtml#l00049">CLMemory::cl_region()</a>, <a class="el" href="_c_l_2_arithmetic_addition_8cpp_source.xhtml#l00135">arm_compute::test::validation::data_type</a>, <a class="el" href="_memory_group_base_8h_source.xhtml#l00120">MemoryGroupBase&lt; TensorType &gt;::finalize_memory()</a>, <a class="el" href="_c_l_scheduler_8cpp_source.xhtml#l00041">CLScheduler::get()</a>, <a class="el" href="_i_tensor_allocator_8cpp_source.xhtml#l00044">ITensorAllocator::info()</a>, <a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a34f500e941c4df30b870126ec868ebd5">arm_compute::QSYMM8_PER_CHANNEL</a>, <a class="el" href="_c_l_memory_8cpp_source.xhtml#l00059">CLMemory::region()</a>, <a class="el" href="_tensor_info_8h_source.xhtml#l00280">TensorInfo::set_is_resizable()</a>, <a class="el" href="_c_l_memory_8cpp_source.xhtml#l00076">CLMemory::set_owned_region()</a>, and <a class="el" href="_i_memory_region_8h_source.xhtml#l00073">IMemoryRegion::size()</a>.</p>
<p class="reference">Referenced by <a class="el" href="_c_l_tensor_handle_8cpp_source.xhtml#l00041">CLTensorHandle::allocate()</a>, <a class="el" href="_c_l_r_n_n_layer_8cpp_source.xhtml#l00069">CLRNNLayer::configure()</a>, <a class="el" href="_c_l_f_f_t2_d_8cpp_source.xhtml#l00037">CLFFT2D::configure()</a>, <a class="el" href="_c_l_f_f_t1_d_8cpp_source.xhtml#l00038">CLFFT1D::configure()</a>, <a class="el" href="_c_l_mean_std_dev_8cpp_source.xhtml#l00067">CLMeanStdDev::configure()</a>, <a class="el" href="_c_l_h_o_g_descriptor_8cpp_source.xhtml#l00039">CLHOGDescriptor::configure()</a>, <a class="el" href="_c_l_l2_normalize_layer_8cpp_source.xhtml#l00047">CLL2NormalizeLayer::configure()</a>, <a class="el" href="_c_l_h_o_g_gradient_8cpp_source.xhtml#l00037">CLHOGGradient::configure()</a>, <a class="el" href="_c_l_gaussian5x5_8cpp_source.xhtml#l00043">CLGaussian5x5::configure()</a>, <a class="el" href="_c_l_softmax_layer_8cpp_source.xhtml#l00073">CLSoftmaxLayer::configure()</a>, <a class="el" href="_c_l_sobel5x5_8cpp_source.xhtml#l00041">CLSobel5x5::configure()</a>, <a class="el" href="_c_l_sobel7x7_8cpp_source.xhtml#l00041">CLSobel7x7::configure()</a>, <a class="el" href="_c_l_canny_edge_8cpp_source.xhtml#l00058">CLCannyEdge::configure()</a>, <a class="el" href="_c_l_fast_corners_8cpp_source.xhtml#l00055">CLFastCorners::configure()</a>, <a class="el" href="_c_l_locally_connected_layer_8cpp_source.xhtml#l00130">CLLocallyConnectedLayer::configure()</a>, <a class="el" href="_c_l_winograd_convolution_layer_8cpp_source.xhtml#l00098">CLWinogradConvolutionLayer::configure()</a>, <a class="el" href="_c_l_depthwise_convolution_layer_8cpp_source.xhtml#l00047">CLDepthwiseConvolutionLayer3x3::configure()</a>, <a class="el" href="_c_l_harris_corners_8cpp_source.xhtml#l00064">CLHarrisCorners::configure()</a>, <a class="el" href="_c_l_g_e_m_m_lowp_matrix_multiply_core_8cpp_source.xhtml#l00075">CLGEMMLowpMatrixMultiplyCore::configure()</a>, <a class="el" href="_c_l_h_o_g_multi_detection_8cpp_source.xhtml#l00056">CLHOGMultiDetection::configure()</a>, <a class="el" href="_c_l_f_f_t_convolution_layer_8cpp_source.xhtml#l00098">CLFFTConvolutionLayer::configure()</a>, <a class="el" href="_c_l_generate_proposals_layer_8cpp_source.xhtml#l00058">CLGenerateProposalsLayer::configure()</a>, <a class="el" href="_c_l_l_s_t_m_layer_quantized_8cpp_source.xhtml#l00058">CLLSTMLayerQuantized::configure()</a>, <a class="el" href="_c_l_l_s_t_m_layer_8cpp_source.xhtml#l00056">CLLSTMLayer::configure()</a>, <a class="el" href="_c_l_direct_deconvolution_layer_8cpp_source.xhtml#l00107">CLDirectDeconvolutionLayer::configure()</a>, <a class="el" href="_c_l_g_e_m_m_deconvolution_layer_8cpp_source.xhtml#l00186">CLGEMMDeconvolutionLayer::configure()</a>, <a class="el" href="_c_l_fully_connected_layer_8cpp_source.xhtml#l00140">CLFullyConnectedLayer::configure()</a>, <a class="el" href="_c_l_g_e_m_m_convolution_layer_8cpp_source.xhtml#l00177">CLGEMMConvolutionLayer::configure()</a>, <a class="el" href="_c_l_depthwise_convolution_layer_8cpp_source.xhtml#l00256">CLDepthwiseConvolutionLayer::configure()</a>, <a class="el" href="_c_l_locally_connected_layer_8cpp_source.xhtml#l00191">CLLocallyConnectedLayer::prepare()</a>, <a class="el" href="_c_l_g_e_m_m_lowp_matrix_multiply_core_8cpp_source.xhtml#l00437">CLGEMMLowpMatrixMultiplyCore::prepare()</a>, <a class="el" href="_c_l_winograd_convolution_layer_8cpp_source.xhtml#l00216">CLWinogradConvolutionLayer::prepare()</a>, <a class="el" href="_c_l_depthwise_convolution_layer_8cpp_source.xhtml#l00224">CLDepthwiseConvolutionLayer3x3::prepare()</a>, <a class="el" href="_c_l_g_e_m_m_8cpp_source.xhtml#l00632">CLGEMM::prepare()</a>, <a class="el" href="_c_l_f_f_t_convolution_layer_8cpp_source.xhtml#l00336">CLFFTConvolutionLayer::prepare()</a>, <a class="el" href="_c_l_g_e_m_m_deconvolution_layer_8cpp_source.xhtml#l00334">CLGEMMDeconvolutionLayer::prepare()</a>, <a class="el" href="_c_l_direct_deconvolution_layer_8cpp_source.xhtml#l00185">CLDirectDeconvolutionLayer::prepare()</a>, <a class="el" href="_c_l_fully_connected_layer_8cpp_source.xhtml#l00383">CLFullyConnectedLayer::prepare()</a>, <a class="el" href="_c_l_l_s_t_m_layer_quantized_8cpp_source.xhtml#l00512">CLLSTMLayerQuantized::prepare()</a>, <a class="el" href="_c_l_g_e_m_m_convolution_layer_8cpp_source.xhtml#l00600">CLGEMMConvolutionLayer::prepare()</a>, <a class="el" href="_c_l_depthwise_convolution_layer_8cpp_source.xhtml#l00481">CLDepthwiseConvolutionLayer::prepare()</a>, and <a class="el" href="tests_2validation_2_c_l_2_u_n_i_t_2_tensor_allocator_8cpp_source.xhtml#l00242">arm_compute::test::validation::TEST_CASE()</a>.</p>
</div>
</div>
<a id="ac7e247b94ceae35db2a172961ab83df9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac7e247b94ceae35db2a172961ab83df9">&#9670;&nbsp;</a></span>cl_data()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">const cl::Buffer &amp; cl_data </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Interface to be implemented by the child class to return the pointer to the CL data. </p>
<dl class="section return"><dt>Returns</dt><dd>pointer to the CL data. </dd></dl>
<p class="definition">Definition at line <a class="el" href="_c_l_tensor_allocator_8cpp_source.xhtml#l00114">114</a> of file <a class="el" href="_c_l_tensor_allocator_8cpp_source.xhtml">CLTensorAllocator.cpp</a>.</p>
<div class="fragment"><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;{</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="keywordflow">return</span> _memory.<a class="code" href="classarm__compute_1_1_c_l_memory.xhtml#a146cb960b44f4b1fb11ef4420382021a">region</a>() == <span class="keyword">nullptr</span> ? _empty_buffer : _memory.<a class="code" href="classarm__compute_1_1_c_l_memory.xhtml#a4ca2850f9acbac8fb013038b4d9b684d">cl_region</a>()-&gt;<a class="code" href="classarm__compute_1_1_i_c_l_memory_region.xhtml#ac7e247b94ceae35db2a172961ab83df9">cl_data</a>();</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;}</div><div class="ttc" id="classarm__compute_1_1_i_c_l_memory_region_xhtml_ac7e247b94ceae35db2a172961ab83df9"><div class="ttname"><a href="classarm__compute_1_1_i_c_l_memory_region.xhtml#ac7e247b94ceae35db2a172961ab83df9">arm_compute::ICLMemoryRegion::cl_data</a></div><div class="ttdeci">const cl::Buffer &amp; cl_data() const</div><div class="ttdoc">Returns the underlying CL buffer.</div><div class="ttdef"><b>Definition:</b> <a href="_c_l_memory_region_8cpp_source.xhtml#l00036">CLMemoryRegion.cpp:36</a></div></div>
<div class="ttc" id="classarm__compute_1_1_c_l_memory_xhtml_a146cb960b44f4b1fb11ef4420382021a"><div class="ttname"><a href="classarm__compute_1_1_c_l_memory.xhtml#a146cb960b44f4b1fb11ef4420382021a">arm_compute::CLMemory::region</a></div><div class="ttdeci">IMemoryRegion * region() final</div><div class="ttdoc">Region accessor.</div><div class="ttdef"><b>Definition:</b> <a href="_c_l_memory_8cpp_source.xhtml#l00059">CLMemory.cpp:59</a></div></div>
<div class="ttc" id="classarm__compute_1_1_c_l_memory_xhtml_a4ca2850f9acbac8fb013038b4d9b684d"><div class="ttname"><a href="classarm__compute_1_1_c_l_memory.xhtml#a4ca2850f9acbac8fb013038b4d9b684d">arm_compute::CLMemory::cl_region</a></div><div class="ttdeci">ICLMemoryRegion * cl_region()</div><div class="ttdoc">OpenCL Region accessor.</div><div class="ttdef"><b>Definition:</b> <a href="_c_l_memory_8cpp_source.xhtml#l00049">CLMemory.cpp:49</a></div></div>
</div><!-- fragment -->
<p class="reference">References <a class="el" href="_c_l_memory_region_8cpp_source.xhtml#l00036">ICLMemoryRegion::cl_data()</a>, <a class="el" href="_c_l_memory_8cpp_source.xhtml#l00049">CLMemory::cl_region()</a>, and <a class="el" href="_c_l_memory_8cpp_source.xhtml#l00059">CLMemory::region()</a>.</p>
<p class="reference">Referenced by <a class="el" href="_c_l_tensor_8cpp_source.xhtml#l00045">CLTensor::cl_buffer()</a>.</p>
</div>
</div>
<a id="a99c07c946023f413991a249db8b99ab0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a99c07c946023f413991a249db8b99ab0">&#9670;&nbsp;</a></span>data()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint8_t * data </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Interface to be implemented by the child class to return the pointer to the mapped data. </p>
<dl class="section return"><dt>Returns</dt><dd>pointer to the mapped data. </dd></dl>
<p class="definition">Definition at line <a class="el" href="_c_l_tensor_allocator_8cpp_source.xhtml#l00109">109</a> of file <a class="el" href="_c_l_tensor_allocator_8cpp_source.xhtml">CLTensorAllocator.cpp</a>.</p>
<div class="fragment"><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;{</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <span class="keywordflow">return</span> _mapping;</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;}</div></div><!-- fragment -->
</div>
</div>
<a id="a1468b0adb6ec3f9d38aa7d60b8a91974"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1468b0adb6ec3f9d38aa7d60b8a91974">&#9670;&nbsp;</a></span>free()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void free </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Free allocated OpenCL memory. </p>
<dl class="section note"><dt>Note</dt><dd>The tensor must have been allocated when calling this function. </dd></dl>
<p>Implements <a class="el" href="classarm__compute_1_1_i_tensor_allocator.xhtml#a1781eecaabd2bc97d074437d01b2c683">ITensorAllocator</a>.</p>
<p class="definition">Definition at line <a class="el" href="_c_l_tensor_allocator_8cpp_source.xhtml#l00152">152</a> of file <a class="el" href="_c_l_tensor_allocator_8cpp_source.xhtml">CLTensorAllocator.cpp</a>.</p>
<div class="fragment"><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;{</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; _mapping = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; _memory.<a class="code" href="classarm__compute_1_1_c_l_memory.xhtml#a5e343ebd0fb1c7816e7abfee53d2578b">set_region</a>(<span class="keyword">nullptr</span>);</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; clear_quantization_arrays(_scale, _offset);</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <a class="code" href="classarm__compute_1_1_i_tensor_allocator.xhtml#a29737b25723597c9708c662c7088e6c3">info</a>().<a class="code" href="classarm__compute_1_1_tensor_info.xhtml#a78bf77b2d9b959259f77a32b9a412184">set_is_resizable</a>(<span class="keyword">true</span>);</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;}</div><div class="ttc" id="classarm__compute_1_1_tensor_info_xhtml_a78bf77b2d9b959259f77a32b9a412184"><div class="ttname"><a href="classarm__compute_1_1_tensor_info.xhtml#a78bf77b2d9b959259f77a32b9a412184">arm_compute::TensorInfo::set_is_resizable</a></div><div class="ttdeci">ITensorInfo &amp; set_is_resizable(bool is_resizable) override</div><div class="ttdoc">Set the flag whether the tensor size can be changed.</div><div class="ttdef"><b>Definition:</b> <a href="_tensor_info_8h_source.xhtml#l00280">TensorInfo.h:280</a></div></div>
<div class="ttc" id="classarm__compute_1_1_i_tensor_allocator_xhtml_a29737b25723597c9708c662c7088e6c3"><div class="ttname"><a href="classarm__compute_1_1_i_tensor_allocator.xhtml#a29737b25723597c9708c662c7088e6c3">arm_compute::ITensorAllocator::info</a></div><div class="ttdeci">TensorInfo &amp; info()</div><div class="ttdoc">Return a reference to the tensor's metadata.</div><div class="ttdef"><b>Definition:</b> <a href="_i_tensor_allocator_8cpp_source.xhtml#l00044">ITensorAllocator.cpp:44</a></div></div>
<div class="ttc" id="classarm__compute_1_1_c_l_memory_xhtml_a5e343ebd0fb1c7816e7abfee53d2578b"><div class="ttname"><a href="classarm__compute_1_1_c_l_memory.xhtml#a5e343ebd0fb1c7816e7abfee53d2578b">arm_compute::CLMemory::set_region</a></div><div class="ttdeci">void set_region(IMemoryRegion *region) final</div><div class="ttdoc">Sets a memory region.</div><div class="ttdef"><b>Definition:</b> <a href="_c_l_memory_8cpp_source.xhtml#l00069">CLMemory.cpp:69</a></div></div>
</div><!-- fragment -->
<p class="reference">References <a class="el" href="_i_tensor_allocator_8cpp_source.xhtml#l00044">ITensorAllocator::info()</a>, <a class="el" href="_tensor_info_8h_source.xhtml#l00280">TensorInfo::set_is_resizable()</a>, and <a class="el" href="_c_l_memory_8cpp_source.xhtml#l00069">CLMemory::set_region()</a>.</p>
<p class="reference">Referenced by <a class="el" href="_c_l_tensor_handle_8cpp_source.xhtml#l00046">CLTensorHandle::free()</a>, <a class="el" href="_c_l_winograd_convolution_layer_8cpp_source.xhtml#l00216">CLWinogradConvolutionLayer::prepare()</a>, <a class="el" href="_c_l_f_f_t_convolution_layer_8cpp_source.xhtml#l00336">CLFFTConvolutionLayer::prepare()</a>, <a class="el" href="_c_l_g_e_m_m_deconvolution_layer_8cpp_source.xhtml#l00334">CLGEMMDeconvolutionLayer::prepare()</a>, <a class="el" href="_c_l_direct_deconvolution_layer_8cpp_source.xhtml#l00185">CLDirectDeconvolutionLayer::prepare()</a>, <a class="el" href="_c_l_l_s_t_m_layer_quantized_8cpp_source.xhtml#l00512">CLLSTMLayerQuantized::prepare()</a>, <a class="el" href="_c_l_g_e_m_m_convolution_layer_8cpp_source.xhtml#l00600">CLGEMMConvolutionLayer::prepare()</a>, <a class="el" href="_c_l_tensor_handle_8cpp_source.xhtml#l00070">CLTensorHandle::release_if_unused()</a>, and <a class="el" href="tests_2validation_2_c_l_2_u_n_i_t_2_tensor_allocator_8cpp_source.xhtml#l00111">arm_compute::test::validation::TEST_CASE()</a>.</p>
</div>
</div>
<a id="aee45c9a6939cadf66a6e7d998c6f59df"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aee45c9a6939cadf66a6e7d998c6f59df">&#9670;&nbsp;</a></span>import_memory()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classarm__compute_1_1_status.xhtml">Status</a> import_memory </td>
<td>(</td>
<td class="paramtype">cl::Buffer&#160;</td>
<td class="paramname"><em>buffer</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Import an existing memory as a tensor's backing memory. </p>
<dl class="section warning"><dt>Warning</dt><dd>memory should have been created under the same context that ACL uses. </dd>
<dd>
memory is expected to be aligned with the device requirements. </dd>
<dd>
tensor shouldn't be memory managed. </dd>
<dd>
ownership of memory is not transferred. </dd>
<dd>
memory must be writable in case of in-place operations </dd>
<dd>
padding should be accounted by the client code. </dd></dl>
<dl class="section note"><dt>Note</dt><dd>buffer size will be checked to be compliant with total_size reported by <a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml" title="Store the tensor&#39;s metadata.">ITensorInfo</a>.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">buffer</td><td>Buffer to be used as backing memory</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>An error status </dd></dl>
<p class="definition">Definition at line <a class="el" href="_c_l_tensor_allocator_8cpp_source.xhtml#l00160">160</a> of file <a class="el" href="_c_l_tensor_allocator_8cpp_source.xhtml">CLTensorAllocator.cpp</a>.</p>
<div class="fragment"><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;{</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <a class="code" href="_error_8h.xhtml#a206d6e247e0957ac3dee45d27756fc25">ARM_COMPUTE_RETURN_ERROR_ON</a>(buffer.get() == <span class="keyword">nullptr</span>);</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <a class="code" href="_error_8h.xhtml#a206d6e247e0957ac3dee45d27756fc25">ARM_COMPUTE_RETURN_ERROR_ON</a>(buffer.getInfo&lt;CL_MEM_SIZE&gt;() &lt; <a class="code" href="classarm__compute_1_1_i_tensor_allocator.xhtml#a29737b25723597c9708c662c7088e6c3">info</a>().total_size());</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <a class="code" href="_error_8h.xhtml#a206d6e247e0957ac3dee45d27756fc25">ARM_COMPUTE_RETURN_ERROR_ON</a>(buffer.getInfo&lt;CL_MEM_CONTEXT&gt;().get() != <a class="code" href="classarm__compute_1_1_c_l_scheduler.xhtml#a9b58d0eb9a2af8e6d7908695e1557d6c">CLScheduler::get</a>().<a class="code" href="classarm__compute_1_1_c_l_scheduler.xhtml#a252f5440564c77d68459f2baa978f86a">context</a>().get());</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; <a class="code" href="_error_8h.xhtml#a206d6e247e0957ac3dee45d27756fc25">ARM_COMPUTE_RETURN_ERROR_ON</a>(_associated_memory_group != <span class="keyword">nullptr</span>);</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; _memory.<a class="code" href="classarm__compute_1_1_c_l_memory.xhtml#af2d30bc4b38a0f4703ff154a39f1b422">set_owned_region</a>(support::cpp14::make_unique&lt;CLBufferMemoryRegion&gt;(buffer));</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <a class="code" href="classarm__compute_1_1_i_tensor_allocator.xhtml#a29737b25723597c9708c662c7088e6c3">info</a>().<a class="code" href="classarm__compute_1_1_tensor_info.xhtml#a78bf77b2d9b959259f77a32b9a412184">set_is_resizable</a>(<span class="keyword">false</span>);</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <span class="keywordflow">return</span> Status{};</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;}</div><div class="ttc" id="classarm__compute_1_1_c_l_scheduler_xhtml_a9b58d0eb9a2af8e6d7908695e1557d6c"><div class="ttname"><a href="classarm__compute_1_1_c_l_scheduler.xhtml#a9b58d0eb9a2af8e6d7908695e1557d6c">arm_compute::CLScheduler::get</a></div><div class="ttdeci">static CLScheduler &amp; get()</div><div class="ttdoc">Access the scheduler singleton.</div><div class="ttdef"><b>Definition:</b> <a href="_c_l_scheduler_8cpp_source.xhtml#l00041">CLScheduler.cpp:41</a></div></div>
<div class="ttc" id="_error_8h_xhtml_a206d6e247e0957ac3dee45d27756fc25"><div class="ttname"><a href="_error_8h.xhtml#a206d6e247e0957ac3dee45d27756fc25">ARM_COMPUTE_RETURN_ERROR_ON</a></div><div class="ttdeci">#define ARM_COMPUTE_RETURN_ERROR_ON(cond)</div><div class="ttdoc">If the condition is true, an error is returned.</div><div class="ttdef"><b>Definition:</b> <a href="_error_8h_source.xhtml#l00244">Error.h:244</a></div></div>
<div class="ttc" id="classarm__compute_1_1_c_l_memory_xhtml_af2d30bc4b38a0f4703ff154a39f1b422"><div class="ttname"><a href="classarm__compute_1_1_c_l_memory.xhtml#af2d30bc4b38a0f4703ff154a39f1b422">arm_compute::CLMemory::set_owned_region</a></div><div class="ttdeci">void set_owned_region(std::unique_ptr&lt; IMemoryRegion &gt; region) final</div><div class="ttdoc">Sets a memory region.</div><div class="ttdef"><b>Definition:</b> <a href="_c_l_memory_8cpp_source.xhtml#l00076">CLMemory.cpp:76</a></div></div>
<div class="ttc" id="classarm__compute_1_1_tensor_info_xhtml_a78bf77b2d9b959259f77a32b9a412184"><div class="ttname"><a href="classarm__compute_1_1_tensor_info.xhtml#a78bf77b2d9b959259f77a32b9a412184">arm_compute::TensorInfo::set_is_resizable</a></div><div class="ttdeci">ITensorInfo &amp; set_is_resizable(bool is_resizable) override</div><div class="ttdoc">Set the flag whether the tensor size can be changed.</div><div class="ttdef"><b>Definition:</b> <a href="_tensor_info_8h_source.xhtml#l00280">TensorInfo.h:280</a></div></div>
<div class="ttc" id="classarm__compute_1_1_i_tensor_allocator_xhtml_a29737b25723597c9708c662c7088e6c3"><div class="ttname"><a href="classarm__compute_1_1_i_tensor_allocator.xhtml#a29737b25723597c9708c662c7088e6c3">arm_compute::ITensorAllocator::info</a></div><div class="ttdeci">TensorInfo &amp; info()</div><div class="ttdoc">Return a reference to the tensor's metadata.</div><div class="ttdef"><b>Definition:</b> <a href="_i_tensor_allocator_8cpp_source.xhtml#l00044">ITensorAllocator.cpp:44</a></div></div>
<div class="ttc" id="classarm__compute_1_1_c_l_scheduler_xhtml_a252f5440564c77d68459f2baa978f86a"><div class="ttname"><a href="classarm__compute_1_1_c_l_scheduler.xhtml#a252f5440564c77d68459f2baa978f86a">arm_compute::CLScheduler::context</a></div><div class="ttdeci">cl::Context &amp; context()</div><div class="ttdoc">Accessor for the associated CL context.</div><div class="ttdef"><b>Definition:</b> <a href="_c_l_scheduler_8h_source.xhtml#l00091">CLScheduler.h:91</a></div></div>
</div><!-- fragment -->
<p class="reference">References <a class="el" href="_error_8h_source.xhtml#l00244">ARM_COMPUTE_RETURN_ERROR_ON</a>, <a class="el" href="_c_l_scheduler_8h_source.xhtml#l00091">CLScheduler::context()</a>, <a class="el" href="_c_l_scheduler_8cpp_source.xhtml#l00041">CLScheduler::get()</a>, <a class="el" href="_i_tensor_allocator_8cpp_source.xhtml#l00044">ITensorAllocator::info()</a>, <a class="el" href="_tensor_info_8h_source.xhtml#l00280">TensorInfo::set_is_resizable()</a>, and <a class="el" href="_c_l_memory_8cpp_source.xhtml#l00076">CLMemory::set_owned_region()</a>.</p>
<p class="reference">Referenced by <a class="el" href="_c_l_f_f_t_convolution_layer_8cpp_source.xhtml#l00297">CLFFTConvolutionLayer::run()</a>, and <a class="el" href="tests_2validation_2_c_l_2_u_n_i_t_2_tensor_allocator_8cpp_source.xhtml#l00070">arm_compute::test::validation::TEST_CASE()</a>.</p>
</div>
</div>
<a id="a15eaecea13a8a49c8d259fddefcbd7ac"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a15eaecea13a8a49c8d259fddefcbd7ac">&#9670;&nbsp;</a></span>map()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint8_t * map </td>
<td>(</td>
<td class="paramtype">cl::CommandQueue &amp;&#160;</td>
<td class="paramname"><em>q</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>blocking</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Enqueue a map operation of the allocated buffer on the given queue. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<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>
<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>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The mapping address. </dd></dl>
<p class="definition">Definition at line <a class="el" href="_c_l_tensor_allocator_8cpp_source.xhtml#l00193">193</a> of file <a class="el" href="_c_l_tensor_allocator_8cpp_source.xhtml">CLTensorAllocator.cpp</a>.</p>
<div class="fragment"><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;{</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; <a class="code" href="_error_8h.xhtml#a54a6080c9f4df1f908e57a9bbb46f5da">ARM_COMPUTE_ERROR_ON</a>(_mapping != <span class="keyword">nullptr</span>);</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <a class="code" href="_error_8h.xhtml#a54a6080c9f4df1f908e57a9bbb46f5da">ARM_COMPUTE_ERROR_ON</a>(_memory.<a class="code" href="classarm__compute_1_1_c_l_memory.xhtml#a146cb960b44f4b1fb11ef4420382021a">region</a>() == <span class="keyword">nullptr</span>);</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <a class="code" href="_error_8h.xhtml#a54a6080c9f4df1f908e57a9bbb46f5da">ARM_COMPUTE_ERROR_ON</a>(_memory.<a class="code" href="classarm__compute_1_1_c_l_memory.xhtml#a146cb960b44f4b1fb11ef4420382021a">region</a>()-&gt;<a class="code" href="classarm__compute_1_1_i_memory_region.xhtml#af4cf95f81e1b269a31d2d9a7e0429a24">buffer</a>() != <span class="keyword">nullptr</span>);</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160;</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; _mapping = reinterpret_cast&lt;uint8_t *&gt;(_memory.<a class="code" href="classarm__compute_1_1_c_l_memory.xhtml#a4ca2850f9acbac8fb013038b4d9b684d">cl_region</a>()-&gt;<a class="code" href="classarm__compute_1_1_i_c_l_memory_region.xhtml#a929af627a6a0430539998d12024d6c69">map</a>(q, blocking));</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; <span class="keywordflow">return</span> _mapping;</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160;}</div><div class="ttc" id="_error_8h_xhtml_a54a6080c9f4df1f908e57a9bbb46f5da"><div class="ttname"><a href="_error_8h.xhtml#a54a6080c9f4df1f908e57a9bbb46f5da">ARM_COMPUTE_ERROR_ON</a></div><div class="ttdeci">#define ARM_COMPUTE_ERROR_ON(cond)</div><div class="ttdoc">If the condition is true then an error message is printed and an exception thrown.</div><div class="ttdef"><b>Definition:</b> <a href="_error_8h_source.xhtml#l00337">Error.h:337</a></div></div>
<div class="ttc" id="classarm__compute_1_1_i_memory_region_xhtml_af4cf95f81e1b269a31d2d9a7e0429a24"><div class="ttname"><a href="classarm__compute_1_1_i_memory_region.xhtml#af4cf95f81e1b269a31d2d9a7e0429a24">arm_compute::IMemoryRegion::buffer</a></div><div class="ttdeci">virtual void * buffer()=0</div><div class="ttdoc">Returns the pointer to the allocated data.</div></div>
<div class="ttc" id="classarm__compute_1_1_c_l_memory_xhtml_a146cb960b44f4b1fb11ef4420382021a"><div class="ttname"><a href="classarm__compute_1_1_c_l_memory.xhtml#a146cb960b44f4b1fb11ef4420382021a">arm_compute::CLMemory::region</a></div><div class="ttdeci">IMemoryRegion * region() final</div><div class="ttdoc">Region accessor.</div><div class="ttdef"><b>Definition:</b> <a href="_c_l_memory_8cpp_source.xhtml#l00059">CLMemory.cpp:59</a></div></div>
<div class="ttc" id="classarm__compute_1_1_c_l_memory_xhtml_a4ca2850f9acbac8fb013038b4d9b684d"><div class="ttname"><a href="classarm__compute_1_1_c_l_memory.xhtml#a4ca2850f9acbac8fb013038b4d9b684d">arm_compute::CLMemory::cl_region</a></div><div class="ttdeci">ICLMemoryRegion * cl_region()</div><div class="ttdoc">OpenCL Region accessor.</div><div class="ttdef"><b>Definition:</b> <a href="_c_l_memory_8cpp_source.xhtml#l00049">CLMemory.cpp:49</a></div></div>
<div class="ttc" id="classarm__compute_1_1_i_c_l_memory_region_xhtml_a929af627a6a0430539998d12024d6c69"><div class="ttname"><a href="classarm__compute_1_1_i_c_l_memory_region.xhtml#a929af627a6a0430539998d12024d6c69">arm_compute::ICLMemoryRegion::map</a></div><div class="ttdeci">virtual void * map(cl::CommandQueue &amp;q, bool blocking)=0</div><div class="ttdoc">Enqueue a map operation of the allocated buffer on the given queue.</div></div>
</div><!-- fragment -->
<p class="reference">References <a class="el" href="_error_8h_source.xhtml#l00337">ARM_COMPUTE_ERROR_ON</a>, <a class="el" href="classarm__compute_1_1_i_memory_region.xhtml#af4cf95f81e1b269a31d2d9a7e0429a24">IMemoryRegion::buffer()</a>, <a class="el" href="_c_l_memory_8cpp_source.xhtml#l00049">CLMemory::cl_region()</a>, <a class="el" href="classarm__compute_1_1_i_c_l_memory_region.xhtml#a929af627a6a0430539998d12024d6c69">ICLMemoryRegion::map()</a>, and <a class="el" href="_c_l_memory_8cpp_source.xhtml#l00059">CLMemory::region()</a>.</p>
</div>
</div>
<a id="a74c9c61e0615334fdeb176f21828a98f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a74c9c61e0615334fdeb176f21828a98f">&#9670;&nbsp;</a></span>operator=() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classarm__compute_1_1_c_l_tensor_allocator.xhtml">CLTensorAllocator</a>&amp; operator= </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classarm__compute_1_1_c_l_tensor_allocator.xhtml">CLTensorAllocator</a> &amp;&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">delete</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Prevent instances of this class from being copy assigned (As this class contains pointers) </p>
</div>
</div>
<a id="aba115eb9c458f9e99b8c3fa3975a74a3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aba115eb9c458f9e99b8c3fa3975a74a3">&#9670;&nbsp;</a></span>operator=() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classarm__compute_1_1_c_l_tensor_allocator.xhtml">CLTensorAllocator</a>&amp; operator= </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classarm__compute_1_1_c_l_tensor_allocator.xhtml">CLTensorAllocator</a> &amp;&amp;&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">default</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Allow instances of this class to be moved. </p>
</div>
</div>
<a id="a5c27e81a1ad958e4de947c1da77f4cf1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5c27e81a1ad958e4de947c1da77f4cf1">&#9670;&nbsp;</a></span>quantization()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="structarm__compute_1_1_c_l_quantization.xhtml">CLQuantization</a> quantization </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Wrapped quantization info data accessor. </p>
<dl class="section return"><dt>Returns</dt><dd>A wrapped quantization info object. </dd></dl>
<p class="definition">Definition at line <a class="el" href="_c_l_tensor_allocator_8cpp_source.xhtml#l00104">104</a> of file <a class="el" href="_c_l_tensor_allocator_8cpp_source.xhtml">CLTensorAllocator.cpp</a>.</p>
<div class="fragment"><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;{</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <span class="keywordflow">return</span> { &amp;_scale, &amp;_offset };</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;}</div></div><!-- fragment -->
<p class="reference">Referenced by <a class="el" href="_c_l_tensor_8cpp_source.xhtml#l00050">CLTensor::quantization()</a>.</p>
</div>
</div>
<a id="ae1746928cddc235a148f11132f0fa8f2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae1746928cddc235a148f11132f0fa8f2">&#9670;&nbsp;</a></span>set_associated_memory_group()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void set_associated_memory_group </td>
<td>(</td>
<td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#ac87d48489667d7ff7fc4cc7d0d12c52e">CLMemoryGroup</a> *&#160;</td>
<td class="paramname"><em>associated_memory_group</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Associates the tensor with a memory group. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<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>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="_c_l_tensor_allocator_8cpp_source.xhtml#l00173">173</a> of file <a class="el" href="_c_l_tensor_allocator_8cpp_source.xhtml">CLTensorAllocator.cpp</a>.</p>
<div class="fragment"><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;{</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <a class="code" href="_error_8h.xhtml#a54a6080c9f4df1f908e57a9bbb46f5da">ARM_COMPUTE_ERROR_ON</a>(associated_memory_group == <span class="keyword">nullptr</span>);</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <a class="code" href="_error_8h.xhtml#a54a6080c9f4df1f908e57a9bbb46f5da">ARM_COMPUTE_ERROR_ON</a>(_associated_memory_group != <span class="keyword">nullptr</span>);</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <a class="code" href="_error_8h.xhtml#a54a6080c9f4df1f908e57a9bbb46f5da">ARM_COMPUTE_ERROR_ON</a>(_memory.<a class="code" href="classarm__compute_1_1_c_l_memory.xhtml#a146cb960b44f4b1fb11ef4420382021a">region</a>() != <span class="keyword">nullptr</span> &amp;&amp; _memory.<a class="code" href="classarm__compute_1_1_c_l_memory.xhtml#a4ca2850f9acbac8fb013038b4d9b684d">cl_region</a>()-&gt;<a class="code" href="classarm__compute_1_1_i_c_l_memory_region.xhtml#ac7e247b94ceae35db2a172961ab83df9">cl_data</a>().get() != <span class="keyword">nullptr</span>);</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; _associated_memory_group = associated_memory_group;</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;}</div><div class="ttc" id="_error_8h_xhtml_a54a6080c9f4df1f908e57a9bbb46f5da"><div class="ttname"><a href="_error_8h.xhtml#a54a6080c9f4df1f908e57a9bbb46f5da">ARM_COMPUTE_ERROR_ON</a></div><div class="ttdeci">#define ARM_COMPUTE_ERROR_ON(cond)</div><div class="ttdoc">If the condition is true then an error message is printed and an exception thrown.</div><div class="ttdef"><b>Definition:</b> <a href="_error_8h_source.xhtml#l00337">Error.h:337</a></div></div>
<div class="ttc" id="classarm__compute_1_1_i_c_l_memory_region_xhtml_ac7e247b94ceae35db2a172961ab83df9"><div class="ttname"><a href="classarm__compute_1_1_i_c_l_memory_region.xhtml#ac7e247b94ceae35db2a172961ab83df9">arm_compute::ICLMemoryRegion::cl_data</a></div><div class="ttdeci">const cl::Buffer &amp; cl_data() const</div><div class="ttdoc">Returns the underlying CL buffer.</div><div class="ttdef"><b>Definition:</b> <a href="_c_l_memory_region_8cpp_source.xhtml#l00036">CLMemoryRegion.cpp:36</a></div></div>
<div class="ttc" id="classarm__compute_1_1_c_l_memory_xhtml_a146cb960b44f4b1fb11ef4420382021a"><div class="ttname"><a href="classarm__compute_1_1_c_l_memory.xhtml#a146cb960b44f4b1fb11ef4420382021a">arm_compute::CLMemory::region</a></div><div class="ttdeci">IMemoryRegion * region() final</div><div class="ttdoc">Region accessor.</div><div class="ttdef"><b>Definition:</b> <a href="_c_l_memory_8cpp_source.xhtml#l00059">CLMemory.cpp:59</a></div></div>
<div class="ttc" id="classarm__compute_1_1_c_l_memory_xhtml_a4ca2850f9acbac8fb013038b4d9b684d"><div class="ttname"><a href="classarm__compute_1_1_c_l_memory.xhtml#a4ca2850f9acbac8fb013038b4d9b684d">arm_compute::CLMemory::cl_region</a></div><div class="ttdeci">ICLMemoryRegion * cl_region()</div><div class="ttdoc">OpenCL Region accessor.</div><div class="ttdef"><b>Definition:</b> <a href="_c_l_memory_8cpp_source.xhtml#l00049">CLMemory.cpp:49</a></div></div>
</div><!-- fragment -->
<p class="reference">References <a class="el" href="_error_8h_source.xhtml#l00337">ARM_COMPUTE_ERROR_ON</a>, <a class="el" href="_c_l_memory_region_8cpp_source.xhtml#l00036">ICLMemoryRegion::cl_data()</a>, <a class="el" href="_c_l_memory_8cpp_source.xhtml#l00049">CLMemory::cl_region()</a>, and <a class="el" href="_c_l_memory_8cpp_source.xhtml#l00059">CLMemory::region()</a>.</p>
</div>
</div>
<a id="a34b854d640d247bd7422f60ca2f3a05c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a34b854d640d247bd7422f60ca2f3a05c">&#9670;&nbsp;</a></span>unmap()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void unmap </td>
<td>(</td>
<td class="paramtype">cl::CommandQueue &amp;&#160;</td>
<td class="paramname"><em>q</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t *&#160;</td>
<td class="paramname"><em>mapping</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Enqueue an unmap operation of the allocated buffer on the given queue. </p>
<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>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<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>
<tr><td class="paramdir">[in]</td><td class="paramname">mapping</td><td>The cpu mapping to unmap. </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="_c_l_tensor_allocator_8cpp_source.xhtml#l00203">203</a> of file <a class="el" href="_c_l_tensor_allocator_8cpp_source.xhtml">CLTensorAllocator.cpp</a>.</p>
<div class="fragment"><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;{</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <a class="code" href="_error_8h.xhtml#a54a6080c9f4df1f908e57a9bbb46f5da">ARM_COMPUTE_ERROR_ON</a>(_mapping == <span class="keyword">nullptr</span>);</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <a class="code" href="_error_8h.xhtml#a54a6080c9f4df1f908e57a9bbb46f5da">ARM_COMPUTE_ERROR_ON</a>(_mapping != mapping);</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <a class="code" href="_error_8h.xhtml#a54a6080c9f4df1f908e57a9bbb46f5da">ARM_COMPUTE_ERROR_ON</a>(_memory.<a class="code" href="classarm__compute_1_1_c_l_memory.xhtml#a146cb960b44f4b1fb11ef4420382021a">region</a>() == <span class="keyword">nullptr</span>);</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; <a class="code" href="_error_8h.xhtml#a54a6080c9f4df1f908e57a9bbb46f5da">ARM_COMPUTE_ERROR_ON</a>(_memory.<a class="code" href="classarm__compute_1_1_c_l_memory.xhtml#a146cb960b44f4b1fb11ef4420382021a">region</a>()-&gt;<a class="code" href="classarm__compute_1_1_i_memory_region.xhtml#af4cf95f81e1b269a31d2d9a7e0429a24">buffer</a>() == <span class="keyword">nullptr</span>);</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; <a class="code" href="_error_8h.xhtml#a6dc630a6ae9cc063b3924bcea8dee9d6">ARM_COMPUTE_UNUSED</a>(mapping);</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; _memory.<a class="code" href="classarm__compute_1_1_c_l_memory.xhtml#a4ca2850f9acbac8fb013038b4d9b684d">cl_region</a>()-&gt;<a class="code" href="classarm__compute_1_1_i_c_l_memory_region.xhtml#a0ee6b952accaff0f7e8e61bda7889102">unmap</a>(q);</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; _mapping = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160;}</div><div class="ttc" id="_error_8h_xhtml_a54a6080c9f4df1f908e57a9bbb46f5da"><div class="ttname"><a href="_error_8h.xhtml#a54a6080c9f4df1f908e57a9bbb46f5da">ARM_COMPUTE_ERROR_ON</a></div><div class="ttdeci">#define ARM_COMPUTE_ERROR_ON(cond)</div><div class="ttdoc">If the condition is true then an error message is printed and an exception thrown.</div><div class="ttdef"><b>Definition:</b> <a href="_error_8h_source.xhtml#l00337">Error.h:337</a></div></div>
<div class="ttc" id="classarm__compute_1_1_i_memory_region_xhtml_af4cf95f81e1b269a31d2d9a7e0429a24"><div class="ttname"><a href="classarm__compute_1_1_i_memory_region.xhtml#af4cf95f81e1b269a31d2d9a7e0429a24">arm_compute::IMemoryRegion::buffer</a></div><div class="ttdeci">virtual void * buffer()=0</div><div class="ttdoc">Returns the pointer to the allocated data.</div></div>
<div class="ttc" id="_error_8h_xhtml_a6dc630a6ae9cc063b3924bcea8dee9d6"><div class="ttname"><a href="_error_8h.xhtml#a6dc630a6ae9cc063b3924bcea8dee9d6">ARM_COMPUTE_UNUSED</a></div><div class="ttdeci">#define ARM_COMPUTE_UNUSED(...)</div><div class="ttdoc">To avoid unused variables warnings.</div><div class="ttdef"><b>Definition:</b> <a href="_error_8h_source.xhtml#l00160">Error.h:160</a></div></div>
<div class="ttc" id="classarm__compute_1_1_c_l_memory_xhtml_a146cb960b44f4b1fb11ef4420382021a"><div class="ttname"><a href="classarm__compute_1_1_c_l_memory.xhtml#a146cb960b44f4b1fb11ef4420382021a">arm_compute::CLMemory::region</a></div><div class="ttdeci">IMemoryRegion * region() final</div><div class="ttdoc">Region accessor.</div><div class="ttdef"><b>Definition:</b> <a href="_c_l_memory_8cpp_source.xhtml#l00059">CLMemory.cpp:59</a></div></div>
<div class="ttc" id="classarm__compute_1_1_c_l_memory_xhtml_a4ca2850f9acbac8fb013038b4d9b684d"><div class="ttname"><a href="classarm__compute_1_1_c_l_memory.xhtml#a4ca2850f9acbac8fb013038b4d9b684d">arm_compute::CLMemory::cl_region</a></div><div class="ttdeci">ICLMemoryRegion * cl_region()</div><div class="ttdoc">OpenCL Region accessor.</div><div class="ttdef"><b>Definition:</b> <a href="_c_l_memory_8cpp_source.xhtml#l00049">CLMemory.cpp:49</a></div></div>
<div class="ttc" id="classarm__compute_1_1_i_c_l_memory_region_xhtml_a0ee6b952accaff0f7e8e61bda7889102"><div class="ttname"><a href="classarm__compute_1_1_i_c_l_memory_region.xhtml#a0ee6b952accaff0f7e8e61bda7889102">arm_compute::ICLMemoryRegion::unmap</a></div><div class="ttdeci">virtual void unmap(cl::CommandQueue &amp;q)=0</div><div class="ttdoc">Enqueue an unmap operation of the allocated buffer on the given queue.</div></div>
</div><!-- fragment -->
<p class="reference">References <a class="el" href="_error_8h_source.xhtml#l00337">ARM_COMPUTE_ERROR_ON</a>, <a class="el" href="_error_8h_source.xhtml#l00160">ARM_COMPUTE_UNUSED</a>, <a class="el" href="classarm__compute_1_1_i_memory_region.xhtml#af4cf95f81e1b269a31d2d9a7e0429a24">IMemoryRegion::buffer()</a>, <a class="el" href="_c_l_memory_8cpp_source.xhtml#l00049">CLMemory::cl_region()</a>, <a class="el" href="_c_l_memory_8cpp_source.xhtml#l00059">CLMemory::region()</a>, and <a class="el" href="classarm__compute_1_1_i_c_l_memory_region.xhtml#a0ee6b952accaff0f7e8e61bda7889102">ICLMemoryRegion::unmap()</a>.</p>
</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li>arm_compute/runtime/CL/<a class="el" href="_c_l_tensor_allocator_8h_source.xhtml">CLTensorAllocator.h</a></li>
<li>src/runtime/CL/<a class="el" href="_c_l_tensor_allocator_8cpp_source.xhtml">CLTensorAllocator.cpp</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<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>
<li class="footer">Generated on Mon Sep 2 2019 11:47:34 for Compute Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
</ul>
</div>
</body>
</html>