blob: e68ff2cef6423de7798e45c54aedd92022220ec6 [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: CLKernelLibrary 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">20.02.1</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_kernel_library.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> &#124;
<a href="#pub-static-methods">Static Public Member Functions</a> </div>
<div class="headertitle">
<div class="title">CLKernelLibrary Class Reference<span class="mlabels"><span class="mlabel">final</span></span></div> </div>
</div><!--header-->
<div class="contents">
<p><a class="el" href="classarm__compute_1_1_c_l_kernel_library.xhtml" title="CLKernelLibrary class.">CLKernelLibrary</a> class.
<a href="classarm__compute_1_1_c_l_kernel_library.xhtml#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="_c_l_kernel_library_8h_source.xhtml">CLKernelLibrary.h</a>&gt;</code></p>
<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:ab730a7c13cec1ffaa7e475eff6924c12"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_kernel_library.xhtml#ab730a7c13cec1ffaa7e475eff6924c12">CLKernelLibrary</a> ()</td></tr>
<tr class="memdesc:ab730a7c13cec1ffaa7e475eff6924c12"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default Constructor. <a href="#ab730a7c13cec1ffaa7e475eff6924c12">More...</a><br /></td></tr>
<tr class="separator:ab730a7c13cec1ffaa7e475eff6924c12"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a670869004281695200784de4648a4e1b"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_kernel_library.xhtml#a670869004281695200784de4648a4e1b">CLKernelLibrary</a> (const <a class="el" href="classarm__compute_1_1_c_l_kernel_library.xhtml">CLKernelLibrary</a> &amp;)=delete</td></tr>
<tr class="memdesc:a670869004281695200784de4648a4e1b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Prevent instances of this class from being copied. <a href="#a670869004281695200784de4648a4e1b">More...</a><br /></td></tr>
<tr class="separator:a670869004281695200784de4648a4e1b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a54fb81956f9fb1c25b279e34e1e7d966"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classarm__compute_1_1_c_l_kernel_library.xhtml">CLKernelLibrary</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_kernel_library.xhtml#a54fb81956f9fb1c25b279e34e1e7d966">operator=</a> (const <a class="el" href="classarm__compute_1_1_c_l_kernel_library.xhtml">CLKernelLibrary</a> &amp;)=delete</td></tr>
<tr class="memdesc:a54fb81956f9fb1c25b279e34e1e7d966"><td class="mdescLeft">&#160;</td><td class="mdescRight">Prevent instances of this class from being copied. <a href="#a54fb81956f9fb1c25b279e34e1e7d966">More...</a><br /></td></tr>
<tr class="separator:a54fb81956f9fb1c25b279e34e1e7d966"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9f976367edcd9ab787375373e050b94b"><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_kernel_library.xhtml#a9f976367edcd9ab787375373e050b94b">init</a> (std::string kernel_path, cl::Context <a class="el" href="classarm__compute_1_1_c_l_kernel_library.xhtml#a86409f541991c3ac377c2a6b7d1f832d">context</a>, cl::Device device)</td></tr>
<tr class="memdesc:a9f976367edcd9ab787375373e050b94b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialises the kernel library. <a href="#a9f976367edcd9ab787375373e050b94b">More...</a><br /></td></tr>
<tr class="separator:a9f976367edcd9ab787375373e050b94b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a66a558a56f5d0dcd6305c405ebc38cc2"><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_kernel_library.xhtml#a66a558a56f5d0dcd6305c405ebc38cc2">set_kernel_path</a> (const std::string &amp;kernel_path)</td></tr>
<tr class="memdesc:a66a558a56f5d0dcd6305c405ebc38cc2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the path that the kernels reside in. <a href="#a66a558a56f5d0dcd6305c405ebc38cc2">More...</a><br /></td></tr>
<tr class="separator:a66a558a56f5d0dcd6305c405ebc38cc2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad7395c158d8e31b9af211b9bc1f65a08"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_kernel_library.xhtml#ad7395c158d8e31b9af211b9bc1f65a08">get_kernel_path</a> ()</td></tr>
<tr class="memdesc:ad7395c158d8e31b9af211b9bc1f65a08"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the path that the kernels reside in. <a href="#ad7395c158d8e31b9af211b9bc1f65a08">More...</a><br /></td></tr>
<tr class="separator:ad7395c158d8e31b9af211b9bc1f65a08"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a44e90c4fa1204a708499ece56d4c82f0"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_kernel_library.xhtml#a44e90c4fa1204a708499ece56d4c82f0">get_program_source</a> (const std::string &amp;program_name)</td></tr>
<tr class="memdesc:a44e90c4fa1204a708499ece56d4c82f0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the source of the selected program. <a href="#a44e90c4fa1204a708499ece56d4c82f0">More...</a><br /></td></tr>
<tr class="separator:a44e90c4fa1204a708499ece56d4c82f0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a293edc1bbcbddffb7228ac97917ed107"><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_kernel_library.xhtml#a293edc1bbcbddffb7228ac97917ed107">set_context</a> (cl::Context <a class="el" href="classarm__compute_1_1_c_l_kernel_library.xhtml#a86409f541991c3ac377c2a6b7d1f832d">context</a>)</td></tr>
<tr class="memdesc:a293edc1bbcbddffb7228ac97917ed107"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the CL context used to create programs. <a href="#a293edc1bbcbddffb7228ac97917ed107">More...</a><br /></td></tr>
<tr class="separator:a293edc1bbcbddffb7228ac97917ed107"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a86409f541991c3ac377c2a6b7d1f832d"><td class="memItemLeft" align="right" valign="top">cl::Context &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_kernel_library.xhtml#a86409f541991c3ac377c2a6b7d1f832d">context</a> ()</td></tr>
<tr class="memdesc:a86409f541991c3ac377c2a6b7d1f832d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Accessor for the associated CL context. <a href="#a86409f541991c3ac377c2a6b7d1f832d">More...</a><br /></td></tr>
<tr class="separator:a86409f541991c3ac377c2a6b7d1f832d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a895fb7685c4864aa98b63ddb60f929bb"><td class="memItemLeft" align="right" valign="top">cl::Device &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_kernel_library.xhtml#a895fb7685c4864aa98b63ddb60f929bb">get_device</a> ()</td></tr>
<tr class="memdesc:a895fb7685c4864aa98b63ddb60f929bb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the CL device for which the programs are created. <a href="#a895fb7685c4864aa98b63ddb60f929bb">More...</a><br /></td></tr>
<tr class="separator:a895fb7685c4864aa98b63ddb60f929bb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5a6865d04c8d3348860f3cb8100fdb97"><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_kernel_library.xhtml#a5a6865d04c8d3348860f3cb8100fdb97">set_device</a> (cl::Device device)</td></tr>
<tr class="memdesc:a5a6865d04c8d3348860f3cb8100fdb97"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the CL device for which the programs are created. <a href="#a5a6865d04c8d3348860f3cb8100fdb97">More...</a><br /></td></tr>
<tr class="separator:a5a6865d04c8d3348860f3cb8100fdb97"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aef78b2e57b5203f8a184465e2da020ef"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_kernel_library.xhtml#aef78b2e57b5203f8a184465e2da020ef">get_device_version</a> ()</td></tr>
<tr class="memdesc:aef78b2e57b5203f8a184465e2da020ef"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the device version. <a href="#aef78b2e57b5203f8a184465e2da020ef">More...</a><br /></td></tr>
<tr class="separator:aef78b2e57b5203f8a184465e2da020ef"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a70696e3d56dcbcdc1f493dec744bc581"><td class="memItemLeft" align="right" valign="top">cl_uint&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_kernel_library.xhtml#a70696e3d56dcbcdc1f493dec744bc581">get_num_compute_units</a> ()</td></tr>
<tr class="memdesc:a70696e3d56dcbcdc1f493dec744bc581"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the maximum number of compute units in the device. <a href="#a70696e3d56dcbcdc1f493dec744bc581">More...</a><br /></td></tr>
<tr class="separator:a70696e3d56dcbcdc1f493dec744bc581"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8c2942ccd8b3f3b82e3edb7950a9e414"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classarm__compute_1_1_kernel.xhtml">Kernel</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_kernel_library.xhtml#a8c2942ccd8b3f3b82e3edb7950a9e414">create_kernel</a> (const std::string &amp;<a class="el" href="_c_l_im2_col_kernel_8cpp.xhtml#a624a24e6d361fe7b8b8b2f6b375683a4">kernel_name</a>, const StringSet &amp;build_options_set={}) const</td></tr>
<tr class="memdesc:a8c2942ccd8b3f3b82e3edb7950a9e414"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a kernel from the kernel library. <a href="#a8c2942ccd8b3f3b82e3edb7950a9e414">More...</a><br /></td></tr>
<tr class="separator:a8c2942ccd8b3f3b82e3edb7950a9e414"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaeda307cc2131afa8a4764e38373f94e"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_kernel_library.xhtml#aaeda307cc2131afa8a4764e38373f94e">max_local_workgroup_size</a> (const cl::Kernel &amp;kernel) const</td></tr>
<tr class="memdesc:aaeda307cc2131afa8a4764e38373f94e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Find the maximum number of local work items in a workgroup can be supported for the kernel. <a href="#aaeda307cc2131afa8a4764e38373f94e">More...</a><br /></td></tr>
<tr class="separator:aaeda307cc2131afa8a4764e38373f94e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adb48a1da7dc6b6f3c1a424d21e1ac1f8"><td class="memItemLeft" align="right" valign="top">cl::NDRange&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_kernel_library.xhtml#adb48a1da7dc6b6f3c1a424d21e1ac1f8">default_ndrange</a> () const</td></tr>
<tr class="memdesc:adb48a1da7dc6b6f3c1a424d21e1ac1f8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the default NDRange for the device. <a href="#adb48a1da7dc6b6f3c1a424d21e1ac1f8">More...</a><br /></td></tr>
<tr class="separator:adb48a1da7dc6b6f3c1a424d21e1ac1f8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0ad613086cc79a2e32d5b87bcefc7488"><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_kernel_library.xhtml#a0ad613086cc79a2e32d5b87bcefc7488">clear_programs_cache</a> ()</td></tr>
<tr class="memdesc:a0ad613086cc79a2e32d5b87bcefc7488"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clear the library's cache of binary programs. <a href="#a0ad613086cc79a2e32d5b87bcefc7488">More...</a><br /></td></tr>
<tr class="separator:a0ad613086cc79a2e32d5b87bcefc7488"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a54bb195c770b747d87af7506c2032aa4"><td class="memItemLeft" align="right" valign="top">const std::map&lt; std::string, cl::Program &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_kernel_library.xhtml#a54bb195c770b747d87af7506c2032aa4">get_built_programs</a> () const</td></tr>
<tr class="memdesc:a54bb195c770b747d87af7506c2032aa4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Access the cache of built OpenCL programs. <a href="#a54bb195c770b747d87af7506c2032aa4">More...</a><br /></td></tr>
<tr class="separator:a54bb195c770b747d87af7506c2032aa4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1e6726708fe8f69a84845af570a6cadc"><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_kernel_library.xhtml#a1e6726708fe8f69a84845af570a6cadc">add_built_program</a> (const std::string &amp;built_program_name, const cl::Program &amp;program)</td></tr>
<tr class="memdesc:a1e6726708fe8f69a84845af570a6cadc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add a new built program to the cache. <a href="#a1e6726708fe8f69a84845af570a6cadc">More...</a><br /></td></tr>
<tr class="separator:a1e6726708fe8f69a84845af570a6cadc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4f51d241825bd6710fe81b581068ba1e"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_kernel_library.xhtml#a4f51d241825bd6710fe81b581068ba1e">fp16_supported</a> () const</td></tr>
<tr class="memdesc:a4f51d241825bd6710fe81b581068ba1e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns true if FP16 is supported by the CL device. <a href="#a4f51d241825bd6710fe81b581068ba1e">More...</a><br /></td></tr>
<tr class="separator:a4f51d241825bd6710fe81b581068ba1e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7406f704be6891f5a9a1c6dbc3e882df"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_kernel_library.xhtml#a7406f704be6891f5a9a1c6dbc3e882df">int64_base_atomics_supported</a> () const</td></tr>
<tr class="memdesc:a7406f704be6891f5a9a1c6dbc3e882df"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns true if int64_base_atomics extension is supported by the CL device. <a href="#a7406f704be6891f5a9a1c6dbc3e882df">More...</a><br /></td></tr>
<tr class="separator:a7406f704be6891f5a9a1c6dbc3e882df"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
Static Public Member Functions</h2></td></tr>
<tr class="memitem:acba005f5ce2c62cbf3f94d074d9007aa"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classarm__compute_1_1_c_l_kernel_library.xhtml">CLKernelLibrary</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_kernel_library.xhtml#acba005f5ce2c62cbf3f94d074d9007aa">get</a> ()</td></tr>
<tr class="memdesc:acba005f5ce2c62cbf3f94d074d9007aa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Access the KernelLibrary singleton. <a href="#acba005f5ce2c62cbf3f94d074d9007aa">More...</a><br /></td></tr>
<tr class="separator:acba005f5ce2c62cbf3f94d074d9007aa"><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><a class="el" href="classarm__compute_1_1_c_l_kernel_library.xhtml" title="CLKernelLibrary class.">CLKernelLibrary</a> class. </p>
<p class="definition">Definition at line <a class="el" href="_c_l_kernel_library_8h_source.xhtml#l00192">192</a> of file <a class="el" href="_c_l_kernel_library_8h_source.xhtml">CLKernelLibrary.h</a>.</p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="ab730a7c13cec1ffaa7e475eff6924c12"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab730a7c13cec1ffaa7e475eff6924c12">&#9670;&nbsp;</a></span>CLKernelLibrary() <span class="overload">[1/2]</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_kernel_library.xhtml">CLKernelLibrary</a> </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Default Constructor. </p>
<p class="definition">Definition at line <a class="el" href="_c_l_kernel_library_8cpp_source.xhtml#l01066">1066</a> of file <a class="el" href="_c_l_kernel_library_8cpp_source.xhtml">CLKernelLibrary.cpp</a>.</p>
<div class="fragment"><div class="line"><a name="l01067"></a><span class="lineno"> 1067</span>&#160; : _context(), _device(), _kernel_path(<span class="stringliteral">&quot;.&quot;</span>), _programs_map(), _built_programs_map()</div><div class="line"><a name="l01068"></a><span class="lineno"> 1068</span>&#160;{</div><div class="line"><a name="l01069"></a><span class="lineno"> 1069</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a5f49decb4b0a74d5361686ab45db8961">opencl_is_available</a>(); <span class="comment">// Make sure the OpenCL symbols are initialised *before* the CLKernelLibrary is built</span></div><div class="line"><a name="l01070"></a><span class="lineno"> 1070</span>&#160;}</div><div class="ttc" id="namespacearm__compute_xhtml_a5f49decb4b0a74d5361686ab45db8961"><div class="ttname"><a href="namespacearm__compute.xhtml#a5f49decb4b0a74d5361686ab45db8961">arm_compute::opencl_is_available</a></div><div class="ttdeci">bool opencl_is_available()</div><div class="ttdoc">Check if OpenCL is available.</div><div class="ttdef"><b>Definition:</b> <a href="_open_c_l_8cpp_source.xhtml#l00142">OpenCL.cpp:142</a></div></div>
</div><!-- fragment -->
<p class="reference">References <a class="el" href="_open_c_l_8cpp_source.xhtml#l00142">arm_compute::opencl_is_available()</a>.</p>
</div>
</div>
<a id="a670869004281695200784de4648a4e1b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a670869004281695200784de4648a4e1b">&#9670;&nbsp;</a></span>CLKernelLibrary() <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_kernel_library.xhtml">CLKernelLibrary</a> </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classarm__compute_1_1_c_l_kernel_library.xhtml">CLKernelLibrary</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. </p>
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="a1e6726708fe8f69a84845af570a6cadc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1e6726708fe8f69a84845af570a6cadc">&#9670;&nbsp;</a></span>add_built_program()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void add_built_program </td>
<td>(</td>
<td class="paramtype">const std::string &amp;&#160;</td>
<td class="paramname"><em>built_program_name</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const cl::Program &amp;&#160;</td>
<td class="paramname"><em>program</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Add a new built program to the cache. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">built_program_name</td><td>Name of the program </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">program</td><td>Built program to add to the cache </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="_c_l_kernel_library_8cpp_source.xhtml#l01198">1198</a> of file <a class="el" href="_c_l_kernel_library_8cpp_source.xhtml">CLKernelLibrary.cpp</a>.</p>
<div class="fragment"><div class="line"><a name="l01199"></a><span class="lineno"> 1199</span>&#160;{</div><div class="line"><a name="l01200"></a><span class="lineno"> 1200</span>&#160; _built_programs_map.emplace(built_program_name, program);</div><div class="line"><a name="l01201"></a><span class="lineno"> 1201</span>&#160;}</div></div><!-- fragment -->
<p class="reference">Referenced by <a class="el" href="utils_2_utils_8cpp_source.xhtml#l00282">arm_compute::utils::restore_program_cache_from_file()</a>.</p>
</div>
</div>
<a id="a0ad613086cc79a2e32d5b87bcefc7488"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0ad613086cc79a2e32d5b87bcefc7488">&#9670;&nbsp;</a></span>clear_programs_cache()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void clear_programs_cache </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Clear the library's cache of binary programs. </p>
<p class="definition">Definition at line <a class="el" href="_c_l_kernel_library_8cpp_source.xhtml#l01187">1187</a> of file <a class="el" href="_c_l_kernel_library_8cpp_source.xhtml">CLKernelLibrary.cpp</a>.</p>
<div class="fragment"><div class="line"><a name="l01188"></a><span class="lineno"> 1188</span>&#160;{</div><div class="line"><a name="l01189"></a><span class="lineno"> 1189</span>&#160; _programs_map.clear();</div><div class="line"><a name="l01190"></a><span class="lineno"> 1190</span>&#160; _built_programs_map.clear();</div><div class="line"><a name="l01191"></a><span class="lineno"> 1191</span>&#160;}</div></div><!-- fragment -->
<p class="reference">Referenced by <a class="el" href="_framework_8cpp_source.xhtml#l00538">Framework::run()</a>.</p>
</div>
</div>
<a id="a86409f541991c3ac377c2a6b7d1f832d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a86409f541991c3ac377c2a6b7d1f832d">&#9670;&nbsp;</a></span>context()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">cl::Context &amp; context </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Accessor for the associated CL context. </p>
<dl class="section return"><dt>Returns</dt><dd>A CL context. </dd></dl>
<p class="definition">Definition at line <a class="el" href="_c_l_kernel_library_8cpp_source.xhtml#l01167">1167</a> of file <a class="el" href="_c_l_kernel_library_8cpp_source.xhtml">CLKernelLibrary.cpp</a>.</p>
<div class="fragment"><div class="line"><a name="l01168"></a><span class="lineno"> 1168</span>&#160;{</div><div class="line"><a name="l01169"></a><span class="lineno"> 1169</span>&#160; <span class="keywordflow">return</span> _context;</div><div class="line"><a name="l01170"></a><span class="lineno"> 1170</span>&#160;}</div></div><!-- fragment -->
<p class="reference">Referenced by <a class="el" href="_c_l_scheduler_8cpp_source.xhtml#l00034">CLScheduler::context()</a>, <a class="el" href="_c_l_kernel_library_8cpp_source.xhtml#l01155">CLKernelLibrary::init()</a>, and <a class="el" href="_c_l_kernel_library_8cpp_source.xhtml#l01259">CLKernelLibrary::set_context()</a>.</p>
</div>
</div>
<a id="a8c2942ccd8b3f3b82e3edb7950a9e414"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8c2942ccd8b3f3b82e3edb7950a9e414">&#9670;&nbsp;</a></span>create_kernel()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classarm__compute_1_1_kernel.xhtml">Kernel</a> create_kernel </td>
<td>(</td>
<td class="paramtype">const std::string &amp;&#160;</td>
<td class="paramname"><em>kernel_name</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const StringSet &amp;&#160;</td>
<td class="paramname"><em>build_options_set</em> = <code>{}</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Creates a kernel from the kernel library. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">kernel_name</td><td><a class="el" href="classarm__compute_1_1_kernel.xhtml" title="Kernel class.">Kernel</a> name. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">build_options_set</td><td><a class="el" href="classarm__compute_1_1_kernel.xhtml" title="Kernel class.">Kernel</a> build options as a set.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The created kernel. </dd></dl>
<p class="definition">Definition at line <a class="el" href="_c_l_kernel_library_8cpp_source.xhtml#l01078">1078</a> of file <a class="el" href="_c_l_kernel_library_8cpp_source.xhtml">CLKernelLibrary.cpp</a>.</p>
<div class="fragment"><div class="line"><a name="l01079"></a><span class="lineno"> 1079</span>&#160;{</div><div class="line"><a name="l01080"></a><span class="lineno"> 1080</span>&#160; <span class="comment">// Find which program contains the kernel</span></div><div class="line"><a name="l01081"></a><span class="lineno"> 1081</span>&#160; <span class="keyword">auto</span> kernel_program_it = _kernel_program_map.find(<a class="code" href="_c_l_im2_col_kernel_8cpp.xhtml#a624a24e6d361fe7b8b8b2f6b375683a4">kernel_name</a>);</div><div class="line"><a name="l01082"></a><span class="lineno"> 1082</span>&#160;</div><div class="line"><a name="l01083"></a><span class="lineno"> 1083</span>&#160; <span class="keywordflow">if</span>(_kernel_program_map.end() == kernel_program_it)</div><div class="line"><a name="l01084"></a><span class="lineno"> 1084</span>&#160; {</div><div class="line"><a name="l01085"></a><span class="lineno"> 1085</span>&#160; <a class="code" href="_error_8h.xhtml#abd040a16dc0dbc75733e07aff93048a8">ARM_COMPUTE_ERROR_VAR</a>(<span class="stringliteral">&quot;Kernel %s not found in the CLKernelLibrary&quot;</span>, <a class="code" href="_c_l_im2_col_kernel_8cpp.xhtml#a624a24e6d361fe7b8b8b2f6b375683a4">kernel_name</a>.c_str());</div><div class="line"><a name="l01086"></a><span class="lineno"> 1086</span>&#160; }</div><div class="line"><a name="l01087"></a><span class="lineno"> 1087</span>&#160; std::string concat_str;</div><div class="line"><a name="l01088"></a><span class="lineno"> 1088</span>&#160;</div><div class="line"><a name="l01089"></a><span class="lineno"> 1089</span>&#160;<span class="preprocessor">#if defined(ARM_COMPUTE_DEBUG_ENABLED)</span></div><div class="line"><a name="l01090"></a><span class="lineno"> 1090</span>&#160; <span class="comment">// Enable debug properties in CL kernels</span></div><div class="line"><a name="l01091"></a><span class="lineno"> 1091</span>&#160; concat_str += <span class="stringliteral">&quot; -DARM_COMPUTE_DEBUG_ENABLED&quot;</span>;</div><div class="line"><a name="l01092"></a><span class="lineno"> 1092</span>&#160;<span class="preprocessor">#endif // defined(ARM_COMPUTE_DEBUG_ENABLED)</span></div><div class="line"><a name="l01093"></a><span class="lineno"> 1093</span>&#160;</div><div class="line"><a name="l01094"></a><span class="lineno"> 1094</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a735ac6c2a02e320969625308810444f3">GPUTarget</a> gpu_arch = <a class="code" href="namespacearm__compute.xhtml#a2355c2bf5d1950088937416baea24fe6">get_arch_from_target</a>(<a class="code" href="namespacearm__compute.xhtml#a281384aa081efe5819eedd6a7c2a429b">get_target_from_device</a>(_device));</div><div class="line"><a name="l01095"></a><span class="lineno"> 1095</span>&#160; concat_str += <span class="stringliteral">&quot; -DGPU_ARCH=&quot;</span> + <a class="code" href="namespacearm__compute_1_1support_1_1cpp11.xhtml#acc5dddee1cbe93a4eaf0a9f74ee96bb7">support::cpp11::to_string</a>(</div><div class="line"><a name="l01096"></a><span class="lineno"> 1096</span>&#160; <span class="keyword">static_cast&lt;</span><a class="code" href="namespace_gemm_tuner.xhtml#a7aead736a07eaf25623ad7bfa1f0ee2d">std::underlying_type&lt;GPUTarget&gt;::type</a><span class="keyword">&gt;</span>(gpu_arch));</div><div class="line"><a name="l01097"></a><span class="lineno"> 1097</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classarm__compute_1_1_c_l_kernel_library.xhtml#a4f51d241825bd6710fe81b581068ba1e">fp16_supported</a>())</div><div class="line"><a name="l01098"></a><span class="lineno"> 1098</span>&#160; {</div><div class="line"><a name="l01099"></a><span class="lineno"> 1099</span>&#160; concat_str += <span class="stringliteral">&quot; -DARM_COMPUTE_OPENCL_FP16_ENABLED=1 &quot;</span>;</div><div class="line"><a name="l01100"></a><span class="lineno"> 1100</span>&#160; }</div><div class="line"><a name="l01101"></a><span class="lineno"> 1101</span>&#160;</div><div class="line"><a name="l01102"></a><span class="lineno"> 1102</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="namespacearm__compute.xhtml#ac07e02c0066cf540a5a2665fa7d54934">dot8_supported</a>(_device))</div><div class="line"><a name="l01103"></a><span class="lineno"> 1103</span>&#160; {</div><div class="line"><a name="l01104"></a><span class="lineno"> 1104</span>&#160; concat_str += <span class="stringliteral">&quot; -DARM_COMPUTE_OPENCL_DOT8_ENABLED=1 &quot;</span>;</div><div class="line"><a name="l01105"></a><span class="lineno"> 1105</span>&#160; }</div><div class="line"><a name="l01106"></a><span class="lineno"> 1106</span>&#160;</div><div class="line"><a name="l01107"></a><span class="lineno"> 1107</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="namespacearm__compute.xhtml#a4878daab91c6d7173de20283766e0c2c">dot8_acc_supported</a>(_device))</div><div class="line"><a name="l01108"></a><span class="lineno"> 1108</span>&#160; {</div><div class="line"><a name="l01109"></a><span class="lineno"> 1109</span>&#160; concat_str += <span class="stringliteral">&quot; -DARM_COMPUTE_OPENCL_DOT8_ACC_ENABLED=1 &quot;</span>;</div><div class="line"><a name="l01110"></a><span class="lineno"> 1110</span>&#160; }</div><div class="line"><a name="l01111"></a><span class="lineno"> 1111</span>&#160;</div><div class="line"><a name="l01112"></a><span class="lineno"> 1112</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="namespacearm__compute.xhtml#a0e62ce01a7a7af6c3d059bb8534cad45">get_cl_version</a>(_device) == <a class="code" href="namespacearm__compute.xhtml#a3a440b3893fa10608d4428958be1c52eaba90edbc644c32afa8a7e36e87735aab">CLVersion::CL20</a>)</div><div class="line"><a name="l01113"></a><span class="lineno"> 1113</span>&#160; {</div><div class="line"><a name="l01114"></a><span class="lineno"> 1114</span>&#160; concat_str += <span class="stringliteral">&quot; -cl-std=CL2.0 &quot;</span>;</div><div class="line"><a name="l01115"></a><span class="lineno"> 1115</span>&#160; }</div><div class="line"><a name="l01116"></a><span class="lineno"> 1116</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="namespacearm__compute.xhtml#a0019d1de2500c73f16b673d8a883a767">arm_non_uniform_workgroup_supported</a>(_device))</div><div class="line"><a name="l01117"></a><span class="lineno"> 1117</span>&#160; {</div><div class="line"><a name="l01118"></a><span class="lineno"> 1118</span>&#160; concat_str += <span class="stringliteral">&quot; -cl-arm-non-uniform-work-group-size &quot;</span>;</div><div class="line"><a name="l01119"></a><span class="lineno"> 1119</span>&#160; }</div><div class="line"><a name="l01120"></a><span class="lineno"> 1120</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l01121"></a><span class="lineno"> 1121</span>&#160; {</div><div class="line"><a name="l01122"></a><span class="lineno"> 1122</span>&#160; <a class="code" href="_error_8h.xhtml#a7cf8d8b669b8f7b05680230be30d60f4">ARM_COMPUTE_ERROR</a>(<span class="stringliteral">&quot;Non uniform workgroup size is not supported!!&quot;</span>);</div><div class="line"><a name="l01123"></a><span class="lineno"> 1123</span>&#160; }</div><div class="line"><a name="l01124"></a><span class="lineno"> 1124</span>&#160;</div><div class="line"><a name="l01125"></a><span class="lineno"> 1125</span>&#160; <span class="comment">// Check if the program has been built before with same build options.</span></div><div class="line"><a name="l01126"></a><span class="lineno"> 1126</span>&#160; <span class="keyword">const</span> std::string program_name = kernel_program_it-&gt;second;</div><div class="line"><a name="l01127"></a><span class="lineno"> 1127</span>&#160; <span class="keyword">const</span> std::string <a class="code" href="_c_l_im2_col_kernel_8cpp.xhtml#a3e76c95cfc49454dbfff42e02d25ccb8">build_options</a> = stringify_set(build_options_set) + concat_str;</div><div class="line"><a name="l01128"></a><span class="lineno"> 1128</span>&#160;</div><div class="line"><a name="l01129"></a><span class="lineno"> 1129</span>&#160; <span class="keyword">const</span> std::string built_program_name = program_name + <span class="stringliteral">&quot;_&quot;</span> + <a class="code" href="_c_l_im2_col_kernel_8cpp.xhtml#a3e76c95cfc49454dbfff42e02d25ccb8">build_options</a>;</div><div class="line"><a name="l01130"></a><span class="lineno"> 1130</span>&#160; <span class="keyword">auto</span> built_program_it = _built_programs_map.find(built_program_name);</div><div class="line"><a name="l01131"></a><span class="lineno"> 1131</span>&#160;</div><div class="line"><a name="l01132"></a><span class="lineno"> 1132</span>&#160; cl::Program cl_program;</div><div class="line"><a name="l01133"></a><span class="lineno"> 1133</span>&#160;</div><div class="line"><a name="l01134"></a><span class="lineno"> 1134</span>&#160; <span class="keywordflow">if</span>(_built_programs_map.end() != built_program_it)</div><div class="line"><a name="l01135"></a><span class="lineno"> 1135</span>&#160; {</div><div class="line"><a name="l01136"></a><span class="lineno"> 1136</span>&#160; <span class="comment">// If program has been built, retrieve to create kernel from it</span></div><div class="line"><a name="l01137"></a><span class="lineno"> 1137</span>&#160; cl_program = built_program_it-&gt;second;</div><div class="line"><a name="l01138"></a><span class="lineno"> 1138</span>&#160; }</div><div class="line"><a name="l01139"></a><span class="lineno"> 1139</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l01140"></a><span class="lineno"> 1140</span>&#160; {</div><div class="line"><a name="l01141"></a><span class="lineno"> 1141</span>&#160; <span class="comment">// Get program</span></div><div class="line"><a name="l01142"></a><span class="lineno"> 1142</span>&#160; <a class="code" href="classarm__compute_1_1_program.xhtml">Program</a> program = load_program(program_name);</div><div class="line"><a name="l01143"></a><span class="lineno"> 1143</span>&#160;</div><div class="line"><a name="l01144"></a><span class="lineno"> 1144</span>&#160; <span class="comment">// Build program</span></div><div class="line"><a name="l01145"></a><span class="lineno"> 1145</span>&#160; cl_program = program.<a class="code" href="classarm__compute_1_1_program.xhtml#a14c39544e9ac2c2fce1179bd99f093c4">build</a>(<a class="code" href="_c_l_im2_col_kernel_8cpp.xhtml#a3e76c95cfc49454dbfff42e02d25ccb8">build_options</a>);</div><div class="line"><a name="l01146"></a><span class="lineno"> 1146</span>&#160;</div><div class="line"><a name="l01147"></a><span class="lineno"> 1147</span>&#160; <span class="comment">// Add built program to internal map</span></div><div class="line"><a name="l01148"></a><span class="lineno"> 1148</span>&#160; _built_programs_map.emplace(built_program_name, cl_program);</div><div class="line"><a name="l01149"></a><span class="lineno"> 1149</span>&#160; }</div><div class="line"><a name="l01150"></a><span class="lineno"> 1150</span>&#160;</div><div class="line"><a name="l01151"></a><span class="lineno"> 1151</span>&#160; <span class="comment">// Create and return kernel</span></div><div class="line"><a name="l01152"></a><span class="lineno"> 1152</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classarm__compute_1_1_kernel.xhtml">Kernel</a>(<a class="code" href="_c_l_im2_col_kernel_8cpp.xhtml#a624a24e6d361fe7b8b8b2f6b375683a4">kernel_name</a>, cl_program);</div><div class="line"><a name="l01153"></a><span class="lineno"> 1153</span>&#160;}</div><div class="ttc" id="namespacearm__compute_xhtml_a4878daab91c6d7173de20283766e0c2c"><div class="ttname"><a href="namespacearm__compute.xhtml#a4878daab91c6d7173de20283766e0c2c">arm_compute::dot8_acc_supported</a></div><div class="ttdeci">bool dot8_acc_supported(const cl::Device &amp;device)</div><div class="ttdoc">Helper function to check whether the cl_arm_integer_dot_product_accumulate_int8 extension is supporte...</div><div class="ttdef"><b>Definition:</b> <a href="core_2_c_l_2_c_l_helpers_8cpp_source.xhtml#l00254">CLHelpers.cpp:254</a></div></div>
<div class="ttc" id="namespacearm__compute_xhtml_ac07e02c0066cf540a5a2665fa7d54934"><div class="ttname"><a href="namespacearm__compute.xhtml#ac07e02c0066cf540a5a2665fa7d54934">arm_compute::dot8_supported</a></div><div class="ttdeci">bool dot8_supported(const cl::Device &amp;device)</div><div class="ttdoc">Helper function to check whether the cl_arm_integer_dot_product_int8 extension is supported.</div><div class="ttdef"><b>Definition:</b> <a href="core_2_c_l_2_c_l_helpers_8cpp_source.xhtml#l00244">CLHelpers.cpp:244</a></div></div>
<div class="ttc" id="namespacearm__compute_xhtml_a3a440b3893fa10608d4428958be1c52eaba90edbc644c32afa8a7e36e87735aab"><div class="ttname"><a href="namespacearm__compute.xhtml#a3a440b3893fa10608d4428958be1c52eaba90edbc644c32afa8a7e36e87735aab">arm_compute::CLVersion::CL20</a></div></div>
<div class="ttc" id="_error_8h_xhtml_a7cf8d8b669b8f7b05680230be30d60f4"><div class="ttname"><a href="_error_8h.xhtml#a7cf8d8b669b8f7b05680230be30d60f4">ARM_COMPUTE_ERROR</a></div><div class="ttdeci">#define ARM_COMPUTE_ERROR(msg)</div><div class="ttdoc">Print the given message then throw an std::runtime_error.</div><div class="ttdef"><b>Definition:</b> <a href="_error_8h_source.xhtml#l00352">Error.h:352</a></div></div>
<div class="ttc" id="namespacearm__compute_1_1support_1_1cpp11_xhtml_acc5dddee1cbe93a4eaf0a9f74ee96bb7"><div class="ttname"><a href="namespacearm__compute_1_1support_1_1cpp11.xhtml#acc5dddee1cbe93a4eaf0a9f74ee96bb7">arm_compute::support::cpp11::to_string</a></div><div class="ttdeci">std::string to_string(T &amp;&amp;value)</div><div class="ttdoc">Convert integer and float values to string.</div><div class="ttdef"><b>Definition:</b> <a href="_toolchain_support_8h_source.xhtml#l00272">ToolchainSupport.h:272</a></div></div>
<div class="ttc" id="_error_8h_xhtml_abd040a16dc0dbc75733e07aff93048a8"><div class="ttname"><a href="_error_8h.xhtml#abd040a16dc0dbc75733e07aff93048a8">ARM_COMPUTE_ERROR_VAR</a></div><div class="ttdeci">#define ARM_COMPUTE_ERROR_VAR(msg,...)</div><div class="ttdoc">Print the given message then throw an std::runtime_error.</div><div class="ttdef"><b>Definition:</b> <a href="_error_8h_source.xhtml#l00346">Error.h:346</a></div></div>
<div class="ttc" id="namespacearm__compute_xhtml_a2355c2bf5d1950088937416baea24fe6"><div class="ttname"><a href="namespacearm__compute.xhtml#a2355c2bf5d1950088937416baea24fe6">arm_compute::get_arch_from_target</a></div><div class="ttdeci">GPUTarget get_arch_from_target(GPUTarget target)</div><div class="ttdoc">Helper function to get the GPU arch.</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_g_p_u_target_8cpp_source.xhtml#l00189">GPUTarget.cpp:189</a></div></div>
<div class="ttc" id="_c_l_im2_col_kernel_8cpp_xhtml_a3e76c95cfc49454dbfff42e02d25ccb8"><div class="ttname"><a href="_c_l_im2_col_kernel_8cpp.xhtml#a3e76c95cfc49454dbfff42e02d25ccb8">build_options</a></div><div class="ttdeci">std::set&lt; std::string &gt; build_options</div><div class="ttdef"><b>Definition:</b> <a href="_c_l_im2_col_kernel_8cpp_source.xhtml#l00053">CLIm2ColKernel.cpp:53</a></div></div>
<div class="ttc" id="_c_l_im2_col_kernel_8cpp_xhtml_a624a24e6d361fe7b8b8b2f6b375683a4"><div class="ttname"><a href="_c_l_im2_col_kernel_8cpp.xhtml#a624a24e6d361fe7b8b8b2f6b375683a4">kernel_name</a></div><div class="ttdeci">std::string kernel_name</div><div class="ttdef"><b>Definition:</b> <a href="_c_l_im2_col_kernel_8cpp_source.xhtml#l00052">CLIm2ColKernel.cpp:52</a></div></div>
<div class="ttc" id="classarm__compute_1_1_program_xhtml"><div class="ttname"><a href="classarm__compute_1_1_program.xhtml">arm_compute::Program</a></div><div class="ttdoc">Program class.</div><div class="ttdef"><b>Definition:</b> <a href="_c_l_kernel_library_8h_source.xhtml#l00083">CLKernelLibrary.h:83</a></div></div>
<div class="ttc" id="classarm__compute_1_1_program_xhtml_a14c39544e9ac2c2fce1179bd99f093c4"><div class="ttname"><a href="classarm__compute_1_1_program.xhtml#a14c39544e9ac2c2fce1179bd99f093c4">arm_compute::Program::build</a></div><div class="ttdeci">static bool build(const cl::Program &amp;program, const std::string &amp;build_options=&quot;&quot;)</div><div class="ttdoc">Build the given CL program.</div><div class="ttdef"><b>Definition:</b> <a href="_c_l_kernel_library_8cpp_source.xhtml#l00106">CLKernelLibrary.cpp:106</a></div></div>
<div class="ttc" id="namespacearm__compute_xhtml_a281384aa081efe5819eedd6a7c2a429b"><div class="ttname"><a href="namespacearm__compute.xhtml#a281384aa081efe5819eedd6a7c2a429b">arm_compute::get_target_from_device</a></div><div class="ttdeci">GPUTarget get_target_from_device(const cl::Device &amp;device)</div><div class="ttdoc">Helper function to get the GPU target from CL device.</div><div class="ttdef"><b>Definition:</b> <a href="core_2_c_l_2_c_l_helpers_8cpp_source.xhtml#l00226">CLHelpers.cpp:226</a></div></div>
<div class="ttc" id="namespacearm__compute_xhtml_a0e62ce01a7a7af6c3d059bb8534cad45"><div class="ttname"><a href="namespacearm__compute.xhtml#a0e62ce01a7a7af6c3d059bb8534cad45">arm_compute::get_cl_version</a></div><div class="ttdeci">CLVersion get_cl_version(const cl::Device &amp;device)</div><div class="ttdoc">Helper function to get the highest OpenCL version supported.</div><div class="ttdef"><b>Definition:</b> <a href="core_2_c_l_2_c_l_helpers_8cpp_source.xhtml#l00259">CLHelpers.cpp:259</a></div></div>
<div class="ttc" id="classarm__compute_1_1_kernel_xhtml"><div class="ttname"><a href="classarm__compute_1_1_kernel.xhtml">arm_compute::Kernel</a></div><div class="ttdoc">Kernel class.</div><div class="ttdef"><b>Definition:</b> <a href="_c_l_kernel_library_8h_source.xhtml#l00150">CLKernelLibrary.h:150</a></div></div>
<div class="ttc" id="namespace_gemm_tuner_xhtml_a7aead736a07eaf25623ad7bfa1f0ee2d"><div class="ttname"><a href="namespace_gemm_tuner.xhtml#a7aead736a07eaf25623ad7bfa1f0ee2d">GemmTuner.type</a></div><div class="ttdeci">type</div><div class="ttdef"><b>Definition:</b> <a href="_gemm_tuner_8py_source.xhtml#l00527">GemmTuner.py:527</a></div></div>
<div class="ttc" id="namespacearm__compute_xhtml_a735ac6c2a02e320969625308810444f3"><div class="ttname"><a href="namespacearm__compute.xhtml#a735ac6c2a02e320969625308810444f3">arm_compute::GPUTarget</a></div><div class="ttdeci">GPUTarget</div><div class="ttdoc">Available GPU Targets.</div><div class="ttdef"><b>Definition:</b> <a href="_g_p_u_target_8h_source.xhtml#l00034">GPUTarget.h:34</a></div></div>
<div class="ttc" id="classarm__compute_1_1_c_l_kernel_library_xhtml_a4f51d241825bd6710fe81b581068ba1e"><div class="ttname"><a href="classarm__compute_1_1_c_l_kernel_library.xhtml#a4f51d241825bd6710fe81b581068ba1e">arm_compute::CLKernelLibrary::fp16_supported</a></div><div class="ttdeci">bool fp16_supported() const</div><div class="ttdoc">Returns true if FP16 is supported by the CL device.</div><div class="ttdef"><b>Definition:</b> <a href="_c_l_kernel_library_8cpp_source.xhtml#l01203">CLKernelLibrary.cpp:1203</a></div></div>
<div class="ttc" id="namespacearm__compute_xhtml_a0019d1de2500c73f16b673d8a883a767"><div class="ttname"><a href="namespacearm__compute.xhtml#a0019d1de2500c73f16b673d8a883a767">arm_compute::arm_non_uniform_workgroup_supported</a></div><div class="ttdeci">bool arm_non_uniform_workgroup_supported(const cl::Device &amp;device)</div><div class="ttdoc">Helper function to check whether the arm_non_uniform_work_group_size extension is supported.</div><div class="ttdef"><b>Definition:</b> <a href="core_2_c_l_2_c_l_helpers_8cpp_source.xhtml#l00234">CLHelpers.cpp:234</a></div></div>
</div><!-- fragment -->
<p class="reference">References <a class="el" href="_error_8h_source.xhtml#l00352">ARM_COMPUTE_ERROR</a>, <a class="el" href="_error_8h_source.xhtml#l00346">ARM_COMPUTE_ERROR_VAR</a>, <a class="el" href="core_2_c_l_2_c_l_helpers_8cpp_source.xhtml#l00234">arm_compute::arm_non_uniform_workgroup_supported()</a>, <a class="el" href="_c_l_kernel_library_8cpp_source.xhtml#l00106">Program::build()</a>, <a class="el" href="_c_l_im2_col_kernel_8cpp_source.xhtml#l00053">build_options</a>, <a class="el" href="namespacearm__compute.xhtml#a3a440b3893fa10608d4428958be1c52eaba90edbc644c32afa8a7e36e87735aab">arm_compute::CL20</a>, <a class="el" href="core_2_c_l_2_c_l_helpers_8cpp_source.xhtml#l00254">arm_compute::dot8_acc_supported()</a>, <a class="el" href="core_2_c_l_2_c_l_helpers_8cpp_source.xhtml#l00244">arm_compute::dot8_supported()</a>, <a class="el" href="_c_l_kernel_library_8cpp_source.xhtml#l01203">CLKernelLibrary::fp16_supported()</a>, <a class="el" href="src_2core_2_g_p_u_target_8cpp_source.xhtml#l00189">arm_compute::get_arch_from_target()</a>, <a class="el" href="core_2_c_l_2_c_l_helpers_8cpp_source.xhtml#l00259">arm_compute::get_cl_version()</a>, <a class="el" href="core_2_c_l_2_c_l_helpers_8cpp_source.xhtml#l00226">arm_compute::get_target_from_device()</a>, <a class="el" href="_c_l_im2_col_kernel_8cpp_source.xhtml#l00052">kernel_name</a>, <a class="el" href="_toolchain_support_8h_source.xhtml#l00272">arm_compute::support::cpp11::to_string()</a>, and <a class="el" href="_gemm_tuner_8py_source.xhtml#l00527">GemmTuner::type</a>.</p>
<p class="reference">Referenced by <a class="el" href="core_2_c_l_2_c_l_helpers_8cpp_source.xhtml#l00373">arm_compute::create_opencl_kernel()</a>.</p>
</div>
</div>
<a id="adb48a1da7dc6b6f3c1a424d21e1ac1f8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#adb48a1da7dc6b6f3c1a424d21e1ac1f8">&#9670;&nbsp;</a></span>default_ndrange()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">cl::NDRange default_ndrange </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Return the default NDRange for the device. </p>
<p class="definition">Definition at line <a class="el" href="_c_l_kernel_library_8cpp_source.xhtml#l01321">1321</a> of file <a class="el" href="_c_l_kernel_library_8cpp_source.xhtml">CLKernelLibrary.cpp</a>.</p>
<div class="fragment"><div class="line"><a name="l01322"></a><span class="lineno"> 1322</span>&#160;{</div><div class="line"><a name="l01323"></a><span class="lineno"> 1323</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a735ac6c2a02e320969625308810444f3">GPUTarget</a> _target = <a class="code" href="namespacearm__compute.xhtml#a281384aa081efe5819eedd6a7c2a429b">get_target_from_device</a>(_device);</div><div class="line"><a name="l01324"></a><span class="lineno"> 1324</span>&#160; cl::NDRange default_range;</div><div class="line"><a name="l01325"></a><span class="lineno"> 1325</span>&#160;</div><div class="line"><a name="l01326"></a><span class="lineno"> 1326</span>&#160; <span class="keywordflow">switch</span>(_target)</div><div class="line"><a name="l01327"></a><span class="lineno"> 1327</span>&#160; {</div><div class="line"><a name="l01328"></a><span class="lineno"> 1328</span>&#160; <span class="keywordflow">case</span> <a class="code" href="namespacearm__compute.xhtml#a735ac6c2a02e320969625308810444f3afa362f4daec88442a387ff7cda411a38">GPUTarget::MIDGARD</a>:</div><div class="line"><a name="l01329"></a><span class="lineno"> 1329</span>&#160; <span class="keywordflow">case</span> <a class="code" href="namespacearm__compute.xhtml#a735ac6c2a02e320969625308810444f3a6855a4342969d2b58c96d95385d6e673">GPUTarget::T600</a>:</div><div class="line"><a name="l01330"></a><span class="lineno"> 1330</span>&#160; <span class="keywordflow">case</span> <a class="code" href="namespacearm__compute.xhtml#a735ac6c2a02e320969625308810444f3a664a94fa85b127eabc7bed25091843fd">GPUTarget::T700</a>:</div><div class="line"><a name="l01331"></a><span class="lineno"> 1331</span>&#160; <span class="keywordflow">case</span> <a class="code" href="namespacearm__compute.xhtml#a735ac6c2a02e320969625308810444f3aae926a8537ded0221329aa9a89b84048">GPUTarget::T800</a>:</div><div class="line"><a name="l01332"></a><span class="lineno"> 1332</span>&#160; default_range = cl::NDRange(128u, 1);</div><div class="line"><a name="l01333"></a><span class="lineno"> 1333</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l01334"></a><span class="lineno"> 1334</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l01335"></a><span class="lineno"> 1335</span>&#160; default_range = cl::NullRange;</div><div class="line"><a name="l01336"></a><span class="lineno"> 1336</span>&#160; }</div><div class="line"><a name="l01337"></a><span class="lineno"> 1337</span>&#160;</div><div class="line"><a name="l01338"></a><span class="lineno"> 1338</span>&#160; <span class="keywordflow">return</span> default_range;</div><div class="line"><a name="l01339"></a><span class="lineno"> 1339</span>&#160;}</div><div class="ttc" id="namespacearm__compute_xhtml_a735ac6c2a02e320969625308810444f3a664a94fa85b127eabc7bed25091843fd"><div class="ttname"><a href="namespacearm__compute.xhtml#a735ac6c2a02e320969625308810444f3a664a94fa85b127eabc7bed25091843fd">arm_compute::GPUTarget::T700</a></div></div>
<div class="ttc" id="namespacearm__compute_xhtml_a735ac6c2a02e320969625308810444f3aae926a8537ded0221329aa9a89b84048"><div class="ttname"><a href="namespacearm__compute.xhtml#a735ac6c2a02e320969625308810444f3aae926a8537ded0221329aa9a89b84048">arm_compute::GPUTarget::T800</a></div></div>
<div class="ttc" id="namespacearm__compute_xhtml_a735ac6c2a02e320969625308810444f3a6855a4342969d2b58c96d95385d6e673"><div class="ttname"><a href="namespacearm__compute.xhtml#a735ac6c2a02e320969625308810444f3a6855a4342969d2b58c96d95385d6e673">arm_compute::GPUTarget::T600</a></div></div>
<div class="ttc" id="namespacearm__compute_xhtml_a281384aa081efe5819eedd6a7c2a429b"><div class="ttname"><a href="namespacearm__compute.xhtml#a281384aa081efe5819eedd6a7c2a429b">arm_compute::get_target_from_device</a></div><div class="ttdeci">GPUTarget get_target_from_device(const cl::Device &amp;device)</div><div class="ttdoc">Helper function to get the GPU target from CL device.</div><div class="ttdef"><b>Definition:</b> <a href="core_2_c_l_2_c_l_helpers_8cpp_source.xhtml#l00226">CLHelpers.cpp:226</a></div></div>
<div class="ttc" id="namespacearm__compute_xhtml_a735ac6c2a02e320969625308810444f3"><div class="ttname"><a href="namespacearm__compute.xhtml#a735ac6c2a02e320969625308810444f3">arm_compute::GPUTarget</a></div><div class="ttdeci">GPUTarget</div><div class="ttdoc">Available GPU Targets.</div><div class="ttdef"><b>Definition:</b> <a href="_g_p_u_target_8h_source.xhtml#l00034">GPUTarget.h:34</a></div></div>
<div class="ttc" id="namespacearm__compute_xhtml_a735ac6c2a02e320969625308810444f3afa362f4daec88442a387ff7cda411a38"><div class="ttname"><a href="namespacearm__compute.xhtml#a735ac6c2a02e320969625308810444f3afa362f4daec88442a387ff7cda411a38">arm_compute::GPUTarget::MIDGARD</a></div></div>
</div><!-- fragment -->
<p class="reference">References <a class="el" href="core_2_c_l_2_c_l_helpers_8cpp_source.xhtml#l00226">arm_compute::get_target_from_device()</a>, <a class="el" href="namespacearm__compute.xhtml#a735ac6c2a02e320969625308810444f3afa362f4daec88442a387ff7cda411a38">arm_compute::MIDGARD</a>, <a class="el" href="namespacearm__compute.xhtml#a735ac6c2a02e320969625308810444f3a6855a4342969d2b58c96d95385d6e673">arm_compute::T600</a>, <a class="el" href="namespacearm__compute.xhtml#a735ac6c2a02e320969625308810444f3a664a94fa85b127eabc7bed25091843fd">arm_compute::T700</a>, and <a class="el" href="namespacearm__compute.xhtml#a735ac6c2a02e320969625308810444f3aae926a8537ded0221329aa9a89b84048">arm_compute::T800</a>.</p>
<p class="reference">Referenced by <a class="el" href="_c_l_reduction_operation_kernel_8cpp_source.xhtml#l00137">CLReductionOperationKernel::configure()</a>, and <a class="el" href="_c_l_arg_min_max_layer_kernel_8cpp_source.xhtml#l00117">CLArgMinMaxLayerKernel::configure()</a>.</p>
</div>
</div>
<a id="a4f51d241825bd6710fe81b581068ba1e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4f51d241825bd6710fe81b581068ba1e">&#9670;&nbsp;</a></span>fp16_supported()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool fp16_supported </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns true if FP16 is supported by the CL device. </p>
<dl class="section return"><dt>Returns</dt><dd>true if the CL device supports FP16 </dd></dl>
<p class="definition">Definition at line <a class="el" href="_c_l_kernel_library_8cpp_source.xhtml#l01203">1203</a> of file <a class="el" href="_c_l_kernel_library_8cpp_source.xhtml">CLKernelLibrary.cpp</a>.</p>
<div class="fragment"><div class="line"><a name="l01204"></a><span class="lineno"> 1204</span>&#160;{</div><div class="line"><a name="l01205"></a><span class="lineno"> 1205</span>&#160; <a class="code" href="namespacearm__compute.xhtml#a2ad3c9492d4158b574a89ab798d74e16">return ::fp16_supported</a>(_device);</div><div class="line"><a name="l01206"></a><span class="lineno"> 1206</span>&#160;}</div><div class="ttc" id="namespacearm__compute_xhtml_a2ad3c9492d4158b574a89ab798d74e16"><div class="ttname"><a href="namespacearm__compute.xhtml#a2ad3c9492d4158b574a89ab798d74e16">arm_compute::fp16_supported</a></div><div class="ttdeci">bool fp16_supported(const cl::Device &amp;device)</div><div class="ttdoc">Helper function to check whether the cl_khr_fp16 extension is supported.</div><div class="ttdef"><b>Definition:</b> <a href="core_2_c_l_2_c_l_helpers_8cpp_source.xhtml#l00239">CLHelpers.cpp:239</a></div></div>
</div><!-- fragment -->
<p class="reference">References <a class="el" href="core_2_c_l_2_c_l_helpers_8cpp_source.xhtml#l00239">arm_compute::fp16_supported()</a>.</p>
<p class="reference">Referenced by <a class="el" href="_c_l_kernel_library_8cpp_source.xhtml#l01078">CLKernelLibrary::create_kernel()</a>.</p>
</div>
</div>
<a id="acba005f5ce2c62cbf3f94d074d9007aa"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acba005f5ce2c62cbf3f94d074d9007aa">&#9670;&nbsp;</a></span>get()</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_kernel_library.xhtml">CLKernelLibrary</a> &amp; get </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Access the KernelLibrary singleton. </p>
<p>This method has been deprecated and will be removed in the next release. </p><dl class="section return"><dt>Returns</dt><dd>The KernelLibrary instance. </dd></dl>
<p class="definition">Definition at line <a class="el" href="_c_l_kernel_library_8cpp_source.xhtml#l01072">1072</a> of file <a class="el" href="_c_l_kernel_library_8cpp_source.xhtml">CLKernelLibrary.cpp</a>.</p>
<div class="fragment"><div class="line"><a name="l01073"></a><span class="lineno"> 1073</span>&#160;{</div><div class="line"><a name="l01074"></a><span class="lineno"> 1074</span>&#160; <span class="keyword">static</span> <a class="code" href="classarm__compute_1_1_c_l_kernel_library.xhtml">CLKernelLibrary</a> _kernel_library;</div><div class="line"><a name="l01075"></a><span class="lineno"> 1075</span>&#160; <span class="keywordflow">return</span> _kernel_library;</div><div class="line"><a name="l01076"></a><span class="lineno"> 1076</span>&#160;}</div><div class="ttc" id="classarm__compute_1_1_c_l_kernel_library_xhtml"><div class="ttname"><a href="classarm__compute_1_1_c_l_kernel_library.xhtml">arm_compute::CLKernelLibrary</a></div><div class="ttdoc">CLKernelLibrary class.</div><div class="ttdef"><b>Definition:</b> <a href="_c_l_kernel_library_8h_source.xhtml#l00192">CLKernelLibrary.h:192</a></div></div>
</div><!-- fragment -->
<p class="reference">Referenced by <a class="el" href="_c_l_integral_image_kernel_8cpp_source.xhtml#l00039">CLIntegralImageHorKernel::configure()</a>, <a class="el" href="_c_l_table_lookup_kernel_8cpp_source.xhtml#l00039">CLTableLookupKernel::configure()</a>, <a class="el" href="_c_l_warp_perspective_kernel_8cpp_source.xhtml#l00061">CLWarpPerspectiveKernel::configure()</a>, <a class="el" href="_c_l_box3x3_kernel_8cpp_source.xhtml#l00043">CLBox3x3Kernel::configure()</a>, <a class="el" href="_c_l_dilate_kernel_8cpp_source.xhtml#l00039">CLDilateKernel::configure()</a>, <a class="el" href="_c_l_element_wise_unary_layer_kernel_8cpp_source.xhtml#l00052">CLElementWiseUnaryLayerKernel::configure()</a>, <a class="el" href="_c_l_erode_kernel_8cpp_source.xhtml#l00039">CLErodeKernel::configure()</a>, <a class="el" href="_c_l_median3x3_kernel_8cpp_source.xhtml#l00039">CLMedian3x3Kernel::configure()</a>, <a class="el" href="_c_l_gaussian3x3_kernel_8cpp_source.xhtml#l00042">CLGaussian3x3Kernel::configure()</a>, <a class="el" href="_c_l_transpose_kernel_8cpp_source.xhtml#l00109">CLTransposeKernel::configure()</a>, <a class="el" href="_c_l_warp_affine_kernel_8cpp_source.xhtml#l00061">CLWarpAffineKernel::configure()</a>, <a class="el" href="_c_l_bitwise_not_kernel_8cpp_source.xhtml#l00034">CLBitwiseNotKernel::configure()</a>, <a class="el" href="_c_l_non_maxima_suppression3x3_kernel_8cpp_source.xhtml#l00044">CLNonMaximaSuppression3x3Kernel::configure()</a>, <a class="el" href="_c_l_accumulate_kernel_8cpp_source.xhtml#l00041">CLAccumulateKernel::configure()</a>, <a class="el" href="_c_l_scale_kernel_8cpp_source.xhtml#l00182">CLScaleKernel::configure()</a>, <a class="el" href="_c_l_g_e_m_m_matrix_accumulate_biases_kernel_8cpp_source.xhtml#l00079">CLGEMMMatrixAccumulateBiasesKernel::configure()</a>, <a class="el" href="_c_l_threshold_kernel_8cpp_source.xhtml#l00037">CLThresholdKernel::configure()</a>, <a class="el" href="_c_l_non_linear_filter_kernel_8cpp_source.xhtml#l00056">CLNonLinearFilterKernel::configure()</a>, <a class="el" href="_c_l_g_e_m_m_matrix_vector_multiply_kernel_8cpp_source.xhtml#l00083">CLGEMMMatrixVectorMultiplyKernel::configure()</a>, <a class="el" href="_c_l_depthwise_convolution_layer_reshape_weights_kernel_8cpp_source.xhtml#l00088">CLDepthwiseConvolutionLayerReshapeWeightsKernel::configure()</a>, <a class="el" href="_c_l_dequantization_layer_kernel_8cpp_source.xhtml#l00077">CLDequantizationLayerKernel::configure()</a>, <a class="el" href="_c_l_min_max_layer_kernel_8cpp_source.xhtml#l00088">CLMinMaxLayerKernel::configure()</a>, <a class="el" href="_c_l_flatten_layer_kernel_8cpp_source.xhtml#l00083">CLFlattenLayerKernel::configure()</a>, <a class="el" href="_c_l_floor_kernel_8cpp_source.xhtml#l00079">CLFloorKernel::configure()</a>, <a class="el" href="_c_l_channel_shuffle_layer_kernel_8cpp_source.xhtml#l00092">CLChannelShuffleLayerKernel::configure()</a>, <a class="el" href="_c_l_gaussian_pyramid_kernel_8cpp_source.xhtml#l00044">CLGaussianPyramidHorKernel::configure()</a>, <a class="el" href="_c_l_reshape_layer_kernel_8cpp_source.xhtml#l00065">CLReshapeLayerKernel::configure()</a>, <a class="el" href="_c_l_reverse_kernel_8cpp_source.xhtml#l00065">CLReverseKernel::configure()</a>, <a class="el" href="_c_l_copy_kernel_8cpp_source.xhtml#l00157">CLCopyKernel::configure()</a>, <a class="el" href="_c_l_depth_to_space_layer_kernel_8cpp_source.xhtml#l00067">CLDepthToSpaceLayerKernel::configure()</a>, <a class="el" href="_c_l_space_to_depth_layer_kernel_8cpp_source.xhtml#l00068">CLSpaceToDepthLayerKernel::configure()</a>, <a class="el" href="_c_l_batch_to_space_layer_kernel_8cpp_source.xhtml#l00085">CLBatchToSpaceLayerKernel::configure()</a>, <a class="el" href="_c_l_generate_proposals_layer_kernel_8cpp_source.xhtml#l00073">CLComputeAllAnchorsKernel::configure()</a>, <a class="el" href="_c_l_canny_edge_kernel_8cpp_source.xhtml#l00040">CLGradientKernel::configure()</a>, <a class="el" href="_c_l_histogram_kernel_8cpp_source.xhtml#l00053">CLHistogramKernel::configure()</a>, <a class="el" href="_c_l_normalization_layer_kernel_8cpp_source.xhtml#l00107">CLNormalizationLayerKernel::configure()</a>, <a class="el" href="_c_l_tile_kernel_8cpp_source.xhtml#l00069">CLTileKernel::configure()</a>, <a class="el" href="_c_l_upsample_layer_kernel_8cpp_source.xhtml#l00066">CLUpsampleLayerKernel::configure()</a>, <a class="el" href="_c_l_depthwise_convolution_layer3x3_n_c_h_w_kernel_8cpp_source.xhtml#l00244">CLDepthwiseConvolutionLayer3x3NCHWKernel::configure()</a>, <a class="el" href="_c_l_locally_connected_matrix_multiply_kernel_8cpp_source.xhtml#l00084">CLLocallyConnectedMatrixMultiplyKernel::configure()</a>, <a class="el" href="_c_l_min_max_location_kernel_8cpp_source.xhtml#l00062">CLMinMaxKernel::configure()</a>, <a class="el" href="_c_l_bitwise_and_kernel_8cpp_source.xhtml#l00040">CLBitwiseAndKernel::configure()</a>, <a class="el" href="_c_l_gather_kernel_8cpp_source.xhtml#l00089">CLGatherKernel::configure()</a>, <a class="el" href="_c_l_remap_kernel_8cpp_source.xhtml#l00050">CLRemapKernel::configure()</a>, <a class="el" href="_c_l_reorg_layer_kernel_8cpp_source.xhtml#l00072">CLReorgLayerKernel::configure()</a>, <a class="el" href="_c_l_bitwise_or_kernel_8cpp_source.xhtml#l00041">CLBitwiseOrKernel::configure()</a>, <a class="el" href="_c_l_bitwise_xor_kernel_8cpp_source.xhtml#l00041">CLBitwiseXorKernel::configure()</a>, <a class="el" href="_c_l_deconvolution_layer_upsample_kernel_8cpp_source.xhtml#l00070">CLDeconvolutionLayerUpsampleKernel::configure()</a>, <a class="el" href="_c_l_space_to_batch_layer_kernel_8cpp_source.xhtml#l00091">CLSpaceToBatchLayerKernel::configure()</a>, <a class="el" href="_c_l_depth_convert_layer_kernel_8cpp_source.xhtml#l00074">CLDepthConvertLayerKernel::configure()</a>, <a class="el" href="_c_l_depthwise_convolution_layer3x3_n_h_w_c_kernel_8cpp_source.xhtml#l00197">CLDepthwiseConvolutionLayer3x3NHWCKernel::configure()</a>, <a class="el" href="_c_l_derivative_kernel_8cpp_source.xhtml#l00050">CLDerivativeKernel::configure()</a>, <a class="el" href="_c_l_mean_std_dev_normalization_kernel_8cpp_source.xhtml#l00085">CLMeanStdDevNormalizationKernel::configure()</a>, <a class="el" href="_c_l_memset_kernel_8cpp_source.xhtml#l00042">CLMemsetKernel::configure()</a>, <a class="el" href="_c_l_f_f_t_scale_kernel_8cpp_source.xhtml#l00078">CLFFTScaleKernel::configure()</a>, <a class="el" href="_c_l_permute_kernel_8cpp_source.xhtml#l00078">CLPermuteKernel::configure()</a>, <a class="el" href="_c_l_comparison_kernel_8cpp_source.xhtml#l00108">CLComparisonKernel::configure()</a>, <a class="el" href="_c_l_sobel3x3_kernel_8cpp_source.xhtml#l00050">CLSobel3x3Kernel::configure()</a>, <a class="el" href="_c_l_width_concatenate2_tensors_kernel_8cpp_source.xhtml#l00097">CLWidthConcatenate2TensorsKernel::configure()</a>, <a class="el" href="_c_l_h_o_g_descriptor_kernel_8cpp_source.xhtml#l00048">CLHOGOrientationBinningKernel::configure()</a>, <a class="el" href="_c_l_f_f_t_digit_reverse_kernel_8cpp_source.xhtml#l00075">CLFFTDigitReverseKernel::configure()</a>, <a class="el" href="_c_l_fill_border_kernel_8cpp_source.xhtml#l00062">CLFillBorderKernel::configure()</a>, <a class="el" href="_c_l_normalize_planar_y_u_v_layer_kernel_8cpp_source.xhtml#l00098">CLNormalizePlanarYUVLayerKernel::configure()</a>, <a class="el" href="_c_l_pixel_wise_multiplication_kernel_8cpp_source.xhtml#l00149">CLPixelWiseMultiplicationKernel::configure()</a>, <a class="el" href="_c_l_pooling_layer_kernel_8cpp_source.xhtml#l00177">CLPoolingLayerKernel::configure()</a>, <a class="el" href="_c_l_quantization_layer_kernel_8cpp_source.xhtml#l00081">CLQuantizationLayerKernel::configure()</a>, <a class="el" href="_c_l_sobel5x5_kernel_8cpp_source.xhtml#l00050">CLSobel5x5HorKernel::configure()</a>, <a class="el" href="_c_l_sobel7x7_kernel_8cpp_source.xhtml#l00050">CLSobel7x7HorKernel::configure()</a>, <a class="el" href="_c_l_width_concatenate_layer_kernel_8cpp_source.xhtml#l00093">CLWidthConcatenateLayerKernel::configure()</a>, <a class="el" href="_c_l_height_concatenate_layer_kernel_8cpp_source.xhtml#l00092">CLHeightConcatenateLayerKernel::configure()</a>, <a class="el" href="_c_l_instance_normalization_layer_kernel_8cpp_source.xhtml#l00078">CLInstanceNormalizationLayerKernel::configure()</a>, <a class="el" href="_c_l_absolute_difference_kernel_8cpp_source.xhtml#l00047">CLAbsoluteDifferenceKernel::configure()</a>, <a class="el" href="_c_l_channel_extract_kernel_8cpp_source.xhtml#l00050">CLChannelExtractKernel::configure()</a>, <a class="el" href="_c_l_pad_layer_kernel_8cpp_source.xhtml#l00098">CLPadLayerKernel::configure()</a>, <a class="el" href="_c_l_prior_box_layer_kernel_8cpp_source.xhtml#l00103">CLPriorBoxLayerKernel::configure()</a>, <a class="el" href="_c_l_g_e_m_m_lowp_matrix_multiply_native_kernel_8cpp_source.xhtml#l00173">CLGEMMLowpMatrixMultiplyNativeKernel::configure()</a>, <a class="el" href="_c_l_crop_kernel_8cpp_source.xhtml#l00049">CLCropKernel::configure()</a>, <a class="el" href="_c_l_bounding_box_transform_kernel_8cpp_source.xhtml#l00090">CLBoundingBoxTransformKernel::configure()</a>, <a class="el" href="_c_l_width_concatenate4_tensors_kernel_8cpp_source.xhtml#l00115">CLWidthConcatenate4TensorsKernel::configure()</a>, <a class="el" href="_c_l_g_e_m_m_reshape_r_h_s_matrix_kernel_8cpp_source.xhtml#l00102">CLGEMMReshapeRHSMatrixKernel::configure()</a>, <a class="el" href="_c_l_l2_normalize_layer_kernel_8cpp_source.xhtml#l00098">CLL2NormalizeLayerKernel::configure()</a>, <a class="el" href="_c_l_magnitude_phase_kernel_8cpp_source.xhtml#l00046">CLMagnitudePhaseKernel::configure()</a>, <a class="el" href="_c_l_mean_std_dev_kernel_8cpp_source.xhtml#l00066">CLMeanStdDevKernel::configure()</a>, <a class="el" href="_c_l_color_convert_kernel_8cpp_source.xhtml#l00048">CLColorConvertKernel::configure()</a>, <a class="el" href="_c_l_range_kernel_8cpp_source.xhtml#l00093">CLRangeKernel::configure()</a>, <a class="el" href="_c_l_reduction_operation_kernel_8cpp_source.xhtml#l00137">CLReductionOperationKernel::configure()</a>, <a class="el" href="_c_l_select_kernel_8cpp_source.xhtml#l00105">CLSelectKernel::configure()</a>, <a class="el" href="_c_l_channel_combine_kernel_8cpp_source.xhtml#l00054">CLChannelCombineKernel::configure()</a>, <a class="el" href="_c_l_f_f_t_radix_stage_kernel_8cpp_source.xhtml#l00085">CLFFTRadixStageKernel::configure()</a>, <a class="el" href="_c_l_stack_layer_kernel_8cpp_source.xhtml#l00083">CLStackLayerKernel::configure()</a>, <a class="el" href="_c_l_depth_concatenate_layer_kernel_8cpp_source.xhtml#l00085">CLDepthConcatenateLayerKernel::configure()</a>, <a class="el" href="_c_l_batch_concatenate_layer_kernel_8cpp_source.xhtml#l00087">CLBatchConcatenateLayerKernel::configure()</a>, <a class="el" href="_c_l_g_e_m_m_reshape_l_h_s_matrix_kernel_8cpp_source.xhtml#l00121">CLGEMMReshapeLHSMatrixKernel::configure()</a>, <a class="el" href="_c_l_convert_fully_connected_weights_kernel_8cpp_source.xhtml#l00040">CLConvertFullyConnectedWeightsKernel::configure()</a>, <a class="el" href="_c_l_y_o_l_o_layer_kernel_8cpp_source.xhtml#l00103">CLYOLOLayerKernel::configure()</a>, <a class="el" href="_c_l_integral_image_kernel_8cpp_source.xhtml#l00085">CLIntegralImageVertKernel::configure()</a>, <a class="el" href="_c_l_winograd_input_transform_kernel_8cpp_source.xhtml#l00111">CLWinogradInputTransformKernel::configure()</a>, <a class="el" href="_c_l_g_e_m_m_lowp_matrix_multiply_reshaped_only_r_h_s_kernel_8cpp_source.xhtml#l00173">CLGEMMLowpMatrixMultiplyReshapedOnlyRHSKernel::configure()</a>, <a class="el" href="_c_l_fuse_batch_normalization_kernel_8cpp_source.xhtml#l00107">CLFuseBatchNormalizationKernel::configure()</a>, <a class="el" href="_c_l_g_e_m_m_matrix_multiply_native_kernel_8cpp_source.xhtml#l00213">CLGEMMMatrixMultiplyNativeKernel::configure()</a>, <a class="el" href="_c_l_r_o_i_pooling_layer_kernel_8cpp_source.xhtml#l00073">CLROIPoolingLayerKernel::configure()</a>, <a class="el" href="_c_l_batch_normalization_layer_kernel_8cpp_source.xhtml#l00139">CLBatchNormalizationLayerKernel::configure()</a>, <a class="el" href="_c_l_r_o_i_align_layer_kernel_8cpp_source.xhtml#l00105">CLROIAlignLayerKernel::configure()</a>, <a class="el" href="_c_l_winograd_filter_transform_kernel_8cpp_source.xhtml#l00102">CLWinogradFilterTransformKernel::configure()</a>, <a class="el" href="_c_l_strided_slice_kernel_8cpp_source.xhtml#l00100">CLStridedSliceKernel::configure()</a>, <a class="el" href="_c_l_g_e_m_m_lowp_matrix_multiply_reshaped_kernel_8cpp_source.xhtml#l00168">CLGEMMLowpMatrixMultiplyReshapedKernel::configure()</a>, <a class="el" href="_c_l_harris_corners_kernel_8cpp_source.xhtml#l00054">CLHarrisScoreKernel::configure()</a>, <a class="el" href="_c_l_arg_min_max_layer_kernel_8cpp_source.xhtml#l00117">CLArgMinMaxLayerKernel::configure()</a>, <a class="el" href="_c_l_g_e_m_m_matrix_multiply_reshaped_only_r_h_s_kernel_8cpp_source.xhtml#l00216">CLGEMMMatrixMultiplyReshapedOnlyRHSKernel::configure()</a>, <a class="el" href="_c_l_depthwise_convolution_layer_native_kernel_8cpp_source.xhtml#l00194">CLDepthwiseConvolutionLayerNativeKernel::configure()</a>, <a class="el" href="_c_l_winograd_output_transform_kernel_8cpp_source.xhtml#l00138">CLWinogradOutputTransformKernel::configure()</a>, <a class="el" href="_c_l_fast_corners_kernel_8cpp_source.xhtml#l00050">CLFastCornersKernel::configure()</a>, <a class="el" href="_c_l_g_e_m_m_matrix_multiply_kernel_8cpp_source.xhtml#l00305">CLGEMMMatrixMultiplyKernel::configure()</a>, <a class="el" href="_c_l_accumulate_kernel_8cpp_source.xhtml#l00053">CLAccumulateWeightedKernel::configure()</a>, <a class="el" href="_c_l_h_o_g_detector_kernel_8cpp_source.xhtml#l00044">CLHOGDetectorKernel::configure()</a>, <a class="el" href="_c_l_deconvolution_reshape_output_kernel_8cpp_source.xhtml#l00115">CLDeconvolutionReshapeOutputKernel::configure()</a>, <a class="el" href="_c_l_direct_convolution_layer_kernel_8cpp_source.xhtml#l00424">CLDirectConvolutionLayerKernel::configure()</a>, <a class="el" href="_c_l_g_e_m_m_lowp_quantize_down_int32_to_int8_scale_by_fixed_point_kernel_8cpp_source.xhtml#l00118">CLGEMMLowpQuantizeDownInt32ToInt8ScaleByFixedPointKernel::configure()</a>, <a class="el" href="_c_l_g_e_m_m_lowp_quantize_down_int32_to_uint8_scale_by_fixed_point_kernel_8cpp_source.xhtml#l00118">CLGEMMLowpQuantizeDownInt32ToUint8ScaleByFixedPointKernel::configure()</a>, <a class="el" href="_c_l_g_e_m_m_lowp_offset_contribution_kernel_8cpp_source.xhtml#l00145">CLGEMMLowpOffsetContributionKernel::configure()</a>, <a class="el" href="_c_l_g_e_m_m_lowp_offset_contribution_output_stage_kernel_8cpp_source.xhtml#l00196">CLGEMMLowpOffsetContributionOutputStageKernel::configure()</a>, <a class="el" href="_c_l_scharr3x3_kernel_8cpp_source.xhtml#l00050">CLScharr3x3Kernel::configure()</a>, <a class="el" href="_c_l_col2_im_kernel_8cpp_source.xhtml#l00091">CLCol2ImKernel::configure()</a>, <a class="el" href="_c_l_im2_col_kernel_8cpp_source.xhtml#l00295">CLIm2ColKernel::configure()</a>, <a class="el" href="_c_l_weights_reshape_kernel_8cpp_source.xhtml#l00079">CLWeightsReshapeKernel::configure()</a>, <a class="el" href="_c_l_gaussian_pyramid_kernel_8cpp_source.xhtml#l00150">CLGaussianPyramidVertKernel::configure()</a>, <a class="el" href="_c_l_histogram_kernel_8cpp_source.xhtml#l00158">CLHistogramBorderKernel::configure()</a>, <a class="el" href="_c_l_l_k_tracker_kernel_8cpp_source.xhtml#l00041">CLLKTrackerInitKernel::configure()</a>, <a class="el" href="_c_l_accumulate_kernel_8cpp_source.xhtml#l00070">CLAccumulateSquaredKernel::configure()</a>, <a class="el" href="_c_l_canny_edge_kernel_8cpp_source.xhtml#l00120">CLEdgeNonMaxSuppressionKernel::configure()</a>, <a class="el" href="_c_l_min_max_location_kernel_8cpp_source.xhtml#l00169">CLMinMaxLocationKernel::configure()</a>, <a class="el" href="_c_l_h_o_g_descriptor_kernel_8cpp_source.xhtml#l00139">CLHOGBlockNormalizationKernel::configure()</a>, <a class="el" href="_c_l_sobel5x5_kernel_8cpp_source.xhtml#l00148">CLSobel5x5VertKernel::configure()</a>, <a class="el" href="_c_l_sobel7x7_kernel_8cpp_source.xhtml#l00150">CLSobel7x7VertKernel::configure()</a>, <a class="el" href="_c_l_fast_corners_kernel_8cpp_source.xhtml#l00133">CLCopyToArrayKernel::configure()</a>, <a class="el" href="_c_l_l_k_tracker_kernel_8cpp_source.xhtml#l00089">CLLKTrackerFinalizeKernel::configure()</a>, <a class="el" href="_c_l_pixel_wise_multiplication_kernel_8cpp_source.xhtml#l00366">CLComplexPixelWiseMultiplicationKernel::configure()</a>, <a class="el" href="_c_l_canny_edge_kernel_8cpp_source.xhtml#l00194">CLEdgeTraceKernel::configure()</a>, <a class="el" href="_c_l_l_k_tracker_kernel_8cpp_source.xhtml#l00123">CLLKTrackerStage0Kernel::configure()</a>, <a class="el" href="_c_l_convolution_kernel_8cpp_source.xhtml#l00281">CLConvolutionRectangleKernel::configure()</a>, <a class="el" href="_c_l_l_k_tracker_kernel_8cpp_source.xhtml#l00213">CLLKTrackerStage1Kernel::configure()</a>, <a class="el" href="_c_l_softmax_layer_kernel_8cpp_source.xhtml#l00343">CLLogits1DNormKernel::configure()</a>, <a class="el" href="_c_l_scheduler_8cpp_source.xhtml#l00034">CLScheduler::context()</a>, <a class="el" href="core_2_c_l_2_c_l_helpers_8cpp_source.xhtml#l00373">arm_compute::create_opencl_kernel()</a>, <a class="el" href="_c_l_scheduler_8cpp_source.xhtml#l00119">CLScheduler::default_init()</a>, <a class="el" href="_c_l_scheduler_8cpp_source.xhtml#l00106">CLScheduler::default_init_with_context()</a>, <a class="el" href="_c_l_validate_8h_source.xhtml#l00045">arm_compute::error_on_unsupported_int64_base_atomics()</a>, <a class="el" href="_i_c_l_kernel_8cpp_source.xhtml#l00132">ICLKernel::get_max_workgroup_size()</a>, <a class="el" href="main_8cpp_source.xhtml#l00093">main()</a>, <a class="el" href="utils_2_utils_8cpp_source.xhtml#l00282">arm_compute::utils::restore_program_cache_from_file()</a>, <a class="el" href="_framework_8cpp_source.xhtml#l00538">Framework::run()</a>, <a class="el" href="utils_2_utils_8cpp_source.xhtml#l00328">arm_compute::utils::save_program_cache_to_file()</a>, <a class="el" href="_c_l_scheduler_8cpp_source.xhtml#l00139">CLScheduler::set_context()</a>, <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>, <a class="el" href="_open_c_l_memory_usage_8cpp_source.xhtml#l00185">OpenCLMemoryUsage::test_measurements()</a>, and <a class="el" href="_c_l_tuner_8cpp_source.xhtml#l00077">CLTuner::tune_kernel_dynamic()</a>.</p>
</div>
</div>
<a id="a54bb195c770b747d87af7506c2032aa4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a54bb195c770b747d87af7506c2032aa4">&#9670;&nbsp;</a></span>get_built_programs()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">const std::map&lt; std::string, cl::Program &gt; &amp; get_built_programs </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Access the cache of built OpenCL programs. </p>
<p class="definition">Definition at line <a class="el" href="_c_l_kernel_library_8cpp_source.xhtml#l01193">1193</a> of file <a class="el" href="_c_l_kernel_library_8cpp_source.xhtml">CLKernelLibrary.cpp</a>.</p>
<div class="fragment"><div class="line"><a name="l01194"></a><span class="lineno"> 1194</span>&#160;{</div><div class="line"><a name="l01195"></a><span class="lineno"> 1195</span>&#160; <span class="keywordflow">return</span> _built_programs_map;</div><div class="line"><a name="l01196"></a><span class="lineno"> 1196</span>&#160;}</div></div><!-- fragment -->
<p class="reference">Referenced by <a class="el" href="utils_2_utils_8cpp_source.xhtml#l00328">arm_compute::utils::save_program_cache_to_file()</a>, and <a class="el" href="_open_c_l_memory_usage_8cpp_source.xhtml#l00185">OpenCLMemoryUsage::test_measurements()</a>.</p>
</div>
</div>
<a id="a895fb7685c4864aa98b63ddb60f929bb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a895fb7685c4864aa98b63ddb60f929bb">&#9670;&nbsp;</a></span>get_device()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">cl::Device &amp; get_device </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Gets the CL device for which the programs are created. </p>
<p class="definition">Definition at line <a class="el" href="_c_l_kernel_library_8cpp_source.xhtml#l01172">1172</a> of file <a class="el" href="_c_l_kernel_library_8cpp_source.xhtml">CLKernelLibrary.cpp</a>.</p>
<div class="fragment"><div class="line"><a name="l01173"></a><span class="lineno"> 1173</span>&#160;{</div><div class="line"><a name="l01174"></a><span class="lineno"> 1174</span>&#160; <span class="keywordflow">return</span> _device;</div><div class="line"><a name="l01175"></a><span class="lineno"> 1175</span>&#160;}</div></div><!-- fragment -->
<p class="reference">Referenced by <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="aef78b2e57b5203f8a184465e2da020ef"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aef78b2e57b5203f8a184465e2da020ef">&#9670;&nbsp;</a></span>get_device_version()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">std::string get_device_version </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Return the device version. </p>
<dl class="section return"><dt>Returns</dt><dd>The content of CL_DEVICE_VERSION </dd></dl>
<p class="definition">Definition at line <a class="el" href="_c_l_kernel_library_8cpp_source.xhtml#l01341">1341</a> of file <a class="el" href="_c_l_kernel_library_8cpp_source.xhtml">CLKernelLibrary.cpp</a>.</p>
<div class="fragment"><div class="line"><a name="l01342"></a><span class="lineno"> 1342</span>&#160;{</div><div class="line"><a name="l01343"></a><span class="lineno"> 1343</span>&#160; <span class="keywordflow">return</span> _device.getInfo&lt;CL_DEVICE_VERSION&gt;();</div><div class="line"><a name="l01344"></a><span class="lineno"> 1344</span>&#160;}</div></div><!-- fragment -->
</div>
</div>
<a id="ad7395c158d8e31b9af211b9bc1f65a08"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad7395c158d8e31b9af211b9bc1f65a08">&#9670;&nbsp;</a></span>get_kernel_path()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">std::string get_kernel_path </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Gets the path that the kernels reside in. </p>
<p class="definition">Definition at line <a class="el" href="_c_l_kernel_library_8cpp_source.xhtml#l01182">1182</a> of file <a class="el" href="_c_l_kernel_library_8cpp_source.xhtml">CLKernelLibrary.cpp</a>.</p>
<div class="fragment"><div class="line"><a name="l01183"></a><span class="lineno"> 1183</span>&#160;{</div><div class="line"><a name="l01184"></a><span class="lineno"> 1184</span>&#160; <span class="keywordflow">return</span> _kernel_path;</div><div class="line"><a name="l01185"></a><span class="lineno"> 1185</span>&#160;}</div></div><!-- fragment -->
</div>
</div>
<a id="a70696e3d56dcbcdc1f493dec744bc581"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a70696e3d56dcbcdc1f493dec744bc581">&#9670;&nbsp;</a></span>get_num_compute_units()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">cl_uint get_num_compute_units </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Return the maximum number of compute units in the device. </p>
<dl class="section return"><dt>Returns</dt><dd>The content of CL_DEVICE_MAX_COMPUTE_UNITS </dd></dl>
<p class="definition">Definition at line <a class="el" href="_c_l_kernel_library_8cpp_source.xhtml#l01346">1346</a> of file <a class="el" href="_c_l_kernel_library_8cpp_source.xhtml">CLKernelLibrary.cpp</a>.</p>
<div class="fragment"><div class="line"><a name="l01347"></a><span class="lineno"> 1347</span>&#160;{</div><div class="line"><a name="l01348"></a><span class="lineno"> 1348</span>&#160; <span class="keywordflow">return</span> _device.getInfo&lt;CL_DEVICE_MAX_COMPUTE_UNITS&gt;();</div><div class="line"><a name="l01349"></a><span class="lineno"> 1349</span>&#160;}</div></div><!-- fragment -->
<p class="reference">Referenced by <a class="el" href="_c_l_tuner_8cpp_source.xhtml#l00077">CLTuner::tune_kernel_dynamic()</a>.</p>
</div>
</div>
<a id="a44e90c4fa1204a708499ece56d4c82f0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a44e90c4fa1204a708499ece56d4c82f0">&#9670;&nbsp;</a></span>get_program_source()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">std::string get_program_source </td>
<td>(</td>
<td class="paramtype">const std::string &amp;&#160;</td>
<td class="paramname"><em>program_name</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Gets the source of the selected program. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">program_name</td><td><a class="el" href="classarm__compute_1_1_program.xhtml" title="Program class.">Program</a> name.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Source of the selected program. </dd></dl>
<p class="definition">Definition at line <a class="el" href="_c_l_kernel_library_8cpp_source.xhtml#l01298">1298</a> of file <a class="el" href="_c_l_kernel_library_8cpp_source.xhtml">CLKernelLibrary.cpp</a>.</p>
<div class="fragment"><div class="line"><a name="l01299"></a><span class="lineno"> 1299</span>&#160;{</div><div class="line"><a name="l01300"></a><span class="lineno"> 1300</span>&#160; <span class="keyword">const</span> <span class="keyword">auto</span> program_source_it = _program_source_map.find(program_name);</div><div class="line"><a name="l01301"></a><span class="lineno"> 1301</span>&#160;</div><div class="line"><a name="l01302"></a><span class="lineno"> 1302</span>&#160; <span class="keywordflow">if</span>(program_source_it == _program_source_map.end())</div><div class="line"><a name="l01303"></a><span class="lineno"> 1303</span>&#160; {</div><div class="line"><a name="l01304"></a><span class="lineno"> 1304</span>&#160; <a class="code" href="_error_8h.xhtml#abd040a16dc0dbc75733e07aff93048a8">ARM_COMPUTE_ERROR_VAR</a>(<span class="stringliteral">&quot;Embedded program for %s does not exist.&quot;</span>, program_name.c_str());</div><div class="line"><a name="l01305"></a><span class="lineno"> 1305</span>&#160; }</div><div class="line"><a name="l01306"></a><span class="lineno"> 1306</span>&#160;</div><div class="line"><a name="l01307"></a><span class="lineno"> 1307</span>&#160; <span class="keywordflow">return</span> program_source_it-&gt;second;</div><div class="line"><a name="l01308"></a><span class="lineno"> 1308</span>&#160;}</div><div class="ttc" id="_error_8h_xhtml_abd040a16dc0dbc75733e07aff93048a8"><div class="ttname"><a href="_error_8h.xhtml#abd040a16dc0dbc75733e07aff93048a8">ARM_COMPUTE_ERROR_VAR</a></div><div class="ttdeci">#define ARM_COMPUTE_ERROR_VAR(msg,...)</div><div class="ttdoc">Print the given message then throw an std::runtime_error.</div><div class="ttdef"><b>Definition:</b> <a href="_error_8h_source.xhtml#l00346">Error.h:346</a></div></div>
</div><!-- fragment -->
<p class="reference">References <a class="el" href="_error_8h_source.xhtml#l00346">ARM_COMPUTE_ERROR_VAR</a>.</p>
</div>
</div>
<a id="a9f976367edcd9ab787375373e050b94b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9f976367edcd9ab787375373e050b94b">&#9670;&nbsp;</a></span>init()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void init </td>
<td>(</td>
<td class="paramtype">std::string&#160;</td>
<td class="paramname"><em>kernel_path</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">cl::Context&#160;</td>
<td class="paramname"><em>context</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">cl::Device&#160;</td>
<td class="paramname"><em>device</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Initialises the kernel library. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">kernel_path</td><td>Path of the directory from which kernel sources are loaded. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">context</td><td>CL context used to create programs. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">device</td><td>CL device for which the programs are created. </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="_c_l_kernel_library_8cpp_source.xhtml#l01155">1155</a> of file <a class="el" href="_c_l_kernel_library_8cpp_source.xhtml">CLKernelLibrary.cpp</a>.</p>
<div class="fragment"><div class="line"><a name="l01156"></a><span class="lineno"> 1156</span>&#160;{</div><div class="line"><a name="l01157"></a><span class="lineno"> 1157</span>&#160; _kernel_path = std::move(kernel_path);</div><div class="line"><a name="l01158"></a><span class="lineno"> 1158</span>&#160; _context = std::move(<a class="code" href="classarm__compute_1_1_c_l_kernel_library.xhtml#a86409f541991c3ac377c2a6b7d1f832d">context</a>);</div><div class="line"><a name="l01159"></a><span class="lineno"> 1159</span>&#160; _device = std::move(device);</div><div class="line"><a name="l01160"></a><span class="lineno"> 1160</span>&#160;}</div><div class="ttc" id="classarm__compute_1_1_c_l_kernel_library_xhtml_a86409f541991c3ac377c2a6b7d1f832d"><div class="ttname"><a href="classarm__compute_1_1_c_l_kernel_library.xhtml#a86409f541991c3ac377c2a6b7d1f832d">arm_compute::CLKernelLibrary::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_kernel_library_8cpp_source.xhtml#l01167">CLKernelLibrary.cpp:1167</a></div></div>
</div><!-- fragment -->
<p class="reference">References <a class="el" href="_c_l_kernel_library_8cpp_source.xhtml#l01167">CLKernelLibrary::context()</a>.</p>
<p class="reference">Referenced by <a class="el" href="_c_l_runtime_context_8cpp_source.xhtml#l00031">CLRuntimeContext::CLRuntimeContext()</a>, <a class="el" href="_c_l_scheduler_8cpp_source.xhtml#l00119">CLScheduler::default_init()</a>, and <a class="el" href="_c_l_scheduler_8cpp_source.xhtml#l00106">CLScheduler::default_init_with_context()</a>.</p>
</div>
</div>
<a id="a7406f704be6891f5a9a1c6dbc3e882df"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7406f704be6891f5a9a1c6dbc3e882df">&#9670;&nbsp;</a></span>int64_base_atomics_supported()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool int64_base_atomics_supported </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns true if int64_base_atomics extension is supported by the CL device. </p>
<dl class="section return"><dt>Returns</dt><dd>true if the CL device supports int64_base_atomics extension </dd></dl>
<p class="definition">Definition at line <a class="el" href="_c_l_kernel_library_8cpp_source.xhtml#l01208">1208</a> of file <a class="el" href="_c_l_kernel_library_8cpp_source.xhtml">CLKernelLibrary.cpp</a>.</p>
<div class="fragment"><div class="line"><a name="l01209"></a><span class="lineno"> 1209</span>&#160;{</div><div class="line"><a name="l01210"></a><span class="lineno"> 1210</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespacearm__compute.xhtml#a6c4a5ca34ebb51d4e2e119a110e4c8f0">device_supports_extension</a>(_device, <span class="stringliteral">&quot;cl_khr_int64_base_atomics&quot;</span>);</div><div class="line"><a name="l01211"></a><span class="lineno"> 1211</span>&#160;}</div><div class="ttc" id="namespacearm__compute_xhtml_a6c4a5ca34ebb51d4e2e119a110e4c8f0"><div class="ttname"><a href="namespacearm__compute.xhtml#a6c4a5ca34ebb51d4e2e119a110e4c8f0">arm_compute::device_supports_extension</a></div><div class="ttdeci">bool device_supports_extension(const cl::Device &amp;device, const char *extension_name)</div><div class="ttdoc">Helper function to check whether a given extension is supported.</div><div class="ttdef"><b>Definition:</b> <a href="core_2_c_l_2_c_l_helpers_8cpp_source.xhtml#l00282">CLHelpers.cpp:282</a></div></div>
</div><!-- fragment -->
<p class="reference">References <a class="el" href="core_2_c_l_2_c_l_helpers_8cpp_source.xhtml#l00282">arm_compute::device_supports_extension()</a>.</p>
</div>
</div>
<a id="aaeda307cc2131afa8a4764e38373f94e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aaeda307cc2131afa8a4764e38373f94e">&#9670;&nbsp;</a></span>max_local_workgroup_size()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">size_t max_local_workgroup_size </td>
<td>(</td>
<td class="paramtype">const cl::Kernel &amp;&#160;</td>
<td class="paramname"><em>kernel</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Find the maximum number of local work items in a workgroup can be supported for the kernel. </p>
<p class="definition">Definition at line <a class="el" href="_c_l_kernel_library_8cpp_source.xhtml#l01310">1310</a> of file <a class="el" href="_c_l_kernel_library_8cpp_source.xhtml">CLKernelLibrary.cpp</a>.</p>
<div class="fragment"><div class="line"><a name="l01311"></a><span class="lineno"> 1311</span>&#160;{</div><div class="line"><a name="l01312"></a><span class="lineno"> 1312</span>&#160; <span class="keywordtype">size_t</span> result;</div><div class="line"><a name="l01313"></a><span class="lineno"> 1313</span>&#160;</div><div class="line"><a name="l01314"></a><span class="lineno"> 1314</span>&#160; <span class="keywordtype">size_t</span> err = kernel.getWorkGroupInfo(_device, CL_KERNEL_WORK_GROUP_SIZE, &amp;result);</div><div class="line"><a name="l01315"></a><span class="lineno"> 1315</span>&#160; <a class="code" href="_error_8h.xhtml#a0b0eb3235749a2909dc5a101afe59a1b">ARM_COMPUTE_ERROR_ON_MSG</a>(err != 0, <span class="stringliteral">&quot;clGetKernelWorkGroupInfo failed to return the maximum workgroup size for the kernel&quot;</span>);</div><div class="line"><a name="l01316"></a><span class="lineno"> 1316</span>&#160; <a class="code" href="_error_8h.xhtml#a6dc630a6ae9cc063b3924bcea8dee9d6">ARM_COMPUTE_UNUSED</a>(err);</div><div class="line"><a name="l01317"></a><span class="lineno"> 1317</span>&#160;</div><div class="line"><a name="l01318"></a><span class="lineno"> 1318</span>&#160; <span class="keywordflow">return</span> result;</div><div class="line"><a name="l01319"></a><span class="lineno"> 1319</span>&#160;}</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#l00152">Error.h:152</a></div></div>
<div class="ttc" id="_error_8h_xhtml_a0b0eb3235749a2909dc5a101afe59a1b"><div class="ttname"><a href="_error_8h.xhtml#a0b0eb3235749a2909dc5a101afe59a1b">ARM_COMPUTE_ERROR_ON_MSG</a></div><div class="ttdeci">#define ARM_COMPUTE_ERROR_ON_MSG(cond, msg)</div><div class="ttdef"><b>Definition:</b> <a href="_error_8h_source.xhtml#l00456">Error.h:456</a></div></div>
</div><!-- fragment -->
<p class="reference">References <a class="el" href="_error_8h_source.xhtml#l00456">ARM_COMPUTE_ERROR_ON_MSG</a>, and <a class="el" href="_error_8h_source.xhtml#l00152">ARM_COMPUTE_UNUSED</a>.</p>
<p class="reference">Referenced by <a class="el" href="_i_c_l_kernel_8cpp_source.xhtml#l00132">ICLKernel::get_max_workgroup_size()</a>.</p>
</div>
</div>
<a id="a54fb81956f9fb1c25b279e34e1e7d966"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a54fb81956f9fb1c25b279e34e1e7d966">&#9670;&nbsp;</a></span>operator=()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">const <a class="el" href="classarm__compute_1_1_c_l_kernel_library.xhtml">CLKernelLibrary</a>&amp; operator= </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classarm__compute_1_1_c_l_kernel_library.xhtml">CLKernelLibrary</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. </p>
</div>
</div>
<a id="a293edc1bbcbddffb7228ac97917ed107"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a293edc1bbcbddffb7228ac97917ed107">&#9670;&nbsp;</a></span>set_context()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void set_context </td>
<td>(</td>
<td class="paramtype">cl::Context&#160;</td>
<td class="paramname"><em>context</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Sets the CL context used to create programs. </p>
<dl class="section note"><dt>Note</dt><dd>Setting the context also resets the device to the first one available in the new context.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">context</td><td>A CL context. </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="_c_l_kernel_library_8cpp_source.xhtml#l01259">1259</a> of file <a class="el" href="_c_l_kernel_library_8cpp_source.xhtml">CLKernelLibrary.cpp</a>.</p>
<div class="fragment"><div class="line"><a name="l01260"></a><span class="lineno"> 1260</span>&#160;{</div><div class="line"><a name="l01261"></a><span class="lineno"> 1261</span>&#160; _context = std::move(<a class="code" href="classarm__compute_1_1_c_l_kernel_library.xhtml#a86409f541991c3ac377c2a6b7d1f832d">context</a>);</div><div class="line"><a name="l01262"></a><span class="lineno"> 1262</span>&#160; <span class="keywordflow">if</span>(_context.get() == <span class="keyword">nullptr</span>)</div><div class="line"><a name="l01263"></a><span class="lineno"> 1263</span>&#160; {</div><div class="line"><a name="l01264"></a><span class="lineno"> 1264</span>&#160; _device = cl::Device();</div><div class="line"><a name="l01265"></a><span class="lineno"> 1265</span>&#160; }</div><div class="line"><a name="l01266"></a><span class="lineno"> 1266</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l01267"></a><span class="lineno"> 1267</span>&#160; {</div><div class="line"><a name="l01268"></a><span class="lineno"> 1268</span>&#160; <span class="keyword">const</span> <span class="keyword">auto</span> cl_devices = _context.getInfo&lt;CL_CONTEXT_DEVICES&gt;();</div><div class="line"><a name="l01269"></a><span class="lineno"> 1269</span>&#160;</div><div class="line"><a name="l01270"></a><span class="lineno"> 1270</span>&#160; <span class="keywordflow">if</span>(cl_devices.empty())</div><div class="line"><a name="l01271"></a><span class="lineno"> 1271</span>&#160; {</div><div class="line"><a name="l01272"></a><span class="lineno"> 1272</span>&#160; _device = cl::Device();</div><div class="line"><a name="l01273"></a><span class="lineno"> 1273</span>&#160; }</div><div class="line"><a name="l01274"></a><span class="lineno"> 1274</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l01275"></a><span class="lineno"> 1275</span>&#160; {</div><div class="line"><a name="l01276"></a><span class="lineno"> 1276</span>&#160; _device = cl_devices[0];</div><div class="line"><a name="l01277"></a><span class="lineno"> 1277</span>&#160; }</div><div class="line"><a name="l01278"></a><span class="lineno"> 1278</span>&#160; }</div><div class="line"><a name="l01279"></a><span class="lineno"> 1279</span>&#160;}</div><div class="ttc" id="classarm__compute_1_1_c_l_kernel_library_xhtml_a86409f541991c3ac377c2a6b7d1f832d"><div class="ttname"><a href="classarm__compute_1_1_c_l_kernel_library.xhtml#a86409f541991c3ac377c2a6b7d1f832d">arm_compute::CLKernelLibrary::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_kernel_library_8cpp_source.xhtml#l01167">CLKernelLibrary.cpp:1167</a></div></div>
</div><!-- fragment -->
<p class="reference">References <a class="el" href="_c_l_kernel_library_8cpp_source.xhtml#l01167">CLKernelLibrary::context()</a>.</p>
<p class="reference">Referenced by <a class="el" href="_c_l_scheduler_8cpp_source.xhtml#l00139">CLScheduler::set_context()</a>.</p>
</div>
</div>
<a id="a5a6865d04c8d3348860f3cb8100fdb97"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5a6865d04c8d3348860f3cb8100fdb97">&#9670;&nbsp;</a></span>set_device()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void set_device </td>
<td>(</td>
<td class="paramtype">cl::Device&#160;</td>
<td class="paramname"><em>device</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Sets the CL device for which the programs are created. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">device</td><td>A CL device. </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="_c_l_kernel_library_8cpp_source.xhtml#l01177">1177</a> of file <a class="el" href="_c_l_kernel_library_8cpp_source.xhtml">CLKernelLibrary.cpp</a>.</p>
<div class="fragment"><div class="line"><a name="l01178"></a><span class="lineno"> 1178</span>&#160;{</div><div class="line"><a name="l01179"></a><span class="lineno"> 1179</span>&#160; _device = std::move(device);</div><div class="line"><a name="l01180"></a><span class="lineno"> 1180</span>&#160;}</div></div><!-- fragment -->
</div>
</div>
<a id="a66a558a56f5d0dcd6305c405ebc38cc2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a66a558a56f5d0dcd6305c405ebc38cc2">&#9670;&nbsp;</a></span>set_kernel_path()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void set_kernel_path </td>
<td>(</td>
<td class="paramtype">const std::string &amp;&#160;</td>
<td class="paramname"><em>kernel_path</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Sets the path that the kernels reside in. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">kernel_path</td><td>Path of the kernel. </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="_c_l_kernel_library_8cpp_source.xhtml#l01162">1162</a> of file <a class="el" href="_c_l_kernel_library_8cpp_source.xhtml">CLKernelLibrary.cpp</a>.</p>
<div class="fragment"><div class="line"><a name="l01163"></a><span class="lineno"> 1163</span>&#160;{</div><div class="line"><a name="l01164"></a><span class="lineno"> 1164</span>&#160; _kernel_path = kernel_path;</div><div class="line"><a name="l01165"></a><span class="lineno"> 1165</span>&#160;}</div></div><!-- fragment -->
</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li>arm_compute/core/CL/<a class="el" href="_c_l_kernel_library_8h_source.xhtml">CLKernelLibrary.h</a></li>
<li>src/core/CL/<a class="el" href="_c_l_kernel_library_8cpp_source.xhtml">CLKernelLibrary.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_kernel_library.xhtml">CLKernelLibrary</a></li>
<li class="footer">Generated on Thu Mar 5 2020 16:07:11 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>