<!-- HTML header for doxygen 1.8.17-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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.17"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Arm NN: src/backends/cl/ClContextControl.hpp Source File</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>
<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="customdoxygen.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="ArmNN" src="Arm_NN_horizontal_blue.png" style="max-width: 15rem; margin-top: .5rem; margin-left 13px"/>
  <td id="projectalign" style="padding-left: 0.9em;">
   <div id="projectname">
   &#160;<span id="projectnumber">24.05</span>
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.17 -->
<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('_cl_context_control_8hpp_source.html',''); initResizable(); });
/* @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="headertitle">
<div class="title">ClContextControl.hpp</div>  </div>
</div><!--header-->
<div class="contents">
<a href="_cl_context_control_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">//</span></div>
<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment">// Copyright © 2017, 2023 Arm Ltd and Contributors. All rights reserved.</span></div>
<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment">// SPDX-License-Identifier: MIT</span></div>
<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment">//</span></div>
<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="preprocessor">#pragma once</span></div>
<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160; </div>
<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="_arm_compute_tuning_utils_8hpp.html">aclCommon/ArmComputeTuningUtils.hpp</a>&gt;</span></div>
<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160; </div>
<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacearmnn.html">armnn</a></div>
<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;{</div>
<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160; </div>
<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment">// ARM Compute OpenCL context control.</span></div>
<div class="line"><a name="l00013"></a><span class="lineno"><a class="line" href="classarmnn_1_1_cl_context_control.html">   13</a></span>&#160;<span class="keyword">class </span><a class="code" href="classarmnn_1_1_cl_context_control.html">ClContextControl</a></div>
<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;{</div>
<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="keyword">public</span>:</div>
<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160; </div>
<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;    <a class="code" href="classarmnn_1_1_cl_context_control.html#a743aa7675f0efe29e0d3b9ec9971fc7c">ClContextControl</a>(arm_compute::CLTuner* = <span class="keyword">nullptr</span>,</div>
<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;                     arm_compute::CLGEMMHeuristicsHandle* = <span class="keyword">nullptr</span>,</div>
<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;                     <span class="keywordtype">bool</span> profilingEnabled = <span class="keyword">false</span>);</div>
<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160; </div>
<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;    <span class="keyword">virtual</span> <a class="code" href="classarmnn_1_1_cl_context_control.html#a9d4f5387dafdafbb86aac00586c58a79">~ClContextControl</a>();</div>
<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160; </div>
<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classarmnn_1_1_cl_context_control.html#a80ef362b80b514620da9fd8f6a3ba518">LoadOpenClRuntime</a>();</div>
<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160; </div>
<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;    <span class="comment">// Users should call this (after freeing all of the cl::Context objects they use)</span></div>
<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;    <span class="comment">// to release the cached memory used by the compute library.</span></div>
<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classarmnn_1_1_cl_context_control.html#a48f639543a69fe342fec2021b9dfd1d4">UnloadOpenClRuntime</a>();</div>
<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160; </div>
<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;    <span class="comment">// Clear the CL cache, without losing the tuned parameter settings.</span></div>
<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classarmnn_1_1_cl_context_control.html#a8f6d5a750a23d418fee0210de4e85c13">ClearClCache</a>();</div>
<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160; </div>
<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;<span class="keyword">private</span>:</div>
<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160; </div>
<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;    <span class="keywordtype">void</span> DoLoadOpenClRuntime(<span class="keywordtype">bool</span> updateTunedParameters);</div>
<div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160; </div>
<div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;    arm_compute::CLTuner* m_Tuner;</div>
<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;    arm_compute::CLGEMMHeuristicsHandle* m_HeuristicsHandle;</div>
<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160; </div>
<div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;    <span class="keywordtype">bool</span> m_ProfilingEnabled;</div>
<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;};</div>
<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160; </div>
<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;} <span class="comment">// namespace armnn</span></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<div class="ttc" id="aclassarmnn_1_1_cl_context_control_html_a743aa7675f0efe29e0d3b9ec9971fc7c"><div class="ttname"><a href="classarmnn_1_1_cl_context_control.html#a743aa7675f0efe29e0d3b9ec9971fc7c">armnn::ClContextControl::ClContextControl</a></div><div class="ttdeci">ClContextControl(arm_compute::CLTuner *=nullptr, arm_compute::CLGEMMHeuristicsHandle *=nullptr, bool profilingEnabled=false)</div><div class="ttdef"><b>Definition:</b> <a href="_cl_context_control_8cpp_source.html#l00027">ClContextControl.cpp:27</a></div></div>
<div class="ttc" id="aclassarmnn_1_1_cl_context_control_html_a48f639543a69fe342fec2021b9dfd1d4"><div class="ttname"><a href="classarmnn_1_1_cl_context_control.html#a48f639543a69fe342fec2021b9dfd1d4">armnn::ClContextControl::UnloadOpenClRuntime</a></div><div class="ttdeci">void UnloadOpenClRuntime()</div><div class="ttdef"><b>Definition:</b> <a href="_cl_context_control_8cpp_source.html#l00089">ClContextControl.cpp:89</a></div></div>
<div class="ttc" id="aclassarmnn_1_1_cl_context_control_html"><div class="ttname"><a href="classarmnn_1_1_cl_context_control.html">armnn::ClContextControl</a></div><div class="ttdef"><b>Definition:</b> <a href="_cl_context_control_8hpp_source.html#l00013">ClContextControl.hpp:13</a></div></div>
<div class="ttc" id="aclassarmnn_1_1_cl_context_control_html_a80ef362b80b514620da9fd8f6a3ba518"><div class="ttname"><a href="classarmnn_1_1_cl_context_control.html#a80ef362b80b514620da9fd8f6a3ba518">armnn::ClContextControl::LoadOpenClRuntime</a></div><div class="ttdeci">void LoadOpenClRuntime()</div><div class="ttdef"><b>Definition:</b> <a href="_cl_context_control_8cpp_source.html#l00084">ClContextControl.cpp:84</a></div></div>
<div class="ttc" id="anamespacearmnn_html"><div class="ttname"><a href="namespacearmnn.html">armnn</a></div><div class="ttdoc">Copyright (c) 2021 ARM Limited and Contributors.</div><div class="ttdef"><b>Definition:</b> <a href="01__00__quick__start_8dox_source.html#l00006">01_00_quick_start.dox:6</a></div></div>
<div class="ttc" id="aclassarmnn_1_1_cl_context_control_html_a8f6d5a750a23d418fee0210de4e85c13"><div class="ttname"><a href="classarmnn_1_1_cl_context_control.html#a8f6d5a750a23d418fee0210de4e85c13">armnn::ClContextControl::ClearClCache</a></div><div class="ttdeci">void ClearClCache()</div><div class="ttdef"><b>Definition:</b> <a href="_cl_context_control_8cpp_source.html#l00156">ClContextControl.cpp:156</a></div></div>
<div class="ttc" id="aclassarmnn_1_1_cl_context_control_html_a9d4f5387dafdafbb86aac00586c58a79"><div class="ttname"><a href="classarmnn_1_1_cl_context_control.html#a9d4f5387dafdafbb86aac00586c58a79">armnn::ClContextControl::~ClContextControl</a></div><div class="ttdeci">virtual ~ClContextControl()</div><div class="ttdef"><b>Definition:</b> <a href="_cl_context_control_8cpp_source.html#l00065">ClContextControl.cpp:65</a></div></div>
<div class="ttc" id="a_arm_compute_tuning_utils_8hpp_html"><div class="ttname"><a href="_arm_compute_tuning_utils_8hpp.html">ArmComputeTuningUtils.hpp</a></div></div>
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_0f3cdec46afbc61a1ded8e1687c9c9a0.html">backends</a></li><li class="navelem"><a class="el" href="dir_1ad86c6d39ab715a831555571b9e98a5.html">cl</a></li><li class="navelem"><a class="el" href="_cl_context_control_8hpp.html">ClContextControl.hpp</a></li>
    <li class="footer">Generated on Thu May 16 2024 09:31:46 for Arm NN by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.17 </li>
  </ul>
</div>
</body>
</html>
