blob: a3f43e4afa8e88dae78a2e4bc1b78238d980983f [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: tests/validate_examples/cl_gemm.cpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(initResizable);
/* @license-end */</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script><script type="text/javascript" async="async" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="stylesheet.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<img alt="Compute Library" src="https://raw.githubusercontent.com/ARM-software/ComputeLibrary/gh-pages/ACL_logo.png" style="max-width: 100%;margin-top: 15px;margin-left: 10px"/>
<td style="padding-left: 0.5em;">
<div id="projectname">
&#160;<span id="projectnumber">19.11</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('cl__gemm_8cpp.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="#namespaces">Namespaces</a> &#124;
<a href="#func-members">Functions</a> &#124;
<a href="#var-members">Variables</a> </div>
<div class="headertitle">
<div class="title">cl_gemm.cpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><code>#include &quot;<a class="el" href="arm__compute_2core_2_types_8h_source.xhtml">arm_compute/core/Types.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="_asymm_helpers_8h_source.xhtml">arm_compute/core/utils/quantization/AsymmHelpers.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="_c_l_functions_8h_source.xhtml">arm_compute/runtime/CL/CLFunctions.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="_c_l_scheduler_8h_source.xhtml">arm_compute/runtime/CL/CLScheduler.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="_assets_library_8h_source.xhtml">tests/AssetsLibrary.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="_c_l_accessor_8h_source.xhtml">tests/CL/CLAccessor.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="_globals_8h_source.xhtml">tests/Globals.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="_i_accessor_8h_source.xhtml">tests/IAccessor.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="_simple_tensor_8h_source.xhtml">tests/SimpleTensor.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="_validation_8h_source.xhtml">tests/validation/Validation.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="_g_e_m_m_8h_source.xhtml">tests/validation/reference/GEMM.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="_g_e_m_m_lowp_8h_source.xhtml">tests/validation/reference/GEMMLowp.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="utils_2_type_printer_8h_source.xhtml">utils/TypePrinter.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="utils_2_utils_8h_source.xhtml">utils/Utils.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="_command_line_options_8h_source.xhtml">utils/command_line/CommandLineOptions.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="_command_line_parser_8h_source.xhtml">utils/command_line/CommandLineParser.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="_validate_example_8h_source.xhtml">ValidateExample.h</a>&quot;</code><br />
<code>#include &lt;cstdlib&gt;</code><br />
</div>
<p><a href="cl__gemm_8cpp_source.xhtml">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
Namespaces</h2></td></tr>
<tr class="memitem:namespacearm__compute"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml">arm_compute</a></td></tr>
<tr class="memdesc:namespacearm__compute"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copyright (c) 2017-2019 ARM Limited. <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:a320923ca5107cdfc05823e2ad588ac59"><td class="memItemLeft" align="right" valign="top">constexpr float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="cl__gemm_8cpp.xhtml#a320923ca5107cdfc05823e2ad588ac59">abs_tolerance_f32</a> (0.0001f)</td></tr>
<tr class="memdesc:a320923ca5107cdfc05823e2ad588ac59"><td class="mdescLeft">&#160;</td><td class="mdescRight">F32 Absolute tolerance value for comparing reference's output against implementation's output for floating point data types in case using relative tolerance fails because of small values. <a href="#a320923ca5107cdfc05823e2ad588ac59">More...</a><br /></td></tr>
<tr class="separator:a320923ca5107cdfc05823e2ad588ac59"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a64e6501d564e950c3d527fb6b1f36f28"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6">arm_compute::DataType</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a64e6501d564e950c3d527fb6b1f36f28">data_type_from_name</a> (const std::string &amp;name)</td></tr>
<tr class="memdesc:a64e6501d564e950c3d527fb6b1f36f28"><td class="mdescLeft">&#160;</td><td class="mdescRight">Converts a string to a strong types enumeration <a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6">DataType</a>. <a href="namespacearm__compute.xhtml#a64e6501d564e950c3d527fb6b1f36f28">More...</a><br /></td></tr>
<tr class="separator:a64e6501d564e950c3d527fb6b1f36f28"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a641870b1f0ca7aaaa73c7a536c1e824b"><td class="memItemLeft" align="right" valign="top">inline ::std::istream &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a641870b1f0ca7aaaa73c7a536c1e824b">operator&gt;&gt;</a> (::std::istream &amp;stream, <a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6">arm_compute::DataType</a> &amp;data_type)</td></tr>
<tr class="memdesc:a641870b1f0ca7aaaa73c7a536c1e824b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Input Stream operator for <a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6">DataType</a>. <a href="namespacearm__compute.xhtml#a641870b1f0ca7aaaa73c7a536c1e824b">More...</a><br /></td></tr>
<tr class="separator:a641870b1f0ca7aaaa73c7a536c1e824b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3c04138a5bfe5d72780bb7e82a18e627"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="cl__gemm_8cpp.xhtml#a3c04138a5bfe5d72780bb7e82a18e627">main</a> (int argc, char **argv)</td></tr>
<tr class="memdesc:a3c04138a5bfe5d72780bb7e82a18e627"><td class="mdescLeft">&#160;</td><td class="mdescRight">Main program for gemm test. <a href="#a3c04138a5bfe5d72780bb7e82a18e627">More...</a><br /></td></tr>
<tr class="separator:a3c04138a5bfe5d72780bb7e82a18e627"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
Variables</h2></td></tr>
<tr class="memitem:ae7f215e412cfa0dae5a983b0bf4071a1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classarm__compute_1_1test_1_1validation_1_1_relative_tolerance.xhtml">RelativeTolerance</a>&lt; float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="cl__gemm_8cpp.xhtml#ae7f215e412cfa0dae5a983b0bf4071a1">tolerance_f32</a> (0.001f)</td></tr>
<tr class="memdesc:ae7f215e412cfa0dae5a983b0bf4071a1"><td class="mdescLeft">&#160;</td><td class="mdescRight">F32 Tolerance value for comparing reference's output against implementation's output for floating point data types. <a href="#ae7f215e412cfa0dae5a983b0bf4071a1">More...</a><br /></td></tr>
<tr class="separator:ae7f215e412cfa0dae5a983b0bf4071a1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1a8821d598e02dce24cf1140da3539bb"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classarm__compute_1_1test_1_1validation_1_1_relative_tolerance.xhtml">RelativeTolerance</a>&lt; half_float::half &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="cl__gemm_8cpp.xhtml#a1a8821d598e02dce24cf1140da3539bb">tolerance_f16</a> (<a class="el" href="namespacearm__compute.xhtml#a73e2825fd61d349c5ca2f5313e3c8ea1">half</a>(0.2))</td></tr>
<tr class="memdesc:a1a8821d598e02dce24cf1140da3539bb"><td class="mdescLeft">&#160;</td><td class="mdescRight">F16 Tolerance value for comparing reference's output against implementation's output for floating point data types. <a href="#a1a8821d598e02dce24cf1140da3539bb">More...</a><br /></td></tr>
<tr class="separator:a1a8821d598e02dce24cf1140da3539bb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2ce7d169d1cc3aeb960e3f3f9273e365"><td class="memItemLeft" align="right" valign="top">constexpr float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="cl__gemm_8cpp.xhtml#a2ce7d169d1cc3aeb960e3f3f9273e365">tolerance_num_f16</a> = 0.02f</td></tr>
<tr class="memdesc:a2ce7d169d1cc3aeb960e3f3f9273e365"><td class="mdescLeft">&#160;</td><td class="mdescRight">F16 Tolerance number. <a href="#a2ce7d169d1cc3aeb960e3f3f9273e365">More...</a><br /></td></tr>
<tr class="separator:a2ce7d169d1cc3aeb960e3f3f9273e365"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Function Documentation</h2>
<a id="a320923ca5107cdfc05823e2ad588ac59"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a320923ca5107cdfc05823e2ad588ac59">&#9670;&nbsp;</a></span>abs_tolerance_f32()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">constexpr float abs_tolerance_f32 </td>
<td>(</td>
<td class="paramtype">0.&#160;</td>
<td class="paramname"><em>0001f</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>F32 Absolute tolerance value for comparing reference's output against implementation's output for floating point data types in case using relative tolerance fails because of small values. </p>
<p class="reference">Referenced by <a class="el" href="_c_l_2_depthwise_convolution_layer_native_8cpp_source.xhtml#l00218">arm_compute::test::validation::combine()</a>, and <a class="el" href="tests_2validation_2_c_l_2_fully_connected_layer_8cpp_source.xhtml#l00187">arm_compute::test::validation::FIXTURE_DATA_TEST_CASE()</a>.</p>
</div>
</div>
<a id="a3c04138a5bfe5d72780bb7e82a18e627"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3c04138a5bfe5d72780bb7e82a18e627">&#9670;&nbsp;</a></span>main()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int main </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>argc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">char **&#160;</td>
<td class="paramname"><em>argv</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Main program for gemm test. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">argc</td><td>Number of arguments </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">argv</td><td>Arguments </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="cl__gemm_8cpp_source.xhtml#l00426">426</a> of file <a class="el" href="cl__gemm_8cpp_source.xhtml">cl_gemm.cpp</a>.</p>
<div class="fragment"><div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160;{</div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160; <span class="keywordflow">return</span> utils::run_example&lt;CLGEMMValidateExample&gt;(argc, argv);</div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160;}</div></div><!-- fragment -->
</div>
</div>
<h2 class="groupheader">Variable Documentation</h2>
<a id="a1a8821d598e02dce24cf1140da3539bb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1a8821d598e02dce24cf1140da3539bb">&#9670;&nbsp;</a></span>tolerance_f16</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classarm__compute_1_1test_1_1validation_1_1_relative_tolerance.xhtml">RelativeTolerance</a>&lt;half_float::half&gt; tolerance_f16(<a class="el" href="namespacearm__compute.xhtml#a73e2825fd61d349c5ca2f5313e3c8ea1">half</a>(0.2))</td>
</tr>
</table>
</div><div class="memdoc">
<p>F16 Tolerance value for comparing reference's output against implementation's output for floating point data types. </p>
<p class="reference">Referenced by <a class="el" href="validation_2_c_l_2_depthwise_convolution_layer_8cpp_source.xhtml#l00333">arm_compute::test::validation::combine()</a>, and <a class="el" href="tests_2validation_2_c_l_2_fully_connected_layer_8cpp_source.xhtml#l00170">arm_compute::test::validation::FIXTURE_DATA_TEST_CASE()</a>.</p>
</div>
</div>
<a id="ae7f215e412cfa0dae5a983b0bf4071a1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae7f215e412cfa0dae5a983b0bf4071a1">&#9670;&nbsp;</a></span>tolerance_f32</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classarm__compute_1_1test_1_1validation_1_1_relative_tolerance.xhtml">RelativeTolerance</a>&lt;float&gt; tolerance_f32(0.001f)</td>
</tr>
</table>
</div><div class="memdoc">
<p>F32 Tolerance value for comparing reference's output against implementation's output for floating point data types. </p>
<p class="reference">Referenced by <a class="el" href="validation_2_c_l_2_depthwise_convolution_layer_8cpp_source.xhtml#l00421">arm_compute::test::validation::combine()</a>, <a class="el" href="tests_2validation_2_c_l_2fft_8cpp_source.xhtml#l00132">arm_compute::test::validation::FIXTURE_DATA_TEST_CASE()</a>, and <a class="el" href="_c_l_2_u_n_i_t_2_memory_manager_8cpp_source.xhtml#l00057">arm_compute::test::validation::FIXTURE_TEST_CASE()</a>.</p>
</div>
</div>
<a id="a2ce7d169d1cc3aeb960e3f3f9273e365"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2ce7d169d1cc3aeb960e3f3f9273e365">&#9670;&nbsp;</a></span>tolerance_num_f16</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">constexpr float tolerance_num_f16 = 0.02f</td>
</tr>
</table>
</div><div class="memdoc">
<p>F16 Tolerance number. </p>
<p class="definition">Definition at line <a class="el" href="cl__gemm_8cpp_source.xhtml#l00060">60</a> of file <a class="el" href="cl__gemm_8cpp_source.xhtml">cl_gemm.cpp</a>.</p>
<p class="reference">Referenced by <a class="el" href="_g_e_m_m_matrix_multiply_8cpp_source.xhtml#l00265">arm_compute::test::validation::combine()</a>, and <a class="el" href="_g_e_m_m_matrix_multiply_8cpp_source.xhtml#l00282">arm_compute::test::validation::FIXTURE_DATA_TEST_CASE()</a>.</p>
</div>
</div>
</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="dir_59425e443f801f1f2fd8bbe4959a3ccf.xhtml">tests</a></li><li class="navelem"><a class="el" href="dir_c17e235a7be576fb898bcc8e94f529de.xhtml">validate_examples</a></li><li class="navelem"><a class="el" href="cl__gemm_8cpp.xhtml">cl_gemm.cpp</a></li>
<li class="footer">Generated on Thu Nov 28 2019 16:53:08 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>