253 lines
209 KiB
HTML
253 lines
209 KiB
HTML
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
|
<head>
|
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
|
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
|
<meta name="generator" content="Doxygen 1.8.14"/>
|
|
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
|
<title>Cutlass: gemm_traits.h Source File</title>
|
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
|
<script type="text/javascript" src="jquery.js"></script>
|
|
<script type="text/javascript" src="dynsections.js"></script>
|
|
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
|
<script type="text/javascript" src="search/searchdata.js"></script>
|
|
<script type="text/javascript" src="search/search.js"></script>
|
|
<script type="text/x-mathjax-config">
|
|
MathJax.Hub.Config({
|
|
extensions: ["tex2jax.js"],
|
|
jax: ["input/TeX","output/HTML-CSS"],
|
|
});
|
|
</script><script type="text/javascript" async src="http://cdn.mathjax.org/mathjax/latest/MathJax.js"></script>
|
|
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
|
</head>
|
|
<body>
|
|
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
|
<div id="titlearea">
|
|
<table cellspacing="0" cellpadding="0">
|
|
<tbody>
|
|
<tr style="height: 56px;">
|
|
<td id="projectalign" style="padding-left: 0.5em;">
|
|
<div id="projectname">Cutlass
|
|
</div>
|
|
<div id="projectbrief">CUDA Templates for Linear Algebra Subroutines and Solvers</div>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<!-- end header part -->
|
|
<!-- Generated by Doxygen 1.8.14 -->
|
|
<script type="text/javascript">
|
|
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
|
var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
|
/* @license-end */
|
|
</script>
|
|
<script type="text/javascript" src="menudata.js"></script>
|
|
<script type="text/javascript" src="menu.js"></script>
|
|
<script type="text/javascript">
|
|
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
|
$(function() {
|
|
initMenu('',true,false,'search.php','Search');
|
|
$(document).ready(function() { init_search(); });
|
|
});
|
|
/* @license-end */</script>
|
|
<div id="main-nav"></div>
|
|
<!-- window showing the filter options -->
|
|
<div id="MSearchSelectWindow"
|
|
onmouseover="return searchBox.OnSearchSelectShow()"
|
|
onmouseout="return searchBox.OnSearchSelectHide()"
|
|
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
|
</div>
|
|
|
|
<!-- iframe showing the search results (closed by default) -->
|
|
<div id="MSearchResultsWindow">
|
|
<iframe src="javascript:void(0)" frameborder="0"
|
|
name="MSearchResults" id="MSearchResults">
|
|
</iframe>
|
|
</div>
|
|
|
|
<div id="nav-path" class="navpath">
|
|
<ul>
|
|
<li class="navelem"><a class="el" href="dir_1417ee5ebebc309c36b7962f26a92c39.html">cutlass</a></li><li class="navelem"><a class="el" href="dir_18d6a367a3982a494d65599933fc67a3.html">gemm</a></li> </ul>
|
|
</div>
|
|
</div><!-- top -->
|
|
<div class="header">
|
|
<div class="headertitle">
|
|
<div class="title">gemm_traits.h</div> </div>
|
|
</div><!--header-->
|
|
<div class="contents">
|
|
<a href="gemm__traits_8h.html">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, NVIDIA CORPORATION. All rights reserved.</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"> * Redistribution and use in source and binary forms, with or without modification, are permitted</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * provided that the following conditions are met:</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * * Redistributions of source code must retain the above copyright notice, this list of</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> * conditions and the following disclaimer.</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> * * Redistributions in binary form must reproduce the above copyright notice, this list of</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment"> * conditions and the following disclaimer in the documentation and/or other materials</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment"> * provided with the distribution.</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment"> * * Neither the name of the NVIDIA CORPORATION nor the names of its contributors may be used</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="comment"> * to endorse or promote products derived from this software without specific prior written</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment"> * permission.</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment"> *</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment"> * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment"> * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="comment"> * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="comment"> * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="comment"> * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="comment"> * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="comment"> * STRICT LIABILITY, OR TOR (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="comment"> * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.</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="comment"> **************************************************************************************************/</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span> </div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#include <<a class="code" href="convert_8h.html">cutlass/convert.h</a>></span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#include <<a class="code" href="clear__accumulators_8h.html">cutlass/gemm/clear_accumulators.h</a>></span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="preprocessor">#include <<a class="code" href="gemm__global__stream_8h.html">cutlass/gemm/gemm_global_stream.h</a>></span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor">#include <<a class="code" href="gemm__operand_8h.html">cutlass/gemm/gemm_operand.h</a>></span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="preprocessor">#include <<a class="code" href="gemm__shared__stream_8h.html">cutlass/gemm/gemm_shared_stream.h</a>></span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor">#include <<a class="code" href="identity__block__swizzle_8h.html">cutlass/gemm/identity_block_swizzle.h</a>></span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="preprocessor">#include <<a class="code" href="matrix__traits_8h.html">cutlass/matrix_traits.h</a>></span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="preprocessor">#include <<a class="code" href="reshape__tile_8h.html">cutlass/reshape_tile.h</a>></span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="preprocessor">#include <<a class="code" href="tile__iterator_8h.html">cutlass/tile_iterator.h</a>></span></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span> </div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="keyword">namespace </span><a class="code" href="namespacecutlass.html">cutlass</a> {</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="keyword">namespace </span>gemm {</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span> </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">template</span> <</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  <span class="keyword">typename</span> ScalarA_,</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  <span class="keyword">typename</span> ScalarB_,</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  <span class="keyword">typename</span> ScalarC_,</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  <span class="keyword">typename</span> ScalarD_,</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  <span class="keyword">typename</span> OutputTile_,</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  <span class="keyword">typename</span> MultiplyAdd_,</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  <span class="keywordtype">int</span> kScalarsPerLdgA_,</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  <span class="keywordtype">int</span> kScalarsPerStsA_,</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  <span class="keywordtype">int</span> kScalarsPerLdsA_,</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  <span class="keywordtype">int</span> kScalarsPerLdgB_,</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  <span class="keywordtype">int</span> kScalarsPerStsB_,</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  <span class="keywordtype">int</span> kScalarsPerLdsB_,</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  <span class="keywordtype">int</span> kScalarsPerLdgCAndStgD_,</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  <span class="keywordtype">int</span> kScalarsPerStsD_,</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  <span class="keywordtype">int</span> kScalarsPerLdsD_,</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  <span class="keywordtype">int</span> kStages_></div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span> </div><div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="structcutlass_1_1gemm_1_1GemmConfig.html"> 79</a></span> <span class="keyword">struct </span><a class="code" href="structcutlass_1_1gemm_1_1GemmConfig.html">GemmConfig</a> {</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  <span class="comment">//</span></div><div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="structcutlass_1_1gemm_1_1GemmConfig.html#a9d1e4e364be8fd9de5e1199d93ad76aa"> 82</a></span> <span class="comment"></span> <span class="keyword">typedef</span> ScalarA_ <a class="code" href="structcutlass_1_1gemm_1_1GemmConfig.html#a9d1e4e364be8fd9de5e1199d93ad76aa">ScalarA</a>;</div><div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="structcutlass_1_1gemm_1_1GemmConfig.html#aa13d6f5e5ad907ef09c88ae49e6e8e9b"> 84</a></span>  <span class="keyword">typedef</span> ScalarB_ <a class="code" href="structcutlass_1_1gemm_1_1GemmConfig.html#aa13d6f5e5ad907ef09c88ae49e6e8e9b">ScalarB</a>;</div><div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="structcutlass_1_1gemm_1_1GemmConfig.html#ad8f262d7da093d07cdd5c6a4fd9aceea"> 86</a></span>  <span class="keyword">typedef</span> ScalarC_ <a class="code" href="structcutlass_1_1gemm_1_1GemmConfig.html#ad8f262d7da093d07cdd5c6a4fd9aceea">ScalarC</a>;</div><div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="structcutlass_1_1gemm_1_1GemmConfig.html#a188ef7f4c49ff2830753218343a1b8f8"> 88</a></span>  <span class="keyword">typedef</span> ScalarD_ <a class="code" href="structcutlass_1_1gemm_1_1GemmConfig.html#a188ef7f4c49ff2830753218343a1b8f8">ScalarD</a>;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span> </div><div class="line"><a name="l00091"></a><span class="lineno"><a class="line" href="structcutlass_1_1gemm_1_1GemmConfig.html#a53450f4d7444d6a4c0d2353496c0a4fd"> 91</a></span>  <span class="keyword">typedef</span> OutputTile_ <a class="code" href="structcutlass_1_1gemm_1_1GemmConfig.html#a53450f4d7444d6a4c0d2353496c0a4fd">OutputTile</a>;</div><div class="line"><a name="l00093"></a><span class="lineno"><a class="line" href="structcutlass_1_1gemm_1_1GemmConfig.html#a8669096ddbb8c810fb8d2313d62e6ee7"> 93</a></span>  <span class="keyword">typedef</span> MultiplyAdd_ <a class="code" href="structcutlass_1_1gemm_1_1GemmConfig.html#a8669096ddbb8c810fb8d2313d62e6ee7">MultiplyAdd</a>;</div><div class="line"><a name="l00095"></a><span class="lineno"><a class="line" href="structcutlass_1_1gemm_1_1GemmConfig.html#a3a57d05f50932d718538f0d1ededa95b"> 95</a></span>  <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="structcutlass_1_1Shape.html">MultiplyAdd::InstructionShape</a> <a class="code" href="structcutlass_1_1gemm_1_1GemmConfig.html#a3a57d05f50932d718538f0d1ededa95b">InstructionShape</a>;</div><div class="line"><a name="l00097"></a><span class="lineno"><a class="line" href="structcutlass_1_1gemm_1_1GemmConfig.html#a51d583dfcd645ad0ecfc23b87b3c5108"> 97</a></span>  <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="structcutlass_1_1gemm_1_1ThreadMultiplyAdd.html#aa83190df3c1639b6dd632cd4b9278d77">MultiplyAdd::AccumulatorsPerWarp</a> <a class="code" href="structcutlass_1_1gemm_1_1GemmConfig.html#a51d583dfcd645ad0ecfc23b87b3c5108">AccumulatorsPerWarp</a>;</div><div class="line"><a name="l00099"></a><span class="lineno"><a class="line" href="structcutlass_1_1gemm_1_1GemmConfig.html#a2fadb0ad2e28109ccfa9195e817a4d54"> 99</a></span>  <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="structcutlass_1_1Fragment.html">MultiplyAdd::Accumulators</a> <a class="code" href="structcutlass_1_1gemm_1_1GemmConfig.html#a2fadb0ad2e28109ccfa9195e817a4d54">Accumulators</a>;</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span> </div><div class="line"><a name="l00102"></a><span class="lineno"><a class="line" href="structcutlass_1_1gemm_1_1GemmConfig.html#abb6ba58a2f2d80db0b2c9c1d88454efd"> 102</a></span>  <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="structcutlass_1_1ShapeDiv.html#a108ded386ef6708afc6fe769a77a234b">ShapeDiv<OutputTile, AccumulatorsPerWarp>::Shape</a> <a class="code" href="structcutlass_1_1gemm_1_1GemmConfig.html#abb6ba58a2f2d80db0b2c9c1d88454efd">Warps</a>;</div><div class="line"><a name="l00104"></a><span class="lineno"><a class="line" href="structcutlass_1_1gemm_1_1GemmConfig.html#a677d6a1711cc756b817095b7437cce0e"> 104</a></span>  <span class="keyword">static</span> <span class="keywordtype">int</span> <span class="keyword">const</span> <a class="code" href="structcutlass_1_1gemm_1_1GemmConfig.html#a677d6a1711cc756b817095b7437cce0e">kWarpSize</a> = cutlass::kWarpSize;</div><div class="line"><a name="l00106"></a><span class="lineno"><a class="line" href="structcutlass_1_1gemm_1_1GemmConfig.html#a0b2be601de08848afc4418adb97255bf"> 106</a></span>  <span class="keyword">static</span> <span class="keywordtype">int</span> <span class="keyword">const</span> <a class="code" href="structcutlass_1_1gemm_1_1GemmConfig.html#a0b2be601de08848afc4418adb97255bf">kThreads</a> = <a class="code" href="structcutlass_1_1ShapeCount.html">ShapeCount<Warps>::kCount</a> * <a class="code" href="structcutlass_1_1gemm_1_1GemmConfig.html#a677d6a1711cc756b817095b7437cce0e">kWarpSize</a>;</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span> </div><div class="line"><a name="l00109"></a><span class="lineno"><a class="line" href="structcutlass_1_1gemm_1_1GemmConfig.html#a2e0a043c5d4d7959ec1a2214c3ac39ac"> 109</a></span>  <span class="keyword">static</span> <span class="keywordtype">int</span> <span class="keyword">const</span> <a class="code" href="structcutlass_1_1gemm_1_1GemmConfig.html#a2e0a043c5d4d7959ec1a2214c3ac39ac">kScalarsPerLdgA</a> = kScalarsPerLdgA_;</div><div class="line"><a name="l00110"></a><span class="lineno"><a class="line" href="structcutlass_1_1gemm_1_1GemmConfig.html#accc95abc55880abdab92253367b4b186"> 110</a></span>  <span class="keyword">static</span> <span class="keywordtype">int</span> <span class="keyword">const</span> <a class="code" href="structcutlass_1_1gemm_1_1GemmConfig.html#accc95abc55880abdab92253367b4b186">kScalarsPerStsA</a> = kScalarsPerStsA_;</div><div class="line"><a name="l00111"></a><span class="lineno"><a class="line" href="structcutlass_1_1gemm_1_1GemmConfig.html#aa1b75484138923a52b32888fef608d9b"> 111</a></span>  <span class="keyword">static</span> <span class="keywordtype">int</span> <span class="keyword">const</span> <a class="code" href="structcutlass_1_1gemm_1_1GemmConfig.html#aa1b75484138923a52b32888fef608d9b">kScalarsPerLdsA</a> = kScalarsPerLdsA_;</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span> </div><div class="line"><a name="l00114"></a><span class="lineno"><a class="line" href="structcutlass_1_1gemm_1_1GemmConfig.html#a849b21fed39aaac1cdd546334739be97"> 114</a></span>  <span class="keyword">static</span> <span class="keywordtype">int</span> <span class="keyword">const</span> <a class="code" href="structcutlass_1_1gemm_1_1GemmConfig.html#a849b21fed39aaac1cdd546334739be97">kScalarsPerLdgB</a> = kScalarsPerLdgB_;</div><div class="line"><a name="l00115"></a><span class="lineno"><a class="line" href="structcutlass_1_1gemm_1_1GemmConfig.html#ac0c8c027e3ede14b62d7c7d519551f21"> 115</a></span>  <span class="keyword">static</span> <span class="keywordtype">int</span> <span class="keyword">const</span> <a class="code" href="structcutlass_1_1gemm_1_1GemmConfig.html#ac0c8c027e3ede14b62d7c7d519551f21">kScalarsPerStsB</a> = kScalarsPerStsB_;</div><div class="line"><a name="l00116"></a><span class="lineno"><a class="line" href="structcutlass_1_1gemm_1_1GemmConfig.html#a86470d3a44e2b50ee31ec3c9f79927ef"> 116</a></span>  <span class="keyword">static</span> <span class="keywordtype">int</span> <span class="keyword">const</span> <a class="code" href="structcutlass_1_1gemm_1_1GemmConfig.html#a86470d3a44e2b50ee31ec3c9f79927ef">kScalarsPerLdsB</a> = kScalarsPerLdsB_;</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span> </div><div class="line"><a name="l00119"></a><span class="lineno"><a class="line" href="structcutlass_1_1gemm_1_1GemmConfig.html#aad47c635a73e83bd4b19494864832d31"> 119</a></span>  <span class="keyword">static</span> <span class="keywordtype">int</span> <span class="keyword">const</span> <a class="code" href="structcutlass_1_1gemm_1_1GemmConfig.html#aad47c635a73e83bd4b19494864832d31">kScalarsPerLdgC</a> = kScalarsPerLdgCAndStgD_;</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span> </div><div class="line"><a name="l00122"></a><span class="lineno"><a class="line" href="structcutlass_1_1gemm_1_1GemmConfig.html#a3633083f4f778215543e376c092745d7"> 122</a></span>  <span class="keyword">static</span> <span class="keywordtype">int</span> <span class="keyword">const</span> <a class="code" href="structcutlass_1_1gemm_1_1GemmConfig.html#a3633083f4f778215543e376c092745d7">kScalarsPerStgD</a> = kScalarsPerLdgCAndStgD_;</div><div class="line"><a name="l00123"></a><span class="lineno"><a class="line" href="structcutlass_1_1gemm_1_1GemmConfig.html#a3087cdd38e2c65ad0dffdd0587d2cce0"> 123</a></span>  <span class="keyword">static</span> <span class="keywordtype">int</span> <span class="keyword">const</span> <a class="code" href="structcutlass_1_1gemm_1_1GemmConfig.html#a3087cdd38e2c65ad0dffdd0587d2cce0">kScalarsPerStsD</a> = kScalarsPerStsD_;</div><div class="line"><a name="l00124"></a><span class="lineno"><a class="line" href="structcutlass_1_1gemm_1_1GemmConfig.html#adaf2ee5b8e6f7bdb9939cd45a186ca56"> 124</a></span>  <span class="keyword">static</span> <span class="keywordtype">int</span> <span class="keyword">const</span> <a class="code" href="structcutlass_1_1gemm_1_1GemmConfig.html#adaf2ee5b8e6f7bdb9939cd45a186ca56">kScalarsPerLdsD</a> = kScalarsPerLdsD_;</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span> </div><div class="line"><a name="l00127"></a><span class="lineno"><a class="line" href="structcutlass_1_1gemm_1_1GemmConfig.html#abbdd356f280099269867e614684645cf"> 127</a></span>  <span class="keyword">static</span> <span class="keywordtype">int</span> <span class="keyword">const</span> <a class="code" href="structcutlass_1_1gemm_1_1GemmConfig.html#abbdd356f280099269867e614684645cf">kAccumulatorsPerLdsA</a> = <a class="code" href="structcutlass_1_1gemm_1_1GemmConfig.html#aa1b75484138923a52b32888fef608d9b">kScalarsPerLdsA</a> / InstructionShape::kD;</div><div class="line"><a name="l00128"></a><span class="lineno"><a class="line" href="structcutlass_1_1gemm_1_1GemmConfig.html#a9dd092bca2f1f2c039f367b23bafa9c1"> 128</a></span>  <span class="keyword">static</span> <span class="keywordtype">int</span> <span class="keyword">const</span> <a class="code" href="structcutlass_1_1gemm_1_1GemmConfig.html#a9dd092bca2f1f2c039f367b23bafa9c1">kAccumulatorsPerLdsB</a> = <a class="code" href="structcutlass_1_1gemm_1_1GemmConfig.html#a86470d3a44e2b50ee31ec3c9f79927ef">kScalarsPerLdsB</a> / InstructionShape::kD;</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span> </div><div class="line"><a name="l00131"></a><span class="lineno"><a class="line" href="structcutlass_1_1gemm_1_1GemmConfig.html#a221949c289057e39d439ce03a5b01c52"> 131</a></span>  <span class="keyword">static</span> <span class="keywordtype">int</span> <span class="keyword">const</span> <a class="code" href="structcutlass_1_1gemm_1_1GemmConfig.html#a221949c289057e39d439ce03a5b01c52">kStages</a> = kStages_;</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="l00135"></a><span class="lineno"> 135</span> </div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span> <span class="keyword">template</span> <enum MatrixLayout::Kind, <span class="keyword">typename</span> GemmConfig_></div><div class="line"><a name="l00137"></a><span class="lineno"><a class="line" href="structcutlass_1_1gemm_1_1GemmTileTraitsHelperA.html"> 137</a></span> <span class="keyword">struct </span><a class="code" href="structcutlass_1_1gemm_1_1GemmTileTraitsHelperA.html">GemmTileTraitsHelperA</a> {};</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span> </div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span> </div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span> <span class="keyword">template</span> <<span class="keyword">typename</span> GemmConfig_></div><div class="line"><a name="l00142"></a><span class="lineno"><a class="line" href="structcutlass_1_1gemm_1_1GemmTileTraitsHelperA_3_01MatrixLayout_1_1kColumnMajor_00_01GemmConfig___01_4.html"> 142</a></span> <span class="keyword">struct </span><a class="code" href="structcutlass_1_1gemm_1_1GemmTileTraitsHelperA.html">GemmTileTraitsHelperA</a><<a class="code" href="structcutlass_1_1MatrixLayout.html">MatrixLayout</a>::kColumnMajor, GemmConfig_> {</div><div class="line"><a name="l00144"></a><span class="lineno"><a class="line" href="structcutlass_1_1gemm_1_1GemmTileTraitsHelperA_3_01MatrixLayout_1_1kColumnMajor_00_01GemmConfig___01_4.html#ad2010686bceb21aec9a1924ae379edc1"> 144</a></span>  <span class="keyword">static</span> <a class="code" href="structcutlass_1_1MatrixLayout.html#a97ef07af21b122c1804245b0c7784d2b">MatrixLayout::Kind</a> <span class="keyword">const</span> kLayout = <a class="code" href="structcutlass_1_1MatrixLayout.html#a97ef07af21b122c1804245b0c7784d2bac15988acba79c11072d38b295f163a2b">MatrixLayout::kColumnMajor</a>;</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span> </div><div class="line"><a name="l00147"></a><span class="lineno"><a class="line" href="structcutlass_1_1gemm_1_1GemmTileTraitsHelperA_3_01MatrixLayout_1_1kColumnMajor_00_01GemmConfig___01_4.html#af511f0ff83166b2a77d4cad4150c8e8f"> 147</a></span>  <span class="keyword">typedef</span> <span class="keyword">typename</span> GemmConfig_::ScalarA <a class="code" href="structcutlass_1_1gemm_1_1GemmTileTraitsHelperA_3_01MatrixLayout_1_1kColumnMajor_00_01GemmConfig___01_4.html#af511f0ff83166b2a77d4cad4150c8e8f">Scalar</a>;</div><div class="line"><a name="l00149"></a><span class="lineno"><a class="line" href="structcutlass_1_1gemm_1_1GemmTileTraitsHelperA_3_01MatrixLayout_1_1kColumnMajor_00_01GemmConfig___01_4.html#a19fb8c9b9a77aebec507635de7da6f21"> 149</a></span>  <span class="keyword">typedef</span> <span class="keyword">typename</span> GemmConfig_::MultiplyAdd::ScalarA <a class="code" href="structcutlass_1_1gemm_1_1GemmTileTraitsHelperA_3_01MatrixLayout_1_1kColumnMajor_00_01GemmConfig___01_4.html#a19fb8c9b9a77aebec507635de7da6f21">MultiplyAddScalar</a>;</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span> </div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  <span class="keyword">typedef</span> <a class="code" href="structcutlass_1_1gemm_1_1GemmGlobalTileTraits.html">GemmGlobalTileTraits</a><</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  <span class="comment">// That's A.</span></div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  <a class="code" href="structcutlass_1_1GemmOperand.html#ab209ea3de198efabe8e8707dfe8e0a0cac2b9fe9e3679a059d1a6c946b2a2c31a">GemmOperand::kA</a>,</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  <span class="comment">// A is column-major.</span></div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  <a class="code" href="structcutlass_1_1MatrixLayout.html#a97ef07af21b122c1804245b0c7784d2bac15988acba79c11072d38b295f163a2b">MatrixLayout::kColumnMajor</a>,</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  <span class="comment">// The pointer is float const.</span></div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  <a class="code" href="structcutlass_1_1gemm_1_1GemmTileTraitsHelperA_3_01MatrixLayout_1_1kColumnMajor_00_01GemmConfig___01_4.html#af511f0ff83166b2a77d4cad4150c8e8f">Scalar</a> <span class="keyword">const</span>,</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  <span class="comment">// The tile has size KxM in GEMM's terminology.</span></div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  <a class="code" href="structcutlass_1_1Shape.html">Shape<1, GemmConfig_::OutputTile::kD, GemmConfig_::OutputTile::kW></a>,</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  <span class="comment">// The threads are distributed as warps x 32 (the traits may reorganize).</span></div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  <a class="code" href="structcutlass_1_1Shape.html">Shape<1, ShapeCount<typename GemmConfig_::Warps>::kCount</a>, GemmConfig_::kWarpSize>,</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  <span class="comment">// The number of scalars per LDG (LDG.32 or LDG.128, etc).</span></div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>  GemmConfig_::kScalarsPerLdgA></div><div class="line"><a name="l00165"></a><span class="lineno"><a class="line" href="structcutlass_1_1gemm_1_1GemmTileTraitsHelperA_3_01MatrixLayout_1_1kColumnMajor_00_01GemmConfig___01_4.html#adc95f4a8617cdf28e5b5d7d2d1aefec2"> 165</a></span>  <a class="code" href="structcutlass_1_1gemm_1_1GemmTileTraitsHelperA_3_01MatrixLayout_1_1kColumnMajor_00_01GemmConfig___01_4.html#adc95f4a8617cdf28e5b5d7d2d1aefec2">GlobalTileTraits</a>;</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span> </div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>  <span class="keyword">typedef</span> <a class="code" href="structcutlass_1_1gemm_1_1GemmSharedStoreTileAbTraits.html">GemmSharedStoreTileAbTraits</a><</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  <span class="comment">// The pointer is float.</span></div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  <a class="code" href="structcutlass_1_1gemm_1_1GemmTileTraitsHelperA_3_01MatrixLayout_1_1kColumnMajor_00_01GemmConfig___01_4.html#a19fb8c9b9a77aebec507635de7da6f21">MultiplyAddScalar</a>,</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  <span class="comment">// The tile has size KxM in GEMM's terminology.</span></div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  <a class="code" href="structcutlass_1_1Shape.html">Shape</a><GemmConfig_::kStages,</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  GemmConfig_::OutputTile::kD / GemmConfig_::InstructionShape::kD,</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>  GemmConfig_::OutputTile::kW * GemmConfig_::InstructionShape::kD>,</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>  <span class="comment">// The threads are distributed as warps x 32 (the traits may reorganize).</span></div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>  <span class="keyword">typename</span> <a class="code" href="structcutlass_1_1gemm_1_1GemmGlobalTileTraits.html#a29bd05960cc541bb67098f5483c84cf6">GlobalTileTraits::Threads</a>,</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>  <span class="comment">// The number of scalars per STS (STS.32 or STS.128, etc).</span></div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>  GemmConfig_::kScalarsPerStsA></div><div class="line"><a name="l00179"></a><span class="lineno"><a class="line" href="structcutlass_1_1gemm_1_1GemmTileTraitsHelperA_3_01MatrixLayout_1_1kColumnMajor_00_01GemmConfig___01_4.html#aaa198fed841af6bf26bf2e9544d0a877"> 179</a></span>  <a class="code" href="structcutlass_1_1gemm_1_1GemmTileTraitsHelperA_3_01MatrixLayout_1_1kColumnMajor_00_01GemmConfig___01_4.html#aaa198fed841af6bf26bf2e9544d0a877">SharedStoreTileTraits</a>;</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span> </div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>  <span class="keyword">typedef</span> <a class="code" href="structcutlass_1_1gemm_1_1GemmSharedLoadTileATraits.html">GemmSharedLoadTileATraits</a><</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>  <span class="comment">// The pointer is float const.</span></div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  <a class="code" href="structcutlass_1_1gemm_1_1GemmTileTraitsHelperA_3_01MatrixLayout_1_1kColumnMajor_00_01GemmConfig___01_4.html#a19fb8c9b9a77aebec507635de7da6f21">MultiplyAddScalar</a> <span class="keyword">const</span>,</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  <span class="comment">// The output tile size.</span></div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>  <span class="keyword">typename</span> GemmConfig_::OutputTile,</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>  <span class="comment">// The number of warps.</span></div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>  <span class="keyword">typename</span> GemmConfig_::Warps,</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>  <span class="comment">// The number of threads per warp.</span></div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>  <span class="keyword">typename</span> GemmConfig_::MultiplyAdd::ThreadsPerWarp,</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>  <span class="comment">// The shape of the FMA instruction.</span></div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>  <span class="keyword">typename</span> GemmConfig_::InstructionShape,</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>  <span class="comment">// The number of stages.</span></div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>  GemmConfig_::kStages,</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>  <span class="comment">// The number of scalars per LDS.</span></div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>  GemmConfig_::kScalarsPerLdsA,</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>  <span class="comment">// The skew.</span></div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>  0></div><div class="line"><a name="l00199"></a><span class="lineno"><a class="line" href="structcutlass_1_1gemm_1_1GemmTileTraitsHelperA_3_01MatrixLayout_1_1kColumnMajor_00_01GemmConfig___01_4.html#af534fc5698513af3c6724b68ae03316d"> 199</a></span>  <a class="code" href="structcutlass_1_1gemm_1_1GemmTileTraitsHelperA_3_01MatrixLayout_1_1kColumnMajor_00_01GemmConfig___01_4.html#af534fc5698513af3c6724b68ae03316d">SharedLoadTileTraits</a>;</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span> };</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span> </div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span> </div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span> <span class="keyword">template</span> <<span class="keyword">typename</span> GemmConfig_></div><div class="line"><a name="l00205"></a><span class="lineno"><a class="line" href="structcutlass_1_1gemm_1_1GemmTileTraitsHelperA_3_01MatrixLayout_1_1kRowMajor_00_01GemmConfig___01_4.html"> 205</a></span> <span class="keyword">struct </span><a class="code" href="structcutlass_1_1gemm_1_1GemmTileTraitsHelperA.html">GemmTileTraitsHelperA</a><<a class="code" href="structcutlass_1_1MatrixLayout.html">MatrixLayout</a>::kRowMajor, GemmConfig_> {</div><div class="line"><a name="l00207"></a><span class="lineno"><a class="line" href="structcutlass_1_1gemm_1_1GemmTileTraitsHelperA_3_01MatrixLayout_1_1kRowMajor_00_01GemmConfig___01_4.html#aedd49525e2c849baecf88cdfd9e3515c"> 207</a></span>  <span class="keyword">static</span> <a class="code" href="structcutlass_1_1MatrixLayout.html#a97ef07af21b122c1804245b0c7784d2b">MatrixLayout::Kind</a> <span class="keyword">const</span> kLayout = <a class="code" href="structcutlass_1_1MatrixLayout.html#a97ef07af21b122c1804245b0c7784d2ba6a287c17f9f5bf53528ae68296beeedb">MatrixLayout::kRowMajor</a>;</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span> </div><div class="line"><a name="l00210"></a><span class="lineno"><a class="line" href="structcutlass_1_1gemm_1_1GemmTileTraitsHelperA_3_01MatrixLayout_1_1kRowMajor_00_01GemmConfig___01_4.html#ac618881d66790e4c280dc5692e5ddf95"> 210</a></span>  <span class="keyword">typedef</span> <span class="keyword">typename</span> GemmConfig_::ScalarA <a class="code" href="structcutlass_1_1gemm_1_1GemmTileTraitsHelperA_3_01MatrixLayout_1_1kRowMajor_00_01GemmConfig___01_4.html#ac618881d66790e4c280dc5692e5ddf95">Scalar</a>;</div><div class="line"><a name="l00212"></a><span class="lineno"><a class="line" href="structcutlass_1_1gemm_1_1GemmTileTraitsHelperA_3_01MatrixLayout_1_1kRowMajor_00_01GemmConfig___01_4.html#afac6f7a62b24396ea6861e6fd10779cc"> 212</a></span>  <span class="keyword">typedef</span> <span class="keyword">typename</span> GemmConfig_::MultiplyAdd::ScalarA <a class="code" href="structcutlass_1_1gemm_1_1GemmTileTraitsHelperA_3_01MatrixLayout_1_1kRowMajor_00_01GemmConfig___01_4.html#afac6f7a62b24396ea6861e6fd10779cc">MultiplyAddScalar</a>;</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span> </div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>  <span class="keyword">typedef</span> <a class="code" href="structcutlass_1_1gemm_1_1GemmGlobalTileTraits.html">GemmGlobalTileTraits</a><</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>  <span class="comment">// That's A.</span></div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>  <a class="code" href="structcutlass_1_1GemmOperand.html#ab209ea3de198efabe8e8707dfe8e0a0cac2b9fe9e3679a059d1a6c946b2a2c31a">GemmOperand::kA</a>,</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>  <span class="comment">// A is row-major.</span></div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>  <a class="code" href="structcutlass_1_1MatrixLayout.html#a97ef07af21b122c1804245b0c7784d2ba6a287c17f9f5bf53528ae68296beeedb">MatrixLayout::kRowMajor</a>,</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>  <span class="comment">// The pointer is float const.</span></div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>  <a class="code" href="structcutlass_1_1gemm_1_1GemmTileTraitsHelperA_3_01MatrixLayout_1_1kRowMajor_00_01GemmConfig___01_4.html#ac618881d66790e4c280dc5692e5ddf95">Scalar</a> <span class="keyword">const</span>,</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>  <span class="comment">// The tile has size MxK in GEMM's terminology.</span></div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>  <a class="code" href="structcutlass_1_1Shape.html">Shape<1, GemmConfig_::OutputTile::kW, GemmConfig_::OutputTile::kD></a>,</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>  <span class="comment">// The threads are distributed as (threads / K) x K (the traits may reorganize).</span></div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>  <a class="code" href="structcutlass_1_1Shape.html">Shape</a><1, GemmConfig_::kThreads / GemmConfig_::OutputTile::kD, GemmConfig_::OutputTile::kD>,</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>  <span class="comment">// The number of scalars per LDG (LDG.32 or LDG.128, etc).</span></div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>  GemmConfig_::kScalarsPerLdgA></div><div class="line"><a name="l00228"></a><span class="lineno"><a class="line" href="structcutlass_1_1gemm_1_1GemmTileTraitsHelperA_3_01MatrixLayout_1_1kRowMajor_00_01GemmConfig___01_4.html#a8160a260acce2362e90d43bce733c69d"> 228</a></span>  <a class="code" href="structcutlass_1_1gemm_1_1GemmTileTraitsHelperA_3_01MatrixLayout_1_1kRowMajor_00_01GemmConfig___01_4.html#a8160a260acce2362e90d43bce733c69d">GlobalTileTraits</a>;</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span> </div><div class="line"><a name="l00231"></a><span class="lineno"><a class="line" href="structcutlass_1_1gemm_1_1GemmTileTraitsHelperA_3_01MatrixLayout_1_1kRowMajor_00_01GemmConfig___01_4.html#ad77b9084720ad7378e033e54bfb74ce7"> 231</a></span>  <span class="keyword">static</span> <span class="keywordtype">int</span> <span class="keyword">const</span> kScalarsIn4B = <span class="keyword">sizeof</span>(<a class="code" href="structcutlass_1_1gemm_1_1GemmTileTraitsHelperA_3_01MatrixLayout_1_1kRowMajor_00_01GemmConfig___01_4.html#afac6f7a62b24396ea6861e6fd10779cc">MultiplyAddScalar</a>) > 4 ? 1 : 4 / <span class="keyword">sizeof</span>(<a class="code" href="structcutlass_1_1gemm_1_1GemmTileTraitsHelperA_3_01MatrixLayout_1_1kRowMajor_00_01GemmConfig___01_4.html#afac6f7a62b24396ea6861e6fd10779cc">MultiplyAddScalar</a>);</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>  <span class="keyword">typedef</span> <a class="code" href="structcutlass_1_1gemm_1_1GemmSharedStoreWithSkewTileAbTraits.html">GemmSharedStoreWithSkewTileAbTraits</a><</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>  <span class="comment">// The pointer is float.</span></div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>  <a class="code" href="structcutlass_1_1gemm_1_1GemmTileTraitsHelperA_3_01MatrixLayout_1_1kRowMajor_00_01GemmConfig___01_4.html#afac6f7a62b24396ea6861e6fd10779cc">MultiplyAddScalar</a>,</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>  <span class="comment">// The tile has size KxM in GEMM's terminology.</span></div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>  <a class="code" href="structcutlass_1_1Shape.html">Shape</a><GemmConfig_::kStages,</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>  GemmConfig_::OutputTile::kD / GemmConfig_::InstructionShape::kD,</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>  GemmConfig_::OutputTile::kW * GemmConfig_::InstructionShape::kD>,</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>  <span class="comment">// The threads are distributed as (threads / K) x K (the traits may reorganize).</span></div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>  <span class="keyword">typename</span> <a class="code" href="structcutlass_1_1gemm_1_1GemmGlobalTileTraits.html#a29bd05960cc541bb67098f5483c84cf6">GlobalTileTraits::Threads</a>,</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>  <span class="comment">// The number of scalars per STS.</span></div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>  GemmConfig_::kScalarsPerStsA,</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>  <span class="comment">// The skew to avoid bank conflicts added in the tile W dimension.</span></div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>  128 / <span class="keyword">sizeof</span>(<a class="code" href="structcutlass_1_1gemm_1_1GemmTileTraitsHelperA_3_01MatrixLayout_1_1kRowMajor_00_01GemmConfig___01_4.html#afac6f7a62b24396ea6861e6fd10779cc">MultiplyAddScalar</a>) / GemmConfig_::kScalarsPerStsA /</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>  GlobalTileTraits::Threads::kW * kScalarsIn4B></div><div class="line"><a name="l00247"></a><span class="lineno"><a class="line" href="structcutlass_1_1gemm_1_1GemmTileTraitsHelperA_3_01MatrixLayout_1_1kRowMajor_00_01GemmConfig___01_4.html#ad6511b7c2d84a9f6c3ed3639269ac44f"> 247</a></span>  <a class="code" href="structcutlass_1_1gemm_1_1GemmSharedStoreWithSkewTileAbTraits.html">SharedStoreTileTraits</a>;</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span> </div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>  <span class="keyword">typedef</span> <a class="code" href="structcutlass_1_1gemm_1_1GemmSharedLoadTileATraits.html">GemmSharedLoadTileATraits</a><</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>  <span class="comment">// The pointer is float const.</span></div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>  <a class="code" href="structcutlass_1_1gemm_1_1GemmTileTraitsHelperA_3_01MatrixLayout_1_1kRowMajor_00_01GemmConfig___01_4.html#afac6f7a62b24396ea6861e6fd10779cc">MultiplyAddScalar</a> <span class="keyword">const</span>,</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>  <span class="comment">// The output tile size.</span></div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>  <span class="keyword">typename</span> GemmConfig_::OutputTile,</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>  <span class="comment">// The number of warps.</span></div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>  <span class="keyword">typename</span> GemmConfig_::Warps,</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>  <span class="comment">// The number of threads per warp.</span></div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>  <span class="keyword">typename</span> GemmConfig_::MultiplyAdd::ThreadsPerWarp,</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>  <span class="comment">// The shape of the FMA instruction.</span></div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>  <span class="keyword">typename</span> GemmConfig_::InstructionShape,</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>  <span class="comment">// The number of stages.</span></div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>  GemmConfig_::kStages,</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>  <span class="comment">// The number of scalars per LDS.</span></div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>  GemmConfig_::kScalarsPerLdsA,</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>  <span class="comment">// The skew.</span></div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>  SharedStoreTileTraits::kSkew></div><div class="line"><a name="l00267"></a><span class="lineno"><a class="line" href="structcutlass_1_1gemm_1_1GemmTileTraitsHelperA_3_01MatrixLayout_1_1kRowMajor_00_01GemmConfig___01_4.html#a1125408805bc697755f2b16594c6c8e1"> 267</a></span>  <a class="code" href="structcutlass_1_1gemm_1_1GemmTileTraitsHelperA_3_01MatrixLayout_1_1kRowMajor_00_01GemmConfig___01_4.html#a1125408805bc697755f2b16594c6c8e1">SharedLoadTileTraits</a>;</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span> };</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span> </div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span> </div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span> <span class="keyword">template</span> <enum MatrixLayout::Kind, <span class="keyword">typename</span> GemmConfig_></div><div class="line"><a name="l00273"></a><span class="lineno"><a class="line" href="structcutlass_1_1gemm_1_1GemmTileTraitsHelperB.html"> 273</a></span> <span class="keyword">struct </span><a class="code" href="structcutlass_1_1gemm_1_1GemmTileTraitsHelperB.html">GemmTileTraitsHelperB</a> {};</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span> </div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span> </div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span> <span class="keyword">template</span> <<span class="keyword">typename</span> GemmConfig_></div><div class="line"><a name="l00278"></a><span class="lineno"><a class="line" href="structcutlass_1_1gemm_1_1GemmTileTraitsHelperB_3_01MatrixLayout_1_1kColumnMajor_00_01GemmConfig___01_4.html"> 278</a></span> <span class="keyword">struct </span><a class="code" href="structcutlass_1_1gemm_1_1GemmTileTraitsHelperB.html">GemmTileTraitsHelperB</a><<a class="code" href="structcutlass_1_1MatrixLayout.html">MatrixLayout</a>::kColumnMajor, GemmConfig_> {</div><div class="line"><a name="l00280"></a><span class="lineno"><a class="line" href="structcutlass_1_1gemm_1_1GemmTileTraitsHelperB_3_01MatrixLayout_1_1kColumnMajor_00_01GemmConfig___01_4.html#afbd350793888a7e7b299548dca854c13"> 280</a></span>  <span class="keyword">static</span> <a class="code" href="structcutlass_1_1MatrixLayout.html#a97ef07af21b122c1804245b0c7784d2b">MatrixLayout::Kind</a> <span class="keyword">const</span> kLayout = <a class="code" href="structcutlass_1_1MatrixLayout.html#a97ef07af21b122c1804245b0c7784d2bac15988acba79c11072d38b295f163a2b">MatrixLayout::kColumnMajor</a>;</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span> </div><div class="line"><a name="l00283"></a><span class="lineno"><a class="line" href="structcutlass_1_1gemm_1_1GemmTileTraitsHelperB_3_01MatrixLayout_1_1kColumnMajor_00_01GemmConfig___01_4.html#a8ae7db3f2f0c57779729d500386c004c"> 283</a></span>  <span class="keyword">typedef</span> <span class="keyword">typename</span> GemmConfig_::ScalarB <a class="code" href="structcutlass_1_1gemm_1_1GemmTileTraitsHelperB_3_01MatrixLayout_1_1kColumnMajor_00_01GemmConfig___01_4.html#a8ae7db3f2f0c57779729d500386c004c">Scalar</a>;</div><div class="line"><a name="l00285"></a><span class="lineno"><a class="line" href="structcutlass_1_1gemm_1_1GemmTileTraitsHelperB_3_01MatrixLayout_1_1kColumnMajor_00_01GemmConfig___01_4.html#a42dd312d4cf5bb53b472389897f9deeb"> 285</a></span>  <span class="keyword">typedef</span> <span class="keyword">typename</span> GemmConfig_::MultiplyAdd::ScalarB <a class="code" href="structcutlass_1_1gemm_1_1GemmTileTraitsHelperB_3_01MatrixLayout_1_1kColumnMajor_00_01GemmConfig___01_4.html#a42dd312d4cf5bb53b472389897f9deeb">MultiplyAddScalar</a>;</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span> </div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>  <span class="keyword">typedef</span> <a class="code" href="structcutlass_1_1gemm_1_1GemmGlobalTileTraits.html">GemmGlobalTileTraits</a><</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>  <span class="comment">// That's B.</span></div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>  <a class="code" href="structcutlass_1_1GemmOperand.html#ab209ea3de198efabe8e8707dfe8e0a0caad0876342d150cef7da6ae149d5e99f9">GemmOperand::kB</a>,</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>  <span class="comment">// B is column-major.</span></div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>  <a class="code" href="structcutlass_1_1MatrixLayout.html#a97ef07af21b122c1804245b0c7784d2bac15988acba79c11072d38b295f163a2b">MatrixLayout::kColumnMajor</a>,</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>  <span class="comment">// The pointer is float const.</span></div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>  <a class="code" href="structcutlass_1_1gemm_1_1GemmTileTraitsHelperB_3_01MatrixLayout_1_1kColumnMajor_00_01GemmConfig___01_4.html#a8ae7db3f2f0c57779729d500386c004c">Scalar</a> <span class="keyword">const</span>,</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>  <span class="comment">// The tile has size MxK in GEMM's terminology.</span></div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>  <a class="code" href="structcutlass_1_1Shape.html">Shape<1, GemmConfig_::OutputTile::kH, GemmConfig_::OutputTile::kD></a>,</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>  <span class="comment">// The threads are distributed as (threads / K) x K (the traits may reorganize).</span></div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>  <a class="code" href="structcutlass_1_1Shape.html">Shape</a><1, GemmConfig_::kThreads / GemmConfig_::OutputTile::kD, GemmConfig_::OutputTile::kD>,</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>  <span class="comment">// The number of scalars per LDG (LDG.32 or LDG.128, etc).</span></div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>  GemmConfig_::kScalarsPerLdgB></div><div class="line"><a name="l00301"></a><span class="lineno"><a class="line" href="structcutlass_1_1gemm_1_1GemmTileTraitsHelperB_3_01MatrixLayout_1_1kColumnMajor_00_01GemmConfig___01_4.html#a5fee0ed52326c0685e8d8295e40ce064"> 301</a></span>  <a class="code" href="structcutlass_1_1gemm_1_1GemmTileTraitsHelperB_3_01MatrixLayout_1_1kColumnMajor_00_01GemmConfig___01_4.html#a5fee0ed52326c0685e8d8295e40ce064">GlobalTileTraits</a>;</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span> </div><div class="line"><a name="l00304"></a><span class="lineno"><a class="line" href="structcutlass_1_1gemm_1_1GemmTileTraitsHelperB_3_01MatrixLayout_1_1kColumnMajor_00_01GemmConfig___01_4.html#a774a052f0f98f50e46dda933c81badd5"> 304</a></span>  <span class="keyword">static</span> <span class="keywordtype">int</span> <span class="keyword">const</span> kScalarsIn4B = <span class="keyword">sizeof</span>(<a class="code" href="structcutlass_1_1gemm_1_1GemmTileTraitsHelperB_3_01MatrixLayout_1_1kColumnMajor_00_01GemmConfig___01_4.html#a42dd312d4cf5bb53b472389897f9deeb">MultiplyAddScalar</a>) > 4 ? 1 : 4 / <span class="keyword">sizeof</span>(<a class="code" href="structcutlass_1_1gemm_1_1GemmTileTraitsHelperB_3_01MatrixLayout_1_1kColumnMajor_00_01GemmConfig___01_4.html#a42dd312d4cf5bb53b472389897f9deeb">MultiplyAddScalar</a>);</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>  <span class="keyword">typedef</span> <a class="code" href="structcutlass_1_1gemm_1_1GemmSharedStoreWithSkewTileAbTraits.html">GemmSharedStoreWithSkewTileAbTraits</a><</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>  <span class="comment">// The pointer is float.</span></div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>  <a class="code" href="structcutlass_1_1gemm_1_1GemmTileTraitsHelperB_3_01MatrixLayout_1_1kColumnMajor_00_01GemmConfig___01_4.html#a42dd312d4cf5bb53b472389897f9deeb">MultiplyAddScalar</a>,</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>  <span class="comment">// The tile has size KxN in GEMM's terminology.</span></div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>  <a class="code" href="structcutlass_1_1Shape.html">Shape</a><GemmConfig_::kStages,</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>  GemmConfig_::OutputTile::kD / GemmConfig_::InstructionShape::kD,</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>  GemmConfig_::OutputTile::kH * GemmConfig_::InstructionShape::kD>,</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>  <span class="comment">// The threads are distributed as (threads / K) x K (the traits may reorganize).</span></div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>  <span class="keyword">typename</span> <a class="code" href="structcutlass_1_1gemm_1_1GemmGlobalTileTraits.html#a29bd05960cc541bb67098f5483c84cf6">GlobalTileTraits::Threads</a>,</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>  <span class="comment">// The number of scalars per STS.</span></div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>  GemmConfig_::kScalarsPerStsB,</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>  <span class="comment">// The skew to avoid bank conflicts added in the tile W dimension.</span></div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>  128 / <span class="keyword">sizeof</span>(<a class="code" href="structcutlass_1_1gemm_1_1GemmTileTraitsHelperB_3_01MatrixLayout_1_1kColumnMajor_00_01GemmConfig___01_4.html#a42dd312d4cf5bb53b472389897f9deeb">MultiplyAddScalar</a>) / GemmConfig_::kScalarsPerStsB /</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>  GlobalTileTraits::Threads::kW * kScalarsIn4B></div><div class="line"><a name="l00320"></a><span class="lineno"><a class="line" href="structcutlass_1_1gemm_1_1GemmTileTraitsHelperB_3_01MatrixLayout_1_1kColumnMajor_00_01GemmConfig___01_4.html#a1884cbc21987aec651fa8149d4ed1a06"> 320</a></span>  <a class="code" href="structcutlass_1_1gemm_1_1GemmSharedStoreWithSkewTileAbTraits.html">SharedStoreTileTraits</a>;</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span> </div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>  <span class="keyword">typedef</span> <a class="code" href="structcutlass_1_1gemm_1_1GemmSharedLoadTileBTraits.html">GemmSharedLoadTileBTraits</a><</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>  <span class="comment">// The pointer is float const.</span></div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>  <a class="code" href="structcutlass_1_1gemm_1_1GemmTileTraitsHelperB_3_01MatrixLayout_1_1kColumnMajor_00_01GemmConfig___01_4.html#a42dd312d4cf5bb53b472389897f9deeb">MultiplyAddScalar</a> <span class="keyword">const</span>,</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>  <span class="comment">// The output tile size.</span></div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>  <span class="keyword">typename</span> GemmConfig_::OutputTile,</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>  <span class="comment">// The number of warps.</span></div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>  <span class="keyword">typename</span> GemmConfig_::Warps,</div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>  <span class="comment">// The number of threads per warp.</span></div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span>  <span class="keyword">typename</span> GemmConfig_::MultiplyAdd::ThreadsPerWarp,</div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>  <span class="comment">// The shape of the FMA instruction.</span></div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>  <span class="keyword">typename</span> GemmConfig_::InstructionShape,</div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>  <span class="comment">// The number of stages.</span></div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>  GemmConfig_::kStages,</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>  <span class="comment">// The number of scalars per LDS.</span></div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>  GemmConfig_::kScalarsPerLdsB,</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>  <span class="comment">// The skew.</span></div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>  SharedStoreTileTraits::kSkew></div><div class="line"><a name="l00340"></a><span class="lineno"><a class="line" href="structcutlass_1_1gemm_1_1GemmTileTraitsHelperB_3_01MatrixLayout_1_1kColumnMajor_00_01GemmConfig___01_4.html#a118bb34a6f58c3e5a989773b4b597d8c"> 340</a></span>  <a class="code" href="structcutlass_1_1gemm_1_1GemmTileTraitsHelperB_3_01MatrixLayout_1_1kColumnMajor_00_01GemmConfig___01_4.html#a118bb34a6f58c3e5a989773b4b597d8c">SharedLoadTileTraits</a>;</div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span> };</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span> </div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span> </div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span> <span class="keyword">template</span> <<span class="keyword">typename</span> GemmConfig_></div><div class="line"><a name="l00346"></a><span class="lineno"><a class="line" href="structcutlass_1_1gemm_1_1GemmTileTraitsHelperB_3_01MatrixLayout_1_1kRowMajor_00_01GemmConfig___01_4.html"> 346</a></span> <span class="keyword">struct </span><a class="code" href="structcutlass_1_1gemm_1_1GemmTileTraitsHelperB.html">GemmTileTraitsHelperB</a><<a class="code" href="structcutlass_1_1MatrixLayout.html">MatrixLayout</a>::kRowMajor, GemmConfig_> {</div><div class="line"><a name="l00348"></a><span class="lineno"><a class="line" href="structcutlass_1_1gemm_1_1GemmTileTraitsHelperB_3_01MatrixLayout_1_1kRowMajor_00_01GemmConfig___01_4.html#a31fa28168811e2d04fbd74029df785ab"> 348</a></span>  <span class="keyword">static</span> <a class="code" href="structcutlass_1_1MatrixLayout.html#a97ef07af21b122c1804245b0c7784d2b">MatrixLayout::Kind</a> <span class="keyword">const</span> kLayout = <a class="code" href="structcutlass_1_1MatrixLayout.html#a97ef07af21b122c1804245b0c7784d2ba6a287c17f9f5bf53528ae68296beeedb">MatrixLayout::kRowMajor</a>;</div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span> </div><div class="line"><a name="l00351"></a><span class="lineno"><a class="line" href="structcutlass_1_1gemm_1_1GemmTileTraitsHelperB_3_01MatrixLayout_1_1kRowMajor_00_01GemmConfig___01_4.html#a7639ccd7f6419a9f232db173a228e756"> 351</a></span>  <span class="keyword">typedef</span> <span class="keyword">typename</span> GemmConfig_::ScalarB <a class="code" href="structcutlass_1_1gemm_1_1GemmTileTraitsHelperB_3_01MatrixLayout_1_1kRowMajor_00_01GemmConfig___01_4.html#a7639ccd7f6419a9f232db173a228e756">Scalar</a>;</div><div class="line"><a name="l00353"></a><span class="lineno"><a class="line" href="structcutlass_1_1gemm_1_1GemmTileTraitsHelperB_3_01MatrixLayout_1_1kRowMajor_00_01GemmConfig___01_4.html#aad14588b1515e37ede24915f589d32ab"> 353</a></span>  <span class="keyword">typedef</span> <span class="keyword">typename</span> GemmConfig_::MultiplyAdd::ScalarB <a class="code" href="structcutlass_1_1gemm_1_1GemmTileTraitsHelperB_3_01MatrixLayout_1_1kRowMajor_00_01GemmConfig___01_4.html#aad14588b1515e37ede24915f589d32ab">MultiplyAddScalar</a>;</div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span> </div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>  <span class="keyword">typedef</span> <a class="code" href="structcutlass_1_1gemm_1_1GemmGlobalTileTraits.html">GemmGlobalTileTraits</a><</div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>  <span class="comment">// That's B.</span></div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span>  <a class="code" href="structcutlass_1_1GemmOperand.html#ab209ea3de198efabe8e8707dfe8e0a0caad0876342d150cef7da6ae149d5e99f9">GemmOperand::kB</a>,</div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>  <span class="comment">// B is row-major.</span></div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span>  <a class="code" href="structcutlass_1_1MatrixLayout.html#a97ef07af21b122c1804245b0c7784d2ba6a287c17f9f5bf53528ae68296beeedb">MatrixLayout::kRowMajor</a>,</div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>  <span class="comment">// The pointer is float const.</span></div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>  <a class="code" href="structcutlass_1_1gemm_1_1GemmTileTraitsHelperB_3_01MatrixLayout_1_1kRowMajor_00_01GemmConfig___01_4.html#a7639ccd7f6419a9f232db173a228e756">Scalar</a> <span class="keyword">const</span>,</div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span>  <span class="comment">// The tile has size KxN in GEMM's terminology.</span></div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span>  <a class="code" href="structcutlass_1_1Shape.html">Shape<1, GemmConfig_::OutputTile::kD, GemmConfig_::OutputTile::kH></a>,</div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span>  <span class="comment">// The threads are distributed as warps x 32 (the traits may reorganize).</span></div><div class="line"><a name="l00366"></a><span class="lineno"> 366</span>  <a class="code" href="structcutlass_1_1Shape.html">Shape<1, ShapeCount<typename GemmConfig_::Warps>::kCount</a>, GemmConfig_::kWarpSize>,</div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span>  <span class="comment">// The number of scalars per LDG (LDG.32 or LDG.128, etc).</span></div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span>  GemmConfig_::kScalarsPerLdgB></div><div class="line"><a name="l00369"></a><span class="lineno"><a class="line" href="structcutlass_1_1gemm_1_1GemmTileTraitsHelperB_3_01MatrixLayout_1_1kRowMajor_00_01GemmConfig___01_4.html#afbc41e7b98097b153fd27a48f073a877"> 369</a></span>  <a class="code" href="structcutlass_1_1gemm_1_1GemmTileTraitsHelperB_3_01MatrixLayout_1_1kRowMajor_00_01GemmConfig___01_4.html#afbc41e7b98097b153fd27a48f073a877">GlobalTileTraits</a>;</div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span> </div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span>  <span class="keyword">typedef</span> <a class="code" href="structcutlass_1_1gemm_1_1GemmSharedStoreTileAbTraits.html">GemmSharedStoreTileAbTraits</a><</div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>  <span class="comment">// The pointer is float.</span></div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span>  <a class="code" href="structcutlass_1_1gemm_1_1GemmTileTraitsHelperB_3_01MatrixLayout_1_1kRowMajor_00_01GemmConfig___01_4.html#aad14588b1515e37ede24915f589d32ab">MultiplyAddScalar</a>,</div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span>  <span class="comment">// The tile has size KxN in GEMM's terminology.</span></div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span>  <a class="code" href="structcutlass_1_1Shape.html">Shape</a><GemmConfig_::kStages,</div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>  GemmConfig_::OutputTile::kD / GemmConfig_::InstructionShape::kD,</div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>  GemmConfig_::OutputTile::kH * GemmConfig_::InstructionShape::kD>,</div><div class="line"><a name="l00379"></a><span class="lineno"> 379</span>  <span class="comment">// The threads are distributed as warps x 32 (the traits may reorganize).</span></div><div class="line"><a name="l00380"></a><span class="lineno"> 380</span>  <span class="keyword">typename</span> <a class="code" href="structcutlass_1_1gemm_1_1GemmGlobalTileTraits.html#a29bd05960cc541bb67098f5483c84cf6">GlobalTileTraits::Threads</a>,</div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span>  <span class="comment">// The number of scalars per STS (STS.32 or STS.128, etc).</span></div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span>  GemmConfig_::kScalarsPerStsB></div><div class="line"><a name="l00383"></a><span class="lineno"><a class="line" href="structcutlass_1_1gemm_1_1GemmTileTraitsHelperB_3_01MatrixLayout_1_1kRowMajor_00_01GemmConfig___01_4.html#acbeea56f0ce95ddd632db3482c1021e5"> 383</a></span>  <a class="code" href="structcutlass_1_1gemm_1_1GemmTileTraitsHelperB_3_01MatrixLayout_1_1kRowMajor_00_01GemmConfig___01_4.html#acbeea56f0ce95ddd632db3482c1021e5">SharedStoreTileTraits</a>;</div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span> </div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>  <span class="keyword">typedef</span> <a class="code" href="structcutlass_1_1gemm_1_1GemmSharedLoadTileBTraits.html">GemmSharedLoadTileBTraits</a><</div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>  <span class="comment">// The pointer is float const.</span></div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>  <a class="code" href="structcutlass_1_1gemm_1_1GemmTileTraitsHelperB_3_01MatrixLayout_1_1kRowMajor_00_01GemmConfig___01_4.html#aad14588b1515e37ede24915f589d32ab">MultiplyAddScalar</a> <span class="keyword">const</span>,</div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>  <span class="comment">// The output tile size.</span></div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>  <span class="keyword">typename</span> GemmConfig_::OutputTile,</div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span>  <span class="comment">// The number of warps.</span></div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span>  <span class="keyword">typename</span> GemmConfig_::Warps,</div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span>  <span class="comment">// The number of threads per warp.</span></div><div class="line"><a name="l00394"></a><span class="lineno"> 394</span>  <span class="keyword">typename</span> GemmConfig_::MultiplyAdd::ThreadsPerWarp,</div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span>  <span class="comment">// The shape of the FMA instruction.</span></div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>  <span class="keyword">typename</span> GemmConfig_::InstructionShape,</div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span>  <span class="comment">// The number of stages.</span></div><div class="line"><a name="l00398"></a><span class="lineno"> 398</span>  GemmConfig_::kStages,</div><div class="line"><a name="l00399"></a><span class="lineno"> 399</span>  <span class="comment">// The number of scalars per LDS.</span></div><div class="line"><a name="l00400"></a><span class="lineno"> 400</span>  GemmConfig_::kScalarsPerLdsB,</div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span>  <span class="comment">// The skew.</span></div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span>  0></div><div class="line"><a name="l00403"></a><span class="lineno"><a class="line" href="structcutlass_1_1gemm_1_1GemmTileTraitsHelperB_3_01MatrixLayout_1_1kRowMajor_00_01GemmConfig___01_4.html#a9335aca8b152ff1167763de8ff8fb882"> 403</a></span>  <a class="code" href="structcutlass_1_1gemm_1_1GemmTileTraitsHelperB_3_01MatrixLayout_1_1kRowMajor_00_01GemmConfig___01_4.html#a9335aca8b152ff1167763de8ff8fb882">SharedLoadTileTraits</a>;</div><div class="line"><a name="l00404"></a><span class="lineno"> 404</span> };</div><div class="line"><a name="l00405"></a><span class="lineno"> 405</span> </div><div class="line"><a name="l00407"></a><span class="lineno"> 407</span> </div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span> <span class="keyword">template</span> <</div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span>  <span class="keyword">typename</span> GemmConfig_,</div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>  <span class="keyword">typename</span> GlobalLoadStreamA_,</div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>  <span class="keyword">typename</span> GlobalLoadStreamB_,</div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>  <span class="keyword">typename</span> SharedLoadStreamA_,</div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>  <span class="keyword">typename</span> SharedLoadStreamB_,</div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>  <span class="keyword">typename</span> Epilogue_,</div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>  <span class="keyword">typename</span> BlockSwizzle_ = <a class="code" href="structcutlass_1_1gemm_1_1IdentityBlockSwizzle.html">IdentityBlockSwizzle</a>,</div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>  <span class="keyword">typename</span> Index_ = int,</div><div class="line"><a name="l00426"></a><span class="lineno"> 426</span>  <span class="keyword">typename</span> ClearAccumulators_ = <a class="code" href="structcutlass_1_1gemm_1_1ClearAccumulators.html">ClearAccumulators<typename GemmConfig_::Accumulators::Scalar></a> ></div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span> </div><div class="line"><a name="l00428"></a><span class="lineno"><a class="line" href="structcutlass_1_1gemm_1_1GemmTraits.html"> 428</a></span> <span class="keyword">struct </span><a class="code" href="structcutlass_1_1gemm_1_1GemmTraits.html">GemmTraits</a> {</div><div class="line"><a name="l00430"></a><span class="lineno"><a class="line" href="structcutlass_1_1gemm_1_1GemmTraits.html#a4efe5d156abca056ef8b5334fb574dd5"> 430</a></span>  <span class="keyword">typedef</span> GemmConfig_ <a class="code" href="structcutlass_1_1gemm_1_1GemmTraits.html#a4efe5d156abca056ef8b5334fb574dd5">GemmConfig</a>;</div><div class="line"><a name="l00432"></a><span class="lineno"><a class="line" href="structcutlass_1_1gemm_1_1GemmTraits.html#a97d7ee63e5d180410b370f095648f367"> 432</a></span>  <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="structcutlass_1_1gemm_1_1GemmConfig.html#a53450f4d7444d6a4c0d2353496c0a4fd">GemmConfig::OutputTile</a> <a class="code" href="structcutlass_1_1gemm_1_1GemmTraits.html#a97d7ee63e5d180410b370f095648f367">OutputTile</a>;</div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span> </div><div class="line"><a name="l00435"></a><span class="lineno"><a class="line" href="structcutlass_1_1gemm_1_1GemmTraits.html#a9cd6c3fddfb4315eb52b672900462c47"> 435</a></span>  <span class="keyword">typedef</span> GlobalLoadStreamA_ <a class="code" href="structcutlass_1_1gemm_1_1GemmTraits.html#a9cd6c3fddfb4315eb52b672900462c47">GlobalLoadStreamA</a>;</div><div class="line"><a name="l00437"></a><span class="lineno"><a class="line" href="structcutlass_1_1gemm_1_1GemmTraits.html#ac5bb5931a707ed7672f69267753ba41b"> 437</a></span>  <span class="keyword">static</span> <a class="code" href="structcutlass_1_1MatrixLayout.html#a97ef07af21b122c1804245b0c7784d2b">MatrixLayout::Kind</a> <span class="keyword">const</span> <a class="code" href="structcutlass_1_1gemm_1_1GemmTraits.html#ac5bb5931a707ed7672f69267753ba41b">kLayoutA</a> = GlobalLoadStreamA::kLayout;</div><div class="line"><a name="l00439"></a><span class="lineno"><a class="line" href="structcutlass_1_1gemm_1_1GemmTraits.html#a96d64bdc48db4971798b620d6b49b3f6"> 439</a></span>  <span class="keyword">typedef</span> <span class="keyword">typename</span> GlobalLoadStreamA_::Scalar <a class="code" href="structcutlass_1_1gemm_1_1GemmTraits.html#a96d64bdc48db4971798b620d6b49b3f6">ScalarA</a>;</div><div class="line"><a name="l00440"></a><span class="lineno"> 440</span> </div><div class="line"><a name="l00442"></a><span class="lineno"><a class="line" href="structcutlass_1_1gemm_1_1GemmTraits.html#ac393b07e780629fc8254fc22cc6f815b"> 442</a></span>  <span class="keyword">typedef</span> GlobalLoadStreamB_ <a class="code" href="structcutlass_1_1gemm_1_1GemmTraits.html#ac393b07e780629fc8254fc22cc6f815b">GlobalLoadStreamB</a>;</div><div class="line"><a name="l00444"></a><span class="lineno"><a class="line" href="structcutlass_1_1gemm_1_1GemmTraits.html#a078e8d9cfa1b182e1b96a2cc8c54b684"> 444</a></span>  <span class="keyword">static</span> <a class="code" href="structcutlass_1_1MatrixLayout.html#a97ef07af21b122c1804245b0c7784d2b">MatrixLayout::Kind</a> <span class="keyword">const</span> <a class="code" href="structcutlass_1_1gemm_1_1GemmTraits.html#a078e8d9cfa1b182e1b96a2cc8c54b684">kLayoutB</a> = GlobalLoadStreamB::kLayout;</div><div class="line"><a name="l00446"></a><span class="lineno"><a class="line" href="structcutlass_1_1gemm_1_1GemmTraits.html#aa0e8fd28f5247764dfb7843f7670c698"> 446</a></span>  <span class="keyword">typedef</span> <span class="keyword">typename</span> GlobalLoadStreamB_::Scalar <a class="code" href="structcutlass_1_1gemm_1_1GemmTraits.html#aa0e8fd28f5247764dfb7843f7670c698">ScalarB</a>;</div><div class="line"><a name="l00447"></a><span class="lineno"> 447</span> </div><div class="line"><a name="l00449"></a><span class="lineno"><a class="line" href="structcutlass_1_1gemm_1_1GemmTraits.html#ae01371eb31b88fa83c4926564cecafdc"> 449</a></span>  <span class="keyword">typedef</span> SharedLoadStreamA_ <a class="code" href="structcutlass_1_1gemm_1_1GemmTraits.html#ae01371eb31b88fa83c4926564cecafdc">SharedLoadStreamA</a>;</div><div class="line"><a name="l00451"></a><span class="lineno"><a class="line" href="structcutlass_1_1gemm_1_1GemmTraits.html#acaeb27063a444e2a3b93f3cb70e3c290"> 451</a></span>  <span class="keyword">typedef</span> SharedLoadStreamB_ <a class="code" href="structcutlass_1_1gemm_1_1GemmTraits.html#acaeb27063a444e2a3b93f3cb70e3c290">SharedLoadStreamB</a>;</div><div class="line"><a name="l00452"></a><span class="lineno"> 452</span> </div><div class="line"><a name="l00454"></a><span class="lineno"><a class="line" href="structcutlass_1_1gemm_1_1GemmTraits.html#a8d49ad32fc9d8c14f6141690962c3f9c"> 454</a></span>  <span class="keyword">typedef</span> <span class="keyword">typename</span> GlobalLoadStreamA::SharedStoreStorage <a class="code" href="structcutlass_1_1gemm_1_1GemmTraits.html#a8d49ad32fc9d8c14f6141690962c3f9c">SharedStoreStorageA</a>;</div><div class="line"><a name="l00455"></a><span class="lineno"> 455</span>  <span class="comment">// Btw, make sure we did not messed up with the size of the storage.</span></div><div class="line"><a name="l00456"></a><span class="lineno"> 456</span>  <a class="code" href="platform_8h.html#adde4c9ea91b753491851361a4198c009">static_assert</a>(<span class="keyword">sizeof</span>(<a class="code" href="structcutlass_1_1gemm_1_1GemmTraits.html#a8d49ad32fc9d8c14f6141690962c3f9c">SharedStoreStorageA</a>) == <span class="keyword">sizeof</span>(<span class="keyword">typename</span> SharedLoadStreamA::SharedStorage),</div><div class="line"><a name="l00457"></a><span class="lineno"><a class="line" href="structcutlass_1_1gemm_1_1GemmTraits.html#a438b80cd8d8df0e74014ae47a162f7ed"> 457</a></span>  <span class="stringliteral">""</span>);</div><div class="line"><a name="l00458"></a><span class="lineno"> 458</span> </div><div class="line"><a name="l00460"></a><span class="lineno"> 460</span>  <span class="keyword">typedef</span> <span class="keyword">typename</span> GlobalLoadStreamB::SharedStoreStorage <a class="code" href="structcutlass_1_1gemm_1_1GemmTraits.html#a438b80cd8d8df0e74014ae47a162f7ed">SharedStoreStorageB</a>;</div><div class="line"><a name="l00461"></a><span class="lineno"> 461</span>  <span class="comment">// Btw, make sure we did not messed up with the size of the storage.</span></div><div class="line"><a name="l00462"></a><span class="lineno"> 462</span>  <a class="code" href="platform_8h.html#adde4c9ea91b753491851361a4198c009">static_assert</a>(<span class="keyword">sizeof</span>(<a class="code" href="structcutlass_1_1gemm_1_1GemmTraits.html#a438b80cd8d8df0e74014ae47a162f7ed">SharedStoreStorageB</a>) == <span class="keyword">sizeof</span>(<span class="keyword">typename</span> SharedLoadStreamB::SharedStorage),</div><div class="line"><a name="l00463"></a><span class="lineno"><a class="line" href="structcutlass_1_1gemm_1_1GemmTraits.html#af810544e956b04830c5be7ce41d3b45c"> 463</a></span>  <span class="stringliteral">""</span>);</div><div class="line"><a name="l00464"></a><span class="lineno"> 464</span> </div><div class="line"><a name="l00466"></a><span class="lineno"> 466</span>  <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="structcutlass_1_1gemm_1_1GemmConfig.html#a8669096ddbb8c810fb8d2313d62e6ee7">GemmConfig::MultiplyAdd</a> <a class="code" href="structcutlass_1_1gemm_1_1GemmTraits.html#af810544e956b04830c5be7ce41d3b45c">MultiplyAdd</a>;</div><div class="line"><a name="l00468"></a><span class="lineno"><a class="line" href="structcutlass_1_1gemm_1_1GemmTraits.html#a424f1ac14e1e7ad37428edd0cf13e7fe"> 468</a></span>  <span class="keyword">typedef</span> Epilogue_ <a class="code" href="structcutlass_1_1gemm_1_1GemmTraits.html#a424f1ac14e1e7ad37428edd0cf13e7fe">Epilogue</a>;</div><div class="line"><a name="l00470"></a><span class="lineno"><a class="line" href="structcutlass_1_1gemm_1_1GemmTraits.html#a8f78d4a68817760099081523aa7fd443"> 470</a></span>  <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="structcutlass_1_1gemm_1_1GemmEpilogue.html#abb0741601652df8fdf927d49c2c0e4d0">Epilogue::ScalarC</a> <a class="code" href="structcutlass_1_1gemm_1_1GemmTraits.html#a8f78d4a68817760099081523aa7fd443">ScalarC</a>;</div><div class="line"><a name="l00471"></a><span class="lineno"><a class="line" href="structcutlass_1_1gemm_1_1GemmTraits.html#a3129be75ee087603170f8367e10e070e"> 471</a></span>  <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="structcutlass_1_1gemm_1_1GemmEpilogue.html#a4887b56a96694ce6350db77f78bb505f">Epilogue::ScalarD</a> <a class="code" href="structcutlass_1_1gemm_1_1GemmTraits.html#a3129be75ee087603170f8367e10e070e">ScalarD</a>;</div><div class="line"><a name="l00472"></a><span class="lineno"> 472</span> </div><div class="line"><a name="l00474"></a><span class="lineno"><a class="line" href="structcutlass_1_1gemm_1_1GemmTraits.html#a50672b5fa67d858aeff8f254cf28e941"> 474</a></span>  <span class="keyword">typedef</span> BlockSwizzle_ <a class="code" href="structcutlass_1_1gemm_1_1GemmTraits.html#a50672b5fa67d858aeff8f254cf28e941">BlockSwizzle</a>;</div><div class="line"><a name="l00476"></a><span class="lineno"><a class="line" href="structcutlass_1_1gemm_1_1GemmTraits.html#ae67227cecbe84f5c8497d9a7ff82b367"> 476</a></span>  <span class="keyword">typedef</span> Index_ <a class="code" href="structcutlass_1_1gemm_1_1GemmTraits.html#ae67227cecbe84f5c8497d9a7ff82b367">Index</a>;</div><div class="line"><a name="l00478"></a><span class="lineno"><a class="line" href="structcutlass_1_1gemm_1_1GemmTraits.html#ae1cf7988c9cff79a2c3252aaf91fc165"> 478</a></span>  <span class="keyword">typedef</span> ClearAccumulators_ <a class="code" href="structcutlass_1_1gemm_1_1GemmTraits.html#ae1cf7988c9cff79a2c3252aaf91fc165">ClearAccumulators</a>;</div><div class="line"><a name="l00479"></a><span class="lineno"> 479</span> </div><div class="line"><a name="l00481"></a><span class="lineno"><a class="line" href="structcutlass_1_1gemm_1_1GemmTraits_1_1Params.html"> 481</a></span>  <span class="keyword">struct </span><a class="code" href="structcutlass_1_1gemm_1_1GemmTraits_1_1Params.html">Params</a> {</div><div class="line"><a name="l00483"></a><span class="lineno"><a class="line" href="structcutlass_1_1gemm_1_1GemmTraits_1_1Params.html#a437d4b6f1f149849c5ae635a5993e7ac"> 483</a></span>  <a class="code" href="structcutlass_1_1gemm_1_1GemmTraits.html#ae67227cecbe84f5c8497d9a7ff82b367">Index</a> <a class="code" href="structcutlass_1_1gemm_1_1GemmTraits_1_1Params.html#aaf27c0f2f4ab730ed5c865e9f7d2373b">m</a>, <a class="code" href="structcutlass_1_1gemm_1_1GemmTraits_1_1Params.html#a437d4b6f1f149849c5ae635a5993e7ac">n</a>, <a class="code" href="structcutlass_1_1gemm_1_1GemmTraits_1_1Params.html#aae3a008b39f9678a03192f6ff54152d8">k</a>;</div><div class="line"><a name="l00485"></a><span class="lineno"><a class="line" href="structcutlass_1_1gemm_1_1GemmTraits_1_1Params.html#a575bcff901d69ae3f46987222f23ab64"> 485</a></span>  <span class="keyword">typename</span> GlobalLoadStreamA::Params <a class="code" href="structcutlass_1_1gemm_1_1GemmTraits_1_1Params.html#a575bcff901d69ae3f46987222f23ab64">global_stream_a</a>;</div><div class="line"><a name="l00487"></a><span class="lineno"><a class="line" href="structcutlass_1_1gemm_1_1GemmTraits_1_1Params.html#a46affe35cb16874de5a2b9777aedf596"> 487</a></span>  <span class="keyword">typename</span> GlobalLoadStreamB::Params <a class="code" href="structcutlass_1_1gemm_1_1GemmTraits_1_1Params.html#a46affe35cb16874de5a2b9777aedf596">global_stream_b</a>;</div><div class="line"><a name="l00489"></a><span class="lineno"><a class="line" href="structcutlass_1_1gemm_1_1GemmTraits_1_1Params.html#aa9937ec51d18aad02398d95095117978"> 489</a></span>  <span class="keyword">typename</span> SharedLoadStreamA::Params <a class="code" href="structcutlass_1_1gemm_1_1GemmTraits_1_1Params.html#aa9937ec51d18aad02398d95095117978">shared_stream_a</a>;</div><div class="line"><a name="l00491"></a><span class="lineno"><a class="line" href="structcutlass_1_1gemm_1_1GemmTraits_1_1Params.html#a78f22007632937bbd5f3dab7b097477d"> 491</a></span>  <span class="keyword">typename</span> SharedLoadStreamB::Params <a class="code" href="structcutlass_1_1gemm_1_1GemmTraits_1_1Params.html#a78f22007632937bbd5f3dab7b097477d">shared_stream_b</a>;</div><div class="line"><a name="l00493"></a><span class="lineno"><a class="line" href="structcutlass_1_1gemm_1_1GemmTraits_1_1Params.html#a073430a1e8b124aec8a1f1e00f262bc8"> 493</a></span>  <span class="keyword">typename</span> Epilogue::Params <a class="code" href="structcutlass_1_1gemm_1_1GemmTraits_1_1Params.html#a073430a1e8b124aec8a1f1e00f262bc8">epilogue</a>;</div><div class="line"><a name="l00494"></a><span class="lineno"> 494</span> </div><div class="line"><a name="l00496"></a><span class="lineno"> 496</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> GemmDesc_></div><div class="line"><a name="l00497"></a><span class="lineno"><a class="line" href="structcutlass_1_1gemm_1_1GemmTraits_1_1Params.html#a40023f0ffdd8bee4ccbcaac28222e983"> 497</a></span>  <a class="code" href="cutlass_8h.html#a28c2443a142676d3d71effdae1a986b1">CUTLASS_HOST_DEVICE</a> <span class="keywordtype">int</span> <a class="code" href="structcutlass_1_1gemm_1_1GemmTraits_1_1Params.html#a40023f0ffdd8bee4ccbcaac28222e983">initialize</a>(GemmDesc_ <span class="keyword">const</span>& desc) {</div><div class="line"><a name="l00498"></a><span class="lineno"> 498</span>  <span class="comment">// Set the problem size.</span></div><div class="line"><a name="l00499"></a><span class="lineno"> 499</span>  this->m = desc.m;</div><div class="line"><a name="l00500"></a><span class="lineno"> 500</span>  this->n = desc.n;</div><div class="line"><a name="l00501"></a><span class="lineno"> 501</span>  this->k = desc.k;</div><div class="line"><a name="l00502"></a><span class="lineno"> 502</span> </div><div class="line"><a name="l00503"></a><span class="lineno"> 503</span>  <span class="comment">// Initialize the iterator for A.</span></div><div class="line"><a name="l00504"></a><span class="lineno"> 504</span>  <span class="keywordtype">int</span> error_code =</div><div class="line"><a name="l00505"></a><span class="lineno"> 505</span>  <a class="code" href="structcutlass_1_1gemm_1_1GemmTraits_1_1Params.html#a575bcff901d69ae3f46987222f23ab64">global_stream_a</a>.initialize(reinterpret_cast<ScalarA const*>(desc.d_a), desc.lda);</div><div class="line"><a name="l00506"></a><span class="lineno"> 506</span> </div><div class="line"><a name="l00507"></a><span class="lineno"> 507</span>  <span class="keywordflow">if</span> (error_code) {</div><div class="line"><a name="l00508"></a><span class="lineno"> 508</span>  <span class="keywordflow">return</span> error_code;</div><div class="line"><a name="l00509"></a><span class="lineno"> 509</span>  }</div><div class="line"><a name="l00510"></a><span class="lineno"> 510</span> </div><div class="line"><a name="l00511"></a><span class="lineno"> 511</span>  <span class="comment">// Initialize the iterator for B.</span></div><div class="line"><a name="l00512"></a><span class="lineno"> 512</span>  error_code = <a class="code" href="structcutlass_1_1gemm_1_1GemmTraits_1_1Params.html#a46affe35cb16874de5a2b9777aedf596">global_stream_b</a>.initialize(reinterpret_cast<ScalarB const*>(desc.d_b), desc.ldb);</div><div class="line"><a name="l00513"></a><span class="lineno"> 513</span> </div><div class="line"><a name="l00514"></a><span class="lineno"> 514</span>  <span class="keywordflow">if</span> (error_code) {</div><div class="line"><a name="l00515"></a><span class="lineno"> 515</span>  <span class="keywordflow">return</span> error_code;</div><div class="line"><a name="l00516"></a><span class="lineno"> 516</span>  }</div><div class="line"><a name="l00517"></a><span class="lineno"> 517</span> </div><div class="line"><a name="l00518"></a><span class="lineno"> 518</span>  <span class="comment">// The epilogue.</span></div><div class="line"><a name="l00519"></a><span class="lineno"> 519</span>  <span class="keywordflow">return</span> <a class="code" href="structcutlass_1_1gemm_1_1GemmTraits_1_1Params.html#a073430a1e8b124aec8a1f1e00f262bc8">epilogue</a>.initialize(desc);</div><div class="line"><a name="l00520"></a><span class="lineno"> 520</span>  }</div><div class="line"><a name="l00521"></a><span class="lineno"> 521</span>  };</div><div class="line"><a name="l00522"></a><span class="lineno"> 522</span> </div><div class="line"><a name="l00523"></a><span class="lineno"> 523</span>  <span class="comment">// The storage for A.</span></div><div class="line"><a name="l00524"></a><span class="lineno"> 524</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> GlobalLoadStream_, <span class="keyword">typename</span> SharedLoadStream_></div><div class="line"><a name="l00525"></a><span class="lineno"><a class="line" href="unioncutlass_1_1gemm_1_1GemmTraits_1_1StreamSharedStorage.html"> 525</a></span>  <span class="keyword">union </span><a class="code" href="unioncutlass_1_1gemm_1_1GemmTraits_1_1StreamSharedStorage.html">StreamSharedStorage</a> {</div><div class="line"><a name="l00526"></a><span class="lineno"> 526</span>  <span class="comment">// The storage needed by the global stream.</span></div><div class="line"><a name="l00527"></a><span class="lineno"><a class="line" href="unioncutlass_1_1gemm_1_1GemmTraits_1_1StreamSharedStorage.html#a3c2980547310ec4307f3a5f9817dfc51"> 527</a></span>  <span class="keyword">typename</span> GlobalLoadStream_::SharedStorage <a class="code" href="unioncutlass_1_1gemm_1_1GemmTraits_1_1StreamSharedStorage.html#a3c2980547310ec4307f3a5f9817dfc51">global</a>;</div><div class="line"><a name="l00528"></a><span class="lineno"> 528</span>  <span class="comment">// The storage needed by the shared stream.</span></div><div class="line"><a name="l00529"></a><span class="lineno"><a class="line" href="unioncutlass_1_1gemm_1_1GemmTraits_1_1StreamSharedStorage.html#afabd328b106d45b156200f73942d211e"> 529</a></span>  <span class="keyword">typename</span> SharedLoadStream_::SharedStorage <a class="code" href="unioncutlass_1_1gemm_1_1GemmTraits_1_1StreamSharedStorage.html#afabd328b106d45b156200f73942d211e">shared</a>;</div><div class="line"><a name="l00530"></a><span class="lineno"> 530</span>  };</div><div class="line"><a name="l00531"></a><span class="lineno"> 531</span> </div><div class="line"><a name="l00532"></a><span class="lineno"> 532</span>  <span class="comment">// The storage for the main loop + prologue.</span></div><div class="line"><a name="l00533"></a><span class="lineno"><a class="line" href="structcutlass_1_1gemm_1_1GemmTraits_1_1MainLoopSharedStorage.html"> 533</a></span>  <span class="keyword">struct </span><a class="code" href="structcutlass_1_1gemm_1_1GemmTraits_1_1MainLoopSharedStorage.html">MainLoopSharedStorage</a> {</div><div class="line"><a name="l00534"></a><span class="lineno"> 534</span>  <span class="comment">// The storage to shuffle the A matrix in shared memory.</span></div><div class="line"><a name="l00535"></a><span class="lineno"><a class="line" href="structcutlass_1_1gemm_1_1GemmTraits_1_1MainLoopSharedStorage.html#a62d3dcf5d97a0a896b2033e55dfb0811"> 535</a></span>  <a class="code" href="unioncutlass_1_1gemm_1_1GemmTraits_1_1StreamSharedStorage.html">StreamSharedStorage<GlobalLoadStreamA, SharedLoadStreamA></a> <a class="code" href="structcutlass_1_1gemm_1_1GemmTraits_1_1MainLoopSharedStorage.html#a62d3dcf5d97a0a896b2033e55dfb0811">stream_a</a>;</div><div class="line"><a name="l00536"></a><span class="lineno"> 536</span>  <span class="comment">// The storage to shuffle the B matrix in shared memory.</span></div><div class="line"><a name="l00537"></a><span class="lineno"><a class="line" href="structcutlass_1_1gemm_1_1GemmTraits_1_1MainLoopSharedStorage.html#a0173fcc8856b17a52cc5eee845f101fa"> 537</a></span>  <a class="code" href="unioncutlass_1_1gemm_1_1GemmTraits_1_1StreamSharedStorage.html">StreamSharedStorage<GlobalLoadStreamB, SharedLoadStreamB></a> <a class="code" href="structcutlass_1_1gemm_1_1GemmTraits_1_1MainLoopSharedStorage.html#a0173fcc8856b17a52cc5eee845f101fa">stream_b</a>;</div><div class="line"><a name="l00538"></a><span class="lineno"> 538</span>  <span class="comment">// The storage to clear the accumulators if needed.</span></div><div class="line"><a name="l00539"></a><span class="lineno"><a class="line" href="structcutlass_1_1gemm_1_1GemmTraits_1_1MainLoopSharedStorage.html#a5513254af1f9979b6d0b9f236c3e7325"> 539</a></span>  <span class="keyword">typename</span> <a class="code" href="structcutlass_1_1gemm_1_1ClearAccumulators_1_1SharedStorage.html">ClearAccumulators::SharedStorage</a> <a class="code" href="structcutlass_1_1gemm_1_1GemmTraits_1_1MainLoopSharedStorage.html#a5513254af1f9979b6d0b9f236c3e7325">clear</a>;</div><div class="line"><a name="l00540"></a><span class="lineno"> 540</span>  };</div><div class="line"><a name="l00541"></a><span class="lineno"> 541</span> </div><div class="line"><a name="l00543"></a><span class="lineno"><a class="line" href="unioncutlass_1_1gemm_1_1GemmTraits_1_1SharedStorage.html"> 543</a></span>  <span class="keyword">union </span><a class="code" href="unioncutlass_1_1gemm_1_1GemmTraits_1_1SharedStorage.html">SharedStorage</a> {</div><div class="line"><a name="l00544"></a><span class="lineno"> 544</span>  <span class="comment">// The storage for the main loop.</span></div><div class="line"><a name="l00545"></a><span class="lineno"><a class="line" href="unioncutlass_1_1gemm_1_1GemmTraits_1_1SharedStorage.html#aa5dd7edc3cffa785eb1e5b62c18c74c4"> 545</a></span>  <a class="code" href="structcutlass_1_1gemm_1_1GemmTraits_1_1MainLoopSharedStorage.html">MainLoopSharedStorage</a> <a class="code" href="unioncutlass_1_1gemm_1_1GemmTraits_1_1SharedStorage.html#aa5dd7edc3cffa785eb1e5b62c18c74c4">main_loop</a>;</div><div class="line"><a name="l00546"></a><span class="lineno"> 546</span>  <span class="comment">// The storage for the epilogue.</span></div><div class="line"><a name="l00547"></a><span class="lineno"><a class="line" href="unioncutlass_1_1gemm_1_1GemmTraits_1_1SharedStorage.html#afdca9ac1d28e17efaa394f5831a60c04"> 547</a></span>  <span class="keyword">typename</span> Epilogue::SharedStorage <a class="code" href="unioncutlass_1_1gemm_1_1GemmTraits_1_1SharedStorage.html#afdca9ac1d28e17efaa394f5831a60c04">epilogue</a>;</div><div class="line"><a name="l00548"></a><span class="lineno"> 548</span>  };</div><div class="line"><a name="l00549"></a><span class="lineno"> 549</span> </div><div class="line"><a name="l00551"></a><span class="lineno"><a class="line" href="structcutlass_1_1gemm_1_1GemmTraits_1_1GlobalLoadStream.html"> 551</a></span>  <span class="keyword">struct </span><a class="code" href="structcutlass_1_1gemm_1_1GemmTraits_1_1GlobalLoadStream.html">GlobalLoadStream</a> {</div><div class="line"><a name="l00553"></a><span class="lineno"><a class="line" href="structcutlass_1_1gemm_1_1GemmTraits_1_1GlobalLoadStream.html#ab2961b4db0694cf128d55d38a98db575"> 553</a></span>  CUTLASS_DEVICE <a class="code" href="structcutlass_1_1gemm_1_1GemmTraits_1_1GlobalLoadStream.html#ab2961b4db0694cf128d55d38a98db575">GlobalLoadStream</a>(<a class="code" href="structcutlass_1_1gemm_1_1GemmTraits_1_1Params.html">Params</a> <span class="keyword">const</span>& params,</div><div class="line"><a name="l00554"></a><span class="lineno"> 554</span>  <a class="code" href="unioncutlass_1_1gemm_1_1GemmTraits_1_1SharedStorage.html">SharedStorage</a>& shared_storage,</div><div class="line"><a name="l00555"></a><span class="lineno"> 555</span>  dim3 <span class="keyword">const</span>& block)</div><div class="line"><a name="l00556"></a><span class="lineno"> 556</span>  : <a class="code" href="structcutlass_1_1gemm_1_1GemmTraits_1_1GlobalLoadStream.html#a82a59524b5d3134eb609d280193a5c47">stream_a</a>(params.global_stream_a,</div><div class="line"><a name="l00557"></a><span class="lineno"> 557</span>  shared_storage.main_loop.<a class="code" href="structcutlass_1_1gemm_1_1GemmTraits_1_1GlobalLoadStream.html#a82a59524b5d3134eb609d280193a5c47">stream_a</a>.global,</div><div class="line"><a name="l00558"></a><span class="lineno"> 558</span>  <a class="code" href="namespacecutlass.html">cutlass</a>::<a class="code" href="namespacecutlass.html#a7419519fa453a121dfa5f26bf87318d9">make_Coord</a>(0, params.k, params.m),</div><div class="line"><a name="l00559"></a><span class="lineno"> 559</span>  <a class="code" href="namespacecutlass.html">cutlass</a>::<a class="code" href="namespacecutlass.html#a7419519fa453a121dfa5f26bf87318d9">make_Coord</a>(0, 0, block.x)),</div><div class="line"><a name="l00560"></a><span class="lineno"> 560</span>  <a class="code" href="structcutlass_1_1gemm_1_1GemmTraits_1_1GlobalLoadStream.html#acc287ce5e2f3635d9d55d91914d2d04c">stream_b</a>(params.global_stream_b,</div><div class="line"><a name="l00561"></a><span class="lineno"> 561</span>  shared_storage.main_loop.<a class="code" href="structcutlass_1_1gemm_1_1GemmTraits_1_1GlobalLoadStream.html#acc287ce5e2f3635d9d55d91914d2d04c">stream_b</a>.global,</div><div class="line"><a name="l00562"></a><span class="lineno"> 562</span>  <a class="code" href="namespacecutlass.html">cutlass</a>::<a class="code" href="namespacecutlass.html#a7419519fa453a121dfa5f26bf87318d9">make_Coord</a>(0, params.k, params.n),</div><div class="line"><a name="l00563"></a><span class="lineno"> 563</span>  <a class="code" href="namespacecutlass.html#a7419519fa453a121dfa5f26bf87318d9">make_Coord</a>(0, 0, block.y)) {}</div><div class="line"><a name="l00564"></a><span class="lineno"> 564</span> </div><div class="line"><a name="l00566"></a><span class="lineno"><a class="line" href="structcutlass_1_1gemm_1_1GemmTraits_1_1GlobalLoadStream.html#ae033f55779b45b4228f40a4d699062bb"> 566</a></span>  CUTLASS_DEVICE <span class="keywordtype">void</span> <a class="code" href="structcutlass_1_1gemm_1_1GemmTraits_1_1GlobalLoadStream.html#ae033f55779b45b4228f40a4d699062bb">copy</a>() {</div><div class="line"><a name="l00567"></a><span class="lineno"> 567</span>  <a class="code" href="structcutlass_1_1gemm_1_1GemmTraits_1_1GlobalLoadStream.html#a82a59524b5d3134eb609d280193a5c47">stream_a</a>.copy();</div><div class="line"><a name="l00568"></a><span class="lineno"> 568</span>  <a class="code" href="structcutlass_1_1gemm_1_1GemmTraits_1_1GlobalLoadStream.html#acc287ce5e2f3635d9d55d91914d2d04c">stream_b</a>.copy();</div><div class="line"><a name="l00569"></a><span class="lineno"> 569</span>  }</div><div class="line"><a name="l00570"></a><span class="lineno"> 570</span> </div><div class="line"><a name="l00572"></a><span class="lineno"><a class="line" href="structcutlass_1_1gemm_1_1GemmTraits_1_1GlobalLoadStream.html#a6dc512be014b9d849057e2fd4c0b0485"> 572</a></span>  CUTLASS_DEVICE <span class="keywordtype">void</span> <a class="code" href="structcutlass_1_1gemm_1_1GemmTraits_1_1GlobalLoadStream.html#a6dc512be014b9d849057e2fd4c0b0485">commit</a>() {</div><div class="line"><a name="l00573"></a><span class="lineno"> 573</span>  <a class="code" href="structcutlass_1_1gemm_1_1GemmTraits_1_1GlobalLoadStream.html#a82a59524b5d3134eb609d280193a5c47">stream_a</a>.commit();</div><div class="line"><a name="l00574"></a><span class="lineno"> 574</span>  <a class="code" href="structcutlass_1_1gemm_1_1GemmTraits_1_1GlobalLoadStream.html#acc287ce5e2f3635d9d55d91914d2d04c">stream_b</a>.commit();</div><div class="line"><a name="l00575"></a><span class="lineno"> 575</span>  }</div><div class="line"><a name="l00576"></a><span class="lineno"> 576</span> </div><div class="line"><a name="l00578"></a><span class="lineno"><a class="line" href="structcutlass_1_1gemm_1_1GemmTraits_1_1GlobalLoadStream.html#a405b93680bb6e356369863244d0b56aa"> 578</a></span>  CUTLASS_DEVICE <span class="keywordtype">void</span> <a class="code" href="structcutlass_1_1gemm_1_1GemmTraits_1_1GlobalLoadStream.html#a405b93680bb6e356369863244d0b56aa">residue</a>(<a class="code" href="structcutlass_1_1gemm_1_1GemmTraits.html#ae67227cecbe84f5c8497d9a7ff82b367">Index</a> k, <span class="keywordtype">bool</span> skip_clear = <span class="keyword">false</span>) {</div><div class="line"><a name="l00579"></a><span class="lineno"> 579</span>  <a class="code" href="structcutlass_1_1gemm_1_1GemmTraits_1_1GlobalLoadStream.html#a82a59524b5d3134eb609d280193a5c47">stream_a</a>.residue(k, skip_clear);</div><div class="line"><a name="l00580"></a><span class="lineno"> 580</span>  <a class="code" href="structcutlass_1_1gemm_1_1GemmTraits_1_1GlobalLoadStream.html#acc287ce5e2f3635d9d55d91914d2d04c">stream_b</a>.residue(k, skip_clear);</div><div class="line"><a name="l00581"></a><span class="lineno"> 581</span>  }</div><div class="line"><a name="l00582"></a><span class="lineno"> 582</span> </div><div class="line"><a name="l00584"></a><span class="lineno"><a class="line" href="structcutlass_1_1gemm_1_1GemmTraits_1_1GlobalLoadStream.html#a82a59524b5d3134eb609d280193a5c47"> 584</a></span>  <a class="code" href="structcutlass_1_1gemm_1_1GemmTraits.html#a9cd6c3fddfb4315eb52b672900462c47">GlobalLoadStreamA</a> <a class="code" href="structcutlass_1_1gemm_1_1GemmTraits_1_1GlobalLoadStream.html#a82a59524b5d3134eb609d280193a5c47">stream_a</a>;</div><div class="line"><a name="l00586"></a><span class="lineno"><a class="line" href="structcutlass_1_1gemm_1_1GemmTraits_1_1GlobalLoadStream.html#acc287ce5e2f3635d9d55d91914d2d04c"> 586</a></span>  <a class="code" href="structcutlass_1_1gemm_1_1GemmTraits.html#ac393b07e780629fc8254fc22cc6f815b">GlobalLoadStreamB</a> <a class="code" href="structcutlass_1_1gemm_1_1GemmTraits_1_1GlobalLoadStream.html#acc287ce5e2f3635d9d55d91914d2d04c">stream_b</a>;</div><div class="line"><a name="l00587"></a><span class="lineno"> 587</span>  };</div><div class="line"><a name="l00588"></a><span class="lineno"> 588</span> </div><div class="line"><a name="l00590"></a><span class="lineno"><a class="line" href="structcutlass_1_1gemm_1_1GemmTraits_1_1SharedLoadStream.html"> 590</a></span>  <span class="keyword">struct </span><a class="code" href="structcutlass_1_1gemm_1_1GemmTraits_1_1SharedLoadStream.html">SharedLoadStream</a> {</div><div class="line"><a name="l00592"></a><span class="lineno"><a class="line" href="structcutlass_1_1gemm_1_1GemmTraits_1_1SharedLoadStream.html#a49315aea1c54d84ff19b0ac215128b95"> 592</a></span>  CUTLASS_DEVICE <a class="code" href="structcutlass_1_1gemm_1_1GemmTraits_1_1SharedLoadStream.html#a49315aea1c54d84ff19b0ac215128b95">SharedLoadStream</a>(<a class="code" href="structcutlass_1_1gemm_1_1GemmTraits_1_1Params.html">Params</a> <span class="keyword">const</span>& params, <a class="code" href="unioncutlass_1_1gemm_1_1GemmTraits_1_1SharedStorage.html">SharedStorage</a>& shared_storage) {</div><div class="line"><a name="l00593"></a><span class="lineno"> 593</span>  <a class="code" href="structcutlass_1_1gemm_1_1GemmTraits_1_1SharedLoadStream.html#a8e68561561ac6b08efbfd116903198c8">stream_a</a>.initialize(params.<a class="code" href="structcutlass_1_1gemm_1_1GemmTraits_1_1Params.html#aa9937ec51d18aad02398d95095117978">shared_stream_a</a>, shared_storage.<a class="code" href="unioncutlass_1_1gemm_1_1GemmTraits_1_1SharedStorage.html#aa5dd7edc3cffa785eb1e5b62c18c74c4">main_loop</a>.<a class="code" href="structcutlass_1_1gemm_1_1GemmTraits_1_1MainLoopSharedStorage.html#a62d3dcf5d97a0a896b2033e55dfb0811">stream_a</a>.<a class="code" href="unioncutlass_1_1gemm_1_1GemmTraits_1_1StreamSharedStorage.html#afabd328b106d45b156200f73942d211e">shared</a>);</div><div class="line"><a name="l00594"></a><span class="lineno"> 594</span>  <a class="code" href="structcutlass_1_1gemm_1_1GemmTraits_1_1SharedLoadStream.html#a1fdc6af44c14c88a94529d187fda176d">stream_b</a>.initialize(params.<a class="code" href="structcutlass_1_1gemm_1_1GemmTraits_1_1Params.html#a78f22007632937bbd5f3dab7b097477d">shared_stream_b</a>, shared_storage.<a class="code" href="unioncutlass_1_1gemm_1_1GemmTraits_1_1SharedStorage.html#aa5dd7edc3cffa785eb1e5b62c18c74c4">main_loop</a>.<a class="code" href="structcutlass_1_1gemm_1_1GemmTraits_1_1MainLoopSharedStorage.html#a0173fcc8856b17a52cc5eee845f101fa">stream_b</a>.<a class="code" href="unioncutlass_1_1gemm_1_1GemmTraits_1_1StreamSharedStorage.html#afabd328b106d45b156200f73942d211e">shared</a>);</div><div class="line"><a name="l00595"></a><span class="lineno"> 595</span>  }</div><div class="line"><a name="l00596"></a><span class="lineno"> 596</span> </div><div class="line"><a name="l00598"></a><span class="lineno"><a class="line" href="structcutlass_1_1gemm_1_1GemmTraits_1_1SharedLoadStream.html#af25495bb0bb35bd64246d3a80fe4806f"> 598</a></span>  CUTLASS_DEVICE <span class="keywordtype">void</span> <a class="code" href="structcutlass_1_1gemm_1_1GemmTraits_1_1SharedLoadStream.html#af25495bb0bb35bd64246d3a80fe4806f">copy</a>(<span class="keywordtype">int</span> step) {</div><div class="line"><a name="l00599"></a><span class="lineno"> 599</span>  <a class="code" href="structcutlass_1_1gemm_1_1GemmTraits_1_1SharedLoadStream.html#a8e68561561ac6b08efbfd116903198c8">stream_a</a>.copy(step, <a class="code" href="structcutlass_1_1gemm_1_1GemmTraits_1_1SharedLoadStream.html#a3147da380e4c1e465aba0b965ac87ab5">fetched_a</a>[step % 2]);</div><div class="line"><a name="l00600"></a><span class="lineno"> 600</span>  <a class="code" href="structcutlass_1_1gemm_1_1GemmTraits_1_1SharedLoadStream.html#a1fdc6af44c14c88a94529d187fda176d">stream_b</a>.copy(step, <a class="code" href="structcutlass_1_1gemm_1_1GemmTraits_1_1SharedLoadStream.html#a837fbec1d47ae45480941de6290889c0">fetched_b</a>[step % 2]);</div><div class="line"><a name="l00601"></a><span class="lineno"> 601</span>  }</div><div class="line"><a name="l00602"></a><span class="lineno"> 602</span> </div><div class="line"><a name="l00604"></a><span class="lineno"><a class="line" href="structcutlass_1_1gemm_1_1GemmTraits_1_1SharedLoadStream.html#ade2d85507dec77591e66276339a1eef5"> 604</a></span>  CUTLASS_DEVICE <span class="keywordtype">void</span> <a class="code" href="structcutlass_1_1gemm_1_1GemmTraits_1_1SharedLoadStream.html#ade2d85507dec77591e66276339a1eef5">commit</a>(<span class="keywordtype">int</span> step) {</div><div class="line"><a name="l00605"></a><span class="lineno"> 605</span>  <a class="code" href="structcutlass_1_1gemm_1_1GemmTraits_1_1SharedLoadStream.html#a8e68561561ac6b08efbfd116903198c8">stream_a</a>.commit(<a class="code" href="structcutlass_1_1gemm_1_1GemmTraits_1_1SharedLoadStream.html#a3147da380e4c1e465aba0b965ac87ab5">fetched_a</a>[step % 2], <a class="code" href="structcutlass_1_1gemm_1_1GemmTraits_1_1SharedLoadStream.html#a883b28ca237b1ec076856232cfee0c6f">transformed_a</a>[step % 2]);</div><div class="line"><a name="l00606"></a><span class="lineno"> 606</span>  <a class="code" href="structcutlass_1_1gemm_1_1GemmTraits_1_1SharedLoadStream.html#a1fdc6af44c14c88a94529d187fda176d">stream_b</a>.commit(<a class="code" href="structcutlass_1_1gemm_1_1GemmTraits_1_1SharedLoadStream.html#a837fbec1d47ae45480941de6290889c0">fetched_b</a>[step % 2], <a class="code" href="structcutlass_1_1gemm_1_1GemmTraits_1_1SharedLoadStream.html#a9369a5f819d2a42997491e0df96f47ef">transformed_b</a>[step % 2]);</div><div class="line"><a name="l00607"></a><span class="lineno"> 607</span>  }</div><div class="line"><a name="l00608"></a><span class="lineno"> 608</span> </div><div class="line"><a name="l00610"></a><span class="lineno"><a class="line" href="structcutlass_1_1gemm_1_1GemmTraits_1_1SharedLoadStream.html#a4a8c64d85aa012e3689dd024c486924b"> 610</a></span>  CUTLASS_DEVICE <span class="keyword">typename</span> SharedLoadStreamA::Fragment <span class="keyword">const</span>& <a class="code" href="structcutlass_1_1gemm_1_1GemmTraits_1_1SharedLoadStream.html#a4a8c64d85aa012e3689dd024c486924b">fragment_a</a>(<span class="keywordtype">int</span> step)<span class="keyword"> const </span>{</div><div class="line"><a name="l00611"></a><span class="lineno"> 611</span>  <span class="keywordflow">return</span> <a class="code" href="structcutlass_1_1gemm_1_1GemmTraits_1_1SharedLoadStream.html#a883b28ca237b1ec076856232cfee0c6f">transformed_a</a>[step % 2];</div><div class="line"><a name="l00612"></a><span class="lineno"> 612</span>  }</div><div class="line"><a name="l00613"></a><span class="lineno"> 613</span> </div><div class="line"><a name="l00615"></a><span class="lineno"><a class="line" href="structcutlass_1_1gemm_1_1GemmTraits_1_1SharedLoadStream.html#aa28f34fb0c4bf739246d92c2fef80e0b"> 615</a></span>  CUTLASS_DEVICE <span class="keyword">typename</span> SharedLoadStreamB::Fragment <span class="keyword">const</span>& <a class="code" href="structcutlass_1_1gemm_1_1GemmTraits_1_1SharedLoadStream.html#aa28f34fb0c4bf739246d92c2fef80e0b">fragment_b</a>(<span class="keywordtype">int</span> step)<span class="keyword"> const </span>{</div><div class="line"><a name="l00616"></a><span class="lineno"> 616</span>  <span class="keywordflow">return</span> <a class="code" href="structcutlass_1_1gemm_1_1GemmTraits_1_1SharedLoadStream.html#a9369a5f819d2a42997491e0df96f47ef">transformed_b</a>[step % 2];</div><div class="line"><a name="l00617"></a><span class="lineno"> 617</span>  }</div><div class="line"><a name="l00618"></a><span class="lineno"> 618</span> </div><div class="line"><a name="l00620"></a><span class="lineno"><a class="line" href="structcutlass_1_1gemm_1_1GemmTraits_1_1SharedLoadStream.html#a8851150a49e4a9c135279c8c9dfdc592"> 620</a></span>  CUTLASS_DEVICE <span class="keywordtype">void</span> <a class="code" href="structcutlass_1_1gemm_1_1GemmTraits_1_1SharedLoadStream.html#a8851150a49e4a9c135279c8c9dfdc592">inc_stage</a>() {</div><div class="line"><a name="l00621"></a><span class="lineno"> 621</span>  <a class="code" href="structcutlass_1_1gemm_1_1GemmTraits_1_1SharedLoadStream.html#a8e68561561ac6b08efbfd116903198c8">stream_a</a>.inc_stage();</div><div class="line"><a name="l00622"></a><span class="lineno"> 622</span>  <a class="code" href="structcutlass_1_1gemm_1_1GemmTraits_1_1SharedLoadStream.html#a1fdc6af44c14c88a94529d187fda176d">stream_b</a>.inc_stage();</div><div class="line"><a name="l00623"></a><span class="lineno"> 623</span>  }</div><div class="line"><a name="l00624"></a><span class="lineno"> 624</span> </div><div class="line"><a name="l00626"></a><span class="lineno"><a class="line" href="structcutlass_1_1gemm_1_1GemmTraits_1_1SharedLoadStream.html#a8e68561561ac6b08efbfd116903198c8"> 626</a></span>  <a class="code" href="structcutlass_1_1gemm_1_1GemmTraits.html#ae01371eb31b88fa83c4926564cecafdc">SharedLoadStreamA</a> <a class="code" href="structcutlass_1_1gemm_1_1GemmTraits_1_1SharedLoadStream.html#a8e68561561ac6b08efbfd116903198c8">stream_a</a>;</div><div class="line"><a name="l00628"></a><span class="lineno"><a class="line" href="structcutlass_1_1gemm_1_1GemmTraits_1_1SharedLoadStream.html#a3147da380e4c1e465aba0b965ac87ab5"> 628</a></span>  <span class="keyword">typename</span> SharedLoadStreamA::FetchedFragment <a class="code" href="structcutlass_1_1gemm_1_1GemmTraits_1_1SharedLoadStream.html#a3147da380e4c1e465aba0b965ac87ab5">fetched_a</a>[2];</div><div class="line"><a name="l00630"></a><span class="lineno"><a class="line" href="structcutlass_1_1gemm_1_1GemmTraits_1_1SharedLoadStream.html#a883b28ca237b1ec076856232cfee0c6f"> 630</a></span>  <span class="keyword">typename</span> SharedLoadStreamA::TransformedFragment <a class="code" href="structcutlass_1_1gemm_1_1GemmTraits_1_1SharedLoadStream.html#a883b28ca237b1ec076856232cfee0c6f">transformed_a</a>[2];</div><div class="line"><a name="l00632"></a><span class="lineno"><a class="line" href="structcutlass_1_1gemm_1_1GemmTraits_1_1SharedLoadStream.html#a1fdc6af44c14c88a94529d187fda176d"> 632</a></span>  <a class="code" href="structcutlass_1_1gemm_1_1GemmTraits.html#acaeb27063a444e2a3b93f3cb70e3c290">SharedLoadStreamB</a> <a class="code" href="structcutlass_1_1gemm_1_1GemmTraits_1_1SharedLoadStream.html#a1fdc6af44c14c88a94529d187fda176d">stream_b</a>;</div><div class="line"><a name="l00634"></a><span class="lineno"><a class="line" href="structcutlass_1_1gemm_1_1GemmTraits_1_1SharedLoadStream.html#a837fbec1d47ae45480941de6290889c0"> 634</a></span>  <span class="keyword">typename</span> SharedLoadStreamB::FetchedFragment <a class="code" href="structcutlass_1_1gemm_1_1GemmTraits_1_1SharedLoadStream.html#a837fbec1d47ae45480941de6290889c0">fetched_b</a>[2];</div><div class="line"><a name="l00636"></a><span class="lineno"><a class="line" href="structcutlass_1_1gemm_1_1GemmTraits_1_1SharedLoadStream.html#a9369a5f819d2a42997491e0df96f47ef"> 636</a></span>  <span class="keyword">typename</span> SharedLoadStreamB::TransformedFragment <a class="code" href="structcutlass_1_1gemm_1_1GemmTraits_1_1SharedLoadStream.html#a9369a5f819d2a42997491e0df96f47ef">transformed_b</a>[2];</div><div class="line"><a name="l00637"></a><span class="lineno"> 637</span>  };</div><div class="line"><a name="l00638"></a><span class="lineno"> 638</span> </div><div class="line"><a name="l00640"></a><span class="lineno"><a class="line" href="structcutlass_1_1gemm_1_1GemmTraits.html#a475463c1e3af71598e22da8956900ebe"> 640</a></span>  <span class="keyword">static</span> CUTLASS_DEVICE <span class="keywordtype">void</span> <a class="code" href="structcutlass_1_1gemm_1_1GemmTraits.html#a475463c1e3af71598e22da8956900ebe">shared_load_fence</a>(<span class="keywordtype">bool</span> in_loop) {</div><div class="line"><a name="l00641"></a><span class="lineno"> 641</span>  <span class="keywordflow">if</span> (SharedLoadStreamA::Iterator::kRequiresLoadFence ||</div><div class="line"><a name="l00642"></a><span class="lineno"> 642</span>  SharedLoadStreamB::Iterator::kRequiresLoadFence) {</div><div class="line"><a name="l00643"></a><span class="lineno"> 643</span>  __syncthreads();</div><div class="line"><a name="l00644"></a><span class="lineno"> 644</span>  }</div><div class="line"><a name="l00645"></a><span class="lineno"> 645</span>  }</div><div class="line"><a name="l00646"></a><span class="lineno"> 646</span> </div><div class="line"><a name="l00648"></a><span class="lineno"><a class="line" href="structcutlass_1_1gemm_1_1GemmTraits.html#ac3c840a3d90c0da43301761af83c2c9f"> 648</a></span>  <span class="keyword">static</span> CUTLASS_DEVICE <span class="keywordtype">void</span> <a class="code" href="structcutlass_1_1gemm_1_1GemmTraits.html#ac3c840a3d90c0da43301761af83c2c9f">shared_store_fence</a>(<span class="keywordtype">bool</span> in_loop) { __syncthreads(); }</div><div class="line"><a name="l00649"></a><span class="lineno"> 649</span> };</div><div class="line"><a name="l00650"></a><span class="lineno"> 650</span> </div><div class="line"><a name="l00652"></a><span class="lineno"> 652</span> </div><div class="line"><a name="l00653"></a><span class="lineno"> 653</span> <span class="keyword">template</span> <<span class="keyword">typename</span> GemmTileTraitsHelperA_, <span class="keyword">typename</span> GemmTileTraitsHelperB_, <span class="keyword">typename</span> Index_></div><div class="line"><a name="l00654"></a><span class="lineno"><a class="line" href="structcutlass_1_1gemm_1_1SimplifiedGemmTraitsHelper.html"> 654</a></span> <span class="keyword">struct </span><a class="code" href="structcutlass_1_1gemm_1_1SimplifiedGemmTraitsHelper.html">SimplifiedGemmTraitsHelper</a> {</div><div class="line"><a name="l00656"></a><span class="lineno"> 656</span>  <span class="keyword">typedef</span> <a class="code" href="structcutlass_1_1gemm_1_1GemmGlobalIteratorAb.html">GemmGlobalIteratorAb<typename GemmTileTraitsHelperA_::GlobalTileTraits, Index_></a></div><div class="line"><a name="l00657"></a><span class="lineno"><a class="line" href="structcutlass_1_1gemm_1_1SimplifiedGemmTraitsHelper.html#a5687850f235d644a4820851880740d27"> 657</a></span>  <a class="code" href="structcutlass_1_1gemm_1_1SimplifiedGemmTraitsHelper.html#a5687850f235d644a4820851880740d27">GlobalLoadIteratorA</a>;</div><div class="line"><a name="l00659"></a><span class="lineno"><a class="line" href="structcutlass_1_1gemm_1_1SimplifiedGemmTraitsHelper.html#af9a98d39d6959a9641f7c3c90df2f98e"> 659</a></span>  <span class="keyword">typedef</span> <a class="code" href="structcutlass_1_1Copy.html">Copy<typename GlobalLoadIteratorA::Fragment></a> <a class="code" href="structcutlass_1_1gemm_1_1SimplifiedGemmTraitsHelper.html#af9a98d39d6959a9641f7c3c90df2f98e">GlobalTransformerA</a>;</div><div class="line"><a name="l00661"></a><span class="lineno"> 661</span>  <span class="keyword">typedef</span> <a class="code" href="structcutlass_1_1TileStoreIterator.html">TileStoreIterator</a><<span class="keyword">typename</span> GemmTileTraitsHelperA_::SharedStoreTileTraits,</div><div class="line"><a name="l00662"></a><span class="lineno"> 662</span>  <span class="keyword">typename</span> GemmTileTraitsHelperA_::SharedStoreTileTraits::Scalar,</div><div class="line"><a name="l00663"></a><span class="lineno"> 663</span>  <a class="code" href="structcutlass_1_1IteratorAdvance.html#a9ad9c2302ddffa148d47cdcf6c738ddaacfe756fca665eb1bbf389850915c1b81">IteratorAdvance::kH</a>,</div><div class="line"><a name="l00664"></a><span class="lineno"> 664</span>  <a class="code" href="structcutlass_1_1MemorySpace.html#a1e031ec41668015a8fe4ba2c1145d03ca2804339b2be64ff68ae3042073aaa7cc">MemorySpace::kShared</a>></div><div class="line"><a name="l00665"></a><span class="lineno"><a class="line" href="structcutlass_1_1gemm_1_1SimplifiedGemmTraitsHelper.html#a3a20852daeb46c625b2391d078b30d73"> 665</a></span>  <a class="code" href="structcutlass_1_1gemm_1_1SimplifiedGemmTraitsHelper.html#a3a20852daeb46c625b2391d078b30d73">SharedStoreIteratorA</a>;</div><div class="line"><a name="l00667"></a><span class="lineno"> 667</span>  <span class="keyword">typedef</span> <a class="code" href="structcutlass_1_1gemm_1_1GlobalLoadStream.html">GlobalLoadStream<GlobalLoadIteratorA, SharedStoreIteratorA, GlobalTransformerA></a></div><div class="line"><a name="l00668"></a><span class="lineno"><a class="line" href="structcutlass_1_1gemm_1_1SimplifiedGemmTraitsHelper.html#a448c242880183e006b70d839d210a2ec"> 668</a></span>  <a class="code" href="structcutlass_1_1gemm_1_1SimplifiedGemmTraitsHelper.html#a448c242880183e006b70d839d210a2ec">GlobalLoadStreamA</a>;</div><div class="line"><a name="l00669"></a><span class="lineno"> 669</span> </div><div class="line"><a name="l00671"></a><span class="lineno"> 671</span>  <span class="keyword">typedef</span> <a class="code" href="structcutlass_1_1gemm_1_1GemmGlobalIteratorAb.html">GemmGlobalIteratorAb<typename GemmTileTraitsHelperB_::GlobalTileTraits, Index_></a></div><div class="line"><a name="l00672"></a><span class="lineno"><a class="line" href="structcutlass_1_1gemm_1_1SimplifiedGemmTraitsHelper.html#a362794738bc14b283a91558bcadbbfd5"> 672</a></span>  <a class="code" href="structcutlass_1_1gemm_1_1SimplifiedGemmTraitsHelper.html#a362794738bc14b283a91558bcadbbfd5">GlobalLoadIteratorB</a>;</div><div class="line"><a name="l00674"></a><span class="lineno"><a class="line" href="structcutlass_1_1gemm_1_1SimplifiedGemmTraitsHelper.html#a437070ba4a214aee363315d6019e450c"> 674</a></span>  <span class="keyword">typedef</span> <a class="code" href="structcutlass_1_1Copy.html">Copy<typename GlobalLoadIteratorB::Fragment></a> <a class="code" href="structcutlass_1_1gemm_1_1SimplifiedGemmTraitsHelper.html#a437070ba4a214aee363315d6019e450c">GlobalTransformerB</a>;</div><div class="line"><a name="l00676"></a><span class="lineno"> 676</span>  <span class="keyword">typedef</span> <a class="code" href="structcutlass_1_1TileStoreIterator.html">TileStoreIterator</a><<span class="keyword">typename</span> GemmTileTraitsHelperB_::SharedStoreTileTraits,</div><div class="line"><a name="l00677"></a><span class="lineno"> 677</span>  <span class="keyword">typename</span> GemmTileTraitsHelperB_::SharedStoreTileTraits::Scalar,</div><div class="line"><a name="l00678"></a><span class="lineno"> 678</span>  <a class="code" href="structcutlass_1_1IteratorAdvance.html#a9ad9c2302ddffa148d47cdcf6c738ddaacfe756fca665eb1bbf389850915c1b81">IteratorAdvance::kH</a>,</div><div class="line"><a name="l00679"></a><span class="lineno"> 679</span>  <a class="code" href="structcutlass_1_1MemorySpace.html#a1e031ec41668015a8fe4ba2c1145d03ca2804339b2be64ff68ae3042073aaa7cc">MemorySpace::kShared</a>></div><div class="line"><a name="l00680"></a><span class="lineno"><a class="line" href="structcutlass_1_1gemm_1_1SimplifiedGemmTraitsHelper.html#a43713f534798b1e27c4ba38b72e63c08"> 680</a></span>  <a class="code" href="structcutlass_1_1gemm_1_1SimplifiedGemmTraitsHelper.html#a43713f534798b1e27c4ba38b72e63c08">SharedStoreIteratorB</a>;</div><div class="line"><a name="l00682"></a><span class="lineno"> 682</span>  <span class="keyword">typedef</span> <a class="code" href="structcutlass_1_1gemm_1_1GlobalLoadStream.html">GlobalLoadStream<GlobalLoadIteratorB, SharedStoreIteratorB, GlobalTransformerB></a></div><div class="line"><a name="l00683"></a><span class="lineno"><a class="line" href="structcutlass_1_1gemm_1_1SimplifiedGemmTraitsHelper.html#aad467ed9a680b4d77acecb096799cd89"> 683</a></span>  <a class="code" href="structcutlass_1_1gemm_1_1SimplifiedGemmTraitsHelper.html#aad467ed9a680b4d77acecb096799cd89">GlobalLoadStreamB</a>;</div><div class="line"><a name="l00684"></a><span class="lineno"> 684</span> </div><div class="line"><a name="l00686"></a><span class="lineno"> 686</span>  <span class="keyword">typedef</span> <a class="code" href="structcutlass_1_1TileLoadIterator.html">TileLoadIterator</a><<span class="keyword">typename</span> GemmTileTraitsHelperA_::SharedLoadTileTraits,</div><div class="line"><a name="l00687"></a><span class="lineno"> 687</span>  <span class="keyword">typename</span> GemmTileTraitsHelperA_::Scalar,</div><div class="line"><a name="l00688"></a><span class="lineno"> 688</span>  <a class="code" href="structcutlass_1_1IteratorAdvance.html#a9ad9c2302ddffa148d47cdcf6c738ddaacfe756fca665eb1bbf389850915c1b81">IteratorAdvance::kH</a>,</div><div class="line"><a name="l00689"></a><span class="lineno"> 689</span>  <a class="code" href="structcutlass_1_1MemorySpace.html#a1e031ec41668015a8fe4ba2c1145d03ca2804339b2be64ff68ae3042073aaa7cc">MemorySpace::kShared</a>></div><div class="line"><a name="l00690"></a><span class="lineno"><a class="line" href="structcutlass_1_1gemm_1_1SimplifiedGemmTraitsHelper.html#a365aed4c0e2ad1bffea517ee36998557"> 690</a></span>  <a class="code" href="structcutlass_1_1gemm_1_1SimplifiedGemmTraitsHelper.html#a365aed4c0e2ad1bffea517ee36998557">SharedLoadIteratorA</a>;</div><div class="line"><a name="l00692"></a><span class="lineno"><a class="line" href="structcutlass_1_1gemm_1_1SimplifiedGemmTraitsHelper.html#aa5ebe3a857b55412a86ec65ad1c55dd8"> 692</a></span>  <span class="keyword">typedef</span> <a class="code" href="structcutlass_1_1gemm_1_1SharedLoadStream.html">SharedLoadStream<SharedLoadIteratorA></a> <a class="code" href="structcutlass_1_1gemm_1_1SimplifiedGemmTraitsHelper.html#aa5ebe3a857b55412a86ec65ad1c55dd8">SharedLoadStreamA</a>;</div><div class="line"><a name="l00694"></a><span class="lineno"> 694</span>  <span class="keyword">typedef</span> <a class="code" href="structcutlass_1_1TileLoadIterator.html">TileLoadIterator</a><<span class="keyword">typename</span> GemmTileTraitsHelperB_::SharedLoadTileTraits,</div><div class="line"><a name="l00695"></a><span class="lineno"> 695</span>  <span class="keyword">typename</span> GemmTileTraitsHelperB_::Scalar,</div><div class="line"><a name="l00696"></a><span class="lineno"> 696</span>  <a class="code" href="structcutlass_1_1IteratorAdvance.html#a9ad9c2302ddffa148d47cdcf6c738ddaacfe756fca665eb1bbf389850915c1b81">IteratorAdvance::kH</a>,</div><div class="line"><a name="l00697"></a><span class="lineno"> 697</span>  <a class="code" href="structcutlass_1_1MemorySpace.html#a1e031ec41668015a8fe4ba2c1145d03ca2804339b2be64ff68ae3042073aaa7cc">MemorySpace::kShared</a>></div><div class="line"><a name="l00698"></a><span class="lineno"><a class="line" href="structcutlass_1_1gemm_1_1SimplifiedGemmTraitsHelper.html#a4de905aadc734df69fd0db83f01be56e"> 698</a></span>  <a class="code" href="structcutlass_1_1gemm_1_1SimplifiedGemmTraitsHelper.html#a4de905aadc734df69fd0db83f01be56e">SharedLoadIteratorB</a>;</div><div class="line"><a name="l00700"></a><span class="lineno"><a class="line" href="structcutlass_1_1gemm_1_1SimplifiedGemmTraitsHelper.html#a12447ce4d11601a625662f9d177cc3d8"> 700</a></span>  <span class="keyword">typedef</span> <a class="code" href="structcutlass_1_1gemm_1_1SharedLoadStream.html">SharedLoadStream<SharedLoadIteratorB></a> <a class="code" href="structcutlass_1_1gemm_1_1SimplifiedGemmTraitsHelper.html#a12447ce4d11601a625662f9d177cc3d8">SharedLoadStreamB</a>;</div><div class="line"><a name="l00701"></a><span class="lineno"> 701</span> };</div><div class="line"><a name="l00702"></a><span class="lineno"> 702</span> </div><div class="line"><a name="l00704"></a><span class="lineno"> 704</span> </div><div class="line"><a name="l00705"></a><span class="lineno"> 705</span> <span class="keyword">template</span> <</div><div class="line"><a name="l00707"></a><span class="lineno"> 707</span>  <a class="code" href="structcutlass_1_1MatrixLayout.html#a97ef07af21b122c1804245b0c7784d2b">MatrixLayout::Kind</a> kLayoutA_,</div><div class="line"><a name="l00709"></a><span class="lineno"> 709</span>  <a class="code" href="structcutlass_1_1MatrixLayout.html#a97ef07af21b122c1804245b0c7784d2b">MatrixLayout::Kind</a> kLayoutB_,</div><div class="line"><a name="l00711"></a><span class="lineno"> 711</span>  <span class="keyword">typename</span> GemmConfig_,</div><div class="line"><a name="l00713"></a><span class="lineno"> 713</span>  <span class="keyword">typename</span> Epilogue_,</div><div class="line"><a name="l00715"></a><span class="lineno"> 715</span>  <span class="keyword">typename</span> Index_ = int,</div><div class="line"><a name="l00716"></a><span class="lineno"> 716</span>  <span class="comment">// The configuration for the A matrix.</span></div><div class="line"><a name="l00717"></a><span class="lineno"> 717</span>  <span class="keyword">typename</span> GemmTileTraitsHelperA_ = <a class="code" href="structcutlass_1_1gemm_1_1GemmTileTraitsHelperA.html">GemmTileTraitsHelperA<kLayoutA_, GemmConfig_></a>,</div><div class="line"><a name="l00718"></a><span class="lineno"> 718</span>  <span class="comment">// The configuration for the B matrix.</span></div><div class="line"><a name="l00719"></a><span class="lineno"> 719</span>  <span class="keyword">typename</span> GemmTileTraitsHelperB_ = <a class="code" href="structcutlass_1_1gemm_1_1GemmTileTraitsHelperB.html">GemmTileTraitsHelperB<kLayoutB_, GemmConfig_></a>,</div><div class="line"><a name="l00720"></a><span class="lineno"> 720</span>  <span class="comment">// The helper class to create the streams and iterators.</span></div><div class="line"><a name="l00721"></a><span class="lineno"> 721</span>  <span class="keyword">typename</span> Helper_ =</div><div class="line"><a name="l00722"></a><span class="lineno"> 722</span>  <a class="code" href="structcutlass_1_1gemm_1_1SimplifiedGemmTraitsHelper.html">SimplifiedGemmTraitsHelper<GemmTileTraitsHelperA_, GemmTileTraitsHelperB_, Index_></a> ></div><div class="line"><a name="l00723"></a><span class="lineno"><a class="line" href="structcutlass_1_1gemm_1_1SimplifiedGemmTraits.html"> 723</a></span> <span class="keyword">struct </span><a class="code" href="structcutlass_1_1gemm_1_1SimplifiedGemmTraits.html">SimplifiedGemmTraits</a> : <span class="keyword">public</span> <a class="code" href="structcutlass_1_1gemm_1_1GemmTraits.html">GemmTraits</a><</div><div class="line"><a name="l00724"></a><span class="lineno"> 724</span>  <span class="comment">// The config.</span></div><div class="line"><a name="l00725"></a><span class="lineno"> 725</span>  GemmConfig_,</div><div class="line"><a name="l00726"></a><span class="lineno"> 726</span>  <span class="comment">// The stream to load A from global memory to shared memory.</span></div><div class="line"><a name="l00727"></a><span class="lineno"> 727</span>  typename Helper_::GlobalLoadStreamA,</div><div class="line"><a name="l00728"></a><span class="lineno"> 728</span>  <span class="comment">// The stream to load B from global memory to shared memory.</span></div><div class="line"><a name="l00729"></a><span class="lineno"> 729</span>  typename Helper_::GlobalLoadStreamB,</div><div class="line"><a name="l00730"></a><span class="lineno"> 730</span>  <span class="comment">// The stream to load A from shared memory.</span></div><div class="line"><a name="l00731"></a><span class="lineno"> 731</span>  typename Helper_::SharedLoadStreamA,</div><div class="line"><a name="l00732"></a><span class="lineno"> 732</span>  <span class="comment">// The stream to load B from shared memory.</span></div><div class="line"><a name="l00733"></a><span class="lineno"> 733</span>  typename Helper_::SharedLoadStreamB,</div><div class="line"><a name="l00734"></a><span class="lineno"> 734</span>  <span class="comment">// The epilogue.</span></div><div class="line"><a name="l00735"></a><span class="lineno"> 735</span>  Epilogue_,</div><div class="line"><a name="l00736"></a><span class="lineno"> 736</span>  <span class="comment">// The block swizzle to reorganize the grid.</span></div><div class="line"><a name="l00737"></a><span class="lineno"> 737</span>  IdentityBlockSwizzle,</div><div class="line"><a name="l00738"></a><span class="lineno"> 738</span>  <span class="comment">// The index.</span></div><div class="line"><a name="l00739"></a><span class="lineno"> 739</span>  Index_,</div><div class="line"><a name="l00740"></a><span class="lineno"> 740</span>  <span class="comment">// The tool used to clear accumulators.</span></div><div class="line"><a name="l00741"></a><span class="lineno"> 741</span>  ClearAccumulators<typename GemmConfig_::Accumulators::Element> > {</div><div class="line"><a name="l00742"></a><span class="lineno"> 742</span> };</div><div class="line"><a name="l00743"></a><span class="lineno"> 743</span> </div><div class="line"><a name="l00745"></a><span class="lineno"> 745</span> </div><div class="line"><a name="l00746"></a><span class="lineno"> 746</span> } <span class="comment">// namespace gemm</span></div><div class="line"><a name="l00747"></a><span class="lineno"> 747</span> } <span class="comment">// namespace cutlass</span></div><div class="ttc" id="structcutlass_1_1gemm_1_1GemmTraits_1_1Params_html_a437d4b6f1f149849c5ae635a5993e7ac"><div class="ttname"><a href="structcutlass_1_1gemm_1_1GemmTraits_1_1Params.html#a437d4b6f1f149849c5ae635a5993e7ac">cutlass::gemm::GemmTraits::Params::n</a></div><div class="ttdeci">Index n</div><div class="ttdef"><b>Definition:</b> gemm_traits.h:483</div></div>
|
|
<div class="ttc" id="structcutlass_1_1gemm_1_1GemmConfig_html_a677d6a1711cc756b817095b7437cce0e"><div class="ttname"><a href="structcutlass_1_1gemm_1_1GemmConfig.html#a677d6a1711cc756b817095b7437cce0e">cutlass::gemm::GemmConfig::kWarpSize</a></div><div class="ttdeci">static int const kWarpSize</div><div class="ttdoc">The default warp size (32 threads per warp). </div><div class="ttdef"><b>Definition:</b> gemm_traits.h:104</div></div>
|
|
<div class="ttc" id="unioncutlass_1_1gemm_1_1GemmTraits_1_1SharedStorage_html_afdca9ac1d28e17efaa394f5831a60c04"><div class="ttname"><a href="unioncutlass_1_1gemm_1_1GemmTraits_1_1SharedStorage.html#afdca9ac1d28e17efaa394f5831a60c04">cutlass::gemm::GemmTraits::SharedStorage::epilogue</a></div><div class="ttdeci">Epilogue::SharedStorage epilogue</div><div class="ttdef"><b>Definition:</b> gemm_traits.h:547</div></div>
|
|
<div class="ttc" id="structcutlass_1_1gemm_1_1GemmConfig_html_accc95abc55880abdab92253367b4b186"><div class="ttname"><a href="structcutlass_1_1gemm_1_1GemmConfig.html#accc95abc55880abdab92253367b4b186">cutlass::gemm::GemmConfig::kScalarsPerStsA</a></div><div class="ttdeci">static int const kScalarsPerStsA</div><div class="ttdef"><b>Definition:</b> gemm_traits.h:110</div></div>
|
|
<div class="ttc" id="structcutlass_1_1gemm_1_1GemmTileTraitsHelperB_3_01MatrixLayout_1_1kColumnMajor_00_01GemmConfig___01_4_html_a118bb34a6f58c3e5a989773b4b597d8c"><div class="ttname"><a href="structcutlass_1_1gemm_1_1GemmTileTraitsHelperB_3_01MatrixLayout_1_1kColumnMajor_00_01GemmConfig___01_4.html#a118bb34a6f58c3e5a989773b4b597d8c">cutlass::gemm::GemmTileTraitsHelperB< MatrixLayout::kColumnMajor, GemmConfig_ >::SharedLoadTileTraits</a></div><div class="ttdeci">GemmSharedLoadTileBTraits< MultiplyAddScalar const, typename GemmConfig_::OutputTile, typename GemmConfig_::Warps, typename GemmConfig_::MultiplyAdd::ThreadsPerWarp, typename GemmConfig_::InstructionShape, GemmConfig_::kStages, GemmConfig_::kScalarsPerLdsB, SharedStoreTileTraits::kSkew > SharedLoadTileTraits</div><div class="ttdoc">The traits class to build the iterator to load from shared memory for B^N. </div><div class="ttdef"><b>Definition:</b> gemm_traits.h:340</div></div>
|
|
<div class="ttc" id="structcutlass_1_1gemm_1_1GemmConfig_html_a9d1e4e364be8fd9de5e1199d93ad76aa"><div class="ttname"><a href="structcutlass_1_1gemm_1_1GemmConfig.html#a9d1e4e364be8fd9de5e1199d93ad76aa">cutlass::gemm::GemmConfig::ScalarA</a></div><div class="ttdeci">ScalarA_ ScalarA</div><div class="ttdoc">The scalar for A. </div><div class="ttdef"><b>Definition:</b> gemm_traits.h:82</div></div>
|
|
<div class="ttc" id="structcutlass_1_1gemm_1_1GemmTraits_html_a9cd6c3fddfb4315eb52b672900462c47"><div class="ttname"><a href="structcutlass_1_1gemm_1_1GemmTraits.html#a9cd6c3fddfb4315eb52b672900462c47">cutlass::gemm::GemmTraits::GlobalLoadStreamA</a></div><div class="ttdeci">GlobalLoadStreamA_ GlobalLoadStreamA</div><div class="ttdoc">The stream to load A from global memory to shared memory. </div><div class="ttdef"><b>Definition:</b> gemm_traits.h:435</div></div>
|
|
<div class="ttc" id="structcutlass_1_1gemm_1_1GemmEpilogue_html_a4887b56a96694ce6350db77f78bb505f"><div class="ttname"><a href="structcutlass_1_1gemm_1_1GemmEpilogue.html#a4887b56a96694ce6350db77f78bb505f">cutlass::gemm::GemmEpilogue::ScalarD</a></div><div class="ttdeci">GlobalStoreIteratorD::Scalar ScalarD</div><div class="ttdoc">The scalar for D. </div><div class="ttdef"><b>Definition:</b> gemm_epilogue.h:98</div></div>
|
|
<div class="ttc" id="structcutlass_1_1gemm_1_1GemmConfig_html_a8669096ddbb8c810fb8d2313d62e6ee7"><div class="ttname"><a href="structcutlass_1_1gemm_1_1GemmConfig.html#a8669096ddbb8c810fb8d2313d62e6ee7">cutlass::gemm::GemmConfig::MultiplyAdd</a></div><div class="ttdeci">MultiplyAdd_ MultiplyAdd</div><div class="ttdoc">The functor to do D = A*B + C. </div><div class="ttdef"><b>Definition:</b> gemm_traits.h:93</div></div>
|
|
<div class="ttc" id="structcutlass_1_1gemm_1_1GemmConfig_html_abbdd356f280099269867e614684645cf"><div class="ttname"><a href="structcutlass_1_1gemm_1_1GemmConfig.html#abbdd356f280099269867e614684645cf">cutlass::gemm::GemmConfig::kAccumulatorsPerLdsA</a></div><div class="ttdeci">static int const kAccumulatorsPerLdsA</div><div class="ttdoc">The number of accumulators that are going to be fed from one LDS A/B. </div><div class="ttdef"><b>Definition:</b> gemm_traits.h:127</div></div>
|
|
<div class="ttc" id="structcutlass_1_1MemorySpace_html_a1e031ec41668015a8fe4ba2c1145d03ca2804339b2be64ff68ae3042073aaa7cc"><div class="ttname"><a href="structcutlass_1_1MemorySpace.html#a1e031ec41668015a8fe4ba2c1145d03ca2804339b2be64ff68ae3042073aaa7cc">cutlass::MemorySpace::kShared</a></div><div class="ttdef"><b>Definition:</b> load_store.h:42</div></div>
|
|
<div class="ttc" id="structcutlass_1_1gemm_1_1GemmConfig_html_aa1b75484138923a52b32888fef608d9b"><div class="ttname"><a href="structcutlass_1_1gemm_1_1GemmConfig.html#aa1b75484138923a52b32888fef608d9b">cutlass::gemm::GemmConfig::kScalarsPerLdsA</a></div><div class="ttdeci">static int const kScalarsPerLdsA</div><div class="ttdef"><b>Definition:</b> gemm_traits.h:111</div></div>
|
|
<div class="ttc" id="structcutlass_1_1gemm_1_1GemmTraits_html_ae01371eb31b88fa83c4926564cecafdc"><div class="ttname"><a href="structcutlass_1_1gemm_1_1GemmTraits.html#ae01371eb31b88fa83c4926564cecafdc">cutlass::gemm::GemmTraits::SharedLoadStreamA</a></div><div class="ttdeci">SharedLoadStreamA_ SharedLoadStreamA</div><div class="ttdoc">The iterator for A to load from shared memory. </div><div class="ttdef"><b>Definition:</b> gemm_traits.h:449</div></div>
|
|
<div class="ttc" id="structcutlass_1_1gemm_1_1GemmConfig_html_a3a57d05f50932d718538f0d1ededa95b"><div class="ttname"><a href="structcutlass_1_1gemm_1_1GemmConfig.html#a3a57d05f50932d718538f0d1ededa95b">cutlass::gemm::GemmConfig::InstructionShape</a></div><div class="ttdeci">MultiplyAdd::InstructionShape InstructionShape</div><div class="ttdoc">The shape of the instruction. </div><div class="ttdef"><b>Definition:</b> gemm_traits.h:95</div></div>
|
|
<div class="ttc" id="namespacecutlass_html"><div class="ttname"><a href="namespacecutlass.html">cutlass</a></div><div class="ttdef"><b>Definition:</b> convert.h:33</div></div>
|
|
<div class="ttc" id="structcutlass_1_1gemm_1_1GemmTraits_1_1Params_html_aa9937ec51d18aad02398d95095117978"><div class="ttname"><a href="structcutlass_1_1gemm_1_1GemmTraits_1_1Params.html#aa9937ec51d18aad02398d95095117978">cutlass::gemm::GemmTraits::Params::shared_stream_a</a></div><div class="ttdeci">SharedLoadStreamA::Params shared_stream_a</div><div class="ttdoc">The params for the A stream from shared memory. </div><div class="ttdef"><b>Definition:</b> gemm_traits.h:489</div></div>
|
|
<div class="ttc" id="structcutlass_1_1gemm_1_1GemmSharedLoadTileATraits_html"><div class="ttname"><a href="structcutlass_1_1gemm_1_1GemmSharedLoadTileATraits.html">cutlass::gemm::GemmSharedLoadTileATraits</a></div><div class="ttdef"><b>Definition:</b> gemm_shared_tile.h:129</div></div>
|
|
<div class="ttc" id="structcutlass_1_1gemm_1_1GemmTraits_html_ac393b07e780629fc8254fc22cc6f815b"><div class="ttname"><a href="structcutlass_1_1gemm_1_1GemmTraits.html#ac393b07e780629fc8254fc22cc6f815b">cutlass::gemm::GemmTraits::GlobalLoadStreamB</a></div><div class="ttdeci">GlobalLoadStreamB_ GlobalLoadStreamB</div><div class="ttdoc">The stream to load B from global memory to shared memory. </div><div class="ttdef"><b>Definition:</b> gemm_traits.h:442</div></div>
|
|
<div class="ttc" id="structcutlass_1_1gemm_1_1GemmSharedStoreWithSkewTileAbTraits_html"><div class="ttname"><a href="structcutlass_1_1gemm_1_1GemmSharedStoreWithSkewTileAbTraits.html">cutlass::gemm::GemmSharedStoreWithSkewTileAbTraits</a></div><div class="ttdef"><b>Definition:</b> gemm_shared_tile.h:80</div></div>
|
|
<div class="ttc" id="structcutlass_1_1gemm_1_1GemmTraits_1_1SharedLoadStream_html_a8851150a49e4a9c135279c8c9dfdc592"><div class="ttname"><a href="structcutlass_1_1gemm_1_1GemmTraits_1_1SharedLoadStream.html#a8851150a49e4a9c135279c8c9dfdc592">cutlass::gemm::GemmTraits::SharedLoadStream::inc_stage</a></div><div class="ttdeci">CUTLASS_DEVICE void inc_stage()</div><div class="ttdoc">Increment the stage. </div><div class="ttdef"><b>Definition:</b> gemm_traits.h:620</div></div>
|
|
<div class="ttc" id="structcutlass_1_1gemm_1_1SimplifiedGemmTraitsHelper_html_a3a20852daeb46c625b2391d078b30d73"><div class="ttname"><a href="structcutlass_1_1gemm_1_1SimplifiedGemmTraitsHelper.html#a3a20852daeb46c625b2391d078b30d73">cutlass::gemm::SimplifiedGemmTraitsHelper::SharedStoreIteratorA</a></div><div class="ttdeci">TileStoreIterator< typename GemmTileTraitsHelperA_::SharedStoreTileTraits, typename GemmTileTraitsHelperA_::SharedStoreTileTraits::Scalar, IteratorAdvance::kH, MemorySpace::kShared > SharedStoreIteratorA</div><div class="ttdoc">The iterator to store A to shared memory. </div><div class="ttdef"><b>Definition:</b> gemm_traits.h:665</div></div>
|
|
<div class="ttc" id="structcutlass_1_1gemm_1_1GemmConfig_html_a86470d3a44e2b50ee31ec3c9f79927ef"><div class="ttname"><a href="structcutlass_1_1gemm_1_1GemmConfig.html#a86470d3a44e2b50ee31ec3c9f79927ef">cutlass::gemm::GemmConfig::kScalarsPerLdsB</a></div><div class="ttdeci">static int const kScalarsPerLdsB</div><div class="ttdef"><b>Definition:</b> gemm_traits.h:116</div></div>
|
|
<div class="ttc" id="tile__iterator_8h_html"><div class="ttname"><a href="tile__iterator_8h.html">tile_iterator.h</a></div><div class="ttdoc">Defines the Tile Traits concept and iterators for loading and storing to tiles efficiently. </div></div>
|
|
<div class="ttc" id="structcutlass_1_1gemm_1_1GemmTraits_html_a3129be75ee087603170f8367e10e070e"><div class="ttname"><a href="structcutlass_1_1gemm_1_1GemmTraits.html#a3129be75ee087603170f8367e10e070e">cutlass::gemm::GemmTraits::ScalarD</a></div><div class="ttdeci">Epilogue::ScalarD ScalarD</div><div class="ttdef"><b>Definition:</b> gemm_traits.h:471</div></div>
|
|
<div class="ttc" id="unioncutlass_1_1gemm_1_1GemmTraits_1_1SharedStorage_html"><div class="ttname"><a href="unioncutlass_1_1gemm_1_1GemmTraits_1_1SharedStorage.html">cutlass::gemm::GemmTraits::SharedStorage</a></div><div class="ttdoc">The storage in shared memory. </div><div class="ttdef"><b>Definition:</b> gemm_traits.h:543</div></div>
|
|
<div class="ttc" id="structcutlass_1_1gemm_1_1SimplifiedGemmTraitsHelper_html_a12447ce4d11601a625662f9d177cc3d8"><div class="ttname"><a href="structcutlass_1_1gemm_1_1SimplifiedGemmTraitsHelper.html#a12447ce4d11601a625662f9d177cc3d8">cutlass::gemm::SimplifiedGemmTraitsHelper::SharedLoadStreamB</a></div><div class="ttdeci">SharedLoadStream< SharedLoadIteratorB > SharedLoadStreamB</div><div class="ttdoc">The stream to load B from shared memory. </div><div class="ttdef"><b>Definition:</b> gemm_traits.h:700</div></div>
|
|
<div class="ttc" id="structcutlass_1_1gemm_1_1GemmTraits_1_1Params_html_aae3a008b39f9678a03192f6ff54152d8"><div class="ttname"><a href="structcutlass_1_1gemm_1_1GemmTraits_1_1Params.html#aae3a008b39f9678a03192f6ff54152d8">cutlass::gemm::GemmTraits::Params::k</a></div><div class="ttdeci">Index k</div><div class="ttdef"><b>Definition:</b> gemm_traits.h:483</div></div>
|
|
<div class="ttc" id="unioncutlass_1_1gemm_1_1GemmTraits_1_1StreamSharedStorage_html"><div class="ttname"><a href="unioncutlass_1_1gemm_1_1GemmTraits_1_1StreamSharedStorage.html">cutlass::gemm::GemmTraits::StreamSharedStorage</a></div><div class="ttdef"><b>Definition:</b> gemm_traits.h:525</div></div>
|
|
<div class="ttc" id="structcutlass_1_1gemm_1_1GemmGlobalTileTraits_html"><div class="ttname"><a href="structcutlass_1_1gemm_1_1GemmGlobalTileTraits.html">cutlass::gemm::GemmGlobalTileTraits</a></div><div class="ttdef"><b>Definition:</b> gemm_global_tile.h:70</div></div>
|
|
<div class="ttc" id="structcutlass_1_1gemm_1_1GemmTraits_1_1SharedLoadStream_html_a3147da380e4c1e465aba0b965ac87ab5"><div class="ttname"><a href="structcutlass_1_1gemm_1_1GemmTraits_1_1SharedLoadStream.html#a3147da380e4c1e465aba0b965ac87ab5">cutlass::gemm::GemmTraits::SharedLoadStream::fetched_a</a></div><div class="ttdeci">SharedLoadStreamA::FetchedFragment fetched_a[2]</div><div class="ttdoc">The fragments to fetch A. </div><div class="ttdef"><b>Definition:</b> gemm_traits.h:628</div></div>
|
|
<div class="ttc" id="namespacecutlass_html_a7419519fa453a121dfa5f26bf87318d9"><div class="ttname"><a href="namespacecutlass.html#a7419519fa453a121dfa5f26bf87318d9">cutlass::make_Coord</a></div><div class="ttdeci">CUTLASS_HOST_DEVICE Coord< 1 > make_Coord(int _0)</div><div class="ttdoc">Helper to make a 2-element coordinate. </div><div class="ttdef"><b>Definition:</b> coord.h:241</div></div>
|
|
<div class="ttc" id="structcutlass_1_1gemm_1_1GemmTileTraitsHelperB_3_01MatrixLayout_1_1kColumnMajor_00_01GemmConfig___01_4_html_a8ae7db3f2f0c57779729d500386c004c"><div class="ttname"><a href="structcutlass_1_1gemm_1_1GemmTileTraitsHelperB_3_01MatrixLayout_1_1kColumnMajor_00_01GemmConfig___01_4.html#a8ae7db3f2f0c57779729d500386c004c">cutlass::gemm::GemmTileTraitsHelperB< MatrixLayout::kColumnMajor, GemmConfig_ >::Scalar</a></div><div class="ttdeci">GemmConfig_::ScalarB Scalar</div><div class="ttdoc">The input scalar. </div><div class="ttdef"><b>Definition:</b> gemm_traits.h:283</div></div>
|
|
<div class="ttc" id="structcutlass_1_1gemm_1_1GemmTileTraitsHelperB_3_01MatrixLayout_1_1kRowMajor_00_01GemmConfig___01_4_html_acbeea56f0ce95ddd632db3482c1021e5"><div class="ttname"><a href="structcutlass_1_1gemm_1_1GemmTileTraitsHelperB_3_01MatrixLayout_1_1kRowMajor_00_01GemmConfig___01_4.html#acbeea56f0ce95ddd632db3482c1021e5">cutlass::gemm::GemmTileTraitsHelperB< MatrixLayout::kRowMajor, GemmConfig_ >::SharedStoreTileTraits</a></div><div class="ttdeci">GemmSharedStoreTileAbTraits< MultiplyAddScalar, Shape< GemmConfig_::kStages, GemmConfig_::OutputTile::kD/GemmConfig_::InstructionShape::kD, GemmConfig_::OutputTile::kH *GemmConfig_::InstructionShape::kD >, typename GlobalTileTraits::Threads, GemmConfig_::kScalarsPerStsB > SharedStoreTileTraits</div><div class="ttdoc">The traits class to build the iterator to store data to shared memory for B^T. </div><div class="ttdef"><b>Definition:</b> gemm_traits.h:383</div></div>
|
|
<div class="ttc" id="structcutlass_1_1gemm_1_1GemmTraits_html_acaeb27063a444e2a3b93f3cb70e3c290"><div class="ttname"><a href="structcutlass_1_1gemm_1_1GemmTraits.html#acaeb27063a444e2a3b93f3cb70e3c290">cutlass::gemm::GemmTraits::SharedLoadStreamB</a></div><div class="ttdeci">SharedLoadStreamB_ SharedLoadStreamB</div><div class="ttdoc">The iterator for B to load from shared memory. </div><div class="ttdef"><b>Definition:</b> gemm_traits.h:451</div></div>
|
|
<div class="ttc" id="structcutlass_1_1gemm_1_1GemmConfig_html_a3633083f4f778215543e376c092745d7"><div class="ttname"><a href="structcutlass_1_1gemm_1_1GemmConfig.html#a3633083f4f778215543e376c092745d7">cutlass::gemm::GemmConfig::kScalarsPerStgD</a></div><div class="ttdeci">static int const kScalarsPerStgD</div><div class="ttdoc">The number of scalars per STS/LDS/STG for D. </div><div class="ttdef"><b>Definition:</b> gemm_traits.h:122</div></div>
|
|
<div class="ttc" id="structcutlass_1_1gemm_1_1GemmTraits_1_1SharedLoadStream_html_af25495bb0bb35bd64246d3a80fe4806f"><div class="ttname"><a href="structcutlass_1_1gemm_1_1GemmTraits_1_1SharedLoadStream.html#af25495bb0bb35bd64246d3a80fe4806f">cutlass::gemm::GemmTraits::SharedLoadStream::copy</a></div><div class="ttdeci">CUTLASS_DEVICE void copy(int step)</div><div class="ttdoc">Trigger the copies from shared memory to registers. </div><div class="ttdef"><b>Definition:</b> gemm_traits.h:598</div></div>
|
|
<div class="ttc" id="structcutlass_1_1gemm_1_1GemmTileTraitsHelperB_3_01MatrixLayout_1_1kColumnMajor_00_01GemmConfig___01_4_html_a5fee0ed52326c0685e8d8295e40ce064"><div class="ttname"><a href="structcutlass_1_1gemm_1_1GemmTileTraitsHelperB_3_01MatrixLayout_1_1kColumnMajor_00_01GemmConfig___01_4.html#a5fee0ed52326c0685e8d8295e40ce064">cutlass::gemm::GemmTileTraitsHelperB< MatrixLayout::kColumnMajor, GemmConfig_ >::GlobalTileTraits</a></div><div class="ttdeci">GemmGlobalTileTraits< GemmOperand::kB, MatrixLayout::kColumnMajor, Scalar const, Shape< 1, GemmConfig_::OutputTile::kH, GemmConfig_::OutputTile::kD >, Shape< 1, GemmConfig_::kThreads/GemmConfig_::OutputTile::kD, GemmConfig_::OutputTile::kD >, GemmConfig_::kScalarsPerLdgB > GlobalTileTraits</div><div class="ttdoc">The traits class to build the iterator to load data from global memory for B^N. </div><div class="ttdef"><b>Definition:</b> gemm_traits.h:301</div></div>
|
|
<div class="ttc" id="structcutlass_1_1Copy_html"><div class="ttname"><a href="structcutlass_1_1Copy.html">cutlass::Copy</a></div><div class="ttdef"><b>Definition:</b> convert.h:69</div></div>
|
|
<div class="ttc" id="structcutlass_1_1Fragment_html"><div class="ttname"><a href="structcutlass_1_1Fragment.html">cutlass::Fragment</a></div><div class="ttdoc">A template defining Fragment Concept. </div><div class="ttdef"><b>Definition:</b> fragment.h:99</div></div>
|
|
<div class="ttc" id="structcutlass_1_1gemm_1_1GemmTraits_1_1SharedLoadStream_html_a8e68561561ac6b08efbfd116903198c8"><div class="ttname"><a href="structcutlass_1_1gemm_1_1GemmTraits_1_1SharedLoadStream.html#a8e68561561ac6b08efbfd116903198c8">cutlass::gemm::GemmTraits::SharedLoadStream::stream_a</a></div><div class="ttdeci">SharedLoadStreamA stream_a</div><div class="ttdoc">The stream for A. </div><div class="ttdef"><b>Definition:</b> gemm_traits.h:626</div></div>
|
|
<div class="ttc" id="structcutlass_1_1gemm_1_1SimplifiedGemmTraitsHelper_html_aa5ebe3a857b55412a86ec65ad1c55dd8"><div class="ttname"><a href="structcutlass_1_1gemm_1_1SimplifiedGemmTraitsHelper.html#aa5ebe3a857b55412a86ec65ad1c55dd8">cutlass::gemm::SimplifiedGemmTraitsHelper::SharedLoadStreamA</a></div><div class="ttdeci">SharedLoadStream< SharedLoadIteratorA > SharedLoadStreamA</div><div class="ttdoc">The stream to load A from shared memory. </div><div class="ttdef"><b>Definition:</b> gemm_traits.h:692</div></div>
|
|
<div class="ttc" id="structcutlass_1_1gemm_1_1GemmSharedStoreTileAbTraits_html"><div class="ttname"><a href="structcutlass_1_1gemm_1_1GemmSharedStoreTileAbTraits.html">cutlass::gemm::GemmSharedStoreTileAbTraits</a></div><div class="ttdef"><b>Definition:</b> gemm_shared_tile.h:38</div></div>
|
|
<div class="ttc" id="structcutlass_1_1gemm_1_1GemmConfig_html_ad8f262d7da093d07cdd5c6a4fd9aceea"><div class="ttname"><a href="structcutlass_1_1gemm_1_1GemmConfig.html#ad8f262d7da093d07cdd5c6a4fd9aceea">cutlass::gemm::GemmConfig::ScalarC</a></div><div class="ttdeci">ScalarC_ ScalarC</div><div class="ttdoc">The scalar for C. </div><div class="ttdef"><b>Definition:</b> gemm_traits.h:86</div></div>
|
|
<div class="ttc" id="structcutlass_1_1gemm_1_1GemmTraits_1_1GlobalLoadStream_html_ae033f55779b45b4228f40a4d699062bb"><div class="ttname"><a href="structcutlass_1_1gemm_1_1GemmTraits_1_1GlobalLoadStream.html#ae033f55779b45b4228f40a4d699062bb">cutlass::gemm::GemmTraits::GlobalLoadStream::copy</a></div><div class="ttdeci">CUTLASS_DEVICE void copy()</div><div class="ttdoc">Trigger the copies from shared memory to registers. </div><div class="ttdef"><b>Definition:</b> gemm_traits.h:566</div></div>
|
|
<div class="ttc" id="structcutlass_1_1gemm_1_1GemmTileTraitsHelperA_3_01MatrixLayout_1_1kColumnMajor_00_01GemmConfig___01_4_html_af534fc5698513af3c6724b68ae03316d"><div class="ttname"><a href="structcutlass_1_1gemm_1_1GemmTileTraitsHelperA_3_01MatrixLayout_1_1kColumnMajor_00_01GemmConfig___01_4.html#af534fc5698513af3c6724b68ae03316d">cutlass::gemm::GemmTileTraitsHelperA< MatrixLayout::kColumnMajor, GemmConfig_ >::SharedLoadTileTraits</a></div><div class="ttdeci">GemmSharedLoadTileATraits< MultiplyAddScalar const, typename GemmConfig_::OutputTile, typename GemmConfig_::Warps, typename GemmConfig_::MultiplyAdd::ThreadsPerWarp, typename GemmConfig_::InstructionShape, GemmConfig_::kStages, GemmConfig_::kScalarsPerLdsA, 0 > SharedLoadTileTraits</div><div class="ttdoc">The traits class to build the iterator to load from shared memory for A^N. </div><div class="ttdef"><b>Definition:</b> gemm_traits.h:199</div></div>
|
|
<div class="ttc" id="structcutlass_1_1gemm_1_1GemmTraits_html_a424f1ac14e1e7ad37428edd0cf13e7fe"><div class="ttname"><a href="structcutlass_1_1gemm_1_1GemmTraits.html#a424f1ac14e1e7ad37428edd0cf13e7fe">cutlass::gemm::GemmTraits::Epilogue</a></div><div class="ttdeci">Epilogue_ Epilogue</div><div class="ttdoc">The epilogue. </div><div class="ttdef"><b>Definition:</b> gemm_traits.h:468</div></div>
|
|
<div class="ttc" id="structcutlass_1_1gemm_1_1GemmTraits_html_a96d64bdc48db4971798b620d6b49b3f6"><div class="ttname"><a href="structcutlass_1_1gemm_1_1GemmTraits.html#a96d64bdc48db4971798b620d6b49b3f6">cutlass::gemm::GemmTraits::ScalarA</a></div><div class="ttdeci">GlobalLoadStreamA_::Scalar ScalarA</div><div class="ttdoc">The scalar for A. </div><div class="ttdef"><b>Definition:</b> gemm_traits.h:439</div></div>
|
|
<div class="ttc" id="structcutlass_1_1IteratorAdvance_html_a9ad9c2302ddffa148d47cdcf6c738ddaacfe756fca665eb1bbf389850915c1b81"><div class="ttname"><a href="structcutlass_1_1IteratorAdvance.html#a9ad9c2302ddffa148d47cdcf6c738ddaacfe756fca665eb1bbf389850915c1b81">cutlass::IteratorAdvance::kH</a></div><div class="ttdef"><b>Definition:</b> tile_iterator.h:62</div></div>
|
|
<div class="ttc" id="structcutlass_1_1gemm_1_1GemmTileTraitsHelperA_3_01MatrixLayout_1_1kColumnMajor_00_01GemmConfig___01_4_html_adc95f4a8617cdf28e5b5d7d2d1aefec2"><div class="ttname"><a href="structcutlass_1_1gemm_1_1GemmTileTraitsHelperA_3_01MatrixLayout_1_1kColumnMajor_00_01GemmConfig___01_4.html#adc95f4a8617cdf28e5b5d7d2d1aefec2">cutlass::gemm::GemmTileTraitsHelperA< MatrixLayout::kColumnMajor, GemmConfig_ >::GlobalTileTraits</a></div><div class="ttdeci">GemmGlobalTileTraits< GemmOperand::kA, MatrixLayout::kColumnMajor, Scalar const, Shape< 1, GemmConfig_::OutputTile::kD, GemmConfig_::OutputTile::kW >, Shape< 1, ShapeCount< typename GemmConfig_::Warps >::kCount, GemmConfig_::kWarpSize >, GemmConfig_::kScalarsPerLdgA > GlobalTileTraits</div><div class="ttdoc">The traits class to build the iterator to load data from global memory for A^N. </div><div class="ttdef"><b>Definition:</b> gemm_traits.h:165</div></div>
|
|
<div class="ttc" id="structcutlass_1_1gemm_1_1GemmConfig_html_abb6ba58a2f2d80db0b2c9c1d88454efd"><div class="ttname"><a href="structcutlass_1_1gemm_1_1GemmConfig.html#abb6ba58a2f2d80db0b2c9c1d88454efd">cutlass::gemm::GemmConfig::Warps</a></div><div class="ttdeci">ShapeDiv< OutputTile, AccumulatorsPerWarp >::Shape Warps</div><div class="ttdoc">The number of warps. </div><div class="ttdef"><b>Definition:</b> gemm_traits.h:102</div></div>
|
|
<div class="ttc" id="structcutlass_1_1gemm_1_1GemmTileTraitsHelperA_3_01MatrixLayout_1_1kColumnMajor_00_01GemmConfig___01_4_html_af511f0ff83166b2a77d4cad4150c8e8f"><div class="ttname"><a href="structcutlass_1_1gemm_1_1GemmTileTraitsHelperA_3_01MatrixLayout_1_1kColumnMajor_00_01GemmConfig___01_4.html#af511f0ff83166b2a77d4cad4150c8e8f">cutlass::gemm::GemmTileTraitsHelperA< MatrixLayout::kColumnMajor, GemmConfig_ >::Scalar</a></div><div class="ttdeci">GemmConfig_::ScalarA Scalar</div><div class="ttdoc">The input scalar. </div><div class="ttdef"><b>Definition:</b> gemm_traits.h:147</div></div>
|
|
<div class="ttc" id="structcutlass_1_1gemm_1_1GemmSharedLoadTileBTraits_html"><div class="ttname"><a href="structcutlass_1_1gemm_1_1GemmSharedLoadTileBTraits.html">cutlass::gemm::GemmSharedLoadTileBTraits</a></div><div class="ttdef"><b>Definition:</b> gemm_shared_tile.h:198</div></div>
|
|
<div class="ttc" id="structcutlass_1_1gemm_1_1GemmTraits_html_a438b80cd8d8df0e74014ae47a162f7ed"><div class="ttname"><a href="structcutlass_1_1gemm_1_1GemmTraits.html#a438b80cd8d8df0e74014ae47a162f7ed">cutlass::gemm::GemmTraits::SharedStoreStorageB</a></div><div class="ttdeci">GlobalLoadStreamB::SharedStoreStorage SharedStoreStorageB</div><div class="ttdoc">The shared storage for B. </div><div class="ttdef"><b>Definition:</b> gemm_traits.h:457</div></div>
|
|
<div class="ttc" id="structcutlass_1_1gemm_1_1GemmGlobalIteratorAb_html"><div class="ttname"><a href="structcutlass_1_1gemm_1_1GemmGlobalIteratorAb.html">cutlass::gemm::GemmGlobalIteratorAb</a></div><div class="ttdef"><b>Definition:</b> gemm_global_tile.h:159</div></div>
|
|
<div class="ttc" id="structcutlass_1_1gemm_1_1GemmTraits_html_a8f78d4a68817760099081523aa7fd443"><div class="ttname"><a href="structcutlass_1_1gemm_1_1GemmTraits.html#a8f78d4a68817760099081523aa7fd443">cutlass::gemm::GemmTraits::ScalarC</a></div><div class="ttdeci">Epilogue::ScalarC ScalarC</div><div class="ttdoc">The scalars in the epilogue. </div><div class="ttdef"><b>Definition:</b> gemm_traits.h:470</div></div>
|
|
<div class="ttc" id="structcutlass_1_1gemm_1_1SimplifiedGemmTraitsHelper_html_aad467ed9a680b4d77acecb096799cd89"><div class="ttname"><a href="structcutlass_1_1gemm_1_1SimplifiedGemmTraitsHelper.html#aad467ed9a680b4d77acecb096799cd89">cutlass::gemm::SimplifiedGemmTraitsHelper::GlobalLoadStreamB</a></div><div class="ttdeci">GlobalLoadStream< GlobalLoadIteratorB, SharedStoreIteratorB, GlobalTransformerB > GlobalLoadStreamB</div><div class="ttdoc">The stream to load B from global memory to shared memory. </div><div class="ttdef"><b>Definition:</b> gemm_traits.h:683</div></div>
|
|
<div class="ttc" id="structcutlass_1_1gemm_1_1GemmTraits_1_1SharedLoadStream_html_a1fdc6af44c14c88a94529d187fda176d"><div class="ttname"><a href="structcutlass_1_1gemm_1_1GemmTraits_1_1SharedLoadStream.html#a1fdc6af44c14c88a94529d187fda176d">cutlass::gemm::GemmTraits::SharedLoadStream::stream_b</a></div><div class="ttdeci">SharedLoadStreamB stream_b</div><div class="ttdoc">The stream for B. </div><div class="ttdef"><b>Definition:</b> gemm_traits.h:632</div></div>
|
|
<div class="ttc" id="structcutlass_1_1gemm_1_1GemmTraits_1_1SharedLoadStream_html"><div class="ttname"><a href="structcutlass_1_1gemm_1_1GemmTraits_1_1SharedLoadStream.html">cutlass::gemm::GemmTraits::SharedLoadStream</a></div><div class="ttdoc">Assemble the shared load stream for A/B. </div><div class="ttdef"><b>Definition:</b> gemm_traits.h:590</div></div>
|
|
<div class="ttc" id="structcutlass_1_1gemm_1_1GemmTraits_1_1GlobalLoadStream_html_acc287ce5e2f3635d9d55d91914d2d04c"><div class="ttname"><a href="structcutlass_1_1gemm_1_1GemmTraits_1_1GlobalLoadStream.html#acc287ce5e2f3635d9d55d91914d2d04c">cutlass::gemm::GemmTraits::GlobalLoadStream::stream_b</a></div><div class="ttdeci">GlobalLoadStreamB stream_b</div><div class="ttdoc">The stream for B. </div><div class="ttdef"><b>Definition:</b> gemm_traits.h:586</div></div>
|
|
<div class="ttc" id="structcutlass_1_1gemm_1_1GemmTraits_html_af810544e956b04830c5be7ce41d3b45c"><div class="ttname"><a href="structcutlass_1_1gemm_1_1GemmTraits.html#af810544e956b04830c5be7ce41d3b45c">cutlass::gemm::GemmTraits::MultiplyAdd</a></div><div class="ttdeci">GemmConfig::MultiplyAdd MultiplyAdd</div><div class="ttdoc">The multiply-add functor. </div><div class="ttdef"><b>Definition:</b> gemm_traits.h:463</div></div>
|
|
<div class="ttc" id="structcutlass_1_1gemm_1_1GemmTraits_html_a475463c1e3af71598e22da8956900ebe"><div class="ttname"><a href="structcutlass_1_1gemm_1_1GemmTraits.html#a475463c1e3af71598e22da8956900ebe">cutlass::gemm::GemmTraits::shared_load_fence</a></div><div class="ttdeci">static CUTLASS_DEVICE void shared_load_fence(bool in_loop)</div><div class="ttdoc">The memory fence for shared loads. </div><div class="ttdef"><b>Definition:</b> gemm_traits.h:640</div></div>
|
|
<div class="ttc" id="structcutlass_1_1gemm_1_1GemmTraits_html_a4efe5d156abca056ef8b5334fb574dd5"><div class="ttname"><a href="structcutlass_1_1gemm_1_1GemmTraits.html#a4efe5d156abca056ef8b5334fb574dd5">cutlass::gemm::GemmTraits::GemmConfig</a></div><div class="ttdeci">GemmConfig_ GemmConfig</div><div class="ttdoc">The configuration. </div><div class="ttdef"><b>Definition:</b> gemm_traits.h:430</div></div>
|
|
<div class="ttc" id="structcutlass_1_1gemm_1_1GlobalLoadStream_html"><div class="ttname"><a href="structcutlass_1_1gemm_1_1GlobalLoadStream.html">cutlass::gemm::GlobalLoadStream</a></div><div class="ttdef"><b>Definition:</b> gemm_global_stream.h:161</div></div>
|
|
<div class="ttc" id="structcutlass_1_1gemm_1_1GemmTraits_1_1SharedLoadStream_html_a9369a5f819d2a42997491e0df96f47ef"><div class="ttname"><a href="structcutlass_1_1gemm_1_1GemmTraits_1_1SharedLoadStream.html#a9369a5f819d2a42997491e0df96f47ef">cutlass::gemm::GemmTraits::SharedLoadStream::transformed_b</a></div><div class="ttdeci">SharedLoadStreamB::TransformedFragment transformed_b[2]</div><div class="ttdoc">The fragments to transform B. </div><div class="ttdef"><b>Definition:</b> gemm_traits.h:636</div></div>
|
|
<div class="ttc" id="structcutlass_1_1gemm_1_1GemmTileTraitsHelperB_html"><div class="ttname"><a href="structcutlass_1_1gemm_1_1GemmTileTraitsHelperB.html">cutlass::gemm::GemmTileTraitsHelperB</a></div><div class="ttdef"><b>Definition:</b> gemm_traits.h:273</div></div>
|
|
<div class="ttc" id="structcutlass_1_1gemm_1_1GemmTraits_1_1GlobalLoadStream_html_a82a59524b5d3134eb609d280193a5c47"><div class="ttname"><a href="structcutlass_1_1gemm_1_1GemmTraits_1_1GlobalLoadStream.html#a82a59524b5d3134eb609d280193a5c47">cutlass::gemm::GemmTraits::GlobalLoadStream::stream_a</a></div><div class="ttdeci">GlobalLoadStreamA stream_a</div><div class="ttdoc">The stream for A. </div><div class="ttdef"><b>Definition:</b> gemm_traits.h:584</div></div>
|
|
<div class="ttc" id="structcutlass_1_1gemm_1_1GemmTileTraitsHelperA_3_01MatrixLayout_1_1kRowMajor_00_01GemmConfig___01_4_html_a1125408805bc697755f2b16594c6c8e1"><div class="ttname"><a href="structcutlass_1_1gemm_1_1GemmTileTraitsHelperA_3_01MatrixLayout_1_1kRowMajor_00_01GemmConfig___01_4.html#a1125408805bc697755f2b16594c6c8e1">cutlass::gemm::GemmTileTraitsHelperA< MatrixLayout::kRowMajor, GemmConfig_ >::SharedLoadTileTraits</a></div><div class="ttdeci">GemmSharedLoadTileATraits< MultiplyAddScalar const, typename GemmConfig_::OutputTile, typename GemmConfig_::Warps, typename GemmConfig_::MultiplyAdd::ThreadsPerWarp, typename GemmConfig_::InstructionShape, GemmConfig_::kStages, GemmConfig_::kScalarsPerLdsA, SharedStoreTileTraits::kSkew > SharedLoadTileTraits</div><div class="ttdoc">The traits class to build the iterator to load from shared memory for A^T. </div><div class="ttdef"><b>Definition:</b> gemm_traits.h:267</div></div>
|
|
<div class="ttc" id="structcutlass_1_1gemm_1_1ClearAccumulators_html"><div class="ttname"><a href="structcutlass_1_1gemm_1_1ClearAccumulators.html">cutlass::gemm::ClearAccumulators</a></div><div class="ttdef"><b>Definition:</b> clear_accumulators.h:38</div></div>
|
|
<div class="ttc" id="structcutlass_1_1gemm_1_1GemmTraits_1_1MainLoopSharedStorage_html_a0173fcc8856b17a52cc5eee845f101fa"><div class="ttname"><a href="structcutlass_1_1gemm_1_1GemmTraits_1_1MainLoopSharedStorage.html#a0173fcc8856b17a52cc5eee845f101fa">cutlass::gemm::GemmTraits::MainLoopSharedStorage::stream_b</a></div><div class="ttdeci">StreamSharedStorage< GlobalLoadStreamB, SharedLoadStreamB > stream_b</div><div class="ttdef"><b>Definition:</b> gemm_traits.h:537</div></div>
|
|
<div class="ttc" id="structcutlass_1_1gemm_1_1GemmTraits_1_1Params_html"><div class="ttname"><a href="structcutlass_1_1gemm_1_1GemmTraits_1_1Params.html">cutlass::gemm::GemmTraits::Params</a></div><div class="ttdoc">The params. </div><div class="ttdef"><b>Definition:</b> gemm_traits.h:481</div></div>
|
|
<div class="ttc" id="structcutlass_1_1gemm_1_1GemmConfig_html_a2e0a043c5d4d7959ec1a2214c3ac39ac"><div class="ttname"><a href="structcutlass_1_1gemm_1_1GemmConfig.html#a2e0a043c5d4d7959ec1a2214c3ac39ac">cutlass::gemm::GemmConfig::kScalarsPerLdgA</a></div><div class="ttdeci">static int const kScalarsPerLdgA</div><div class="ttdoc">The number of scalars per LDG/STS/LDS for A. </div><div class="ttdef"><b>Definition:</b> gemm_traits.h:109</div></div>
|
|
<div class="ttc" id="structcutlass_1_1gemm_1_1GemmTraits_1_1SharedLoadStream_html_aa28f34fb0c4bf739246d92c2fef80e0b"><div class="ttname"><a href="structcutlass_1_1gemm_1_1GemmTraits_1_1SharedLoadStream.html#aa28f34fb0c4bf739246d92c2fef80e0b">cutlass::gemm::GemmTraits::SharedLoadStream::fragment_b</a></div><div class="ttdeci">CUTLASS_DEVICE SharedLoadStreamB::Fragment const & fragment_b(int step) const</div><div class="ttdoc">The fragment B. </div><div class="ttdef"><b>Definition:</b> gemm_traits.h:615</div></div>
|
|
<div class="ttc" id="structcutlass_1_1gemm_1_1SimplifiedGemmTraitsHelper_html_a437070ba4a214aee363315d6019e450c"><div class="ttname"><a href="structcutlass_1_1gemm_1_1SimplifiedGemmTraitsHelper.html#a437070ba4a214aee363315d6019e450c">cutlass::gemm::SimplifiedGemmTraitsHelper::GlobalTransformerB</a></div><div class="ttdeci">Copy< typename GlobalLoadIteratorB::Fragment > GlobalTransformerB</div><div class="ttdoc">The data converter for B before storing to shared memory. </div><div class="ttdef"><b>Definition:</b> gemm_traits.h:674</div></div>
|
|
<div class="ttc" id="structcutlass_1_1gemm_1_1GemmTileTraitsHelperB_3_01MatrixLayout_1_1kRowMajor_00_01GemmConfig___01_4_html_a7639ccd7f6419a9f232db173a228e756"><div class="ttname"><a href="structcutlass_1_1gemm_1_1GemmTileTraitsHelperB_3_01MatrixLayout_1_1kRowMajor_00_01GemmConfig___01_4.html#a7639ccd7f6419a9f232db173a228e756">cutlass::gemm::GemmTileTraitsHelperB< MatrixLayout::kRowMajor, GemmConfig_ >::Scalar</a></div><div class="ttdeci">GemmConfig_::ScalarB Scalar</div><div class="ttdoc">The input scalar. </div><div class="ttdef"><b>Definition:</b> gemm_traits.h:351</div></div>
|
|
<div class="ttc" id="structcutlass_1_1MatrixLayout_html"><div class="ttname"><a href="structcutlass_1_1MatrixLayout.html">cutlass::MatrixLayout</a></div><div class="ttdoc">Describes layouts of matrices. </div><div class="ttdef"><b>Definition:</b> matrix_traits.h:35</div></div>
|
|
<div class="ttc" id="structcutlass_1_1gemm_1_1SimplifiedGemmTraitsHelper_html_a362794738bc14b283a91558bcadbbfd5"><div class="ttname"><a href="structcutlass_1_1gemm_1_1SimplifiedGemmTraitsHelper.html#a362794738bc14b283a91558bcadbbfd5">cutlass::gemm::SimplifiedGemmTraitsHelper::GlobalLoadIteratorB</a></div><div class="ttdeci">GemmGlobalIteratorAb< typename GemmTileTraitsHelperB_::GlobalTileTraits, Index_ > GlobalLoadIteratorB</div><div class="ttdoc">The global iterator to load B from global memory. </div><div class="ttdef"><b>Definition:</b> gemm_traits.h:672</div></div>
|
|
<div class="ttc" id="structcutlass_1_1TileLoadIterator_html"><div class="ttname"><a href="structcutlass_1_1TileLoadIterator.html">cutlass::TileLoadIterator</a></div><div class="ttdoc">An iterator implementing Tile Load Iterator Concept for loading a tile from memory. </div><div class="ttdef"><b>Definition:</b> tile_iterator.h:302</div></div>
|
|
<div class="ttc" id="structcutlass_1_1gemm_1_1GemmTraits_1_1MainLoopSharedStorage_html"><div class="ttname"><a href="structcutlass_1_1gemm_1_1GemmTraits_1_1MainLoopSharedStorage.html">cutlass::gemm::GemmTraits::MainLoopSharedStorage</a></div><div class="ttdef"><b>Definition:</b> gemm_traits.h:533</div></div>
|
|
<div class="ttc" id="structcutlass_1_1MatrixLayout_html_a97ef07af21b122c1804245b0c7784d2ba6a287c17f9f5bf53528ae68296beeedb"><div class="ttname"><a href="structcutlass_1_1MatrixLayout.html#a97ef07af21b122c1804245b0c7784d2ba6a287c17f9f5bf53528ae68296beeedb">cutlass::MatrixLayout::kRowMajor</a></div><div class="ttdef"><b>Definition:</b> matrix_traits.h:36</div></div>
|
|
<div class="ttc" id="structcutlass_1_1gemm_1_1GemmTraits_1_1GlobalLoadStream_html_a405b93680bb6e356369863244d0b56aa"><div class="ttname"><a href="structcutlass_1_1gemm_1_1GemmTraits_1_1GlobalLoadStream.html#a405b93680bb6e356369863244d0b56aa">cutlass::gemm::GemmTraits::GlobalLoadStream::residue</a></div><div class="ttdeci">CUTLASS_DEVICE void residue(Index k, bool skip_clear=false)</div><div class="ttdoc">Execute the residue code. </div><div class="ttdef"><b>Definition:</b> gemm_traits.h:578</div></div>
|
|
<div class="ttc" id="structcutlass_1_1gemm_1_1GemmConfig_html_a2fadb0ad2e28109ccfa9195e817a4d54"><div class="ttname"><a href="structcutlass_1_1gemm_1_1GemmConfig.html#a2fadb0ad2e28109ccfa9195e817a4d54">cutlass::gemm::GemmConfig::Accumulators</a></div><div class="ttdeci">MultiplyAdd::Accumulators Accumulators</div><div class="ttdoc">The accumulators. </div><div class="ttdef"><b>Definition:</b> gemm_traits.h:99</div></div>
|
|
<div class="ttc" id="structcutlass_1_1gemm_1_1GemmTraits_html_ae1cf7988c9cff79a2c3252aaf91fc165"><div class="ttname"><a href="structcutlass_1_1gemm_1_1GemmTraits.html#ae1cf7988c9cff79a2c3252aaf91fc165">cutlass::gemm::GemmTraits::ClearAccumulators</a></div><div class="ttdeci">ClearAccumulators_ ClearAccumulators</div><div class="ttdoc">Clear the accumulators. </div><div class="ttdef"><b>Definition:</b> gemm_traits.h:478</div></div>
|
|
<div class="ttc" id="structcutlass_1_1gemm_1_1SharedLoadStream_html"><div class="ttname"><a href="structcutlass_1_1gemm_1_1SharedLoadStream.html">cutlass::gemm::SharedLoadStream</a></div><div class="ttdef"><b>Definition:</b> gemm_shared_stream.h:44</div></div>
|
|
<div class="ttc" id="structcutlass_1_1gemm_1_1GemmTileTraitsHelperA_3_01MatrixLayout_1_1kRowMajor_00_01GemmConfig___01_4_html_a8160a260acce2362e90d43bce733c69d"><div class="ttname"><a href="structcutlass_1_1gemm_1_1GemmTileTraitsHelperA_3_01MatrixLayout_1_1kRowMajor_00_01GemmConfig___01_4.html#a8160a260acce2362e90d43bce733c69d">cutlass::gemm::GemmTileTraitsHelperA< MatrixLayout::kRowMajor, GemmConfig_ >::GlobalTileTraits</a></div><div class="ttdeci">GemmGlobalTileTraits< GemmOperand::kA, MatrixLayout::kRowMajor, Scalar const, Shape< 1, GemmConfig_::OutputTile::kW, GemmConfig_::OutputTile::kD >, Shape< 1, GemmConfig_::kThreads/GemmConfig_::OutputTile::kD, GemmConfig_::OutputTile::kD >, GemmConfig_::kScalarsPerLdgA > GlobalTileTraits</div><div class="ttdoc">The traits class to build the iterator to load data from global memory for A^T. </div><div class="ttdef"><b>Definition:</b> gemm_traits.h:228</div></div>
|
|
<div class="ttc" id="reshape__tile_8h_html"><div class="ttname"><a href="reshape__tile_8h.html">reshape_tile.h</a></div><div class="ttdoc">Defines a type for restructuring a tile. </div></div>
|
|
<div class="ttc" id="gemm__operand_8h_html"><div class="ttname"><a href="gemm__operand_8h.html">gemm_operand.h</a></div><div class="ttdoc">Defines constant expressions for mapping GEMM problem size and strides onto pitch-linear memory...</div></div>
|
|
<div class="ttc" id="structcutlass_1_1ShapeDiv_html_a108ded386ef6708afc6fe769a77a234b"><div class="ttname"><a href="structcutlass_1_1ShapeDiv.html#a108ded386ef6708afc6fe769a77a234b">cutlass::ShapeDiv::Shape</a></div><div class="ttdeci">Shape< A_::kD/B_::kD, A_::kH/B_::kH, A_::kW/B_::kW, A_::kC/B_::kC > Shape</div><div class="ttdef"><b>Definition:</b> shape.h:126</div></div>
|
|
<div class="ttc" id="structcutlass_1_1gemm_1_1GemmConfig_html_ac0c8c027e3ede14b62d7c7d519551f21"><div class="ttname"><a href="structcutlass_1_1gemm_1_1GemmConfig.html#ac0c8c027e3ede14b62d7c7d519551f21">cutlass::gemm::GemmConfig::kScalarsPerStsB</a></div><div class="ttdeci">static int const kScalarsPerStsB</div><div class="ttdef"><b>Definition:</b> gemm_traits.h:115</div></div>
|
|
<div class="ttc" id="clear__accumulators_8h_html"><div class="ttname"><a href="clear__accumulators_8h.html">clear_accumulators.h</a></div><div class="ttdoc">Defines abstractions for efficiently clearing accumulator tiles. </div></div>
|
|
<div class="ttc" id="structcutlass_1_1gemm_1_1GemmConfig_html"><div class="ttname"><a href="structcutlass_1_1gemm_1_1GemmConfig.html">cutlass::gemm::GemmConfig</a></div><div class="ttdef"><b>Definition:</b> gemm_traits.h:79</div></div>
|
|
<div class="ttc" id="structcutlass_1_1gemm_1_1GemmTraits_1_1GlobalLoadStream_html"><div class="ttname"><a href="structcutlass_1_1gemm_1_1GemmTraits_1_1GlobalLoadStream.html">cutlass::gemm::GemmTraits::GlobalLoadStream</a></div><div class="ttdoc">Assemble the global load streams for A/B. </div><div class="ttdef"><b>Definition:</b> gemm_traits.h:551</div></div>
|
|
<div class="ttc" id="structcutlass_1_1gemm_1_1GemmConfig_html_a3087cdd38e2c65ad0dffdd0587d2cce0"><div class="ttname"><a href="structcutlass_1_1gemm_1_1GemmConfig.html#a3087cdd38e2c65ad0dffdd0587d2cce0">cutlass::gemm::GemmConfig::kScalarsPerStsD</a></div><div class="ttdeci">static int const kScalarsPerStsD</div><div class="ttdef"><b>Definition:</b> gemm_traits.h:123</div></div>
|
|
<div class="ttc" id="structcutlass_1_1gemm_1_1GemmTraits_html_ac3c840a3d90c0da43301761af83c2c9f"><div class="ttname"><a href="structcutlass_1_1gemm_1_1GemmTraits.html#ac3c840a3d90c0da43301761af83c2c9f">cutlass::gemm::GemmTraits::shared_store_fence</a></div><div class="ttdeci">static CUTLASS_DEVICE void shared_store_fence(bool in_loop)</div><div class="ttdoc">The memory fence for shared stores. </div><div class="ttdef"><b>Definition:</b> gemm_traits.h:648</div></div>
|
|
<div class="ttc" id="structcutlass_1_1gemm_1_1GemmTileTraitsHelperA_3_01MatrixLayout_1_1kRowMajor_00_01GemmConfig___01_4_html_ac618881d66790e4c280dc5692e5ddf95"><div class="ttname"><a href="structcutlass_1_1gemm_1_1GemmTileTraitsHelperA_3_01MatrixLayout_1_1kRowMajor_00_01GemmConfig___01_4.html#ac618881d66790e4c280dc5692e5ddf95">cutlass::gemm::GemmTileTraitsHelperA< MatrixLayout::kRowMajor, GemmConfig_ >::Scalar</a></div><div class="ttdeci">GemmConfig_::ScalarA Scalar</div><div class="ttdoc">The input scalar. </div><div class="ttdef"><b>Definition:</b> gemm_traits.h:210</div></div>
|
|
<div class="ttc" id="structcutlass_1_1gemm_1_1GemmTileTraitsHelperA_html"><div class="ttname"><a href="structcutlass_1_1gemm_1_1GemmTileTraitsHelperA.html">cutlass::gemm::GemmTileTraitsHelperA</a></div><div class="ttdef"><b>Definition:</b> gemm_traits.h:137</div></div>
|
|
<div class="ttc" id="structcutlass_1_1gemm_1_1GemmTraits_1_1Params_html_a40023f0ffdd8bee4ccbcaac28222e983"><div class="ttname"><a href="structcutlass_1_1gemm_1_1GemmTraits_1_1Params.html#a40023f0ffdd8bee4ccbcaac28222e983">cutlass::gemm::GemmTraits::Params::initialize</a></div><div class="ttdeci">CUTLASS_HOST_DEVICE int initialize(GemmDesc_ const &desc)</div><div class="ttdoc">Initialize the parameters. </div><div class="ttdef"><b>Definition:</b> gemm_traits.h:497</div></div>
|
|
<div class="ttc" id="unioncutlass_1_1gemm_1_1GemmTraits_1_1StreamSharedStorage_html_a3c2980547310ec4307f3a5f9817dfc51"><div class="ttname"><a href="unioncutlass_1_1gemm_1_1GemmTraits_1_1StreamSharedStorage.html#a3c2980547310ec4307f3a5f9817dfc51">cutlass::gemm::GemmTraits::StreamSharedStorage::global</a></div><div class="ttdeci">GlobalLoadStream_::SharedStorage global</div><div class="ttdef"><b>Definition:</b> gemm_traits.h:527</div></div>
|
|
<div class="ttc" id="structcutlass_1_1GemmOperand_html_ab209ea3de198efabe8e8707dfe8e0a0caad0876342d150cef7da6ae149d5e99f9"><div class="ttname"><a href="structcutlass_1_1GemmOperand.html#ab209ea3de198efabe8e8707dfe8e0a0caad0876342d150cef7da6ae149d5e99f9">cutlass::GemmOperand::kB</a></div><div class="ttdef"><b>Definition:</b> matrix_traits.h:43</div></div>
|
|
<div class="ttc" id="structcutlass_1_1gemm_1_1IdentityBlockSwizzle_html"><div class="ttname"><a href="structcutlass_1_1gemm_1_1IdentityBlockSwizzle.html">cutlass::gemm::IdentityBlockSwizzle</a></div><div class="ttdef"><b>Definition:</b> identity_block_swizzle.h:37</div></div>
|
|
<div class="ttc" id="structcutlass_1_1gemm_1_1GemmTileTraitsHelperA_3_01MatrixLayout_1_1kColumnMajor_00_01GemmConfig___01_4_html_aaa198fed841af6bf26bf2e9544d0a877"><div class="ttname"><a href="structcutlass_1_1gemm_1_1GemmTileTraitsHelperA_3_01MatrixLayout_1_1kColumnMajor_00_01GemmConfig___01_4.html#aaa198fed841af6bf26bf2e9544d0a877">cutlass::gemm::GemmTileTraitsHelperA< MatrixLayout::kColumnMajor, GemmConfig_ >::SharedStoreTileTraits</a></div><div class="ttdeci">GemmSharedStoreTileAbTraits< MultiplyAddScalar, Shape< GemmConfig_::kStages, GemmConfig_::OutputTile::kD/GemmConfig_::InstructionShape::kD, GemmConfig_::OutputTile::kW *GemmConfig_::InstructionShape::kD >, typename GlobalTileTraits::Threads, GemmConfig_::kScalarsPerStsA > SharedStoreTileTraits</div><div class="ttdoc">The traits class to build the iterator to store data to shared memory for A^N. </div><div class="ttdef"><b>Definition:</b> gemm_traits.h:179</div></div>
|
|
<div class="ttc" id="structcutlass_1_1gemm_1_1GemmConfig_html_aa13d6f5e5ad907ef09c88ae49e6e8e9b"><div class="ttname"><a href="structcutlass_1_1gemm_1_1GemmConfig.html#aa13d6f5e5ad907ef09c88ae49e6e8e9b">cutlass::gemm::GemmConfig::ScalarB</a></div><div class="ttdeci">ScalarB_ ScalarB</div><div class="ttdoc">The scalar for B. </div><div class="ttdef"><b>Definition:</b> gemm_traits.h:84</div></div>
|
|
<div class="ttc" id="structcutlass_1_1gemm_1_1GemmTileTraitsHelperB_3_01MatrixLayout_1_1kRowMajor_00_01GemmConfig___01_4_html_aad14588b1515e37ede24915f589d32ab"><div class="ttname"><a href="structcutlass_1_1gemm_1_1GemmTileTraitsHelperB_3_01MatrixLayout_1_1kRowMajor_00_01GemmConfig___01_4.html#aad14588b1515e37ede24915f589d32ab">cutlass::gemm::GemmTileTraitsHelperB< MatrixLayout::kRowMajor, GemmConfig_ >::MultiplyAddScalar</a></div><div class="ttdeci">GemmConfig_::MultiplyAdd::ScalarB MultiplyAddScalar</div><div class="ttdoc">The scalar stored in shared memory. </div><div class="ttdef"><b>Definition:</b> gemm_traits.h:353</div></div>
|
|
<div class="ttc" id="structcutlass_1_1gemm_1_1GemmTileTraitsHelperB_3_01MatrixLayout_1_1kColumnMajor_00_01GemmConfig___01_4_html_a42dd312d4cf5bb53b472389897f9deeb"><div class="ttname"><a href="structcutlass_1_1gemm_1_1GemmTileTraitsHelperB_3_01MatrixLayout_1_1kColumnMajor_00_01GemmConfig___01_4.html#a42dd312d4cf5bb53b472389897f9deeb">cutlass::gemm::GemmTileTraitsHelperB< MatrixLayout::kColumnMajor, GemmConfig_ >::MultiplyAddScalar</a></div><div class="ttdeci">GemmConfig_::MultiplyAdd::ScalarB MultiplyAddScalar</div><div class="ttdoc">The scalar stored in shared memory. </div><div class="ttdef"><b>Definition:</b> gemm_traits.h:285</div></div>
|
|
<div class="ttc" id="structcutlass_1_1gemm_1_1GemmTraits_html_aa0e8fd28f5247764dfb7843f7670c698"><div class="ttname"><a href="structcutlass_1_1gemm_1_1GemmTraits.html#aa0e8fd28f5247764dfb7843f7670c698">cutlass::gemm::GemmTraits::ScalarB</a></div><div class="ttdeci">GlobalLoadStreamB_::Scalar ScalarB</div><div class="ttdoc">The scalar for B. </div><div class="ttdef"><b>Definition:</b> gemm_traits.h:446</div></div>
|
|
<div class="ttc" id="cutlass_8h_html_a28c2443a142676d3d71effdae1a986b1"><div class="ttname"><a href="cutlass_8h.html#a28c2443a142676d3d71effdae1a986b1">CUTLASS_HOST_DEVICE</a></div><div class="ttdeci">#define CUTLASS_HOST_DEVICE</div><div class="ttdef"><b>Definition:</b> cutlass.h:46</div></div>
|
|
<div class="ttc" id="structcutlass_1_1gemm_1_1GemmTraits_html_a8d49ad32fc9d8c14f6141690962c3f9c"><div class="ttname"><a href="structcutlass_1_1gemm_1_1GemmTraits.html#a8d49ad32fc9d8c14f6141690962c3f9c">cutlass::gemm::GemmTraits::SharedStoreStorageA</a></div><div class="ttdeci">GlobalLoadStreamA::SharedStoreStorage SharedStoreStorageA</div><div class="ttdoc">The shared storage for A. </div><div class="ttdef"><b>Definition:</b> gemm_traits.h:454</div></div>
|
|
<div class="ttc" id="structcutlass_1_1gemm_1_1SimplifiedGemmTraitsHelper_html_a448c242880183e006b70d839d210a2ec"><div class="ttname"><a href="structcutlass_1_1gemm_1_1SimplifiedGemmTraitsHelper.html#a448c242880183e006b70d839d210a2ec">cutlass::gemm::SimplifiedGemmTraitsHelper::GlobalLoadStreamA</a></div><div class="ttdeci">GlobalLoadStream< GlobalLoadIteratorA, SharedStoreIteratorA, GlobalTransformerA > GlobalLoadStreamA</div><div class="ttdoc">The stream to load A from global memory to shared memory. </div><div class="ttdef"><b>Definition:</b> gemm_traits.h:668</div></div>
|
|
<div class="ttc" id="platform_8h_html_adde4c9ea91b753491851361a4198c009"><div class="ttname"><a href="platform_8h.html#adde4c9ea91b753491851361a4198c009">static_assert</a></div><div class="ttdeci">#define static_assert(__e, __m)</div><div class="ttdef"><b>Definition:</b> platform.h:145</div></div>
|
|
<div class="ttc" id="structcutlass_1_1gemm_1_1GemmTraits_html"><div class="ttname"><a href="structcutlass_1_1gemm_1_1GemmTraits.html">cutlass::gemm::GemmTraits</a></div><div class="ttdef"><b>Definition:</b> gemm_traits.h:428</div></div>
|
|
<div class="ttc" id="structcutlass_1_1gemm_1_1GemmConfig_html_a51d583dfcd645ad0ecfc23b87b3c5108"><div class="ttname"><a href="structcutlass_1_1gemm_1_1GemmConfig.html#a51d583dfcd645ad0ecfc23b87b3c5108">cutlass::gemm::GemmConfig::AccumulatorsPerWarp</a></div><div class="ttdeci">MultiplyAdd::AccumulatorsPerWarp AccumulatorsPerWarp</div><div class="ttdoc">The number of accumulators per warp. </div><div class="ttdef"><b>Definition:</b> gemm_traits.h:97</div></div>
|
|
<div class="ttc" id="structcutlass_1_1gemm_1_1GemmTraits_1_1SharedLoadStream_html_a883b28ca237b1ec076856232cfee0c6f"><div class="ttname"><a href="structcutlass_1_1gemm_1_1GemmTraits_1_1SharedLoadStream.html#a883b28ca237b1ec076856232cfee0c6f">cutlass::gemm::GemmTraits::SharedLoadStream::transformed_a</a></div><div class="ttdeci">SharedLoadStreamA::TransformedFragment transformed_a[2]</div><div class="ttdoc">The fragments to transform A. </div><div class="ttdef"><b>Definition:</b> gemm_traits.h:630</div></div>
|
|
<div class="ttc" id="unioncutlass_1_1gemm_1_1GemmTraits_1_1StreamSharedStorage_html_afabd328b106d45b156200f73942d211e"><div class="ttname"><a href="unioncutlass_1_1gemm_1_1GemmTraits_1_1StreamSharedStorage.html#afabd328b106d45b156200f73942d211e">cutlass::gemm::GemmTraits::StreamSharedStorage::shared</a></div><div class="ttdeci">SharedLoadStream_::SharedStorage shared</div><div class="ttdef"><b>Definition:</b> gemm_traits.h:529</div></div>
|
|
<div class="ttc" id="structcutlass_1_1gemm_1_1GemmTraits_1_1Params_html_a46affe35cb16874de5a2b9777aedf596"><div class="ttname"><a href="structcutlass_1_1gemm_1_1GemmTraits_1_1Params.html#a46affe35cb16874de5a2b9777aedf596">cutlass::gemm::GemmTraits::Params::global_stream_b</a></div><div class="ttdeci">GlobalLoadStreamB::Params global_stream_b</div><div class="ttdoc">The params for the B stream. </div><div class="ttdef"><b>Definition:</b> gemm_traits.h:487</div></div>
|
|
<div class="ttc" id="structcutlass_1_1gemm_1_1GemmTraits_1_1SharedLoadStream_html_a837fbec1d47ae45480941de6290889c0"><div class="ttname"><a href="structcutlass_1_1gemm_1_1GemmTraits_1_1SharedLoadStream.html#a837fbec1d47ae45480941de6290889c0">cutlass::gemm::GemmTraits::SharedLoadStream::fetched_b</a></div><div class="ttdeci">SharedLoadStreamB::FetchedFragment fetched_b[2]</div><div class="ttdoc">The fragments to fetch B. </div><div class="ttdef"><b>Definition:</b> gemm_traits.h:634</div></div>
|
|
<div class="ttc" id="structcutlass_1_1Shape_html"><div class="ttname"><a href="structcutlass_1_1Shape.html">cutlass::Shape</a></div><div class="ttdoc">A Shape implementing Layout Concept describing the dimensions of a cube. </div><div class="ttdef"><b>Definition:</b> shape.h:64</div></div>
|
|
<div class="ttc" id="structcutlass_1_1gemm_1_1GemmConfig_html_aad47c635a73e83bd4b19494864832d31"><div class="ttname"><a href="structcutlass_1_1gemm_1_1GemmConfig.html#aad47c635a73e83bd4b19494864832d31">cutlass::gemm::GemmConfig::kScalarsPerLdgC</a></div><div class="ttdeci">static int const kScalarsPerLdgC</div><div class="ttdoc">The number of scalars per LDG for C. </div><div class="ttdef"><b>Definition:</b> gemm_traits.h:119</div></div>
|
|
<div class="ttc" id="structcutlass_1_1gemm_1_1GemmConfig_html_a188ef7f4c49ff2830753218343a1b8f8"><div class="ttname"><a href="structcutlass_1_1gemm_1_1GemmConfig.html#a188ef7f4c49ff2830753218343a1b8f8">cutlass::gemm::GemmConfig::ScalarD</a></div><div class="ttdeci">ScalarD_ ScalarD</div><div class="ttdoc">The scalar for D. </div><div class="ttdef"><b>Definition:</b> gemm_traits.h:88</div></div>
|
|
<div class="ttc" id="structcutlass_1_1gemm_1_1GemmConfig_html_a0b2be601de08848afc4418adb97255bf"><div class="ttname"><a href="structcutlass_1_1gemm_1_1GemmConfig.html#a0b2be601de08848afc4418adb97255bf">cutlass::gemm::GemmConfig::kThreads</a></div><div class="ttdeci">static int const kThreads</div><div class="ttdoc">The numnber of threads. </div><div class="ttdef"><b>Definition:</b> gemm_traits.h:106</div></div>
|
|
<div class="ttc" id="identity__block__swizzle_8h_html"><div class="ttname"><a href="identity__block__swizzle_8h.html">identity_block_swizzle.h</a></div><div class="ttdoc">Defies functors for mapping blockIdx to partitions of the GEMM computation. </div></div>
|
|
<div class="ttc" id="structcutlass_1_1gemm_1_1GemmTraits_1_1Params_html_aaf27c0f2f4ab730ed5c865e9f7d2373b"><div class="ttname"><a href="structcutlass_1_1gemm_1_1GemmTraits_1_1Params.html#aaf27c0f2f4ab730ed5c865e9f7d2373b">cutlass::gemm::GemmTraits::Params::m</a></div><div class="ttdeci">Index m</div><div class="ttdoc">The dimensions of the GEMM. </div><div class="ttdef"><b>Definition:</b> gemm_traits.h:483</div></div>
|
|
<div class="ttc" id="structcutlass_1_1gemm_1_1GemmTraits_html_a50672b5fa67d858aeff8f254cf28e941"><div class="ttname"><a href="structcutlass_1_1gemm_1_1GemmTraits.html#a50672b5fa67d858aeff8f254cf28e941">cutlass::gemm::GemmTraits::BlockSwizzle</a></div><div class="ttdeci">BlockSwizzle_ BlockSwizzle</div><div class="ttdoc">The block swizzle to reorganize the grid. </div><div class="ttdef"><b>Definition:</b> gemm_traits.h:474</div></div>
|
|
<div class="ttc" id="structcutlass_1_1gemm_1_1SimplifiedGemmTraitsHelper_html_a365aed4c0e2ad1bffea517ee36998557"><div class="ttname"><a href="structcutlass_1_1gemm_1_1SimplifiedGemmTraitsHelper.html#a365aed4c0e2ad1bffea517ee36998557">cutlass::gemm::SimplifiedGemmTraitsHelper::SharedLoadIteratorA</a></div><div class="ttdeci">TileLoadIterator< typename GemmTileTraitsHelperA_::SharedLoadTileTraits, typename GemmTileTraitsHelperA_::Scalar, IteratorAdvance::kH, MemorySpace::kShared > SharedLoadIteratorA</div><div class="ttdoc">The iterator to load A from shared memory. </div><div class="ttdef"><b>Definition:</b> gemm_traits.h:690</div></div>
|
|
<div class="ttc" id="structcutlass_1_1MatrixLayout_html_a97ef07af21b122c1804245b0c7784d2bac15988acba79c11072d38b295f163a2b"><div class="ttname"><a href="structcutlass_1_1MatrixLayout.html#a97ef07af21b122c1804245b0c7784d2bac15988acba79c11072d38b295f163a2b">cutlass::MatrixLayout::kColumnMajor</a></div><div class="ttdef"><b>Definition:</b> matrix_traits.h:36</div></div>
|
|
<div class="ttc" id="structcutlass_1_1gemm_1_1SimplifiedGemmTraitsHelper_html_a4de905aadc734df69fd0db83f01be56e"><div class="ttname"><a href="structcutlass_1_1gemm_1_1SimplifiedGemmTraitsHelper.html#a4de905aadc734df69fd0db83f01be56e">cutlass::gemm::SimplifiedGemmTraitsHelper::SharedLoadIteratorB</a></div><div class="ttdeci">TileLoadIterator< typename GemmTileTraitsHelperB_::SharedLoadTileTraits, typename GemmTileTraitsHelperB_::Scalar, IteratorAdvance::kH, MemorySpace::kShared > SharedLoadIteratorB</div><div class="ttdoc">The iterator to load B from shared memory. </div><div class="ttdef"><b>Definition:</b> gemm_traits.h:698</div></div>
|
|
<div class="ttc" id="structcutlass_1_1gemm_1_1GemmTraits_1_1SharedLoadStream_html_a49315aea1c54d84ff19b0ac215128b95"><div class="ttname"><a href="structcutlass_1_1gemm_1_1GemmTraits_1_1SharedLoadStream.html#a49315aea1c54d84ff19b0ac215128b95">cutlass::gemm::GemmTraits::SharedLoadStream::SharedLoadStream</a></div><div class="ttdeci">CUTLASS_DEVICE SharedLoadStream(Params const &params, SharedStorage &shared_storage)</div><div class="ttdoc">Ctor. </div><div class="ttdef"><b>Definition:</b> gemm_traits.h:592</div></div>
|
|
<div class="ttc" id="structcutlass_1_1gemm_1_1GemmTraits_1_1GlobalLoadStream_html_ab2961b4db0694cf128d55d38a98db575"><div class="ttname"><a href="structcutlass_1_1gemm_1_1GemmTraits_1_1GlobalLoadStream.html#ab2961b4db0694cf128d55d38a98db575">cutlass::gemm::GemmTraits::GlobalLoadStream::GlobalLoadStream</a></div><div class="ttdeci">CUTLASS_DEVICE GlobalLoadStream(Params const &params, SharedStorage &shared_storage, dim3 const &block)</div><div class="ttdoc">Ctor. </div><div class="ttdef"><b>Definition:</b> gemm_traits.h:553</div></div>
|
|
<div class="ttc" id="structcutlass_1_1gemm_1_1GemmEpilogue_html_abb0741601652df8fdf927d49c2c0e4d0"><div class="ttname"><a href="structcutlass_1_1gemm_1_1GemmEpilogue.html#abb0741601652df8fdf927d49c2c0e4d0">cutlass::gemm::GemmEpilogue::ScalarC</a></div><div class="ttdeci">GlobalLoadIteratorC::Scalar ScalarC</div><div class="ttdoc">The scalar for C. </div><div class="ttdef"><b>Definition:</b> gemm_epilogue.h:96</div></div>
|
|
<div class="ttc" id="structcutlass_1_1gemm_1_1GemmTraits_html_ae67227cecbe84f5c8497d9a7ff82b367"><div class="ttname"><a href="structcutlass_1_1gemm_1_1GemmTraits.html#ae67227cecbe84f5c8497d9a7ff82b367">cutlass::gemm::GemmTraits::Index</a></div><div class="ttdeci">Index_ Index</div><div class="ttdoc">The index. </div><div class="ttdef"><b>Definition:</b> gemm_traits.h:476</div></div>
|
|
<div class="ttc" id="structcutlass_1_1gemm_1_1GemmTileTraitsHelperA_3_01MatrixLayout_1_1kColumnMajor_00_01GemmConfig___01_4_html_a19fb8c9b9a77aebec507635de7da6f21"><div class="ttname"><a href="structcutlass_1_1gemm_1_1GemmTileTraitsHelperA_3_01MatrixLayout_1_1kColumnMajor_00_01GemmConfig___01_4.html#a19fb8c9b9a77aebec507635de7da6f21">cutlass::gemm::GemmTileTraitsHelperA< MatrixLayout::kColumnMajor, GemmConfig_ >::MultiplyAddScalar</a></div><div class="ttdeci">GemmConfig_::MultiplyAdd::ScalarA MultiplyAddScalar</div><div class="ttdoc">The scalar stored in shared memory. </div><div class="ttdef"><b>Definition:</b> gemm_traits.h:149</div></div>
|
|
<div class="ttc" id="structcutlass_1_1gemm_1_1SimplifiedGemmTraitsHelper_html_a43713f534798b1e27c4ba38b72e63c08"><div class="ttname"><a href="structcutlass_1_1gemm_1_1SimplifiedGemmTraitsHelper.html#a43713f534798b1e27c4ba38b72e63c08">cutlass::gemm::SimplifiedGemmTraitsHelper::SharedStoreIteratorB</a></div><div class="ttdeci">TileStoreIterator< typename GemmTileTraitsHelperB_::SharedStoreTileTraits, typename GemmTileTraitsHelperB_::SharedStoreTileTraits::Scalar, IteratorAdvance::kH, MemorySpace::kShared > SharedStoreIteratorB</div><div class="ttdoc">The iterator to store B to shared memory. </div><div class="ttdef"><b>Definition:</b> gemm_traits.h:680</div></div>
|
|
<div class="ttc" id="structcutlass_1_1gemm_1_1GemmTraits_1_1Params_html_a073430a1e8b124aec8a1f1e00f262bc8"><div class="ttname"><a href="structcutlass_1_1gemm_1_1GemmTraits_1_1Params.html#a073430a1e8b124aec8a1f1e00f262bc8">cutlass::gemm::GemmTraits::Params::epilogue</a></div><div class="ttdeci">Epilogue::Params epilogue</div><div class="ttdoc">The params for the epilogue. </div><div class="ttdef"><b>Definition:</b> gemm_traits.h:493</div></div>
|
|
<div class="ttc" id="structcutlass_1_1MatrixLayout_html_a97ef07af21b122c1804245b0c7784d2b"><div class="ttname"><a href="structcutlass_1_1MatrixLayout.html#a97ef07af21b122c1804245b0c7784d2b">cutlass::MatrixLayout::Kind</a></div><div class="ttdeci">Kind</div><div class="ttdef"><b>Definition:</b> matrix_traits.h:36</div></div>
|
|
<div class="ttc" id="structcutlass_1_1gemm_1_1GemmTraits_1_1Params_html_a575bcff901d69ae3f46987222f23ab64"><div class="ttname"><a href="structcutlass_1_1gemm_1_1GemmTraits_1_1Params.html#a575bcff901d69ae3f46987222f23ab64">cutlass::gemm::GemmTraits::Params::global_stream_a</a></div><div class="ttdeci">GlobalLoadStreamA::Params global_stream_a</div><div class="ttdoc">The params for the A stream. </div><div class="ttdef"><b>Definition:</b> gemm_traits.h:485</div></div>
|
|
<div class="ttc" id="structcutlass_1_1gemm_1_1ClearAccumulators_1_1SharedStorage_html"><div class="ttname"><a href="structcutlass_1_1gemm_1_1ClearAccumulators_1_1SharedStorage.html">cutlass::gemm::ClearAccumulators::SharedStorage</a></div><div class="ttdoc">The shared storage. </div><div class="ttdef"><b>Definition:</b> clear_accumulators.h:40</div></div>
|
|
<div class="ttc" id="structcutlass_1_1gemm_1_1GemmTraits_1_1SharedLoadStream_html_ade2d85507dec77591e66276339a1eef5"><div class="ttname"><a href="structcutlass_1_1gemm_1_1GemmTraits_1_1SharedLoadStream.html#ade2d85507dec77591e66276339a1eef5">cutlass::gemm::GemmTraits::SharedLoadStream::commit</a></div><div class="ttdeci">CUTLASS_DEVICE void commit(int step)</div><div class="ttdoc">Commit the data. </div><div class="ttdef"><b>Definition:</b> gemm_traits.h:604</div></div>
|
|
<div class="ttc" id="structcutlass_1_1gemm_1_1GemmConfig_html_adaf2ee5b8e6f7bdb9939cd45a186ca56"><div class="ttname"><a href="structcutlass_1_1gemm_1_1GemmConfig.html#adaf2ee5b8e6f7bdb9939cd45a186ca56">cutlass::gemm::GemmConfig::kScalarsPerLdsD</a></div><div class="ttdeci">static int const kScalarsPerLdsD</div><div class="ttdef"><b>Definition:</b> gemm_traits.h:124</div></div>
|
|
<div class="ttc" id="gemm__global__stream_8h_html"><div class="ttname"><a href="gemm__global__stream_8h.html">gemm_global_stream.h</a></div><div class="ttdoc">Implements efficient loading of the thread block-level tile from global memory and storing to shared ...</div></div>
|
|
<div class="ttc" id="unioncutlass_1_1gemm_1_1GemmTraits_1_1SharedStorage_html_aa5dd7edc3cffa785eb1e5b62c18c74c4"><div class="ttname"><a href="unioncutlass_1_1gemm_1_1GemmTraits_1_1SharedStorage.html#aa5dd7edc3cffa785eb1e5b62c18c74c4">cutlass::gemm::GemmTraits::SharedStorage::main_loop</a></div><div class="ttdeci">MainLoopSharedStorage main_loop</div><div class="ttdef"><b>Definition:</b> gemm_traits.h:545</div></div>
|
|
<div class="ttc" id="structcutlass_1_1gemm_1_1GemmTraits_html_ac5bb5931a707ed7672f69267753ba41b"><div class="ttname"><a href="structcutlass_1_1gemm_1_1GemmTraits.html#ac5bb5931a707ed7672f69267753ba41b">cutlass::gemm::GemmTraits::kLayoutA</a></div><div class="ttdeci">static MatrixLayout::Kind const kLayoutA</div><div class="ttdoc">The layout of A. </div><div class="ttdef"><b>Definition:</b> gemm_traits.h:437</div></div>
|
|
<div class="ttc" id="structcutlass_1_1gemm_1_1GemmConfig_html_a53450f4d7444d6a4c0d2353496c0a4fd"><div class="ttname"><a href="structcutlass_1_1gemm_1_1GemmConfig.html#a53450f4d7444d6a4c0d2353496c0a4fd">cutlass::gemm::GemmConfig::OutputTile</a></div><div class="ttdeci">OutputTile_ OutputTile</div><div class="ttdoc">The tile. </div><div class="ttdef"><b>Definition:</b> gemm_traits.h:91</div></div>
|
|
<div class="ttc" id="structcutlass_1_1gemm_1_1GemmConfig_html_a849b21fed39aaac1cdd546334739be97"><div class="ttname"><a href="structcutlass_1_1gemm_1_1GemmConfig.html#a849b21fed39aaac1cdd546334739be97">cutlass::gemm::GemmConfig::kScalarsPerLdgB</a></div><div class="ttdeci">static int const kScalarsPerLdgB</div><div class="ttdoc">The number of scalars per LDG/STS/LDS for B. </div><div class="ttdef"><b>Definition:</b> gemm_traits.h:114</div></div>
|
|
<div class="ttc" id="structcutlass_1_1GemmOperand_html_ab209ea3de198efabe8e8707dfe8e0a0cac2b9fe9e3679a059d1a6c946b2a2c31a"><div class="ttname"><a href="structcutlass_1_1GemmOperand.html#ab209ea3de198efabe8e8707dfe8e0a0cac2b9fe9e3679a059d1a6c946b2a2c31a">cutlass::GemmOperand::kA</a></div><div class="ttdef"><b>Definition:</b> matrix_traits.h:43</div></div>
|
|
<div class="ttc" id="structcutlass_1_1gemm_1_1SimplifiedGemmTraitsHelper_html"><div class="ttname"><a href="structcutlass_1_1gemm_1_1SimplifiedGemmTraitsHelper.html">cutlass::gemm::SimplifiedGemmTraitsHelper</a></div><div class="ttdef"><b>Definition:</b> gemm_traits.h:654</div></div>
|
|
<div class="ttc" id="structcutlass_1_1gemm_1_1GemmGlobalTileTraits_html_a29bd05960cc541bb67098f5483c84cf6"><div class="ttname"><a href="structcutlass_1_1gemm_1_1GemmGlobalTileTraits.html#a29bd05960cc541bb67098f5483c84cf6">cutlass::gemm::GemmGlobalTileTraits::Threads</a></div><div class="ttdeci">ReshapeThreads< Tile, Threads_ >::Threads Threads</div><div class="ttdoc">The threads shape. </div><div class="ttdef"><b>Definition:</b> gemm_global_tile.h:87</div></div>
|
|
<div class="ttc" id="structcutlass_1_1gemm_1_1SimplifiedGemmTraitsHelper_html_a5687850f235d644a4820851880740d27"><div class="ttname"><a href="structcutlass_1_1gemm_1_1SimplifiedGemmTraitsHelper.html#a5687850f235d644a4820851880740d27">cutlass::gemm::SimplifiedGemmTraitsHelper::GlobalLoadIteratorA</a></div><div class="ttdeci">GemmGlobalIteratorAb< typename GemmTileTraitsHelperA_::GlobalTileTraits, Index_ > GlobalLoadIteratorA</div><div class="ttdoc">The global iterator to load A from global memory. </div><div class="ttdef"><b>Definition:</b> gemm_traits.h:657</div></div>
|
|
<div class="ttc" id="structcutlass_1_1gemm_1_1GemmTraits_html_a97d7ee63e5d180410b370f095648f367"><div class="ttname"><a href="structcutlass_1_1gemm_1_1GemmTraits.html#a97d7ee63e5d180410b370f095648f367">cutlass::gemm::GemmTraits::OutputTile</a></div><div class="ttdeci">GemmConfig::OutputTile OutputTile</div><div class="ttdoc">The output tile. </div><div class="ttdef"><b>Definition:</b> gemm_traits.h:432</div></div>
|
|
<div class="ttc" id="matrix__traits_8h_html"><div class="ttname"><a href="matrix__traits_8h.html">matrix_traits.h</a></div><div class="ttdoc">Defines properties of matrices used to denote layout and operands to GEMM kernels. </div></div>
|
|
<div class="ttc" id="structcutlass_1_1gemm_1_1SimplifiedGemmTraitsHelper_html_af9a98d39d6959a9641f7c3c90df2f98e"><div class="ttname"><a href="structcutlass_1_1gemm_1_1SimplifiedGemmTraitsHelper.html#af9a98d39d6959a9641f7c3c90df2f98e">cutlass::gemm::SimplifiedGemmTraitsHelper::GlobalTransformerA</a></div><div class="ttdeci">Copy< typename GlobalLoadIteratorA::Fragment > GlobalTransformerA</div><div class="ttdoc">The data converter for A before storing to shared memory. </div><div class="ttdef"><b>Definition:</b> gemm_traits.h:659</div></div>
|
|
<div class="ttc" id="structcutlass_1_1gemm_1_1GemmTraits_1_1GlobalLoadStream_html_a6dc512be014b9d849057e2fd4c0b0485"><div class="ttname"><a href="structcutlass_1_1gemm_1_1GemmTraits_1_1GlobalLoadStream.html#a6dc512be014b9d849057e2fd4c0b0485">cutlass::gemm::GemmTraits::GlobalLoadStream::commit</a></div><div class="ttdeci">CUTLASS_DEVICE void commit()</div><div class="ttdoc">Commit the data. </div><div class="ttdef"><b>Definition:</b> gemm_traits.h:572</div></div>
|
|
<div class="ttc" id="structcutlass_1_1gemm_1_1GemmTileTraitsHelperB_3_01MatrixLayout_1_1kRowMajor_00_01GemmConfig___01_4_html_a9335aca8b152ff1167763de8ff8fb882"><div class="ttname"><a href="structcutlass_1_1gemm_1_1GemmTileTraitsHelperB_3_01MatrixLayout_1_1kRowMajor_00_01GemmConfig___01_4.html#a9335aca8b152ff1167763de8ff8fb882">cutlass::gemm::GemmTileTraitsHelperB< MatrixLayout::kRowMajor, GemmConfig_ >::SharedLoadTileTraits</a></div><div class="ttdeci">GemmSharedLoadTileBTraits< MultiplyAddScalar const, typename GemmConfig_::OutputTile, typename GemmConfig_::Warps, typename GemmConfig_::MultiplyAdd::ThreadsPerWarp, typename GemmConfig_::InstructionShape, GemmConfig_::kStages, GemmConfig_::kScalarsPerLdsB, 0 > SharedLoadTileTraits</div><div class="ttdoc">The traits class to build the iterator to load from shared memory for B^T. </div><div class="ttdef"><b>Definition:</b> gemm_traits.h:403</div></div>
|
|
<div class="ttc" id="structcutlass_1_1gemm_1_1GemmTraits_1_1MainLoopSharedStorage_html_a5513254af1f9979b6d0b9f236c3e7325"><div class="ttname"><a href="structcutlass_1_1gemm_1_1GemmTraits_1_1MainLoopSharedStorage.html#a5513254af1f9979b6d0b9f236c3e7325">cutlass::gemm::GemmTraits::MainLoopSharedStorage::clear</a></div><div class="ttdeci">ClearAccumulators::SharedStorage clear</div><div class="ttdef"><b>Definition:</b> gemm_traits.h:539</div></div>
|
|
<div class="ttc" id="structcutlass_1_1gemm_1_1GemmTraits_1_1MainLoopSharedStorage_html_a62d3dcf5d97a0a896b2033e55dfb0811"><div class="ttname"><a href="structcutlass_1_1gemm_1_1GemmTraits_1_1MainLoopSharedStorage.html#a62d3dcf5d97a0a896b2033e55dfb0811">cutlass::gemm::GemmTraits::MainLoopSharedStorage::stream_a</a></div><div class="ttdeci">StreamSharedStorage< GlobalLoadStreamA, SharedLoadStreamA > stream_a</div><div class="ttdef"><b>Definition:</b> gemm_traits.h:535</div></div>
|
|
<div class="ttc" id="structcutlass_1_1gemm_1_1GemmTileTraitsHelperB_3_01MatrixLayout_1_1kRowMajor_00_01GemmConfig___01_4_html_afbc41e7b98097b153fd27a48f073a877"><div class="ttname"><a href="structcutlass_1_1gemm_1_1GemmTileTraitsHelperB_3_01MatrixLayout_1_1kRowMajor_00_01GemmConfig___01_4.html#afbc41e7b98097b153fd27a48f073a877">cutlass::gemm::GemmTileTraitsHelperB< MatrixLayout::kRowMajor, GemmConfig_ >::GlobalTileTraits</a></div><div class="ttdeci">GemmGlobalTileTraits< GemmOperand::kB, MatrixLayout::kRowMajor, Scalar const, Shape< 1, GemmConfig_::OutputTile::kD, GemmConfig_::OutputTile::kH >, Shape< 1, ShapeCount< typename GemmConfig_::Warps >::kCount, GemmConfig_::kWarpSize >, GemmConfig_::kScalarsPerLdgB > GlobalTileTraits</div><div class="ttdoc">The traits class to build the iterator to load data from global memory for B^T. </div><div class="ttdef"><b>Definition:</b> gemm_traits.h:369</div></div>
|
|
<div class="ttc" id="gemm__shared__stream_8h_html"><div class="ttname"><a href="gemm__shared__stream_8h.html">gemm_shared_stream.h</a></div><div class="ttdoc">Defines abstractions for managing loading and storing fragments to shared memory in the efficient GEM...</div></div>
|
|
<div class="ttc" id="structcutlass_1_1ShapeCount_html"><div class="ttname"><a href="structcutlass_1_1ShapeCount.html">cutlass::ShapeCount</a></div><div class="ttdoc">Compute derived counted of a Layout Concept based class. </div><div class="ttdef"><b>Definition:</b> shape.h:79</div></div>
|
|
<div class="ttc" id="convert_8h_html"><div class="ttname"><a href="convert_8h.html">convert.h</a></div><div class="ttdoc">Defines conversion operations among Fragments of different base type. </div></div>
|
|
<div class="ttc" id="structcutlass_1_1gemm_1_1GemmTraits_1_1Params_html_a78f22007632937bbd5f3dab7b097477d"><div class="ttname"><a href="structcutlass_1_1gemm_1_1GemmTraits_1_1Params.html#a78f22007632937bbd5f3dab7b097477d">cutlass::gemm::GemmTraits::Params::shared_stream_b</a></div><div class="ttdeci">SharedLoadStreamB::Params shared_stream_b</div><div class="ttdoc">The params for the B stream from shared memory. </div><div class="ttdef"><b>Definition:</b> gemm_traits.h:491</div></div>
|
|
<div class="ttc" id="structcutlass_1_1gemm_1_1SimplifiedGemmTraits_html"><div class="ttname"><a href="structcutlass_1_1gemm_1_1SimplifiedGemmTraits.html">cutlass::gemm::SimplifiedGemmTraits</a></div><div class="ttdef"><b>Definition:</b> gemm_traits.h:723</div></div>
|
|
<div class="ttc" id="structcutlass_1_1gemm_1_1GemmTraits_1_1SharedLoadStream_html_a4a8c64d85aa012e3689dd024c486924b"><div class="ttname"><a href="structcutlass_1_1gemm_1_1GemmTraits_1_1SharedLoadStream.html#a4a8c64d85aa012e3689dd024c486924b">cutlass::gemm::GemmTraits::SharedLoadStream::fragment_a</a></div><div class="ttdeci">CUTLASS_DEVICE SharedLoadStreamA::Fragment const & fragment_a(int step) const</div><div class="ttdoc">The fragment A. </div><div class="ttdef"><b>Definition:</b> gemm_traits.h:610</div></div>
|
|
<div class="ttc" id="structcutlass_1_1gemm_1_1GemmTraits_html_a078e8d9cfa1b182e1b96a2cc8c54b684"><div class="ttname"><a href="structcutlass_1_1gemm_1_1GemmTraits.html#a078e8d9cfa1b182e1b96a2cc8c54b684">cutlass::gemm::GemmTraits::kLayoutB</a></div><div class="ttdeci">static MatrixLayout::Kind const kLayoutB</div><div class="ttdoc">The layout of B. </div><div class="ttdef"><b>Definition:</b> gemm_traits.h:444</div></div>
|
|
<div class="ttc" id="structcutlass_1_1gemm_1_1GemmConfig_html_a9dd092bca2f1f2c039f367b23bafa9c1"><div class="ttname"><a href="structcutlass_1_1gemm_1_1GemmConfig.html#a9dd092bca2f1f2c039f367b23bafa9c1">cutlass::gemm::GemmConfig::kAccumulatorsPerLdsB</a></div><div class="ttdeci">static int const kAccumulatorsPerLdsB</div><div class="ttdef"><b>Definition:</b> gemm_traits.h:128</div></div>
|
|
<div class="ttc" id="structcutlass_1_1gemm_1_1GemmConfig_html_a221949c289057e39d439ce03a5b01c52"><div class="ttname"><a href="structcutlass_1_1gemm_1_1GemmConfig.html#a221949c289057e39d439ce03a5b01c52">cutlass::gemm::GemmConfig::kStages</a></div><div class="ttdeci">static int const kStages</div><div class="ttdoc">The number of stages in shared memory to implement double, triple, more-buffering. </div><div class="ttdef"><b>Definition:</b> gemm_traits.h:131</div></div>
|
|
<div class="ttc" id="structcutlass_1_1TileStoreIterator_html"><div class="ttname"><a href="structcutlass_1_1TileStoreIterator.html">cutlass::TileStoreIterator</a></div><div class="ttdoc">An iterator implementing Tile Store Iterator Concept for storing a tile to memory. </div><div class="ttdef"><b>Definition:</b> tile_iterator.h:620</div></div>
|
|
<div class="ttc" id="structcutlass_1_1gemm_1_1ThreadMultiplyAdd_html_aa83190df3c1639b6dd632cd4b9278d77"><div class="ttname"><a href="structcutlass_1_1gemm_1_1ThreadMultiplyAdd.html#aa83190df3c1639b6dd632cd4b9278d77">cutlass::gemm::ThreadMultiplyAdd::AccumulatorsPerWarp</a></div><div class="ttdeci">ShapeMul< AccumulatorsPerThread, ThreadsPerWarp >::Shape AccumulatorsPerWarp</div><div class="ttdoc">The number of accumulators per warp. </div><div class="ttdef"><b>Definition:</b> thread_multiply_add.h:51</div></div>
|
|
<div class="ttc" id="structcutlass_1_1gemm_1_1GemmTileTraitsHelperA_3_01MatrixLayout_1_1kRowMajor_00_01GemmConfig___01_4_html_afac6f7a62b24396ea6861e6fd10779cc"><div class="ttname"><a href="structcutlass_1_1gemm_1_1GemmTileTraitsHelperA_3_01MatrixLayout_1_1kRowMajor_00_01GemmConfig___01_4.html#afac6f7a62b24396ea6861e6fd10779cc">cutlass::gemm::GemmTileTraitsHelperA< MatrixLayout::kRowMajor, GemmConfig_ >::MultiplyAddScalar</a></div><div class="ttdeci">GemmConfig_::MultiplyAdd::ScalarA MultiplyAddScalar</div><div class="ttdoc">The scalar stored in shared memory. </div><div class="ttdef"><b>Definition:</b> gemm_traits.h:212</div></div>
|
|
</div><!-- fragment --></div><!-- contents -->
|
|
<!-- start footer part -->
|
|
<hr class="footer"/><address class="footer"><small>
|
|
Generated on Thu May 3 2018 16:36:12 for Cutlass by  <a href="http://www.doxygen.org/index.html">
|
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
|
</a> 1.8.14
|
|
</small></address>
|
|
</body>
|
|
</html>
|