<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">Compute Library
-  <span id="projectnumber">18.01</span>
+  <span id="projectnumber">18.02</span>
</div>
</td>
</tr>
<div class="title">GEMM.cpp</div> </div>
</div><!--header-->
<div class="contents">
-<a href="validation_2_c_l_2_g_e_m_m_8cpp.xhtml">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (c) 2017, 2018 ARM Limited.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> * SPDX-License-Identifier: MIT</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> *</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * Permission is hereby granted, free of charge, to any person obtaining a copy</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> * of this software and associated documentation files (the "Software"), to</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> * deal in the Software without restriction, including without limitation the</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment"> * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment"> * sell copies of the Software, and to permit persons to whom the Software is</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment"> * furnished to do so, subject to the following conditions:</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="comment"> *</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment"> * The above copyright notice and this permission notice shall be included in all</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment"> * copies or substantial portions of the Software.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment"> *</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment"> * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="comment"> * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="comment"> * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="comment"> * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="comment"> * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="comment"> * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="comment"> * SOFTWARE.</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="comment"> */</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#include "<a class="code" href="_c_l_g_e_m_m_interleave4x4_kernel_8h.xhtml">arm_compute/core/CL/kernels/CLGEMMInterleave4x4Kernel.h</a>"</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#include "<a class="code" href="_c_l_g_e_m_m_transpose1x_w_kernel_8h.xhtml">arm_compute/core/CL/kernels/CLGEMMTranspose1xWKernel.h</a>"</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#include "<a class="code" href="arm__compute_2core_2_types_8h.xhtml">arm_compute/core/Types.h</a>"</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#include "<a class="code" href="_c_l_tensor_8h.xhtml">arm_compute/runtime/CL/CLTensor.h</a>"</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#include "<a class="code" href="_c_l_tensor_allocator_8h.xhtml">arm_compute/runtime/CL/CLTensorAllocator.h</a>"</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#include "<a class="code" href="_c_l_g_e_m_m_8h.xhtml">arm_compute/runtime/CL/functions/CLGEMM.h</a>"</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#include "<a class="code" href="_c_l_accessor_8h.xhtml">tests/CL/CLAccessor.h</a>"</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#include "<a class="code" href="_c_l_2_helper_8h.xhtml">tests/CL/Helper.h</a>"</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="preprocessor">#include "<a class="code" href="_padding_calculator_8h.xhtml">tests/PaddingCalculator.h</a>"</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor">#include "<a class="code" href="_large_g_e_m_m_dataset_8h.xhtml">tests/datasets/LargeGEMMDataset.h</a>"</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="preprocessor">#include "<a class="code" href="_small_g_e_m_m_dataset_8h.xhtml">tests/datasets/SmallGEMMDataset.h</a>"</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor">#include "<a class="code" href="_asserts_8h.xhtml">tests/framework/Asserts.h</a>"</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="preprocessor">#include "<a class="code" href="tests_2framework_2_macros_8h.xhtml">tests/framework/Macros.h</a>"</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="preprocessor">#include "<a class="code" href="_datasets_8h.xhtml">tests/framework/datasets/Datasets.h</a>"</span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="preprocessor">#include "<a class="code" href="_validation_8h.xhtml">tests/validation/Validation.h</a>"</span></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="preprocessor">#include "<a class="code" href="validation_2fixtures_2_g_e_m_m_fixture_8h.xhtml">tests/validation/fixtures/GEMMFixture.h</a>"</span></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="preprocessor">#include "<a class="code" href="validation_2fixtures_2_g_e_m_m_interleave4x4_fixture_8h.xhtml">tests/validation/fixtures/GEMMInterleave4x4Fixture.h</a>"</span></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="preprocessor">#include "<a class="code" href="_g_e_m_m_transpose1x_w_fixture_8h.xhtml">tests/validation/fixtures/GEMMTranspose1xWFixture.h</a>"</span></div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span> </div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="keyword">namespace </span><a class="code" href="namespacearm__compute.xhtml">arm_compute</a></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span> {</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="keyword">namespace </span>test</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span> {</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="keyword">namespace </span>validation</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span> {</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="keyword">namespace</span></div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span> {</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span> RelativeTolerance<float> tolerance_f32(0.001f); </div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span> RelativeTolerance<half_float::half> tolerance_f16(<a class="code" href="namespacearm__compute.xhtml#a73e2825fd61d349c5ca2f5313e3c8ea1">half</a>(0.2)); </div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span> constexpr AbsoluteTolerance<float> tolerance_q(1.0f); </div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span> constexpr <span class="keywordtype">float</span> tolerance_num = 0.02f; </div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span> <span class="keyword">const</span> <span class="keyword">auto</span> data_interleave = <a class="code" href="namespacearm__compute_1_1test_1_1framework_1_1dataset.xhtml#a352791fb808d42a82ad70df5efa3508b">framework::dataset::make</a>(<span class="stringliteral">"M"</span>, 8, 14) * <a class="code" href="namespacearm__compute_1_1test_1_1framework_1_1dataset.xhtml#a352791fb808d42a82ad70df5efa3508b">framework::dataset::make</a>(<span class="stringliteral">"N"</span>, 7, 14);</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span> </div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="keyword">const</span> <span class="keyword">auto</span> CNNDataTypes = <a class="code" href="namespacearm__compute_1_1test_1_1framework_1_1dataset.xhtml#a352791fb808d42a82ad70df5efa3508b">framework::dataset::make</a>(<span class="stringliteral">"DataType"</span>,</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span> {</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  <a class="code" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a56d8353718e6fdc78b8d69078a2cdb94">DataType::F16</a>,</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  <a class="code" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a44ad4ef5a76e6aa6fb3e3fa079a54fda">DataType::F32</a>,</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  <a class="code" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a11cde4d3551db3f9498d339a67189543">DataType::QS8</a>,</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  <a class="code" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a48d877702a2957f5a932c43a357866f9">DataType::QS16</a>,</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span> });</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span> } <span class="comment">// namespace</span></div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span> </div><div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="namespacearm__compute_1_1test_1_1validation.xhtml#a21c746108f9b5d95496012a42de374cd"> 67</a></span> <span class="keyword">const</span> <span class="keyword">auto</span> <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a21c746108f9b5d95496012a42de374cd">data_transpose</a> = <a class="code" href="namespacearm__compute_1_1test_1_1framework_1_1dataset.xhtml#a352791fb808d42a82ad70df5efa3508b">framework::dataset::make</a>(<span class="stringliteral">"M"</span>, 8, 14) * <a class="code" href="namespacearm__compute_1_1test_1_1framework_1_1dataset.xhtml#a352791fb808d42a82ad70df5efa3508b">framework::dataset::make</a>(<span class="stringliteral">"N"</span>, 7, 14);</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span> </div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span> <a class="code" href="tests_2framework_2_macros_8h.xhtml#acd09bed517e43d28823e69494f259835">TEST_SUITE</a>(CL)</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span> <a class="code" href="tests_2framework_2_macros_8h.xhtml#acd09bed517e43d28823e69494f259835">TEST_SUITE</a>(GEMM)</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span> </div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span> <a class="code" href="tests_2framework_2_macros_8h.xhtml#acd09bed517e43d28823e69494f259835">TEST_SUITE</a>(INTERLEAVE_4X4)</div><div class="line"><a name="l00073"></a><span class="lineno"><a class="line" href="namespacearm__compute_1_1test_1_1validation.xhtml#a2ba36b2bb455fe3e2c73534ed8b5bee7"> 73</a></span> using <a class="code" href="classarm__compute_1_1test_1_1_c_l_synthetize_function_with_zero_constant_border.xhtml">CLGEMMInterleave4x4</a> = <a class="code" href="classarm__compute_1_1test_1_1_c_l_synthetize_function_with_zero_constant_border.xhtml">CLSynthetizeFunctionWithZeroConstantBorder</a><<a class="code" href="classarm__compute_1_1_c_l_g_e_m_m_interleave4x4_kernel.xhtml">CLGEMMInterleave4x4Kernel</a>, 4>;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span> </div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span> <a class="code" href="tests_2framework_2_macros_8h.xhtml#acd09bed517e43d28823e69494f259835">TEST_SUITE</a>(FP32)</div><div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="namespacearm__compute_1_1test_1_1validation.xhtml#a5d31b276f9567381e85f89c61d09fa4c"> 76</a></span> using <a class="code" href="classarm__compute_1_1test_1_1validation_1_1_g_e_m_m_interleave4x4_validation_fixture.xhtml">CLGEMMInterleave4x4Fixture</a> = <a class="code" href="classarm__compute_1_1test_1_1validation_1_1_g_e_m_m_interleave4x4_validation_fixture.xhtml">GEMMInterleave4x4ValidationFixture</a><<a class="code" href="classarm__compute_1_1_c_l_tensor.xhtml">CLTensor</a>, <a class="code" href="classarm__compute_1_1test_1_1_c_l_accessor.xhtml">CLAccessor</a>, <a class="code" href="classarm__compute_1_1test_1_1_c_l_synthetize_function_with_zero_constant_border.xhtml">CLGEMMInterleave4x4</a>, <span class="keywordtype">float</span>>;</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span> <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a6b5e9878192726548c5546a4cbc175ab">FIXTURE_DATA_TEST_CASE</a>(RunSmall, <a class="code" href="classarm__compute_1_1test_1_1validation_1_1_g_e_m_m_interleave4x4_validation_fixture.xhtml">CLGEMMInterleave4x4Fixture</a>, framework::<a class="code" href="namespacearm__compute_1_1test_1_1framework.xhtml#a7edf31944a6144ffd493d2f9a7bfb5cf">DatasetMode</a>::PRECOMMIT, data_interleave * framework::dataset::<a class="code" href="namespacearm__compute_1_1test_1_1framework_1_1dataset.xhtml#a352791fb808d42a82ad70df5efa3508b">make</a>("<a class="code" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6">DataType</a>", DataType::F32))</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span> {</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  <span class="comment">// Validate output</span></div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a6813132c943295888972727864ea5c2f">validate</a>(CLAccessor(_target), _reference);</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span> }</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span> <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a38fe4b20a05bbaa1c844f3d7a19791ae">TEST_SUITE_END</a>() <span class="comment">// FP32</span></div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span> </div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span> <a class="code" href="tests_2framework_2_macros_8h.xhtml#acd09bed517e43d28823e69494f259835">TEST_SUITE</a>(Quantized)</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span> <a class="code" href="tests_2framework_2_macros_8h.xhtml#acd09bed517e43d28823e69494f259835">TEST_SUITE</a>(<a class="code" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a11cde4d3551db3f9498d339a67189543">QS8</a>)</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span> <span class="keyword">using</span> <a class="code" href="classarm__compute_1_1test_1_1validation_1_1_g_e_m_m_interleave4x4_validation_fixture.xhtml">CLGEMMInterleave4x4Fixture</a> = <a class="code" href="classarm__compute_1_1test_1_1validation_1_1_g_e_m_m_interleave4x4_validation_fixed_point_fixture.xhtml">GEMMInterleave4x4ValidationFixedPointFixture<CLTensor, CLAccessor, CLGEMMInterleave4x4, int8_t></a>;</div><div class="line"><a name="l00087"></a><span class="lineno"><a class="line" href="namespacearm__compute_1_1test_1_1validation.xhtml#a275ba82f7b2bdea8f696a6049e8d5756"> 87</a></span> <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a6b5e9878192726548c5546a4cbc175ab">FIXTURE_DATA_TEST_CASE</a>(RunSmall, <a class="code" href="classarm__compute_1_1test_1_1validation_1_1_g_e_m_m_interleave4x4_validation_fixture.xhtml">CLGEMMInterleave4x4Fixture</a>, <a class="code" href="namespacearm__compute_1_1test_1_1framework.xhtml#a7edf31944a6144ffd493d2f9a7bfb5cfab829534c7b40afdbd3c3ffea05202a97">framework::DatasetMode::PRECOMMIT</a>, data_interleave *</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  <a class="code" href="namespacearm__compute_1_1test_1_1framework_1_1dataset.xhtml#a352791fb808d42a82ad70df5efa3508b">framework::dataset::make</a>(<span class="stringliteral">"DataType"</span>, <a class="code" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a11cde4d3551db3f9498d339a67189543">DataType::QS8</a>)</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  * <a class="code" href="namespacearm__compute_1_1test_1_1framework_1_1dataset.xhtml#a352791fb808d42a82ad70df5efa3508b">framework::dataset::make</a>(<span class="stringliteral">"FractionalBits"</span>, 1, 7))</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span> {</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  <span class="comment">// Validate output</span></div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a6813132c943295888972727864ea5c2f">validate</a>(<a class="code" href="classarm__compute_1_1test_1_1_c_l_accessor.xhtml">CLAccessor</a>(_target), _reference);</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span> }</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span> <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a38fe4b20a05bbaa1c844f3d7a19791ae">TEST_SUITE_END</a>()</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span> </div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span> <a class="code" href="tests_2framework_2_macros_8h.xhtml#acd09bed517e43d28823e69494f259835">TEST_SUITE</a>(<a class="code" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a48d877702a2957f5a932c43a357866f9">QS16</a>)</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span> <span class="keyword">using</span> <a class="code" href="classarm__compute_1_1test_1_1validation_1_1_g_e_m_m_interleave4x4_validation_fixture.xhtml">CLGEMMInterleave4x4Fixture</a> = <a class="code" href="classarm__compute_1_1test_1_1validation_1_1_g_e_m_m_interleave4x4_validation_fixed_point_fixture.xhtml">GEMMInterleave4x4ValidationFixedPointFixture<CLTensor, CLAccessor, CLGEMMInterleave4x4, int16_t></a>;</div><div class="line"><a name="l00098"></a><span class="lineno"><a class="line" href="namespacearm__compute_1_1test_1_1validation.xhtml#af2b4aa6de69a578d5eeb00f138f4f579"> 98</a></span> <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a6b5e9878192726548c5546a4cbc175ab">FIXTURE_DATA_TEST_CASE</a>(RunSmall, <a class="code" href="classarm__compute_1_1test_1_1validation_1_1_g_e_m_m_interleave4x4_validation_fixture.xhtml">CLGEMMInterleave4x4Fixture</a>, <a class="code" href="namespacearm__compute_1_1test_1_1framework.xhtml#a7edf31944a6144ffd493d2f9a7bfb5cfab829534c7b40afdbd3c3ffea05202a97">framework::DatasetMode::PRECOMMIT</a>, data_interleave *</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  <a class="code" href="namespacearm__compute_1_1test_1_1framework_1_1dataset.xhtml#a352791fb808d42a82ad70df5efa3508b">framework::dataset::make</a>(<span class="stringliteral">"DataType"</span>, <a class="code" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a48d877702a2957f5a932c43a357866f9">DataType::QS16</a>)</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  * <a class="code" href="namespacearm__compute_1_1test_1_1framework_1_1dataset.xhtml#a352791fb808d42a82ad70df5efa3508b">framework::dataset::make</a>(<span class="stringliteral">"FractionalBits"</span>, 1, 14))</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span> {</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  <span class="comment">// Validate output</span></div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a6813132c943295888972727864ea5c2f">validate</a>(<a class="code" href="classarm__compute_1_1test_1_1_c_l_accessor.xhtml">CLAccessor</a>(_target), _reference);</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span> }</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span> <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a38fe4b20a05bbaa1c844f3d7a19791ae">TEST_SUITE_END</a>()</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span> </div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span> <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a38fe4b20a05bbaa1c844f3d7a19791ae">TEST_SUITE_END</a>()</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span> </div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span> <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a38fe4b20a05bbaa1c844f3d7a19791ae">TEST_SUITE_END</a>() <span class="comment">// INTERLEAVE_4X4</span></div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span> </div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span> <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a35d3ab6d678579401ec6efeccd788c3b">DATA_TEST_CASE</a>(Configuration, <a class="code" href="namespacearm__compute_1_1test_1_1framework.xhtml#a7edf31944a6144ffd493d2f9a7bfb5cfa5fb1f955b45e38e31789286a1790398d">framework::DatasetMode::ALL</a>, <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#ab3c94cd6eccab4c3a507d03920281124">combine</a>(<a class="code" href="namespacearm__compute_1_1test_1_1framework_1_1dataset.xhtml#a20b2c46a6ccea85acf64c599a68251d7">framework::dataset::concat</a>(<a class="code" href="classarm__compute_1_1test_1_1datasets_1_1_small_g_e_m_m_dataset.xhtml">datasets::SmallGEMMDataset</a>(), <a class="code" href="classarm__compute_1_1test_1_1datasets_1_1_large_g_e_m_m_dataset.xhtml">datasets::LargeGEMMDataset</a>()), CNNDataTypes),</div><div class="line"><a name="l00112"></a><span class="lineno"><a class="line" href="namespacearm__compute_1_1test_1_1validation.xhtml#a141b596a566813a7fc3116f9881d3dc9"> 112</a></span>  <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#ac2c387216b8389a6069b2e5205bc03a9">shape_a</a>, <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#ab39a7489f0c4ef5db0dfa9291073fe61">shape_b</a>, <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a141b596a566813a7fc3116f9881d3dc9">shape_c</a>, <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a7fc93f37dac131a1a40b7921f9df3a9a">output_shape</a>, <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a62197192f0fbf4e0675eb37be1c4c175">alpha</a>, <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#ab146b9cbab6e73e7588b240dc709fe01">beta</a>, <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#ac2ad7f431e3446fddcd9b6b9f93c4c14">data_type</a>)</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span> {</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  <span class="comment">// Set fixed point position data type allowed</span></div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  <span class="keyword">const</span> <span class="keywordtype">int</span> fixed_point_position = <a class="code" href="namespacearm__compute.xhtml#ab6bb62694ae8369d18a9c9687040975e">is_data_type_fixed_point</a>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#ac2ad7f431e3446fddcd9b6b9f93c4c14">data_type</a>) ? 3 : 0;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span> </div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  <span class="comment">// Create tensors</span></div><div class="line"><a name="l00118"></a><span class="lineno"><a class="line" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79"> 118</a></span>  <a class="code" href="classarm__compute_1_1_c_l_tensor.xhtml">CLTensor</a> <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a> = create_tensor<CLTensor>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#ac2c387216b8389a6069b2e5205bc03a9">shape_a</a>, <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#ac2ad7f431e3446fddcd9b6b9f93c4c14">data_type</a>, 1, fixed_point_position);</div><div class="line"><a name="l00119"></a><span class="lineno"><a class="line" href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff"> 119</a></span>  <a class="code" href="classarm__compute_1_1_c_l_tensor.xhtml">CLTensor</a> <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">b</a> = create_tensor<CLTensor>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#ab39a7489f0c4ef5db0dfa9291073fe61">shape_b</a>, <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#ac2ad7f431e3446fddcd9b6b9f93c4c14">data_type</a>, 1, fixed_point_position);</div><div class="line"><a name="l00120"></a><span class="lineno"><a class="line" href="namespacearm__compute_1_1test_1_1validation.xhtml#a497347573faa3778743ddf277f861094"> 120</a></span>  <a class="code" href="classarm__compute_1_1_c_l_tensor.xhtml">CLTensor</a> <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a497347573faa3778743ddf277f861094">c</a> = create_tensor<CLTensor>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a141b596a566813a7fc3116f9881d3dc9">shape_c</a>, <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#ac2ad7f431e3446fddcd9b6b9f93c4c14">data_type</a>, 1, fixed_point_position);</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  <a class="code" href="classarm__compute_1_1_c_l_tensor.xhtml">CLTensor</a> <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#adbf67dcee294e673cf796f1ed8aeb6a4">dst</a> = create_tensor<CLTensor>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a7fc93f37dac131a1a40b7921f9df3a9a">output_shape</a>, <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#ac2ad7f431e3446fddcd9b6b9f93c4c14">data_type</a>, 1, fixed_point_position);</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span> </div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#af3c1de77fd86df539395c75c17ec230e">ARM_COMPUTE_EXPECT</a>(a.<a class="code" href="classarm__compute_1_1_c_l_tensor.xhtml#a97de03c31e0ca04be6960e2e3ffdca95">info</a>()-><a class="code" href="classarm__compute_1_1_tensor_info.xhtml#aaee6555ace43b03173844b1a228a3fc3">is_resizable</a>(), <a class="code" href="namespacearm__compute_1_1test_1_1framework.xhtml#aca1fd1d8935433e6ba2e3918214e07f9a6f3a603fac4d817f1848c3173b243b57">framework::LogLevel::ERRORS</a>);</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#af3c1de77fd86df539395c75c17ec230e">ARM_COMPUTE_EXPECT</a>(b.<a class="code" href="classarm__compute_1_1_c_l_tensor.xhtml#a97de03c31e0ca04be6960e2e3ffdca95">info</a>()-><a class="code" href="classarm__compute_1_1_tensor_info.xhtml#aaee6555ace43b03173844b1a228a3fc3">is_resizable</a>(), <a class="code" href="namespacearm__compute_1_1test_1_1framework.xhtml#aca1fd1d8935433e6ba2e3918214e07f9a6f3a603fac4d817f1848c3173b243b57">framework::LogLevel::ERRORS</a>);</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#af3c1de77fd86df539395c75c17ec230e">ARM_COMPUTE_EXPECT</a>(c.<a class="code" href="classarm__compute_1_1_c_l_tensor.xhtml#a97de03c31e0ca04be6960e2e3ffdca95">info</a>()-><a class="code" href="classarm__compute_1_1_tensor_info.xhtml#aaee6555ace43b03173844b1a228a3fc3">is_resizable</a>(), <a class="code" href="namespacearm__compute_1_1test_1_1framework.xhtml#aca1fd1d8935433e6ba2e3918214e07f9a6f3a603fac4d817f1848c3173b243b57">framework::LogLevel::ERRORS</a>);</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#af3c1de77fd86df539395c75c17ec230e">ARM_COMPUTE_EXPECT</a>(dst.info()->is_resizable(), <a class="code" href="namespacearm__compute_1_1test_1_1framework.xhtml#aca1fd1d8935433e6ba2e3918214e07f9a6f3a603fac4d817f1848c3173b243b57">framework::LogLevel::ERRORS</a>);</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span> </div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  <span class="comment">// Create and configure function</span></div><div class="line"><a name="l00129"></a><span class="lineno"><a class="line" href="namespacearm__compute_1_1test_1_1validation.xhtml#ab84214a10c816dc554f190c53b535622"> 129</a></span>  <a class="code" href="classarm__compute_1_1_c_l_g_e_m_m.xhtml">CLGEMM</a> <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#ab84214a10c816dc554f190c53b535622">gemm</a>;</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  gemm.<a class="code" href="classarm__compute_1_1_c_l_g_e_m_m.xhtml#a34e7b882208ff6720bad2e4f2c7565c5">configure</a>(&a, &b, &c, &dst, <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a62197192f0fbf4e0675eb37be1c4c175">alpha</a>, <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#ab146b9cbab6e73e7588b240dc709fe01">beta</a>);</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span> }</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span> </div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div><div class="line"><a name="l00134"></a><span class="lineno"><a class="line" href="namespacearm__compute_1_1test_1_1validation.xhtml#a02a82a5e8cc3d3a54da7fd340f9bc81b"> 134</a></span> <span class="keyword">using</span> <a class="code" href="classarm__compute_1_1test_1_1validation_1_1_g_e_m_m_validation_fixture.xhtml">CLGEMMFixture</a> = <a class="code" href="classarm__compute_1_1test_1_1validation_1_1_g_e_m_m_validation_fixture.xhtml">GEMMValidationFixture<CLTensor, CLAccessor, CLGEMM, T></a>;</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span> </div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span> <a class="code" href="tests_2framework_2_macros_8h.xhtml#acd09bed517e43d28823e69494f259835">TEST_SUITE</a>(TRANSPOSE_1XW)</div><div class="line"><a name="l00137"></a><span class="lineno"><a class="line" href="namespacearm__compute_1_1test_1_1validation.xhtml#a2547fa6c90a3454a75413e43ee5b88ec"> 137</a></span> using <a class="code" href="classarm__compute_1_1test_1_1_c_l_synthetize_function_with_zero_constant_border.xhtml">CLGEMMTranspose1xW</a> = <a class="code" href="classarm__compute_1_1test_1_1_c_l_synthetize_function_with_zero_constant_border.xhtml">CLSynthetizeFunctionWithZeroConstantBorder</a><<a class="code" href="classarm__compute_1_1_c_l_g_e_m_m_transpose1x_w_kernel.xhtml">CLGEMMTranspose1xWKernel</a>, 4>;</div><div class="line"><a name="l00138"></a><span class="lineno"><a class="line" href="namespacearm__compute_1_1test_1_1validation.xhtml#a2e1e5ad31f9f58c59aaf1de97511f8c0"> 138</a></span> using <a class="code" href="classarm__compute_1_1test_1_1validation_1_1_g_e_m_m_transpose1x_w_validation_fixture.xhtml">CLGEMMTranspose1xWFixture</a> = <a class="code" href="classarm__compute_1_1test_1_1validation_1_1_g_e_m_m_transpose1x_w_validation_fixture.xhtml">GEMMTranspose1xWValidationFixture</a><<a class="code" href="classarm__compute_1_1_c_l_tensor.xhtml">CLTensor</a>, <a class="code" href="classarm__compute_1_1test_1_1_c_l_accessor.xhtml">CLAccessor</a>, <a class="code" href="classarm__compute_1_1test_1_1_c_l_synthetize_function_with_zero_constant_border.xhtml">CLGEMMTranspose1xW</a>, <span class="keywordtype">float</span>>;</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span> <a class="code" href="tests_2framework_2_macros_8h.xhtml#acd09bed517e43d28823e69494f259835">TEST_SUITE</a>(FP32)</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span> <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a6b5e9878192726548c5546a4cbc175ab">FIXTURE_DATA_TEST_CASE</a>(RunSmall, <a class="code" href="classarm__compute_1_1test_1_1validation_1_1_g_e_m_m_transpose1x_w_validation_fixture.xhtml">CLGEMMTranspose1xWFixture</a>, framework::<a class="code" href="namespacearm__compute_1_1test_1_1framework.xhtml#a7edf31944a6144ffd493d2f9a7bfb5cf">DatasetMode</a>::PRECOMMIT, <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a21c746108f9b5d95496012a42de374cd">data_transpose</a> * framework::dataset::<a class="code" href="namespacearm__compute_1_1test_1_1framework_1_1dataset.xhtml#a352791fb808d42a82ad70df5efa3508b">make</a>("<a class="code" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6">DataType</a>", DataType::F32))</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span> {</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  <span class="comment">// Validate output</span></div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a6813132c943295888972727864ea5c2f">validate</a>(CLAccessor(_target), _reference);</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span> }</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span> <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a38fe4b20a05bbaa1c844f3d7a19791ae">TEST_SUITE_END</a>() <span class="comment">// FP32</span></div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span> </div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span> <a class="code" href="tests_2framework_2_macros_8h.xhtml#acd09bed517e43d28823e69494f259835">TEST_SUITE</a>(Quantized)</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span> <a class="code" href="tests_2framework_2_macros_8h.xhtml#acd09bed517e43d28823e69494f259835">TEST_SUITE</a>(<a class="code" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a11cde4d3551db3f9498d339a67189543">QS8</a>)</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span> <span class="keyword">using</span> <a class="code" href="classarm__compute_1_1test_1_1_c_l_synthetize_function_with_zero_constant_border.xhtml">CLGEMMTranspose1xW</a> = <a class="code" href="classarm__compute_1_1test_1_1_c_l_synthetize_function_with_zero_constant_border.xhtml">CLSynthetizeFunctionWithZeroConstantBorder<CLGEMMTranspose1xWKernel, 16></a>;</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span> <span class="keyword">using</span> <a class="code" href="classarm__compute_1_1test_1_1validation_1_1_g_e_m_m_transpose1x_w_validation_fixture.xhtml">CLGEMMTranspose1xWFixture</a> = <a class="code" href="classarm__compute_1_1test_1_1validation_1_1_g_e_m_m_transpose1x_w_validation_fixed_point_fixture.xhtml">GEMMTranspose1xWValidationFixedPointFixture<CLTensor, CLAccessor, CLGEMMTranspose1xW, int8_t></a>;</div><div class="line"><a name="l00151"></a><span class="lineno"><a class="line" href="namespacearm__compute_1_1test_1_1validation.xhtml#a57cb1e4607d6f6d1fb1c7b18e623f29e"> 151</a></span> <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a6b5e9878192726548c5546a4cbc175ab">FIXTURE_DATA_TEST_CASE</a>(RunSmall, <a class="code" href="classarm__compute_1_1test_1_1validation_1_1_g_e_m_m_transpose1x_w_validation_fixture.xhtml">CLGEMMTranspose1xWFixture</a>, <a class="code" href="namespacearm__compute_1_1test_1_1framework.xhtml#a7edf31944a6144ffd493d2f9a7bfb5cfab829534c7b40afdbd3c3ffea05202a97">framework::DatasetMode::PRECOMMIT</a>, <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a21c746108f9b5d95496012a42de374cd">data_transpose</a> *</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  <a class="code" href="namespacearm__compute_1_1test_1_1framework_1_1dataset.xhtml#a352791fb808d42a82ad70df5efa3508b">framework::dataset::make</a>(<span class="stringliteral">"DataType"</span>, <a class="code" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a11cde4d3551db3f9498d339a67189543">DataType::QS8</a>)</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  * <a class="code" href="namespacearm__compute_1_1test_1_1framework_1_1dataset.xhtml#a352791fb808d42a82ad70df5efa3508b">framework::dataset::make</a>(<span class="stringliteral">"FractionalBits"</span>, 1, 7))</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span> {</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  <span class="comment">// Validate output</span></div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a6813132c943295888972727864ea5c2f">validate</a>(<a class="code" href="classarm__compute_1_1test_1_1_c_l_accessor.xhtml">CLAccessor</a>(_target), _reference);</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span> }</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span> <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a38fe4b20a05bbaa1c844f3d7a19791ae">TEST_SUITE_END</a>()</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span> </div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span> <a class="code" href="tests_2framework_2_macros_8h.xhtml#acd09bed517e43d28823e69494f259835">TEST_SUITE</a>(<a class="code" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a48d877702a2957f5a932c43a357866f9">QS16</a>)</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span> <span class="keyword">using</span> <a class="code" href="classarm__compute_1_1test_1_1_c_l_synthetize_function_with_zero_constant_border.xhtml">CLGEMMTranspose1xW</a> = <a class="code" href="classarm__compute_1_1test_1_1_c_l_synthetize_function_with_zero_constant_border.xhtml">CLSynthetizeFunctionWithZeroConstantBorder<CLGEMMTranspose1xWKernel, 8></a>;</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span> <span class="keyword">using</span> <a class="code" href="classarm__compute_1_1test_1_1validation_1_1_g_e_m_m_transpose1x_w_validation_fixture.xhtml">CLGEMMTranspose1xWFixture</a> = <a class="code" href="classarm__compute_1_1test_1_1validation_1_1_g_e_m_m_transpose1x_w_validation_fixed_point_fixture.xhtml">GEMMTranspose1xWValidationFixedPointFixture<CLTensor, CLAccessor, CLGEMMTranspose1xW, int16_t></a>;</div><div class="line"><a name="l00163"></a><span class="lineno"><a class="line" href="namespacearm__compute_1_1test_1_1validation.xhtml#ac32190c3607a15ee741c5fd5a0f0388b"> 163</a></span> <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a6b5e9878192726548c5546a4cbc175ab">FIXTURE_DATA_TEST_CASE</a>(RunSmall, <a class="code" href="classarm__compute_1_1test_1_1validation_1_1_g_e_m_m_transpose1x_w_validation_fixture.xhtml">CLGEMMTranspose1xWFixture</a>, <a class="code" href="namespacearm__compute_1_1test_1_1framework.xhtml#a7edf31944a6144ffd493d2f9a7bfb5cfab829534c7b40afdbd3c3ffea05202a97">framework::DatasetMode::PRECOMMIT</a>, <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a21c746108f9b5d95496012a42de374cd">data_transpose</a> *</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>  <a class="code" href="namespacearm__compute_1_1test_1_1framework_1_1dataset.xhtml#a352791fb808d42a82ad70df5efa3508b">framework::dataset::make</a>(<span class="stringliteral">"DataType"</span>, <a class="code" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a48d877702a2957f5a932c43a357866f9">DataType::QS16</a>)</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  * <a class="code" href="namespacearm__compute_1_1test_1_1framework_1_1dataset.xhtml#a352791fb808d42a82ad70df5efa3508b">framework::dataset::make</a>(<span class="stringliteral">"FractionalBits"</span>, 1, 14))</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span> {</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>  <span class="comment">// Validate output</span></div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>  <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a6813132c943295888972727864ea5c2f">validate</a>(<a class="code" href="classarm__compute_1_1test_1_1_c_l_accessor.xhtml">CLAccessor</a>(_target), _reference);</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span> }</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span> <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a38fe4b20a05bbaa1c844f3d7a19791ae">TEST_SUITE_END</a>()</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span> </div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span> <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a38fe4b20a05bbaa1c844f3d7a19791ae">TEST_SUITE_END</a>()</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span> </div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span> <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a38fe4b20a05bbaa1c844f3d7a19791ae">TEST_SUITE_END</a>() <span class="comment">//TRANSPOSE_1XW</span></div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span> </div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span> <a class="code" href="tests_2framework_2_macros_8h.xhtml#acd09bed517e43d28823e69494f259835">TEST_SUITE</a>(Float)</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span> <a class="code" href="tests_2framework_2_macros_8h.xhtml#acd09bed517e43d28823e69494f259835">TEST_SUITE</a>(FP16)</div><div class="line"><a name="l00178"></a><span class="lineno"><a class="line" href="namespacearm__compute_1_1test_1_1validation.xhtml#a04007bf24db04a66a613f49e608781ff"> 178</a></span> <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a6b5e9878192726548c5546a4cbc175ab">FIXTURE_DATA_TEST_CASE</a>(RunSmall, <a class="code" href="classarm__compute_1_1test_1_1validation_1_1_g_e_m_m_validation_fixture.xhtml">CLGEMMFixture</a><<a class="code" href="namespacearm__compute.xhtml#a73e2825fd61d349c5ca2f5313e3c8ea1">half</a>>, framework::<a class="code" href="namespacearm__compute_1_1test_1_1framework.xhtml#a7edf31944a6144ffd493d2f9a7bfb5cf">DatasetMode</a>::PRECOMMIT, <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#ab3c94cd6eccab4c3a507d03920281124">combine</a>(datasets::SmallGEMMDataset(), framework::dataset::<a class="code" href="namespacearm__compute_1_1test_1_1framework_1_1dataset.xhtml#a352791fb808d42a82ad70df5efa3508b">make</a>("<a class="code" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6">DataType</a>", DataType::F16)))</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span> {</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>  <span class="comment">// Validate output</span></div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>  <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a6813132c943295888972727864ea5c2f">validate</a>(<a class="code" href="classarm__compute_1_1test_1_1_c_l_accessor.xhtml">CLAccessor</a>(_target), _reference, tolerance_f16, tolerance_num);</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span> }</div><div class="line"><a name="l00183"></a><span class="lineno"><a class="line" href="namespacearm__compute_1_1test_1_1validation.xhtml#a497f26d28effe6af2c1641951d3c2dfe"> 183</a></span> <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a6b5e9878192726548c5546a4cbc175ab">FIXTURE_DATA_TEST_CASE</a>(RunLarge, <a class="code" href="classarm__compute_1_1test_1_1validation_1_1_g_e_m_m_validation_fixture.xhtml">CLGEMMFixture<half></a>, <a class="code" href="namespacearm__compute_1_1test_1_1framework.xhtml#a7edf31944a6144ffd493d2f9a7bfb5cfad791cd54143e331164a2b216451a5dd3">framework::DatasetMode::NIGHTLY</a>, <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#ab3c94cd6eccab4c3a507d03920281124">combine</a>(<a class="code" href="classarm__compute_1_1test_1_1datasets_1_1_large_g_e_m_m_dataset.xhtml">datasets::LargeGEMMDataset</a>(), <a class="code" href="namespacearm__compute_1_1test_1_1framework_1_1dataset.xhtml#a352791fb808d42a82ad70df5efa3508b">framework::dataset::make</a>(<span class="stringliteral">"DataType"</span>,</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  <a class="code" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a56d8353718e6fdc78b8d69078a2cdb94">DataType::F16</a>)))</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span> {</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>  <span class="comment">// Validate output</span></div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>  <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a6813132c943295888972727864ea5c2f">validate</a>(<a class="code" href="classarm__compute_1_1test_1_1_c_l_accessor.xhtml">CLAccessor</a>(_target), _reference, tolerance_f16, tolerance_num);</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span> }</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span> <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a38fe4b20a05bbaa1c844f3d7a19791ae">TEST_SUITE_END</a>()</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span> </div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span> <a class="code" href="tests_2framework_2_macros_8h.xhtml#acd09bed517e43d28823e69494f259835">TEST_SUITE</a>(FP32)</div><div class="line"><a name="l00192"></a><span class="lineno"><a class="line" href="namespacearm__compute_1_1test_1_1validation.xhtml#a1522ada944b48d4a7a36d7e3005743a3"> 192</a></span> <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a6b5e9878192726548c5546a4cbc175ab">FIXTURE_DATA_TEST_CASE</a>(RunSmall, <a class="code" href="classarm__compute_1_1test_1_1validation_1_1_g_e_m_m_validation_fixture.xhtml">CLGEMMFixture</a><<span class="keywordtype">float</span>>, framework::<a class="code" href="namespacearm__compute_1_1test_1_1framework.xhtml#a7edf31944a6144ffd493d2f9a7bfb5cf">DatasetMode</a>::PRECOMMIT, <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#ab3c94cd6eccab4c3a507d03920281124">combine</a>(datasets::SmallGEMMDataset(), framework::dataset::<a class="code" href="namespacearm__compute_1_1test_1_1framework_1_1dataset.xhtml#a352791fb808d42a82ad70df5efa3508b">make</a>("<a class="code" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6">DataType</a>", DataType::F32)))</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span> {</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>  <span class="comment">// Validate output</span></div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>  <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a6813132c943295888972727864ea5c2f">validate</a>(<a class="code" href="classarm__compute_1_1test_1_1_c_l_accessor.xhtml">CLAccessor</a>(_target), _reference, tolerance_f32);</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span> }</div><div class="line"><a name="l00197"></a><span class="lineno"><a class="line" href="namespacearm__compute_1_1test_1_1validation.xhtml#afb73b098cdc7bac5920e576d81e57fb4"> 197</a></span> <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a6b5e9878192726548c5546a4cbc175ab">FIXTURE_DATA_TEST_CASE</a>(RunLarge, <a class="code" href="classarm__compute_1_1test_1_1validation_1_1_g_e_m_m_validation_fixture.xhtml">CLGEMMFixture<float></a>, <a class="code" href="namespacearm__compute_1_1test_1_1framework.xhtml#a7edf31944a6144ffd493d2f9a7bfb5cfad791cd54143e331164a2b216451a5dd3">framework::DatasetMode::NIGHTLY</a>, <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#ab3c94cd6eccab4c3a507d03920281124">combine</a>(<a class="code" href="classarm__compute_1_1test_1_1datasets_1_1_large_g_e_m_m_dataset.xhtml">datasets::LargeGEMMDataset</a>(), <a class="code" href="namespacearm__compute_1_1test_1_1framework_1_1dataset.xhtml#a352791fb808d42a82ad70df5efa3508b">framework::dataset::make</a>(<span class="stringliteral">"DataType"</span>, <a class="code" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a44ad4ef5a76e6aa6fb3e3fa079a54fda">DataType::F32</a>)))</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span> {</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>  <span class="comment">// Validate output</span></div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>  <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a6813132c943295888972727864ea5c2f">validate</a>(<a class="code" href="classarm__compute_1_1test_1_1_c_l_accessor.xhtml">CLAccessor</a>(_target), _reference, tolerance_f32);</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span> }</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span> <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a38fe4b20a05bbaa1c844f3d7a19791ae">TEST_SUITE_END</a>()</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span> <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a38fe4b20a05bbaa1c844f3d7a19791ae">TEST_SUITE_END</a>()</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span> </div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div><div class="line"><a name="l00206"></a><span class="lineno"><a class="line" href="namespacearm__compute_1_1test_1_1validation.xhtml#a9d9511cf80abd452fc21c671b0ffc334"> 206</a></span> <span class="keyword">using</span> <a class="code" href="classarm__compute_1_1test_1_1validation_1_1_g_e_m_m_validation_fixed_point_fixture.xhtml">CLGEMMFixedPointFixture</a> = <a class="code" href="classarm__compute_1_1test_1_1validation_1_1_g_e_m_m_validation_fixed_point_fixture.xhtml">GEMMValidationFixedPointFixture<CLTensor, CLAccessor, CLGEMM, T></a>;</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span> </div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span> <a class="code" href="tests_2framework_2_macros_8h.xhtml#acd09bed517e43d28823e69494f259835">TEST_SUITE</a>(Quantized)</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span> <a class="code" href="tests_2framework_2_macros_8h.xhtml#acd09bed517e43d28823e69494f259835">TEST_SUITE</a>(QS8)</div><div class="line"><a name="l00210"></a><span class="lineno"><a class="line" href="namespacearm__compute_1_1test_1_1validation.xhtml#add2ffdc61d24459f11d4f2f3987f4a34"> 210</a></span> <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a6b5e9878192726548c5546a4cbc175ab">FIXTURE_DATA_TEST_CASE</a>(RunSmall, <a class="code" href="classarm__compute_1_1test_1_1validation_1_1_g_e_m_m_validation_fixed_point_fixture.xhtml">CLGEMMFixedPointFixture</a><int8_t>, framework::<a class="code" href="namespacearm__compute_1_1test_1_1framework.xhtml#a7edf31944a6144ffd493d2f9a7bfb5cf">DatasetMode</a>::PRECOMMIT, <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#ab3c94cd6eccab4c3a507d03920281124">combine</a>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#ab3c94cd6eccab4c3a507d03920281124">combine</a>(datasets::SmallGEMMDataset(),</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>  framework::dataset::<a class="code" href="namespacearm__compute_1_1test_1_1framework_1_1dataset.xhtml#a352791fb808d42a82ad70df5efa3508b">make</a>("<a class="code" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6">DataType</a>",</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>  DataType::QS8)),</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>  framework::dataset::<a class="code" href="namespacearm__compute_1_1test_1_1framework_1_1dataset.xhtml#a352791fb808d42a82ad70df5efa3508b">make</a>("FractionalBits", 1, 7)))</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span> {</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>  <span class="comment">// Validate output</span></div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>  <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a6813132c943295888972727864ea5c2f">validate</a>(<a class="code" href="classarm__compute_1_1test_1_1_c_l_accessor.xhtml">CLAccessor</a>(_target), _reference, tolerance_q);</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span> }</div><div class="line"><a name="l00218"></a><span class="lineno"><a class="line" href="namespacearm__compute_1_1test_1_1validation.xhtml#a599f4528c5f0cf3e11072c3eb20dac61"> 218</a></span> <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a6b5e9878192726548c5546a4cbc175ab">FIXTURE_DATA_TEST_CASE</a>(RunLarge, <a class="code" href="classarm__compute_1_1test_1_1validation_1_1_g_e_m_m_validation_fixed_point_fixture.xhtml">CLGEMMFixedPointFixture<int8_t></a>, <a class="code" href="namespacearm__compute_1_1test_1_1framework.xhtml#a7edf31944a6144ffd493d2f9a7bfb5cfad791cd54143e331164a2b216451a5dd3">framework::DatasetMode::NIGHTLY</a>, <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#ab3c94cd6eccab4c3a507d03920281124">combine</a>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#ab3c94cd6eccab4c3a507d03920281124">combine</a>(<a class="code" href="classarm__compute_1_1test_1_1datasets_1_1_large_g_e_m_m_dataset.xhtml">datasets::LargeGEMMDataset</a>(),</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>  <a class="code" href="namespacearm__compute_1_1test_1_1framework_1_1dataset.xhtml#a352791fb808d42a82ad70df5efa3508b">framework::dataset::make</a>(<span class="stringliteral">"DataType"</span>,</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>  <a class="code" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a11cde4d3551db3f9498d339a67189543">DataType::QS8</a>)),</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>  <a class="code" href="namespacearm__compute_1_1test_1_1framework_1_1dataset.xhtml#a352791fb808d42a82ad70df5efa3508b">framework::dataset::make</a>(<span class="stringliteral">"FractionalBits"</span>, 1, 7)))</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span> {</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>  <span class="comment">// Validate output</span></div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>  <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a6813132c943295888972727864ea5c2f">validate</a>(<a class="code" href="classarm__compute_1_1test_1_1_c_l_accessor.xhtml">CLAccessor</a>(_target), _reference, tolerance_q);</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span> }</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span> <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a38fe4b20a05bbaa1c844f3d7a19791ae">TEST_SUITE_END</a>()</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span> </div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span> <a class="code" href="tests_2framework_2_macros_8h.xhtml#acd09bed517e43d28823e69494f259835">TEST_SUITE</a>(<a class="code" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a48d877702a2957f5a932c43a357866f9">QS16</a>)</div><div class="line"><a name="l00229"></a><span class="lineno"><a class="line" href="namespacearm__compute_1_1test_1_1validation.xhtml#abf548307d9b70a5a631717bc361b8930"> 229</a></span> <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a6b5e9878192726548c5546a4cbc175ab">FIXTURE_DATA_TEST_CASE</a>(RunSmall, <a class="code" href="classarm__compute_1_1test_1_1validation_1_1_g_e_m_m_validation_fixed_point_fixture.xhtml">CLGEMMFixedPointFixture</a><int16_t>, framework::<a class="code" href="namespacearm__compute_1_1test_1_1framework.xhtml#a7edf31944a6144ffd493d2f9a7bfb5cf">DatasetMode</a>::PRECOMMIT, <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#ab3c94cd6eccab4c3a507d03920281124">combine</a>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#ab3c94cd6eccab4c3a507d03920281124">combine</a>(datasets::SmallGEMMDataset(),</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>  framework::dataset::<a class="code" href="namespacearm__compute_1_1test_1_1framework_1_1dataset.xhtml#a352791fb808d42a82ad70df5efa3508b">make</a>("<a class="code" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6">DataType</a>",</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>  DataType::QS16)),</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>  framework::dataset::<a class="code" href="namespacearm__compute_1_1test_1_1framework_1_1dataset.xhtml#a352791fb808d42a82ad70df5efa3508b">make</a>("FractionalBits", 1, 14)))</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span> {</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>  <span class="comment">// Validate output</span></div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>  <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a6813132c943295888972727864ea5c2f">validate</a>(<a class="code" href="classarm__compute_1_1test_1_1_c_l_accessor.xhtml">CLAccessor</a>(_target), _reference, tolerance_q);</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span> }</div><div class="line"><a name="l00237"></a><span class="lineno"><a class="line" href="namespacearm__compute_1_1test_1_1validation.xhtml#a0b7eb3aca69bced1313c528d6325865f"> 237</a></span> <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a6b5e9878192726548c5546a4cbc175ab">FIXTURE_DATA_TEST_CASE</a>(RunLarge, <a class="code" href="classarm__compute_1_1test_1_1validation_1_1_g_e_m_m_validation_fixed_point_fixture.xhtml">CLGEMMFixedPointFixture<int16_t></a>, <a class="code" href="namespacearm__compute_1_1test_1_1framework.xhtml#a7edf31944a6144ffd493d2f9a7bfb5cfad791cd54143e331164a2b216451a5dd3">framework::DatasetMode::NIGHTLY</a>, <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#ab3c94cd6eccab4c3a507d03920281124">combine</a>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#ab3c94cd6eccab4c3a507d03920281124">combine</a>(<a class="code" href="classarm__compute_1_1test_1_1datasets_1_1_large_g_e_m_m_dataset.xhtml">datasets::LargeGEMMDataset</a>(),</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>  <a class="code" href="namespacearm__compute_1_1test_1_1framework_1_1dataset.xhtml#a352791fb808d42a82ad70df5efa3508b">framework::dataset::make</a>(<span class="stringliteral">"DataType"</span>,</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>  <a class="code" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a48d877702a2957f5a932c43a357866f9">DataType::QS16</a>)),</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>  <a class="code" href="namespacearm__compute_1_1test_1_1framework_1_1dataset.xhtml#a352791fb808d42a82ad70df5efa3508b">framework::dataset::make</a>(<span class="stringliteral">"FractionalBits"</span>, 1, 14)))</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span> {</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>  <span class="comment">// Validate output</span></div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>  <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a6813132c943295888972727864ea5c2f">validate</a>(<a class="code" href="classarm__compute_1_1test_1_1_c_l_accessor.xhtml">CLAccessor</a>(_target), _reference, tolerance_q);</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span> }</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span> <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a38fe4b20a05bbaa1c844f3d7a19791ae">TEST_SUITE_END</a>()</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span> <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a38fe4b20a05bbaa1c844f3d7a19791ae">TEST_SUITE_END</a>()</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span> </div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span> <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a38fe4b20a05bbaa1c844f3d7a19791ae">TEST_SUITE_END</a>()</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span> <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a38fe4b20a05bbaa1c844f3d7a19791ae">TEST_SUITE_END</a>()</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span> } <span class="comment">// namespace validation</span></div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span> } <span class="comment">// namespace test</span></div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span> } <span class="comment">// namespace arm_compute</span></div><div class="ttc" id="classarm__compute_1_1_c_l_g_e_m_m_interleave4x4_kernel_xhtml"><div class="ttname"><a href="classarm__compute_1_1_c_l_g_e_m_m_interleave4x4_kernel.xhtml">arm_compute::CLGEMMInterleave4x4Kernel</a></div><div class="ttdoc">OpenCL kernel which interleaves the elements of a matrix A in chunk of 4x4. </div><div class="ttdef"><b>Definition:</b> <a href="_c_l_g_e_m_m_interleave4x4_kernel_8h_source.xhtml#l00052">CLGEMMInterleave4x4Kernel.h:52</a></div></div>
+<a href="validation_2_c_l_2_g_e_m_m_8cpp.xhtml">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (c) 2017-2018 ARM Limited.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> * SPDX-License-Identifier: MIT</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> *</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * Permission is hereby granted, free of charge, to any person obtaining a copy</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> * of this software and associated documentation files (the "Software"), to</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> * deal in the Software without restriction, including without limitation the</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment"> * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment"> * sell copies of the Software, and to permit persons to whom the Software is</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment"> * furnished to do so, subject to the following conditions:</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="comment"> *</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment"> * The above copyright notice and this permission notice shall be included in all</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment"> * copies or substantial portions of the Software.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment"> *</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment"> * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="comment"> * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="comment"> * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="comment"> * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="comment"> * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="comment"> * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="comment"> * SOFTWARE.</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="comment"> */</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#include "<a class="code" href="_c_l_g_e_m_m_interleave4x4_kernel_8h.xhtml">arm_compute/core/CL/kernels/CLGEMMInterleave4x4Kernel.h</a>"</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#include "<a class="code" href="_c_l_g_e_m_m_transpose1x_w_kernel_8h.xhtml">arm_compute/core/CL/kernels/CLGEMMTranspose1xWKernel.h</a>"</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#include "<a class="code" href="arm__compute_2core_2_types_8h.xhtml">arm_compute/core/Types.h</a>"</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#include "<a class="code" href="_c_l_tensor_8h.xhtml">arm_compute/runtime/CL/CLTensor.h</a>"</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#include "<a class="code" href="_c_l_tensor_allocator_8h.xhtml">arm_compute/runtime/CL/CLTensorAllocator.h</a>"</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#include "<a class="code" href="_c_l_g_e_m_m_8h.xhtml">arm_compute/runtime/CL/functions/CLGEMM.h</a>"</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#include "<a class="code" href="_c_l_accessor_8h.xhtml">tests/CL/CLAccessor.h</a>"</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#include "<a class="code" href="_c_l_2_helper_8h.xhtml">tests/CL/Helper.h</a>"</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="preprocessor">#include "<a class="code" href="_padding_calculator_8h.xhtml">tests/PaddingCalculator.h</a>"</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor">#include "<a class="code" href="_large_g_e_m_m_dataset_8h.xhtml">tests/datasets/LargeGEMMDataset.h</a>"</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="preprocessor">#include "<a class="code" href="_small_g_e_m_m_dataset_8h.xhtml">tests/datasets/SmallGEMMDataset.h</a>"</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor">#include "<a class="code" href="_tiny_g_e_m_m_dataset_8h.xhtml">tests/datasets/TinyGEMMDataset.h</a>"</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="preprocessor">#include "<a class="code" href="_asserts_8h.xhtml">tests/framework/Asserts.h</a>"</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="preprocessor">#include "<a class="code" href="tests_2framework_2_macros_8h.xhtml">tests/framework/Macros.h</a>"</span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="preprocessor">#include "<a class="code" href="_datasets_8h.xhtml">tests/framework/datasets/Datasets.h</a>"</span></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="preprocessor">#include "<a class="code" href="_validation_8h.xhtml">tests/validation/Validation.h</a>"</span></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="preprocessor">#include "<a class="code" href="validation_2fixtures_2_g_e_m_m_fixture_8h.xhtml">tests/validation/fixtures/GEMMFixture.h</a>"</span></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="preprocessor">#include "<a class="code" href="validation_2fixtures_2_g_e_m_m_interleave4x4_fixture_8h.xhtml">tests/validation/fixtures/GEMMInterleave4x4Fixture.h</a>"</span></div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="preprocessor">#include "<a class="code" href="_g_e_m_m_transpose1x_w_fixture_8h.xhtml">tests/validation/fixtures/GEMMTranspose1xWFixture.h</a>"</span></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span> </div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="keyword">namespace </span><a class="code" href="namespacearm__compute.xhtml">arm_compute</a></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span> {</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="keyword">namespace </span>test</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span> {</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="keyword">namespace </span>validation</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span> {</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="keyword">namespace</span></div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span> {</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span> RelativeTolerance<float> tolerance_f32(0.001f); </div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span> RelativeTolerance<half_float::half> tolerance_f16(<a class="code" href="namespacearm__compute.xhtml#a73e2825fd61d349c5ca2f5313e3c8ea1">half</a>(0.2)); </div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span> constexpr AbsoluteTolerance<float> tolerance_q(1.0f); </div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span> constexpr <span class="keywordtype">float</span> tolerance_num = 0.02f; </div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span> <span class="keyword">const</span> <span class="keyword">auto</span> data_interleave = <a class="code" href="namespacearm__compute_1_1test_1_1framework_1_1dataset.xhtml#a352791fb808d42a82ad70df5efa3508b">framework::dataset::make</a>(<span class="stringliteral">"M"</span>, 8, 14) * <a class="code" href="namespacearm__compute_1_1test_1_1framework_1_1dataset.xhtml#a352791fb808d42a82ad70df5efa3508b">framework::dataset::make</a>(<span class="stringliteral">"N"</span>, 7, 14);</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span> </div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span> <span class="keyword">const</span> <span class="keyword">auto</span> CNNDataTypes = <a class="code" href="namespacearm__compute_1_1test_1_1framework_1_1dataset.xhtml#a352791fb808d42a82ad70df5efa3508b">framework::dataset::make</a>(<span class="stringliteral">"DataType"</span>,</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span> {</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  <a class="code" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a56d8353718e6fdc78b8d69078a2cdb94">DataType::F16</a>,</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  <a class="code" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a44ad4ef5a76e6aa6fb3e3fa079a54fda">DataType::F32</a>,</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  <a class="code" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a11cde4d3551db3f9498d339a67189543">DataType::QS8</a>,</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  <a class="code" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a48d877702a2957f5a932c43a357866f9">DataType::QS16</a>,</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span> });</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span> } <span class="comment">// namespace</span></div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span> </div><div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="namespacearm__compute_1_1test_1_1validation.xhtml#a21c746108f9b5d95496012a42de374cd"> 68</a></span> <span class="keyword">const</span> <span class="keyword">auto</span> <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a21c746108f9b5d95496012a42de374cd">data_transpose</a> = <a class="code" href="namespacearm__compute_1_1test_1_1framework_1_1dataset.xhtml#a352791fb808d42a82ad70df5efa3508b">framework::dataset::make</a>(<span class="stringliteral">"M"</span>, 8, 14) * <a class="code" href="namespacearm__compute_1_1test_1_1framework_1_1dataset.xhtml#a352791fb808d42a82ad70df5efa3508b">framework::dataset::make</a>(<span class="stringliteral">"N"</span>, 7, 14);</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span> </div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span> <a class="code" href="tests_2framework_2_macros_8h.xhtml#acd09bed517e43d28823e69494f259835">TEST_SUITE</a>(CL)</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span> <a class="code" href="tests_2framework_2_macros_8h.xhtml#acd09bed517e43d28823e69494f259835">TEST_SUITE</a>(GEMM)</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span> </div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span> <a class="code" href="tests_2framework_2_macros_8h.xhtml#acd09bed517e43d28823e69494f259835">TEST_SUITE</a>(INTERLEAVE_4X4)</div><div class="line"><a name="l00074"></a><span class="lineno"><a class="line" href="namespacearm__compute_1_1test_1_1validation.xhtml#a2ba36b2bb455fe3e2c73534ed8b5bee7"> 74</a></span> using <a class="code" href="classarm__compute_1_1test_1_1_c_l_synthetize_function_with_zero_constant_border.xhtml">CLGEMMInterleave4x4</a> = <a class="code" href="classarm__compute_1_1test_1_1_c_l_synthetize_function_with_zero_constant_border.xhtml">CLSynthetizeFunctionWithZeroConstantBorder</a><<a class="code" href="classarm__compute_1_1_c_l_g_e_m_m_interleave4x4_kernel.xhtml">CLGEMMInterleave4x4Kernel</a>, 4>;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span> </div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span> <a class="code" href="tests_2framework_2_macros_8h.xhtml#acd09bed517e43d28823e69494f259835">TEST_SUITE</a>(FP32)</div><div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="namespacearm__compute_1_1test_1_1validation.xhtml#a5d31b276f9567381e85f89c61d09fa4c"> 77</a></span> using <a class="code" href="classarm__compute_1_1test_1_1validation_1_1_g_e_m_m_interleave4x4_validation_fixture.xhtml">CLGEMMInterleave4x4Fixture</a> = <a class="code" href="classarm__compute_1_1test_1_1validation_1_1_g_e_m_m_interleave4x4_validation_fixture.xhtml">GEMMInterleave4x4ValidationFixture</a><<a class="code" href="classarm__compute_1_1_c_l_tensor.xhtml">CLTensor</a>, <a class="code" href="classarm__compute_1_1test_1_1_c_l_accessor.xhtml">CLAccessor</a>, <a class="code" href="classarm__compute_1_1test_1_1_c_l_synthetize_function_with_zero_constant_border.xhtml">CLGEMMInterleave4x4</a>, <span class="keywordtype">float</span>>;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span> <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a6b5e9878192726548c5546a4cbc175ab">FIXTURE_DATA_TEST_CASE</a>(RunSmall, <a class="code" href="classarm__compute_1_1test_1_1validation_1_1_g_e_m_m_interleave4x4_validation_fixture.xhtml">CLGEMMInterleave4x4Fixture</a>, framework::<a class="code" href="namespacearm__compute_1_1test_1_1framework.xhtml#a7edf31944a6144ffd493d2f9a7bfb5cf">DatasetMode</a>::PRECOMMIT, data_interleave * framework::dataset::<a class="code" href="namespacearm__compute_1_1test_1_1framework_1_1dataset.xhtml#a352791fb808d42a82ad70df5efa3508b">make</a>("<a class="code" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6">DataType</a>", DataType::F32))</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span> {</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  <span class="comment">// Validate output</span></div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a6813132c943295888972727864ea5c2f">validate</a>(CLAccessor(_target), _reference);</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span> }</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span> <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a38fe4b20a05bbaa1c844f3d7a19791ae">TEST_SUITE_END</a>() <span class="comment">// FP32</span></div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span> </div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span> <a class="code" href="tests_2framework_2_macros_8h.xhtml#acd09bed517e43d28823e69494f259835">TEST_SUITE</a>(Quantized)</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span> <a class="code" href="tests_2framework_2_macros_8h.xhtml#acd09bed517e43d28823e69494f259835">TEST_SUITE</a>(<a class="code" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a11cde4d3551db3f9498d339a67189543">QS8</a>)</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span> <span class="keyword">using</span> <a class="code" href="classarm__compute_1_1test_1_1validation_1_1_g_e_m_m_interleave4x4_validation_fixture.xhtml">CLGEMMInterleave4x4Fixture</a> = <a class="code" href="classarm__compute_1_1test_1_1validation_1_1_g_e_m_m_interleave4x4_validation_fixed_point_fixture.xhtml">GEMMInterleave4x4ValidationFixedPointFixture<CLTensor, CLAccessor, CLGEMMInterleave4x4, int8_t></a>;</div><div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="namespacearm__compute_1_1test_1_1validation.xhtml#a7be38cc4d4f618d2d9dc046db54d27eb"> 88</a></span> <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a6b5e9878192726548c5546a4cbc175ab">FIXTURE_DATA_TEST_CASE</a>(RunTiny, <a class="code" href="classarm__compute_1_1test_1_1validation_1_1_g_e_m_m_interleave4x4_validation_fixture.xhtml">CLGEMMInterleave4x4Fixture</a>, <a class="code" href="namespacearm__compute_1_1test_1_1framework.xhtml#a7edf31944a6144ffd493d2f9a7bfb5cfab829534c7b40afdbd3c3ffea05202a97">framework::DatasetMode::PRECOMMIT</a>, data_interleave *</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  <a class="code" href="namespacearm__compute_1_1test_1_1framework_1_1dataset.xhtml#a352791fb808d42a82ad70df5efa3508b">framework::dataset::make</a>(<span class="stringliteral">"DataType"</span>, <a class="code" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a11cde4d3551db3f9498d339a67189543">DataType::QS8</a>)</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  * <a class="code" href="namespacearm__compute_1_1test_1_1framework_1_1dataset.xhtml#a352791fb808d42a82ad70df5efa3508b">framework::dataset::make</a>(<span class="stringliteral">"FractionalBits"</span>, 1, 7))</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span> {</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  <span class="comment">// Validate output</span></div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a6813132c943295888972727864ea5c2f">validate</a>(<a class="code" href="classarm__compute_1_1test_1_1_c_l_accessor.xhtml">CLAccessor</a>(_target), _reference);</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span> }</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span> <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a38fe4b20a05bbaa1c844f3d7a19791ae">TEST_SUITE_END</a>()</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span> </div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span> <a class="code" href="tests_2framework_2_macros_8h.xhtml#acd09bed517e43d28823e69494f259835">TEST_SUITE</a>(<a class="code" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a48d877702a2957f5a932c43a357866f9">QS16</a>)</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span> <span class="keyword">using</span> <a class="code" href="classarm__compute_1_1test_1_1validation_1_1_g_e_m_m_interleave4x4_validation_fixture.xhtml">CLGEMMInterleave4x4Fixture</a> = <a class="code" href="classarm__compute_1_1test_1_1validation_1_1_g_e_m_m_interleave4x4_validation_fixed_point_fixture.xhtml">GEMMInterleave4x4ValidationFixedPointFixture<CLTensor, CLAccessor, CLGEMMInterleave4x4, int16_t></a>;</div><div class="line"><a name="l00099"></a><span class="lineno"><a class="line" href="namespacearm__compute_1_1test_1_1validation.xhtml#a38b39076bb67df3d928b21291826c81c"> 99</a></span> <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a6b5e9878192726548c5546a4cbc175ab">FIXTURE_DATA_TEST_CASE</a>(RunTiny, <a class="code" href="classarm__compute_1_1test_1_1validation_1_1_g_e_m_m_interleave4x4_validation_fixture.xhtml">CLGEMMInterleave4x4Fixture</a>, <a class="code" href="namespacearm__compute_1_1test_1_1framework.xhtml#a7edf31944a6144ffd493d2f9a7bfb5cfab829534c7b40afdbd3c3ffea05202a97">framework::DatasetMode::PRECOMMIT</a>, data_interleave *</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  <a class="code" href="namespacearm__compute_1_1test_1_1framework_1_1dataset.xhtml#a352791fb808d42a82ad70df5efa3508b">framework::dataset::make</a>(<span class="stringliteral">"DataType"</span>, <a class="code" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a48d877702a2957f5a932c43a357866f9">DataType::QS16</a>)</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  * <a class="code" href="namespacearm__compute_1_1test_1_1framework_1_1dataset.xhtml#a352791fb808d42a82ad70df5efa3508b">framework::dataset::make</a>(<span class="stringliteral">"FractionalBits"</span>, 1, 14))</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span> {</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  <span class="comment">// Validate output</span></div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a6813132c943295888972727864ea5c2f">validate</a>(<a class="code" href="classarm__compute_1_1test_1_1_c_l_accessor.xhtml">CLAccessor</a>(_target), _reference);</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span> }</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span> <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a38fe4b20a05bbaa1c844f3d7a19791ae">TEST_SUITE_END</a>()</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span> </div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span> <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a38fe4b20a05bbaa1c844f3d7a19791ae">TEST_SUITE_END</a>()</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span> </div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span> <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a38fe4b20a05bbaa1c844f3d7a19791ae">TEST_SUITE_END</a>() <span class="comment">// INTERLEAVE_4X4</span></div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span> </div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span> <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a35d3ab6d678579401ec6efeccd788c3b">DATA_TEST_CASE</a>(Configuration, <a class="code" href="namespacearm__compute_1_1test_1_1framework.xhtml#a7edf31944a6144ffd493d2f9a7bfb5cfa5fb1f955b45e38e31789286a1790398d">framework::DatasetMode::ALL</a>, <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#ad2b4e88e166416d979a049064877b2ca">combine</a>(<a class="code" href="namespacearm__compute_1_1test_1_1framework_1_1dataset.xhtml#a20b2c46a6ccea85acf64c599a68251d7">framework::dataset::concat</a>(<a class="code" href="classarm__compute_1_1test_1_1datasets_1_1_small_g_e_m_m_dataset.xhtml">datasets::SmallGEMMDataset</a>(), <a class="code" href="classarm__compute_1_1test_1_1datasets_1_1_large_g_e_m_m_dataset.xhtml">datasets::LargeGEMMDataset</a>()), CNNDataTypes),</div><div class="line"><a name="l00113"></a><span class="lineno"><a class="line" href="namespacearm__compute_1_1test_1_1validation.xhtml#a141b596a566813a7fc3116f9881d3dc9"> 113</a></span>  <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#ac2c387216b8389a6069b2e5205bc03a9">shape_a</a>, <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#ab39a7489f0c4ef5db0dfa9291073fe61">shape_b</a>, <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a141b596a566813a7fc3116f9881d3dc9">shape_c</a>, <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a7fc93f37dac131a1a40b7921f9df3a9a">output_shape</a>, <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a62197192f0fbf4e0675eb37be1c4c175">alpha</a>, <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#ab146b9cbab6e73e7588b240dc709fe01">beta</a>, <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#ac2ad7f431e3446fddcd9b6b9f93c4c14">data_type</a>)</div><div class="line"><a name="l00114"></a><span class="lineno"><a class="line" href="namespacearm__compute_1_1test_1_1validation.xhtml#ac2ad7f431e3446fddcd9b6b9f93c4c14"> 114</a></span> {</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  <span class="comment">// Set fixed point position data type allowed</span></div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  <span class="keyword">const</span> <span class="keywordtype">int</span> fixed_point_position = <a class="code" href="namespacearm__compute.xhtml#ab6bb62694ae8369d18a9c9687040975e">is_data_type_fixed_point</a>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#ac2ad7f431e3446fddcd9b6b9f93c4c14">data_type</a>) ? 3 : 0;</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span> </div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  <span class="comment">// Create tensors</span></div><div class="line"><a name="l00119"></a><span class="lineno"><a class="line" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79"> 119</a></span>  <a class="code" href="classarm__compute_1_1_c_l_tensor.xhtml">CLTensor</a> <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a> = create_tensor<CLTensor>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#ac2c387216b8389a6069b2e5205bc03a9">shape_a</a>, <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#ac2ad7f431e3446fddcd9b6b9f93c4c14">data_type</a>, 1, fixed_point_position);</div><div class="line"><a name="l00120"></a><span class="lineno"><a class="line" href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff"> 120</a></span>  <a class="code" href="classarm__compute_1_1_c_l_tensor.xhtml">CLTensor</a> <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">b</a> = create_tensor<CLTensor>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#ab39a7489f0c4ef5db0dfa9291073fe61">shape_b</a>, <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#ac2ad7f431e3446fddcd9b6b9f93c4c14">data_type</a>, 1, fixed_point_position);</div><div class="line"><a name="l00121"></a><span class="lineno"><a class="line" href="namespacearm__compute_1_1test_1_1validation.xhtml#a497347573faa3778743ddf277f861094"> 121</a></span>  <a class="code" href="classarm__compute_1_1_c_l_tensor.xhtml">CLTensor</a> <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a497347573faa3778743ddf277f861094">c</a> = create_tensor<CLTensor>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a141b596a566813a7fc3116f9881d3dc9">shape_c</a>, <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#ac2ad7f431e3446fddcd9b6b9f93c4c14">data_type</a>, 1, fixed_point_position);</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  <a class="code" href="classarm__compute_1_1_c_l_tensor.xhtml">CLTensor</a> <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#adbf67dcee294e673cf796f1ed8aeb6a4">dst</a> = create_tensor<CLTensor>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a7fc93f37dac131a1a40b7921f9df3a9a">output_shape</a>, <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#ac2ad7f431e3446fddcd9b6b9f93c4c14">data_type</a>, 1, fixed_point_position);</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span> </div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#af3c1de77fd86df539395c75c17ec230e">ARM_COMPUTE_EXPECT</a>(a.<a class="code" href="classarm__compute_1_1_c_l_tensor.xhtml#a97de03c31e0ca04be6960e2e3ffdca95">info</a>()-><a class="code" href="classarm__compute_1_1_tensor_info.xhtml#aaee6555ace43b03173844b1a228a3fc3">is_resizable</a>(), <a class="code" href="namespacearm__compute_1_1test_1_1framework.xhtml#aca1fd1d8935433e6ba2e3918214e07f9a6f3a603fac4d817f1848c3173b243b57">framework::LogLevel::ERRORS</a>);</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#af3c1de77fd86df539395c75c17ec230e">ARM_COMPUTE_EXPECT</a>(b.<a class="code" href="classarm__compute_1_1_c_l_tensor.xhtml#a97de03c31e0ca04be6960e2e3ffdca95">info</a>()-><a class="code" href="classarm__compute_1_1_tensor_info.xhtml#aaee6555ace43b03173844b1a228a3fc3">is_resizable</a>(), <a class="code" href="namespacearm__compute_1_1test_1_1framework.xhtml#aca1fd1d8935433e6ba2e3918214e07f9a6f3a603fac4d817f1848c3173b243b57">framework::LogLevel::ERRORS</a>);</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#af3c1de77fd86df539395c75c17ec230e">ARM_COMPUTE_EXPECT</a>(c.<a class="code" href="classarm__compute_1_1_c_l_tensor.xhtml#a97de03c31e0ca04be6960e2e3ffdca95">info</a>()-><a class="code" href="classarm__compute_1_1_tensor_info.xhtml#aaee6555ace43b03173844b1a228a3fc3">is_resizable</a>(), <a class="code" href="namespacearm__compute_1_1test_1_1framework.xhtml#aca1fd1d8935433e6ba2e3918214e07f9a6f3a603fac4d817f1848c3173b243b57">framework::LogLevel::ERRORS</a>);</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#af3c1de77fd86df539395c75c17ec230e">ARM_COMPUTE_EXPECT</a>(dst.info()->is_resizable(), <a class="code" href="namespacearm__compute_1_1test_1_1framework.xhtml#aca1fd1d8935433e6ba2e3918214e07f9a6f3a603fac4d817f1848c3173b243b57">framework::LogLevel::ERRORS</a>);</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span> </div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  <span class="comment">// Create and configure function</span></div><div class="line"><a name="l00130"></a><span class="lineno"><a class="line" href="namespacearm__compute_1_1test_1_1validation.xhtml#ab84214a10c816dc554f190c53b535622"> 130</a></span>  <a class="code" href="classarm__compute_1_1_c_l_g_e_m_m.xhtml">CLGEMM</a> <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#ab84214a10c816dc554f190c53b535622">gemm</a>;</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  gemm.<a class="code" href="classarm__compute_1_1_c_l_g_e_m_m.xhtml#a34e7b882208ff6720bad2e4f2c7565c5">configure</a>(&a, &b, &c, &dst, <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a62197192f0fbf4e0675eb37be1c4c175">alpha</a>, <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#ab146b9cbab6e73e7588b240dc709fe01">beta</a>);</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span> }</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span> </div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div><div class="line"><a name="l00135"></a><span class="lineno"><a class="line" href="namespacearm__compute_1_1test_1_1validation.xhtml#a02a82a5e8cc3d3a54da7fd340f9bc81b"> 135</a></span> <span class="keyword">using</span> <a class="code" href="classarm__compute_1_1test_1_1validation_1_1_g_e_m_m_validation_fixture.xhtml">CLGEMMFixture</a> = <a class="code" href="classarm__compute_1_1test_1_1validation_1_1_g_e_m_m_validation_fixture.xhtml">GEMMValidationFixture<CLTensor, CLAccessor, CLGEMM, T></a>;</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span> </div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span> <a class="code" href="tests_2framework_2_macros_8h.xhtml#acd09bed517e43d28823e69494f259835">TEST_SUITE</a>(TRANSPOSE_1XW)</div><div class="line"><a name="l00138"></a><span class="lineno"><a class="line" href="namespacearm__compute_1_1test_1_1validation.xhtml#a2547fa6c90a3454a75413e43ee5b88ec"> 138</a></span> using <a class="code" href="classarm__compute_1_1test_1_1_c_l_synthetize_function_with_zero_constant_border.xhtml">CLGEMMTranspose1xW</a> = <a class="code" href="classarm__compute_1_1test_1_1_c_l_synthetize_function_with_zero_constant_border.xhtml">CLSynthetizeFunctionWithZeroConstantBorder</a><<a class="code" href="classarm__compute_1_1_c_l_g_e_m_m_transpose1x_w_kernel.xhtml">CLGEMMTranspose1xWKernel</a>, 4>;</div><div class="line"><a name="l00139"></a><span class="lineno"><a class="line" href="namespacearm__compute_1_1test_1_1validation.xhtml#a2e1e5ad31f9f58c59aaf1de97511f8c0"> 139</a></span> using <a class="code" href="classarm__compute_1_1test_1_1validation_1_1_g_e_m_m_transpose1x_w_validation_fixture.xhtml">CLGEMMTranspose1xWFixture</a> = <a class="code" href="classarm__compute_1_1test_1_1validation_1_1_g_e_m_m_transpose1x_w_validation_fixture.xhtml">GEMMTranspose1xWValidationFixture</a><<a class="code" href="classarm__compute_1_1_c_l_tensor.xhtml">CLTensor</a>, <a class="code" href="classarm__compute_1_1test_1_1_c_l_accessor.xhtml">CLAccessor</a>, <a class="code" href="classarm__compute_1_1test_1_1_c_l_synthetize_function_with_zero_constant_border.xhtml">CLGEMMTranspose1xW</a>, <span class="keywordtype">float</span>>;</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span> <a class="code" href="tests_2framework_2_macros_8h.xhtml#acd09bed517e43d28823e69494f259835">TEST_SUITE</a>(FP32)</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span> <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a6b5e9878192726548c5546a4cbc175ab">FIXTURE_DATA_TEST_CASE</a>(RunSmall, <a class="code" href="classarm__compute_1_1test_1_1validation_1_1_g_e_m_m_transpose1x_w_validation_fixture.xhtml">CLGEMMTranspose1xWFixture</a>, framework::<a class="code" href="namespacearm__compute_1_1test_1_1framework.xhtml#a7edf31944a6144ffd493d2f9a7bfb5cf">DatasetMode</a>::PRECOMMIT, <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a21c746108f9b5d95496012a42de374cd">data_transpose</a> * framework::dataset::<a class="code" href="namespacearm__compute_1_1test_1_1framework_1_1dataset.xhtml#a352791fb808d42a82ad70df5efa3508b">make</a>("<a class="code" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6">DataType</a>", DataType::F32))</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span> {</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  <span class="comment">// Validate output</span></div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a6813132c943295888972727864ea5c2f">validate</a>(CLAccessor(_target), _reference);</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span> }</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span> <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a38fe4b20a05bbaa1c844f3d7a19791ae">TEST_SUITE_END</a>() <span class="comment">// FP32</span></div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span> </div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span> <a class="code" href="tests_2framework_2_macros_8h.xhtml#acd09bed517e43d28823e69494f259835">TEST_SUITE</a>(Quantized)</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span> <a class="code" href="tests_2framework_2_macros_8h.xhtml#acd09bed517e43d28823e69494f259835">TEST_SUITE</a>(<a class="code" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a11cde4d3551db3f9498d339a67189543">QS8</a>)</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span> <span class="keyword">using</span> <a class="code" href="classarm__compute_1_1test_1_1_c_l_synthetize_function_with_zero_constant_border.xhtml">CLGEMMTranspose1xW</a> = <a class="code" href="classarm__compute_1_1test_1_1_c_l_synthetize_function_with_zero_constant_border.xhtml">CLSynthetizeFunctionWithZeroConstantBorder<CLGEMMTranspose1xWKernel, 16></a>;</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span> <span class="keyword">using</span> <a class="code" href="classarm__compute_1_1test_1_1validation_1_1_g_e_m_m_transpose1x_w_validation_fixture.xhtml">CLGEMMTranspose1xWFixture</a> = <a class="code" href="classarm__compute_1_1test_1_1validation_1_1_g_e_m_m_transpose1x_w_validation_fixed_point_fixture.xhtml">GEMMTranspose1xWValidationFixedPointFixture<CLTensor, CLAccessor, CLGEMMTranspose1xW, int8_t></a>;</div><div class="line"><a name="l00152"></a><span class="lineno"><a class="line" href="namespacearm__compute_1_1test_1_1validation.xhtml#a7fced75c19e84ca0c0ef2bed4ccdd6a1"> 152</a></span> <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a6b5e9878192726548c5546a4cbc175ab">FIXTURE_DATA_TEST_CASE</a>(RunTiny, <a class="code" href="classarm__compute_1_1test_1_1validation_1_1_g_e_m_m_transpose1x_w_validation_fixture.xhtml">CLGEMMTranspose1xWFixture</a>, <a class="code" href="namespacearm__compute_1_1test_1_1framework.xhtml#a7edf31944a6144ffd493d2f9a7bfb5cfab829534c7b40afdbd3c3ffea05202a97">framework::DatasetMode::PRECOMMIT</a>, <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a21c746108f9b5d95496012a42de374cd">data_transpose</a> *</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  <a class="code" href="namespacearm__compute_1_1test_1_1framework_1_1dataset.xhtml#a352791fb808d42a82ad70df5efa3508b">framework::dataset::make</a>(<span class="stringliteral">"DataType"</span>, <a class="code" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a11cde4d3551db3f9498d339a67189543">DataType::QS8</a>)</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  * <a class="code" href="namespacearm__compute_1_1test_1_1framework_1_1dataset.xhtml#a352791fb808d42a82ad70df5efa3508b">framework::dataset::make</a>(<span class="stringliteral">"FractionalBits"</span>, 1, 7))</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span> {</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  <span class="comment">// Validate output</span></div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a6813132c943295888972727864ea5c2f">validate</a>(<a class="code" href="classarm__compute_1_1test_1_1_c_l_accessor.xhtml">CLAccessor</a>(_target), _reference);</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span> }</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span> <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a38fe4b20a05bbaa1c844f3d7a19791ae">TEST_SUITE_END</a>()</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span> </div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span> <a class="code" href="tests_2framework_2_macros_8h.xhtml#acd09bed517e43d28823e69494f259835">TEST_SUITE</a>(<a class="code" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a48d877702a2957f5a932c43a357866f9">QS16</a>)</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span> <span class="keyword">using</span> <a class="code" href="classarm__compute_1_1test_1_1_c_l_synthetize_function_with_zero_constant_border.xhtml">CLGEMMTranspose1xW</a> = <a class="code" href="classarm__compute_1_1test_1_1_c_l_synthetize_function_with_zero_constant_border.xhtml">CLSynthetizeFunctionWithZeroConstantBorder<CLGEMMTranspose1xWKernel, 8></a>;</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span> <span class="keyword">using</span> <a class="code" href="classarm__compute_1_1test_1_1validation_1_1_g_e_m_m_transpose1x_w_validation_fixture.xhtml">CLGEMMTranspose1xWFixture</a> = <a class="code" href="classarm__compute_1_1test_1_1validation_1_1_g_e_m_m_transpose1x_w_validation_fixed_point_fixture.xhtml">GEMMTranspose1xWValidationFixedPointFixture<CLTensor, CLAccessor, CLGEMMTranspose1xW, int16_t></a>;</div><div class="line"><a name="l00164"></a><span class="lineno"><a class="line" href="namespacearm__compute_1_1test_1_1validation.xhtml#aeea821907daf49a9b9e2d2e2cbe3117a"> 164</a></span> <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a6b5e9878192726548c5546a4cbc175ab">FIXTURE_DATA_TEST_CASE</a>(RunTiny, <a class="code" href="classarm__compute_1_1test_1_1validation_1_1_g_e_m_m_transpose1x_w_validation_fixture.xhtml">CLGEMMTranspose1xWFixture</a>, <a class="code" href="namespacearm__compute_1_1test_1_1framework.xhtml#a7edf31944a6144ffd493d2f9a7bfb5cfab829534c7b40afdbd3c3ffea05202a97">framework::DatasetMode::PRECOMMIT</a>, <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a21c746108f9b5d95496012a42de374cd">data_transpose</a> *</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  <a class="code" href="namespacearm__compute_1_1test_1_1framework_1_1dataset.xhtml#a352791fb808d42a82ad70df5efa3508b">framework::dataset::make</a>(<span class="stringliteral">"DataType"</span>, <a class="code" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a48d877702a2957f5a932c43a357866f9">DataType::QS16</a>)</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  * <a class="code" href="namespacearm__compute_1_1test_1_1framework_1_1dataset.xhtml#a352791fb808d42a82ad70df5efa3508b">framework::dataset::make</a>(<span class="stringliteral">"FractionalBits"</span>, 1, 14))</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span> {</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>  <span class="comment">// Validate output</span></div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a6813132c943295888972727864ea5c2f">validate</a>(<a class="code" href="classarm__compute_1_1test_1_1_c_l_accessor.xhtml">CLAccessor</a>(_target), _reference);</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span> }</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span> <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a38fe4b20a05bbaa1c844f3d7a19791ae">TEST_SUITE_END</a>()</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span> </div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span> <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a38fe4b20a05bbaa1c844f3d7a19791ae">TEST_SUITE_END</a>()</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span> </div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span> <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a38fe4b20a05bbaa1c844f3d7a19791ae">TEST_SUITE_END</a>() <span class="comment">//TRANSPOSE_1XW</span></div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span> </div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span> <a class="code" href="tests_2framework_2_macros_8h.xhtml#acd09bed517e43d28823e69494f259835">TEST_SUITE</a>(Float)</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span> <a class="code" href="tests_2framework_2_macros_8h.xhtml#acd09bed517e43d28823e69494f259835">TEST_SUITE</a>(FP16)</div><div class="line"><a name="l00179"></a><span class="lineno"><a class="line" href="namespacearm__compute_1_1test_1_1validation.xhtml#a04007bf24db04a66a613f49e608781ff"> 179</a></span> <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a6b5e9878192726548c5546a4cbc175ab">FIXTURE_DATA_TEST_CASE</a>(RunSmall, <a class="code" href="classarm__compute_1_1test_1_1validation_1_1_g_e_m_m_validation_fixture.xhtml">CLGEMMFixture</a><<a class="code" href="namespacearm__compute.xhtml#a73e2825fd61d349c5ca2f5313e3c8ea1">half</a>>, framework::<a class="code" href="namespacearm__compute_1_1test_1_1framework.xhtml#a7edf31944a6144ffd493d2f9a7bfb5cf">DatasetMode</a>::PRECOMMIT, <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#ad2b4e88e166416d979a049064877b2ca">combine</a>(datasets::SmallGEMMDataset(), framework::dataset::<a class="code" href="namespacearm__compute_1_1test_1_1framework_1_1dataset.xhtml#a352791fb808d42a82ad70df5efa3508b">make</a>("<a class="code" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6">DataType</a>", DataType::F16)))</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span> {</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>  <span class="comment">// Validate output</span></div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>  <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a6813132c943295888972727864ea5c2f">validate</a>(<a class="code" href="classarm__compute_1_1test_1_1_c_l_accessor.xhtml">CLAccessor</a>(_target), _reference, tolerance_f16, tolerance_num);</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span> }</div><div class="line"><a name="l00184"></a><span class="lineno"><a class="line" href="namespacearm__compute_1_1test_1_1validation.xhtml#a497f26d28effe6af2c1641951d3c2dfe"> 184</a></span> <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a6b5e9878192726548c5546a4cbc175ab">FIXTURE_DATA_TEST_CASE</a>(RunLarge, <a class="code" href="classarm__compute_1_1test_1_1validation_1_1_g_e_m_m_validation_fixture.xhtml">CLGEMMFixture<half></a>, <a class="code" href="namespacearm__compute_1_1test_1_1framework.xhtml#a7edf31944a6144ffd493d2f9a7bfb5cfad791cd54143e331164a2b216451a5dd3">framework::DatasetMode::NIGHTLY</a>, <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#ad2b4e88e166416d979a049064877b2ca">combine</a>(<a class="code" href="classarm__compute_1_1test_1_1datasets_1_1_large_g_e_m_m_dataset.xhtml">datasets::LargeGEMMDataset</a>(), <a class="code" href="namespacearm__compute_1_1test_1_1framework_1_1dataset.xhtml#a352791fb808d42a82ad70df5efa3508b">framework::dataset::make</a>(<span class="stringliteral">"DataType"</span>,</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  <a class="code" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a56d8353718e6fdc78b8d69078a2cdb94">DataType::F16</a>)))</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span> {</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>  <span class="comment">// Validate output</span></div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>  <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a6813132c943295888972727864ea5c2f">validate</a>(<a class="code" href="classarm__compute_1_1test_1_1_c_l_accessor.xhtml">CLAccessor</a>(_target), _reference, tolerance_f16, tolerance_num);</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span> }</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span> <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a38fe4b20a05bbaa1c844f3d7a19791ae">TEST_SUITE_END</a>()</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span> </div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span> <a class="code" href="tests_2framework_2_macros_8h.xhtml#acd09bed517e43d28823e69494f259835">TEST_SUITE</a>(FP32)</div><div class="line"><a name="l00193"></a><span class="lineno"><a class="line" href="namespacearm__compute_1_1test_1_1validation.xhtml#a1522ada944b48d4a7a36d7e3005743a3"> 193</a></span> <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a6b5e9878192726548c5546a4cbc175ab">FIXTURE_DATA_TEST_CASE</a>(RunSmall, <a class="code" href="classarm__compute_1_1test_1_1validation_1_1_g_e_m_m_validation_fixture.xhtml">CLGEMMFixture</a><<span class="keywordtype">float</span>>, framework::<a class="code" href="namespacearm__compute_1_1test_1_1framework.xhtml#a7edf31944a6144ffd493d2f9a7bfb5cf">DatasetMode</a>::PRECOMMIT, <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#ad2b4e88e166416d979a049064877b2ca">combine</a>(datasets::SmallGEMMDataset(), framework::dataset::<a class="code" href="namespacearm__compute_1_1test_1_1framework_1_1dataset.xhtml#a352791fb808d42a82ad70df5efa3508b">make</a>("<a class="code" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6">DataType</a>", DataType::F32)))</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span> {</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>  <span class="comment">// Validate output</span></div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>  <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a6813132c943295888972727864ea5c2f">validate</a>(<a class="code" href="classarm__compute_1_1test_1_1_c_l_accessor.xhtml">CLAccessor</a>(_target), _reference, tolerance_f32);</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span> }</div><div class="line"><a name="l00198"></a><span class="lineno"><a class="line" href="namespacearm__compute_1_1test_1_1validation.xhtml#afb73b098cdc7bac5920e576d81e57fb4"> 198</a></span> <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a6b5e9878192726548c5546a4cbc175ab">FIXTURE_DATA_TEST_CASE</a>(RunLarge, <a class="code" href="classarm__compute_1_1test_1_1validation_1_1_g_e_m_m_validation_fixture.xhtml">CLGEMMFixture<float></a>, <a class="code" href="namespacearm__compute_1_1test_1_1framework.xhtml#a7edf31944a6144ffd493d2f9a7bfb5cfad791cd54143e331164a2b216451a5dd3">framework::DatasetMode::NIGHTLY</a>, <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#ad2b4e88e166416d979a049064877b2ca">combine</a>(<a class="code" href="classarm__compute_1_1test_1_1datasets_1_1_large_g_e_m_m_dataset.xhtml">datasets::LargeGEMMDataset</a>(), <a class="code" href="namespacearm__compute_1_1test_1_1framework_1_1dataset.xhtml#a352791fb808d42a82ad70df5efa3508b">framework::dataset::make</a>(<span class="stringliteral">"DataType"</span>, <a class="code" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a44ad4ef5a76e6aa6fb3e3fa079a54fda">DataType::F32</a>)))</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span> {</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>  <span class="comment">// Validate output</span></div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>  <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a6813132c943295888972727864ea5c2f">validate</a>(<a class="code" href="classarm__compute_1_1test_1_1_c_l_accessor.xhtml">CLAccessor</a>(_target), _reference, tolerance_f32);</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span> }</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span> <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a38fe4b20a05bbaa1c844f3d7a19791ae">TEST_SUITE_END</a>()</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span> <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a38fe4b20a05bbaa1c844f3d7a19791ae">TEST_SUITE_END</a>()</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span> </div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div><div class="line"><a name="l00207"></a><span class="lineno"><a class="line" href="namespacearm__compute_1_1test_1_1validation.xhtml#a9d9511cf80abd452fc21c671b0ffc334"> 207</a></span> <span class="keyword">using</span> <a class="code" href="classarm__compute_1_1test_1_1validation_1_1_g_e_m_m_validation_fixed_point_fixture.xhtml">CLGEMMFixedPointFixture</a> = <a class="code" href="classarm__compute_1_1test_1_1validation_1_1_g_e_m_m_validation_fixed_point_fixture.xhtml">GEMMValidationFixedPointFixture<CLTensor, CLAccessor, CLGEMM, T></a>;</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span> </div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span> <a class="code" href="tests_2framework_2_macros_8h.xhtml#acd09bed517e43d28823e69494f259835">TEST_SUITE</a>(Quantized)</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span> <a class="code" href="tests_2framework_2_macros_8h.xhtml#acd09bed517e43d28823e69494f259835">TEST_SUITE</a>(QS8)</div><div class="line"><a name="l00211"></a><span class="lineno"><a class="line" href="namespacearm__compute_1_1test_1_1validation.xhtml#a972bc2863f006326746e60f132c498cf"> 211</a></span> <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a6b5e9878192726548c5546a4cbc175ab">FIXTURE_DATA_TEST_CASE</a>(RunTiny, <a class="code" href="classarm__compute_1_1test_1_1validation_1_1_g_e_m_m_validation_fixed_point_fixture.xhtml">CLGEMMFixedPointFixture</a><int8_t>, framework::<a class="code" href="namespacearm__compute_1_1test_1_1framework.xhtml#a7edf31944a6144ffd493d2f9a7bfb5cf">DatasetMode</a>::PRECOMMIT, <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#ad2b4e88e166416d979a049064877b2ca">combine</a>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#ad2b4e88e166416d979a049064877b2ca">combine</a>(datasets::TinyGEMMDataset(),</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>  framework::dataset::<a class="code" href="namespacearm__compute_1_1test_1_1framework_1_1dataset.xhtml#a352791fb808d42a82ad70df5efa3508b">make</a>("<a class="code" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6">DataType</a>",</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>  DataType::QS8)),</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>  framework::dataset::<a class="code" href="namespacearm__compute_1_1test_1_1framework_1_1dataset.xhtml#a352791fb808d42a82ad70df5efa3508b">make</a>("FractionalBits", 1, 7)))</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span> {</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>  <span class="comment">// Validate output</span></div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>  <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a6813132c943295888972727864ea5c2f">validate</a>(<a class="code" href="classarm__compute_1_1test_1_1_c_l_accessor.xhtml">CLAccessor</a>(_target), _reference, tolerance_q);</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span> }</div><div class="line"><a name="l00219"></a><span class="lineno"><a class="line" href="namespacearm__compute_1_1test_1_1validation.xhtml#adef69d38023e1aa84b565b72aeb485f1"> 219</a></span> <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a6b5e9878192726548c5546a4cbc175ab">FIXTURE_DATA_TEST_CASE</a>(RunSmall, <a class="code" href="classarm__compute_1_1test_1_1validation_1_1_g_e_m_m_validation_fixed_point_fixture.xhtml">CLGEMMFixedPointFixture<int8_t></a>, <a class="code" href="namespacearm__compute_1_1test_1_1framework.xhtml#a7edf31944a6144ffd493d2f9a7bfb5cfad791cd54143e331164a2b216451a5dd3">framework::DatasetMode::NIGHTLY</a>, <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#ad2b4e88e166416d979a049064877b2ca">combine</a>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#ad2b4e88e166416d979a049064877b2ca">combine</a>(<a class="code" href="classarm__compute_1_1test_1_1datasets_1_1_small_g_e_m_m_dataset.xhtml">datasets::SmallGEMMDataset</a>(),</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>  <a class="code" href="namespacearm__compute_1_1test_1_1framework_1_1dataset.xhtml#a352791fb808d42a82ad70df5efa3508b">framework::dataset::make</a>(<span class="stringliteral">"DataType"</span>,</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>  <a class="code" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a11cde4d3551db3f9498d339a67189543">DataType::QS8</a>)),</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>  <a class="code" href="namespacearm__compute_1_1test_1_1framework_1_1dataset.xhtml#a352791fb808d42a82ad70df5efa3508b">framework::dataset::make</a>(<span class="stringliteral">"FractionalBits"</span>, 1, 7)))</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span> {</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>  <span class="comment">// Validate output</span></div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>  <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a6813132c943295888972727864ea5c2f">validate</a>(<a class="code" href="classarm__compute_1_1test_1_1_c_l_accessor.xhtml">CLAccessor</a>(_target), _reference, tolerance_q);</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span> }</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span> <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a38fe4b20a05bbaa1c844f3d7a19791ae">TEST_SUITE_END</a>()</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span> </div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span> <a class="code" href="tests_2framework_2_macros_8h.xhtml#acd09bed517e43d28823e69494f259835">TEST_SUITE</a>(<a class="code" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a48d877702a2957f5a932c43a357866f9">QS16</a>)</div><div class="line"><a name="l00230"></a><span class="lineno"><a class="line" href="namespacearm__compute_1_1test_1_1validation.xhtml#ac0728e3e15a3ee479baadfe1899cebb6"> 230</a></span> <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a6b5e9878192726548c5546a4cbc175ab">FIXTURE_DATA_TEST_CASE</a>(RunTiny, <a class="code" href="classarm__compute_1_1test_1_1validation_1_1_g_e_m_m_validation_fixed_point_fixture.xhtml">CLGEMMFixedPointFixture</a><int16_t>, framework::<a class="code" href="namespacearm__compute_1_1test_1_1framework.xhtml#a7edf31944a6144ffd493d2f9a7bfb5cf">DatasetMode</a>::PRECOMMIT, <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#ad2b4e88e166416d979a049064877b2ca">combine</a>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#ad2b4e88e166416d979a049064877b2ca">combine</a>(datasets::TinyGEMMDataset(),</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>  framework::dataset::<a class="code" href="namespacearm__compute_1_1test_1_1framework_1_1dataset.xhtml#a352791fb808d42a82ad70df5efa3508b">make</a>("<a class="code" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6">DataType</a>",</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>  DataType::QS16)),</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>  framework::dataset::<a class="code" href="namespacearm__compute_1_1test_1_1framework_1_1dataset.xhtml#a352791fb808d42a82ad70df5efa3508b">make</a>("FractionalBits", 1, 14)))</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span> {</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>  <span class="comment">// Validate output</span></div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>  <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a6813132c943295888972727864ea5c2f">validate</a>(<a class="code" href="classarm__compute_1_1test_1_1_c_l_accessor.xhtml">CLAccessor</a>(_target), _reference, tolerance_q);</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span> }</div><div class="line"><a name="l00238"></a><span class="lineno"><a class="line" href="namespacearm__compute_1_1test_1_1validation.xhtml#ab8251082c3ea098822683d370c2b0790"> 238</a></span> <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a6b5e9878192726548c5546a4cbc175ab">FIXTURE_DATA_TEST_CASE</a>(RunSmall, <a class="code" href="classarm__compute_1_1test_1_1validation_1_1_g_e_m_m_validation_fixed_point_fixture.xhtml">CLGEMMFixedPointFixture<int16_t></a>, <a class="code" href="namespacearm__compute_1_1test_1_1framework.xhtml#a7edf31944a6144ffd493d2f9a7bfb5cfad791cd54143e331164a2b216451a5dd3">framework::DatasetMode::NIGHTLY</a>, <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#ad2b4e88e166416d979a049064877b2ca">combine</a>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#ad2b4e88e166416d979a049064877b2ca">combine</a>(<a class="code" href="classarm__compute_1_1test_1_1datasets_1_1_small_g_e_m_m_dataset.xhtml">datasets::SmallGEMMDataset</a>(),</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>  <a class="code" href="namespacearm__compute_1_1test_1_1framework_1_1dataset.xhtml#a352791fb808d42a82ad70df5efa3508b">framework::dataset::make</a>(<span class="stringliteral">"DataType"</span>,</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>  <a class="code" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a48d877702a2957f5a932c43a357866f9">DataType::QS16</a>)),</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>  <a class="code" href="namespacearm__compute_1_1test_1_1framework_1_1dataset.xhtml#a352791fb808d42a82ad70df5efa3508b">framework::dataset::make</a>(<span class="stringliteral">"FractionalBits"</span>, 1, 14)))</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span> {</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>  <span class="comment">// Validate output</span></div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>  <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a6813132c943295888972727864ea5c2f">validate</a>(<a class="code" href="classarm__compute_1_1test_1_1_c_l_accessor.xhtml">CLAccessor</a>(_target), _reference, tolerance_q);</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span> }</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span> <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a38fe4b20a05bbaa1c844f3d7a19791ae">TEST_SUITE_END</a>()</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span> <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a38fe4b20a05bbaa1c844f3d7a19791ae">TEST_SUITE_END</a>()</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span> </div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span> <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a38fe4b20a05bbaa1c844f3d7a19791ae">TEST_SUITE_END</a>()</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span> <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a38fe4b20a05bbaa1c844f3d7a19791ae">TEST_SUITE_END</a>()</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span> } <span class="comment">// namespace validation</span></div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span> } <span class="comment">// namespace test</span></div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span> } <span class="comment">// namespace arm_compute</span></div><div class="ttc" id="classarm__compute_1_1_c_l_g_e_m_m_interleave4x4_kernel_xhtml"><div class="ttname"><a href="classarm__compute_1_1_c_l_g_e_m_m_interleave4x4_kernel.xhtml">arm_compute::CLGEMMInterleave4x4Kernel</a></div><div class="ttdoc">OpenCL kernel which interleaves the elements of a matrix A in chunk of 4x4. </div><div class="ttdef"><b>Definition:</b> <a href="_c_l_g_e_m_m_interleave4x4_kernel_8h_source.xhtml#l00052">CLGEMMInterleave4x4Kernel.h:52</a></div></div>
+<div class="ttc" id="_tiny_g_e_m_m_dataset_8h_xhtml"><div class="ttname"><a href="_tiny_g_e_m_m_dataset_8h.xhtml">TinyGEMMDataset.h</a></div></div>
<div class="ttc" id="namespacearm__compute_xhtml_ad8ed01ff3ff33333d8e19db4d2818bb6a48d877702a2957f5a932c43a357866f9"><div class="ttname"><a href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a48d877702a2957f5a932c43a357866f9">arm_compute::DataType::QS16</a></div></div>
-<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_ab146b9cbab6e73e7588b240dc709fe01"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#ab146b9cbab6e73e7588b240dc709fe01">arm_compute::test::validation::beta</a></div><div class="ttdeci">beta</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00112">GEMM.cpp:112</a></div></div>
+<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_ab146b9cbab6e73e7588b240dc709fe01"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#ab146b9cbab6e73e7588b240dc709fe01">arm_compute::test::validation::beta</a></div><div class="ttdeci">beta</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00113">GEMM.cpp:113</a></div></div>
<div class="ttc" id="namespacearm__compute_xhtml_ad8ed01ff3ff33333d8e19db4d2818bb6a11cde4d3551db3f9498d339a67189543"><div class="ttname"><a href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a11cde4d3551db3f9498d339a67189543">arm_compute::DataType::QS8</a></div></div>
<div class="ttc" id="classarm__compute_1_1_tensor_info_xhtml_aaee6555ace43b03173844b1a228a3fc3"><div class="ttname"><a href="classarm__compute_1_1_tensor_info.xhtml#aaee6555ace43b03173844b1a228a3fc3">arm_compute::TensorInfo::is_resizable</a></div><div class="ttdeci">bool is_resizable() const override</div><div class="ttdoc">Flag indicating whether the size of the tensor can be changed. </div><div class="ttdef"><b>Definition:</b> <a href="_tensor_info_8h_source.xhtml#l00279">TensorInfo.h:279</a></div></div>
<div class="ttc" id="classarm__compute_1_1test_1_1validation_1_1_g_e_m_m_validation_fixed_point_fixture_xhtml"><div class="ttname"><a href="classarm__compute_1_1test_1_1validation_1_1_g_e_m_m_validation_fixed_point_fixture.xhtml">arm_compute::test::validation::GEMMValidationFixedPointFixture</a></div><div class="ttdef"><b>Definition:</b> <a href="validation_2fixtures_2_g_e_m_m_fixture_8h_source.xhtml#l00046">GEMMFixture.h:46</a></div></div>
-<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00118">GEMM.cpp:118</a></div></div>
+<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">CLTensor a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00119">GEMM.cpp:119</a></div></div>
<div class="ttc" id="classarm__compute_1_1_c_l_g_e_m_m_transpose1x_w_kernel_xhtml"><div class="ttname"><a href="classarm__compute_1_1_c_l_g_e_m_m_transpose1x_w_kernel.xhtml">arm_compute::CLGEMMTranspose1xWKernel</a></div><div class="ttdoc">OpenCL kernel which transposes the elements of a matrix in chunks of 1xW, where W is equal to (16 / e...</div><div class="ttdef"><b>Definition:</b> <a href="_c_l_g_e_m_m_transpose1x_w_kernel_8h_source.xhtml#l00068">CLGEMMTranspose1xWKernel.h:68</a></div></div>
<div class="ttc" id="_padding_calculator_8h_xhtml"><div class="ttname"><a href="_padding_calculator_8h.xhtml">PaddingCalculator.h</a></div></div>
<div class="ttc" id="_c_l_tensor_8h_xhtml"><div class="ttname"><a href="_c_l_tensor_8h.xhtml">CLTensor.h</a></div></div>
-<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_ab39a7489f0c4ef5db0dfa9291073fe61"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#ab39a7489f0c4ef5db0dfa9291073fe61">arm_compute::test::validation::shape_b</a></div><div class="ttdeci">shape_b</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00112">GEMM.cpp:112</a></div></div>
-<div class="ttc" id="namespacearm__compute_xhtml_a73e2825fd61d349c5ca2f5313e3c8ea1"><div class="ttname"><a href="namespacearm__compute.xhtml#a73e2825fd61d349c5ca2f5313e3c8ea1">arm_compute::half</a></div><div class="ttdeci">half_float::half half</div><div class="ttdoc">16-bit floating point type </div><div class="ttdef"><b>Definition:</b> <a href="arm__compute_2core_2_types_8h_source.xhtml#l00043">Types.h:43</a></div></div>
+<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_ab39a7489f0c4ef5db0dfa9291073fe61"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#ab39a7489f0c4ef5db0dfa9291073fe61">arm_compute::test::validation::shape_b</a></div><div class="ttdeci">shape_b</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00113">GEMM.cpp:113</a></div></div>
+<div class="ttc" id="namespacearm__compute_xhtml_a73e2825fd61d349c5ca2f5313e3c8ea1"><div class="ttname"><a href="namespacearm__compute.xhtml#a73e2825fd61d349c5ca2f5313e3c8ea1">arm_compute::half</a></div><div class="ttdeci">half_float::half half</div><div class="ttdoc">16-bit floating point type </div><div class="ttdef"><b>Definition:</b> <a href="arm__compute_2core_2_types_8h_source.xhtml#l00044">Types.h:44</a></div></div>
<div class="ttc" id="namespacearm__compute_xhtml_ab4e88c89b3b7ea1735996cc4def22d58a44ad4ef5a76e6aa6fb3e3fa079a54fda"><div class="ttname"><a href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a44ad4ef5a76e6aa6fb3e3fa079a54fda">arm_compute::Format::F32</a></div><div class="ttdoc">1 channel, 1 F32 per channel </div></div>
<div class="ttc" id="_small_g_e_m_m_dataset_8h_xhtml"><div class="ttname"><a href="_small_g_e_m_m_dataset_8h.xhtml">SmallGEMMDataset.h</a></div></div>
<div class="ttc" id="classarm__compute_1_1test_1_1datasets_1_1_large_g_e_m_m_dataset_xhtml"><div class="ttname"><a href="classarm__compute_1_1test_1_1datasets_1_1_large_g_e_m_m_dataset.xhtml">arm_compute::test::datasets::LargeGEMMDataset</a></div><div class="ttdef"><b>Definition:</b> <a href="_large_g_e_m_m_dataset_8h_source.xhtml#l00040">LargeGEMMDataset.h:40</a></div></div>
<div class="ttc" id="classarm__compute_1_1test_1_1_c_l_synthetize_function_with_zero_constant_border_xhtml"><div class="ttname"><a href="classarm__compute_1_1test_1_1_c_l_synthetize_function_with_zero_constant_border.xhtml">arm_compute::test::CLSynthetizeFunctionWithZeroConstantBorder</a></div><div class="ttdef"><b>Definition:</b> <a href="_c_l_2_helper_8h_source.xhtml#l00050">Helper.h:50</a></div></div>
-<div class="ttc" id="namespacearm__compute_1_1test_1_1framework_1_1dataset_xhtml_a352791fb808d42a82ad70df5efa3508b"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1framework_1_1dataset.xhtml#a352791fb808d42a82ad70df5efa3508b">arm_compute::test::framework::dataset::make</a></div><div class="ttdeci">std::enable_if< is_container< T >::value, ContainerDataset< T > >::type make(std::string name, T &&values)</div><div class="ttdoc">Helper function to create a ContainerDataset. </div><div class="ttdef"><b>Definition:</b> <a href="_container_dataset_8h_source.xhtml#l00140">ContainerDataset.h:140</a></div></div>
+<div class="ttc" id="namespacearm__compute_1_1test_1_1framework_1_1dataset_xhtml_a352791fb808d42a82ad70df5efa3508b"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1framework_1_1dataset.xhtml#a352791fb808d42a82ad70df5efa3508b">arm_compute::test::framework::dataset::make</a></div><div class="ttdeci">std::enable_if< is_container< T >::value, ContainerDataset< T > >::type make(std::string name, T &&values)</div><div class="ttdoc">Helper function to create a ContainerDataset. </div><div class="ttdef"><b>Definition:</b> <a href="_container_dataset_8h_source.xhtml#l00141">ContainerDataset.h:141</a></div></div>
<div class="ttc" id="classarm__compute_1_1_c_l_tensor_xhtml_a97de03c31e0ca04be6960e2e3ffdca95"><div class="ttname"><a href="classarm__compute_1_1_c_l_tensor.xhtml#a97de03c31e0ca04be6960e2e3ffdca95">arm_compute::CLTensor::info</a></div><div class="ttdeci">TensorInfo * info() const override</div><div class="ttdoc">Interface to be implemented by the child class to return the tensor&#39;s metadata. </div></div>
-<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a141b596a566813a7fc3116f9881d3dc9"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a141b596a566813a7fc3116f9881d3dc9">arm_compute::test::validation::shape_c</a></div><div class="ttdeci">shape_c</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00112">GEMM.cpp:112</a></div></div>
+<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a141b596a566813a7fc3116f9881d3dc9"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a141b596a566813a7fc3116f9881d3dc9">arm_compute::test::validation::shape_c</a></div><div class="ttdeci">shape_c</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00113">GEMM.cpp:113</a></div></div>
<div class="ttc" id="classarm__compute_1_1test_1_1validation_1_1_g_e_m_m_transpose1x_w_validation_fixed_point_fixture_xhtml"><div class="ttname"><a href="classarm__compute_1_1test_1_1validation_1_1_g_e_m_m_transpose1x_w_validation_fixed_point_fixture.xhtml">arm_compute::test::validation::GEMMTranspose1xWValidationFixedPointFixture</a></div><div class="ttdef"><b>Definition:</b> <a href="_g_e_m_m_transpose1x_w_fixture_8h_source.xhtml#l00046">GEMMTranspose1xWFixture.h:46</a></div></div>
<div class="ttc" id="_c_l_accessor_8h_xhtml"><div class="ttname"><a href="_c_l_accessor_8h.xhtml">CLAccessor.h</a></div></div>
<div class="ttc" id="namespacearm__compute_1_1test_1_1framework_xhtml_a7edf31944a6144ffd493d2f9a7bfb5cfab829534c7b40afdbd3c3ffea05202a97"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1framework.xhtml#a7edf31944a6144ffd493d2f9a7bfb5cfab829534c7b40afdbd3c3ffea05202a97">arm_compute::test::framework::DatasetMode::PRECOMMIT</a></div></div>
<div class="ttc" id="tests_2framework_2_macros_8h_xhtml_acd09bed517e43d28823e69494f259835"><div class="ttname"><a href="tests_2framework_2_macros_8h.xhtml#acd09bed517e43d28823e69494f259835">TEST_SUITE</a></div><div class="ttdeci">#define TEST_SUITE(SUITE_NAME)</div><div class="ttdef"><b>Definition:</b> <a href="tests_2framework_2_macros_8h_source.xhtml#l00034">Macros.h:34</a></div></div>
<div class="ttc" id="classarm__compute_1_1test_1_1validation_1_1_g_e_m_m_interleave4x4_validation_fixture_xhtml"><div class="ttname"><a href="classarm__compute_1_1test_1_1validation_1_1_g_e_m_m_interleave4x4_validation_fixture.xhtml">arm_compute::test::validation::GEMMInterleave4x4ValidationFixture</a></div><div class="ttdef"><b>Definition:</b> <a href="validation_2fixtures_2_g_e_m_m_interleave4x4_fixture_8h_source.xhtml#l00128">GEMMInterleave4x4Fixture.h:128</a></div></div>
<div class="ttc" id="_c_l_tensor_allocator_8h_xhtml"><div class="ttname"><a href="_c_l_tensor_allocator_8h.xhtml">CLTensorAllocator.h</a></div></div>
-<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_ac2ad7f431e3446fddcd9b6b9f93c4c14"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#ac2ad7f431e3446fddcd9b6b9f93c4c14">arm_compute::test::validation::data_type</a></div><div class="ttdeci">data_type</div><div class="ttdef"><b>Definition:</b> <a href="_c_l_2_convolution_8cpp_source.xhtml#l00119">Convolution.cpp:119</a></div></div>
+<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_ac2ad7f431e3446fddcd9b6b9f93c4c14"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#ac2ad7f431e3446fddcd9b6b9f93c4c14">arm_compute::test::validation::data_type</a></div><div class="ttdeci">data_type</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00114">GEMM.cpp:114</a></div></div>
<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a6b5e9878192726548c5546a4cbc175ab"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a6b5e9878192726548c5546a4cbc175ab">arm_compute::test::validation::FIXTURE_DATA_TEST_CASE</a></div><div class="ttdeci">FIXTURE_DATA_TEST_CASE(RunSmall, CLAbsoluteDifferenceFixture< uint8_t >, framework::DatasetMode::PRECOMMIT, combine(datasets::SmallShapes(), AbsoluteDifferenceU8Dataset))</div><div class="ttdef"><b>Definition:</b> <a href="_c_l_2_absolute_difference_8cpp_source.xhtml#l00083">AbsoluteDifference.cpp:83</a></div></div>
<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a6813132c943295888972727864ea5c2f"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a6813132c943295888972727864ea5c2f">arm_compute::test::validation::validate</a></div><div class="ttdeci">validate(dst.info() ->valid_region(), dst_valid_region)</div></div>
-<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_ab84214a10c816dc554f190c53b535622"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#ab84214a10c816dc554f190c53b535622">arm_compute::test::validation::gemm</a></div><div class="ttdeci">CLGEMM gemm</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00129">GEMM.cpp:129</a></div></div>
+<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_ab84214a10c816dc554f190c53b535622"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#ab84214a10c816dc554f190c53b535622">arm_compute::test::validation::gemm</a></div><div class="ttdeci">CLGEMM gemm</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00130">GEMM.cpp:130</a></div></div>
<div class="ttc" id="namespacearm__compute_1_1test_1_1framework_xhtml_a7edf31944a6144ffd493d2f9a7bfb5cf"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1framework.xhtml#a7edf31944a6144ffd493d2f9a7bfb5cf">arm_compute::test::framework::DatasetMode</a></div><div class="ttdeci">DatasetMode</div><div class="ttdoc">Possible dataset modes. </div><div class="ttdef"><b>Definition:</b> <a href="_dataset_modes_8h_source.xhtml#l00040">DatasetModes.h:40</a></div></div>
<div class="ttc" id="validation_2fixtures_2_g_e_m_m_fixture_8h_xhtml"><div class="ttname"><a href="validation_2fixtures_2_g_e_m_m_fixture_8h.xhtml">GEMMFixture.h</a></div></div>
<div class="ttc" id="_datasets_8h_xhtml"><div class="ttname"><a href="_datasets_8h.xhtml">Datasets.h</a></div></div>
<div class="ttc" id="classarm__compute_1_1_c_l_g_e_m_m_xhtml"><div class="ttname"><a href="classarm__compute_1_1_c_l_g_e_m_m.xhtml">arm_compute::CLGEMM</a></div><div class="ttdoc">Basic function to execute GEMM on OpenCL. </div><div class="ttdef"><b>Definition:</b> <a href="_c_l_g_e_m_m_8h_source.xhtml#l00051">CLGEMM.h:51</a></div></div>
-<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_ab3c94cd6eccab4c3a507d03920281124"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#ab3c94cd6eccab4c3a507d03920281124">arm_compute::test::validation::combine</a></div><div class="ttdeci">combine(combine(combine(concat(datasets::SmallShapes(), datasets::LargeShapes()), framework::dataset::make("DataType", DataType::U8)), datasets::BorderModes()), framework::dataset::make("filter_size",{5}))</div></div>
-<div class="ttc" id="namespacearm__compute_xhtml_ab6bb62694ae8369d18a9c9687040975e"><div class="ttname"><a href="namespacearm__compute.xhtml#ab6bb62694ae8369d18a9c9687040975e">arm_compute::is_data_type_fixed_point</a></div><div class="ttdeci">bool is_data_type_fixed_point(DataType dt)</div><div class="ttdoc">Check if a given data type is of fixed point type. </div><div class="ttdef"><b>Definition:</b> <a href="arm__compute_2core_2_utils_8h_source.xhtml#l00775">Utils.h:775</a></div></div>
+<div class="ttc" id="namespacearm__compute_xhtml_ab6bb62694ae8369d18a9c9687040975e"><div class="ttname"><a href="namespacearm__compute.xhtml#ab6bb62694ae8369d18a9c9687040975e">arm_compute::is_data_type_fixed_point</a></div><div class="ttdeci">bool is_data_type_fixed_point(DataType dt)</div><div class="ttdoc">Check if a given data type is of fixed point type. </div><div class="ttdef"><b>Definition:</b> <a href="arm__compute_2core_2_utils_8h_source.xhtml#l01010">Utils.h:1010</a></div></div>
<div class="ttc" id="classarm__compute_1_1test_1_1_c_l_accessor_xhtml"><div class="ttname"><a href="classarm__compute_1_1test_1_1_c_l_accessor.xhtml">arm_compute::test::CLAccessor</a></div><div class="ttdoc">Accessor implementation for CLTensor objects. </div><div class="ttdef"><b>Definition:</b> <a href="_c_l_accessor_8h_source.xhtml#l00035">CLAccessor.h:35</a></div></div>
<div class="ttc" id="_c_l_g_e_m_m_8h_xhtml"><div class="ttname"><a href="_c_l_g_e_m_m_8h.xhtml">CLGEMM.h</a></div></div>
-<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a7fc93f37dac131a1a40b7921f9df3a9a"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a7fc93f37dac131a1a40b7921f9df3a9a">arm_compute::test::validation::output_shape</a></div><div class="ttdeci">output_shape</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00112">GEMM.cpp:112</a></div></div>
-<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a21c746108f9b5d95496012a42de374cd"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a21c746108f9b5d95496012a42de374cd">arm_compute::test::validation::data_transpose</a></div><div class="ttdeci">const auto data_transpose</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00067">GEMM.cpp:67</a></div></div>
+<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a7fc93f37dac131a1a40b7921f9df3a9a"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a7fc93f37dac131a1a40b7921f9df3a9a">arm_compute::test::validation::output_shape</a></div><div class="ttdeci">output_shape</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00113">GEMM.cpp:113</a></div></div>
+<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a21c746108f9b5d95496012a42de374cd"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a21c746108f9b5d95496012a42de374cd">arm_compute::test::validation::data_transpose</a></div><div class="ttdeci">const auto data_transpose</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00068">GEMM.cpp:68</a></div></div>
<div class="ttc" id="classarm__compute_1_1test_1_1validation_1_1_g_e_m_m_transpose1x_w_validation_fixture_xhtml"><div class="ttname"><a href="classarm__compute_1_1test_1_1validation_1_1_g_e_m_m_transpose1x_w_validation_fixture.xhtml">arm_compute::test::validation::GEMMTranspose1xWValidationFixture</a></div><div class="ttdef"><b>Definition:</b> <a href="_g_e_m_m_transpose1x_w_fixture_8h_source.xhtml#l00128">GEMMTranspose1xWFixture.h:128</a></div></div>
-<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_adbf67dcee294e673cf796f1ed8aeb6a4"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#adbf67dcee294e673cf796f1ed8aeb6a4">arm_compute::test::validation::dst</a></div><div class="ttdeci">CLTensor dst</div><div class="ttdef"><b>Definition:</b> <a href="_c_l_2_convolution_8cpp_source.xhtml#l00123">Convolution.cpp:123</a></div></div>
+<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_adbf67dcee294e673cf796f1ed8aeb6a4"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#adbf67dcee294e673cf796f1ed8aeb6a4">arm_compute::test::validation::dst</a></div><div class="ttdeci">CLTensor dst</div><div class="ttdef"><b>Definition:</b> <a href="_c_l_2_convolution_8cpp_source.xhtml#l00137">Convolution.cpp:137</a></div></div>
<div class="ttc" id="classarm__compute_1_1test_1_1datasets_1_1_small_g_e_m_m_dataset_xhtml"><div class="ttname"><a href="classarm__compute_1_1test_1_1datasets_1_1_small_g_e_m_m_dataset.xhtml">arm_compute::test::datasets::SmallGEMMDataset</a></div><div class="ttdef"><b>Definition:</b> <a href="_small_g_e_m_m_dataset_8h_source.xhtml#l00040">SmallGEMMDataset.h:40</a></div></div>
<div class="ttc" id="tests_2framework_2_macros_8h_xhtml"><div class="ttname"><a href="tests_2framework_2_macros_8h.xhtml">Macros.h</a></div></div>
<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a35d3ab6d678579401ec6efeccd788c3b"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a35d3ab6d678579401ec6efeccd788c3b">arm_compute::test::validation::DATA_TEST_CASE</a></div><div class="ttdeci">DATA_TEST_CASE(Configuration, framework::DatasetMode::ALL, combine(concat(datasets::SmallShapes(), datasets::LargeShapes()), AbsoluteDifferenceU8Dataset), shape, data_type0, data_type1, output_data_type)</div><div class="ttdef"><b>Definition:</b> <a href="_c_l_2_absolute_difference_8cpp_source.xhtml#l00060">AbsoluteDifference.cpp:60</a></div></div>
<div class="ttc" id="namespacearm__compute_1_1test_1_1framework_xhtml_a7edf31944a6144ffd493d2f9a7bfb5cfa5fb1f955b45e38e31789286a1790398d"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1framework.xhtml#a7edf31944a6144ffd493d2f9a7bfb5cfa5fb1f955b45e38e31789286a1790398d">arm_compute::test::framework::DatasetMode::ALL</a></div></div>
<div class="ttc" id="classarm__compute_1_1test_1_1validation_1_1_g_e_m_m_validation_fixture_xhtml"><div class="ttname"><a href="classarm__compute_1_1test_1_1validation_1_1_g_e_m_m_validation_fixture.xhtml">arm_compute::test::validation::GEMMValidationFixture</a></div><div class="ttdef"><b>Definition:</b> <a href="validation_2fixtures_2_g_e_m_m_fixture_8h_source.xhtml#l00140">GEMMFixture.h:140</a></div></div>
<div class="ttc" id="_validation_8h_xhtml"><div class="ttname"><a href="_validation_8h.xhtml">Validation.h</a></div></div>
+<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_ad2b4e88e166416d979a049064877b2ca"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#ad2b4e88e166416d979a049064877b2ca">arm_compute::test::validation::combine</a></div><div class="ttdeci">combine(combine(combine(concat(datasets::SmallShapes(), datasets::LargeShapes()), framework::dataset::make("DataType",{DataType::U8, DataType::S16})), datasets::BorderModes()), framework::dataset::make("filter_size",{5}))</div></div>
<div class="ttc" id="namespacearm__compute_1_1test_1_1framework_xhtml_aca1fd1d8935433e6ba2e3918214e07f9a6f3a603fac4d817f1848c3173b243b57"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1framework.xhtml#aca1fd1d8935433e6ba2e3918214e07f9a6f3a603fac4d817f1848c3173b243b57">arm_compute::test::framework::LogLevel::ERRORS</a></div></div>
-<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a497347573faa3778743ddf277f861094"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a497347573faa3778743ddf277f861094">arm_compute::test::validation::c</a></div><div class="ttdeci">CLTensor c</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00120">GEMM.cpp:120</a></div></div>
-<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_ac2c387216b8389a6069b2e5205bc03a9"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#ac2c387216b8389a6069b2e5205bc03a9">arm_compute::test::validation::shape_a</a></div><div class="ttdeci">shape_a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00112">GEMM.cpp:112</a></div></div>
+<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a497347573faa3778743ddf277f861094"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a497347573faa3778743ddf277f861094">arm_compute::test::validation::c</a></div><div class="ttdeci">CLTensor c</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00121">GEMM.cpp:121</a></div></div>
+<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_ac2c387216b8389a6069b2e5205bc03a9"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#ac2c387216b8389a6069b2e5205bc03a9">arm_compute::test::validation::shape_a</a></div><div class="ttdeci">shape_a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00113">GEMM.cpp:113</a></div></div>
<div class="ttc" id="namespacearm__compute_1_1test_1_1framework_1_1dataset_xhtml_a20b2c46a6ccea85acf64c599a68251d7"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1framework_1_1dataset.xhtml#a20b2c46a6ccea85acf64c599a68251d7">arm_compute::test::framework::dataset::concat</a></div><div class="ttdeci">JoinDataset< T, U > concat(T &&dataset1, U &&dataset2)</div><div class="ttdoc">Helper function to create a JoinDataset. </div><div class="ttdef"><b>Definition:</b> <a href="_join_dataset_8h_source.xhtml#l00142">JoinDataset.h:142</a></div></div>
-<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a62197192f0fbf4e0675eb37be1c4c175"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a62197192f0fbf4e0675eb37be1c4c175">arm_compute::test::validation::alpha</a></div><div class="ttdeci">alpha</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00112">GEMM.cpp:112</a></div></div>
+<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a62197192f0fbf4e0675eb37be1c4c175"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a62197192f0fbf4e0675eb37be1c4c175">arm_compute::test::validation::alpha</a></div><div class="ttdeci">alpha</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00113">GEMM.cpp:113</a></div></div>
<div class="ttc" id="_c_l_g_e_m_m_transpose1x_w_kernel_8h_xhtml"><div class="ttname"><a href="_c_l_g_e_m_m_transpose1x_w_kernel_8h.xhtml">CLGEMMTranspose1xWKernel.h</a></div></div>
-<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a7b8004eef325a40dd43eb80755610fff"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">arm_compute::test::validation::b</a></div><div class="ttdeci">CLTensor b</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00119">GEMM.cpp:119</a></div></div>
+<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a7b8004eef325a40dd43eb80755610fff"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">arm_compute::test::validation::b</a></div><div class="ttdeci">CLTensor b</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00120">GEMM.cpp:120</a></div></div>
<div class="ttc" id="arm__compute_2core_2_types_8h_xhtml"><div class="ttname"><a href="arm__compute_2core_2_types_8h.xhtml">Types.h</a></div></div>
-<div class="ttc" id="namespacearm__compute_xhtml_ad8ed01ff3ff33333d8e19db4d2818bb6"><div class="ttname"><a href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6">arm_compute::DataType</a></div><div class="ttdeci">DataType</div><div class="ttdoc">Available data types. </div><div class="ttdef"><b>Definition:</b> <a href="arm__compute_2core_2_types_8h_source.xhtml#l00071">Types.h:71</a></div></div>
+<div class="ttc" id="namespacearm__compute_xhtml_ad8ed01ff3ff33333d8e19db4d2818bb6"><div class="ttname"><a href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6">arm_compute::DataType</a></div><div class="ttdeci">DataType</div><div class="ttdoc">Available data types. </div><div class="ttdef"><b>Definition:</b> <a href="arm__compute_2core_2_types_8h_source.xhtml#l00072">Types.h:72</a></div></div>
<div class="ttc" id="validation_2fixtures_2_g_e_m_m_interleave4x4_fixture_8h_xhtml"><div class="ttname"><a href="validation_2fixtures_2_g_e_m_m_interleave4x4_fixture_8h.xhtml">GEMMInterleave4x4Fixture.h</a></div></div>
<div class="ttc" id="_large_g_e_m_m_dataset_8h_xhtml"><div class="ttname"><a href="_large_g_e_m_m_dataset_8h.xhtml">LargeGEMMDataset.h</a></div></div>
<div class="ttc" id="_g_e_m_m_transpose1x_w_fixture_8h_xhtml"><div class="ttname"><a href="_g_e_m_m_transpose1x_w_fixture_8h.xhtml">GEMMTranspose1xWFixture.h</a></div></div>
<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_e7c7b16542faa38cb4655ff1750d3604.xhtml">validation</a></li><li class="navelem"><a class="el" href="dir_f7024513cd67abef53e86ee9382ac5ce.xhtml">CL</a></li><li class="navelem"><a class="el" href="validation_2_c_l_2_g_e_m_m_8cpp.xhtml">GEMM.cpp</a></li>
- <li class="footer">Generated on Wed Jan 24 2018 14:30:41 for Compute Library by
+ <li class="footer">Generated on Thu Feb 22 2018 15:45:20 for Compute Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.11 </li>
</ul>