cutlass/docs/generated-html/tile__iterator_8h_source.html
2018-05-16 11:44:56 -07:00

247 lines
220 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: tile_iterator.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&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
<!-- 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> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">tile_iterator.h</div> </div>
</div><!--header-->
<div class="contents">
<a href="tile__iterator_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>&#160;<span class="comment">/***************************************************************************************************</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<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>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<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>&#160;<span class="comment"> * provided that the following conditions are met:</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<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>&#160;<span class="comment"> * conditions and the following disclaimer.</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<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>&#160;<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>&#160;<span class="comment"> * provided with the distribution.</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<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>&#160;<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>&#160;<span class="comment"> * permission.</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS &quot;AS IS&quot; AND ANY EXPRESS OR</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<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>&#160;<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>&#160;<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>&#160;<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>&#160;<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>&#160;<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>&#160;<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>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment"> **************************************************************************************************/</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="fragment_8h.html">cutlass/fragment.h</a>&gt;</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="load__store_8h.html">cutlass/load_store.h</a>&gt;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="predicate__vector_8h.html">cutlass/predicate_vector.h</a>&gt;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="vector_8h.html">cutlass/vector.h</a>&gt;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacecutlass.html">cutlass</a> {</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;</div><div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="structcutlass_1_1IteratorAdvance.html"> 61</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structcutlass_1_1IteratorAdvance.html">IteratorAdvance</a> {</div><div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="structcutlass_1_1IteratorAdvance.html#a9ad9c2302ddffa148d47cdcf6c738ddaa567e61af8a3401d302f3a3ab26418df0"> 62</a></span>&#160; <span class="keyword">enum</span> <a class="code" href="structcutlass_1_1IteratorAdvance.html#a9ad9c2302ddffa148d47cdcf6c738dda">Kind</a> { <a class="code" href="structcutlass_1_1IteratorAdvance.html#a9ad9c2302ddffa148d47cdcf6c738ddaa56ecb02f4ed3bd7ae4a9c971805ee8c5">kD</a>, <a class="code" href="structcutlass_1_1IteratorAdvance.html#a9ad9c2302ddffa148d47cdcf6c738ddaacfe756fca665eb1bbf389850915c1b81">kH</a>, <a class="code" href="structcutlass_1_1IteratorAdvance.html#a9ad9c2302ddffa148d47cdcf6c738ddaa567e61af8a3401d302f3a3ab26418df0">kW</a> };</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;};</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;</div><div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="structcutlass_1_1IteratorFragment.html"> 66</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structcutlass_1_1IteratorFragment.html">IteratorFragment</a> {</div><div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="structcutlass_1_1IteratorFragment.html#ae7b6a9ac856eca8b8e437305fa716a80a21d2b2793bab0d348df40715b8f14419"> 67</a></span>&#160; <span class="keyword">enum</span> <a class="code" href="structcutlass_1_1IteratorFragment.html#ae7b6a9ac856eca8b8e437305fa716a80">Kind</a> { <a class="code" href="structcutlass_1_1IteratorFragment.html#ae7b6a9ac856eca8b8e437305fa716a80aeca44a186befa21ccae44eb4dc7b6954">kScalar</a>, <a class="code" href="structcutlass_1_1IteratorFragment.html#ae7b6a9ac856eca8b8e437305fa716a80a21d2b2793bab0d348df40715b8f14419">kWmmaMatrix</a> };</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;};</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> Tile_, <span class="keyword">typename</span> Delta_, <span class="keyword">typename</span> Iterations_, <span class="keyword">typename</span> ThreadOffset_&gt;</div><div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="structcutlass_1_1TileTraits.html"> 77</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structcutlass_1_1TileTraits.html">TileTraits</a> {</div><div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="structcutlass_1_1TileTraits.html#ab831be0adb255eece4f2e12fd9713831"> 79</a></span>&#160; <span class="keyword">typedef</span> Tile_ <a class="code" href="structcutlass_1_1TileTraits.html#ab831be0adb255eece4f2e12fd9713831">Tile</a>;</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;</div><div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="structcutlass_1_1TileTraits.html#af88f5cea9f452d83004ea0fa0f9d56eb"> 82</a></span>&#160; <span class="keyword">typedef</span> Delta_ <a class="code" href="structcutlass_1_1TileTraits.html#af88f5cea9f452d83004ea0fa0f9d56eb">Delta</a>;</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;</div><div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="structcutlass_1_1TileTraits.html#af7ae2fdb4c8f1702169cc7d437d2b469"> 85</a></span>&#160; <span class="keyword">typedef</span> Iterations_ <a class="code" href="structcutlass_1_1TileTraits.html#af7ae2fdb4c8f1702169cc7d437d2b469">Iterations</a>;</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;</div><div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="structcutlass_1_1TileTraits.html#af9c0fc178dac7f9dac8d254da34e04dd"> 88</a></span>&#160; <span class="keyword">typedef</span> ThreadOffset_ <a class="code" href="structcutlass_1_1TileTraits.html#af9c0fc178dac7f9dac8d254da34e04dd">ThreadOffset</a>;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;};</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> Traits_,</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <span class="keyword">typename</span> Scalar_,</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <a class="code" href="structcutlass_1_1IteratorAdvance.html#a9ad9c2302ddffa148d47cdcf6c738dda">IteratorAdvance::Kind</a> Advance_ = <a class="code" href="structcutlass_1_1IteratorAdvance.html#a9ad9c2302ddffa148d47cdcf6c738ddaacfe756fca665eb1bbf389850915c1b81">IteratorAdvance::kH</a>,</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <a class="code" href="structcutlass_1_1MemorySpace.html#a1e031ec41668015a8fe4ba2c1145d03c">MemorySpace::Kind</a> <a class="code" href="structcutlass_1_1MemorySpace.html">MemorySpace</a> = <a class="code" href="structcutlass_1_1MemorySpace.html#a1e031ec41668015a8fe4ba2c1145d03ca21a44c0b78017acea0d1ffe223e5ca38">MemorySpace::kGeneric</a>,</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="keyword">typename</span> Index_ = int,</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <span class="keyword">typename</span> FragmentElement_ = Scalar_,</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <a class="code" href="structcutlass_1_1IteratorFragment.html#ae7b6a9ac856eca8b8e437305fa716a80">IteratorFragment::Kind</a> IteratorFragment_ = <a class="code" href="structcutlass_1_1IteratorFragment.html#ae7b6a9ac856eca8b8e437305fa716a80aeca44a186befa21ccae44eb4dc7b6954">IteratorFragment::kScalar</a>,</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keyword">typename</span> Skew_ = <a class="code" href="structcutlass_1_1Shape.html">Shape&lt;0, 0, 0, 0&gt;</a> &gt;</div><div class="line"><a name="l00102"></a><span class="lineno"><a class="line" href="structcutlass_1_1TileIteratorBase.html"> 102</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structcutlass_1_1TileIteratorBase.html">TileIteratorBase</a> {</div><div class="line"><a name="l00104"></a><span class="lineno"><a class="line" href="structcutlass_1_1TileIteratorBase.html#ae7add0ee02bbec2c130ebaf608ab0696"> 104</a></span>&#160; <span class="keyword">typedef</span> Traits_ <a class="code" href="structcutlass_1_1TileIteratorBase.html#ae7add0ee02bbec2c130ebaf608ab0696">Traits</a>;</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;</div><div class="line"><a name="l00107"></a><span class="lineno"><a class="line" href="structcutlass_1_1TileIteratorBase.html#a17163e93d7d3616b4950925f72bb4c16"> 107</a></span>&#160; <span class="keyword">typedef</span> Scalar_ <a class="code" href="structcutlass_1_1TileIteratorBase.html#a17163e93d7d3616b4950925f72bb4c16">Scalar</a>;</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;</div><div class="line"><a name="l00110"></a><span class="lineno"><a class="line" href="structcutlass_1_1TileIteratorBase.html#ac7cca14d54bf3f0749db1ffaea7c9ae7"> 110</a></span>&#160; <span class="keyword">typedef</span> FragmentElement_ <a class="code" href="structcutlass_1_1TileIteratorBase.html#ac7cca14d54bf3f0749db1ffaea7c9ae7">FragmentElement</a>;</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;</div><div class="line"><a name="l00113"></a><span class="lineno"><a class="line" href="structcutlass_1_1TileIteratorBase.html#ac1a64e974dcd69c3a86a31db6cbff421"> 113</a></span>&#160; <span class="keyword">static</span> <a class="code" href="structcutlass_1_1IteratorAdvance.html#a9ad9c2302ddffa148d47cdcf6c738dda">IteratorAdvance::Kind</a> <span class="keyword">const</span> <a class="code" href="structcutlass_1_1TileIteratorBase.html#ac1a64e974dcd69c3a86a31db6cbff421">kAdvance</a> = Advance_;</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;</div><div class="line"><a name="l00116"></a><span class="lineno"><a class="line" href="structcutlass_1_1TileIteratorBase.html#a38c8ec1e9d0117172981b4c7dd4bf3be"> 116</a></span>&#160; <span class="keyword">static</span> <a class="code" href="structcutlass_1_1IteratorFragment.html#ae7b6a9ac856eca8b8e437305fa716a80">IteratorFragment::Kind</a> <span class="keyword">const</span> <a class="code" href="structcutlass_1_1TileIteratorBase.html#a38c8ec1e9d0117172981b4c7dd4bf3be">kIteratorFragment</a> = IteratorFragment_;</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;</div><div class="line"><a name="l00119"></a><span class="lineno"><a class="line" href="structcutlass_1_1TileIteratorBase.html#a871c9b82109eab432c5a1d465643bf97"> 119</a></span>&#160; <span class="keyword">static</span> <a class="code" href="structcutlass_1_1MemorySpace.html#a1e031ec41668015a8fe4ba2c1145d03c">MemorySpace::Kind</a> <span class="keyword">const</span> <a class="code" href="structcutlass_1_1TileIteratorBase.html#a871c9b82109eab432c5a1d465643bf97">kMemorySpace</a> = <a class="code" href="structcutlass_1_1MemorySpace.html">MemorySpace</a>;</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;</div><div class="line"><a name="l00122"></a><span class="lineno"><a class="line" href="structcutlass_1_1TileIteratorBase.html#a44665808adfd69df0d26cec4b1840cc3"> 122</a></span>&#160; <span class="keyword">typedef</span> Index_ <a class="code" href="structcutlass_1_1TileIteratorBase.html#a44665808adfd69df0d26cec4b1840cc3">Index</a>;</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;</div><div class="line"><a name="l00125"></a><span class="lineno"><a class="line" href="structcutlass_1_1TileIteratorBase.html#ae89afbcf642b3023770ff22969c51d16"> 125</a></span>&#160; <span class="keyword">typedef</span> Skew_ <a class="code" href="structcutlass_1_1TileIteratorBase.html#ae89afbcf642b3023770ff22969c51d16">Skew</a>;</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;</div><div class="line"><a name="l00128"></a><span class="lineno"><a class="line" href="structcutlass_1_1TileIteratorBase.html#a954ef18acc12d8256a7d4e37683f8c2c"> 128</a></span>&#160; <span class="keyword">typedef</span> <span class="keyword">typename</span> Traits::Tile <a class="code" href="structcutlass_1_1TileIteratorBase.html#a954ef18acc12d8256a7d4e37683f8c2c">Tile</a>;</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;</div><div class="line"><a name="l00131"></a><span class="lineno"><a class="line" href="structcutlass_1_1TileIteratorBase.html#a9bc6c04f4a3adeb5a29743fa43425088"> 131</a></span>&#160; <span class="keyword">typedef</span> <span class="keyword">typename</span> Traits::Delta <a class="code" href="structcutlass_1_1TileIteratorBase.html#a9bc6c04f4a3adeb5a29743fa43425088">Delta</a>;</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;</div><div class="line"><a name="l00134"></a><span class="lineno"><a class="line" href="structcutlass_1_1TileIteratorBase.html#a561ceb1093b28b8dce67df0129b7b8b8"> 134</a></span>&#160; <span class="keyword">typedef</span> <span class="keyword">typename</span> Traits::ImmediateOffsetStrides <a class="code" href="structcutlass_1_1TileIteratorBase.html#a561ceb1093b28b8dce67df0129b7b8b8">ImmediateOffsetStrides</a>;</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;</div><div class="line"><a name="l00137"></a><span class="lineno"><a class="line" href="structcutlass_1_1TileIteratorBase.html#a352ed0773b37f03bf68e4b6cf9899474"> 137</a></span>&#160; <span class="keyword">typedef</span> <span class="keyword">typename</span> Traits::Iterations <a class="code" href="structcutlass_1_1TileIteratorBase.html#a352ed0773b37f03bf68e4b6cf9899474">Iterations</a>;</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;</div><div class="line"><a name="l00140"></a><span class="lineno"><a class="line" href="structcutlass_1_1TileIteratorBase.html#a5abf4755aee07dc58b1d6183fbf4786f"> 140</a></span>&#160; <span class="keyword">typedef</span> <span class="keyword">typename</span> Traits::ThreadOffset <a class="code" href="structcutlass_1_1TileIteratorBase.html#a5abf4755aee07dc58b1d6183fbf4786f">ThreadOffset</a>;</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;</div><div class="line"><a name="l00143"></a><span class="lineno"><a class="line" href="structcutlass_1_1TileIteratorBase.html#aef07ba456ea016092d7d2446751b76a3"> 143</a></span>&#160; <span class="keyword">static</span> <span class="keywordtype">int</span> <span class="keyword">const</span> <a class="code" href="structcutlass_1_1TileIteratorBase.html#aef07ba456ea016092d7d2446751b76a3">kAccessSize</a> = Tile::kC;</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;</div><div class="line"><a name="l00146"></a><span class="lineno"><a class="line" href="structcutlass_1_1TileIteratorBase.html#abb3dde23971ad35a477b75ee99381b53"> 146</a></span>&#160; <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="unioncutlass_1_1Vector.html">Vectorize&lt;FragmentElement, kAccessSize&gt;::Type</a> <a class="code" href="structcutlass_1_1TileIteratorBase.html#abb3dde23971ad35a477b75ee99381b53">AccessType</a>;</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;</div><div class="line"><a name="l00149"></a><span class="lineno"><a class="line" href="structcutlass_1_1TileIteratorBase.html#a4e0b2bc06bb8f52313e4d8c51ab30ff2"> 149</a></span>&#160; <span class="keyword">static</span> <span class="keywordtype">int</span> <span class="keyword">const</span> <a class="code" href="structcutlass_1_1TileIteratorBase.html#a4e0b2bc06bb8f52313e4d8c51ab30ff2">kFragmentSize</a> =</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; (<a class="code" href="structcutlass_1_1TileIteratorBase.html#a38c8ec1e9d0117172981b4c7dd4bf3be">kIteratorFragment</a> == <a class="code" href="structcutlass_1_1IteratorFragment.html#ae7b6a9ac856eca8b8e437305fa716a80a21d2b2793bab0d348df40715b8f14419">IteratorFragment::kWmmaMatrix</a> ? 16 : <span class="keyword">sizeof</span>(<a class="code" href="structcutlass_1_1TileIteratorBase.html#abb3dde23971ad35a477b75ee99381b53">AccessType</a>));</div><div class="line"><a name="l00152"></a><span class="lineno"><a class="line" href="structcutlass_1_1TileIteratorBase.html#a6ca47fd6e2f9cbb3498c138417ea414a"> 152</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="structcutlass_1_1TileIteratorBase.html#a0d7b595d7959cc1680fc07c2e02e1c8e">Fragment&lt;Scalar, ShapeCount&lt;Tile&gt;::kCount</a>, <a class="code" href="structcutlass_1_1TileIteratorBase.html#a4e0b2bc06bb8f52313e4d8c51ab30ff2">kFragmentSize</a>&gt; <a class="code" href="structcutlass_1_1TileIteratorBase.html#a6ca47fd6e2f9cbb3498c138417ea414a">Storage</a>;</div><div class="line"><a name="l00154"></a><span class="lineno"><a class="line" href="structcutlass_1_1TileIteratorBase.html#a0d7b595d7959cc1680fc07c2e02e1c8e"> 154</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="structcutlass_1_1TileIteratorBase.html#a0d7b595d7959cc1680fc07c2e02e1c8e">Fragment&lt;FragmentElement, ShapeCount&lt;Iterations&gt;::kCount</a> * <a class="code" href="structcutlass_1_1TileIteratorBase.html#aef07ba456ea016092d7d2446751b76a3">kAccessSize</a>&gt; <a class="code" href="structcutlass_1_1TileIteratorBase.html#a0d7b595d7959cc1680fc07c2e02e1c8e">Fragment</a>;</div><div class="line"><a name="l00156"></a><span class="lineno"><a class="line" href="structcutlass_1_1TileIteratorBase.html#a379a52ed1128fc9f93cad35d3e3233e5"> 156</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="structcutlass_1_1TileIteratorBase.html#a379a52ed1128fc9f93cad35d3e3233e5">FragmentIterator&lt;Fragment, Iterations, AccessType&gt;</a> <a class="code" href="structcutlass_1_1TileIteratorBase.html#a379a52ed1128fc9f93cad35d3e3233e5">FragmentIterator</a>;</div><div class="line"><a name="l00158"></a><span class="lineno"><a class="line" href="structcutlass_1_1TileIteratorBase.html#a25a241bbdc0b0121992019a16f1a6d60"> 158</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="structcutlass_1_1TileIteratorBase.html#a25a241bbdc0b0121992019a16f1a6d60">FragmentConstIterator&lt;Fragment, Iterations, AccessType&gt;</a> <a class="code" href="structcutlass_1_1TileIteratorBase.html#a25a241bbdc0b0121992019a16f1a6d60">FragmentConstIterator</a>;</div><div class="line"><a name="l00160"></a><span class="lineno"><a class="line" href="structcutlass_1_1TileIteratorBase.html#a14f4b356c9cd320e6e7b451edbf58c24"> 160</a></span>&#160; <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="structcutlass_1_1FragmentIterator.html#a63ff1767c4923b0a2b6b64487306ed76">FragmentIterator::FragmentShape</a> <a class="code" href="structcutlass_1_1TileIteratorBase.html#a14f4b356c9cd320e6e7b451edbf58c24">FragmentShape</a>;</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;</div><div class="line"><a name="l00163"></a><span class="lineno"><a class="line" href="structcutlass_1_1TileIteratorBase.html#a7ab46a9210b421d32af4d1394892cfd5"> 163</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="structcutlass_1_1TileIteratorBase.html#a7ab46a9210b421d32af4d1394892cfd5">PredicateVector&lt;ShapeCount&lt;Iterations&gt;::kCount</a>&gt; <a class="code" href="structcutlass_1_1TileIteratorBase.html#a7ab46a9210b421d32af4d1394892cfd5">PredicateVector</a>;</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; <span class="comment">//</span></div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <span class="comment">// Params struct</span></div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <span class="comment">//</span></div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;</div><div class="line"><a name="l00170"></a><span class="lineno"><a class="line" href="structcutlass_1_1TileIteratorBase_1_1Params.html"> 170</a></span>&#160; <span class="keyword">struct </span><a class="code" href="structcutlass_1_1TileIteratorBase_1_1Params.html">Params</a> {</div><div class="line"><a name="l00171"></a><span class="lineno"><a class="line" href="structcutlass_1_1TileIteratorBase_1_1Params.html#ad67234ec264354a22032bb2519575dc1"> 171</a></span>&#160; <a class="code" href="structcutlass_1_1TileIteratorBase.html#a44665808adfd69df0d26cec4b1840cc3">Index</a> <a class="code" href="structcutlass_1_1TileIteratorBase_1_1Params.html#ad67234ec264354a22032bb2519575dc1">stride_d</a>;</div><div class="line"><a name="l00172"></a><span class="lineno"><a class="line" href="structcutlass_1_1TileIteratorBase_1_1Params.html#a58e8c883aea4cfdfa5a84c25a4704ebc"> 172</a></span>&#160; <a class="code" href="structcutlass_1_1TileIteratorBase.html#a44665808adfd69df0d26cec4b1840cc3">Index</a> <a class="code" href="structcutlass_1_1TileIteratorBase_1_1Params.html#a58e8c883aea4cfdfa5a84c25a4704ebc">stride_h</a>;</div><div class="line"><a name="l00173"></a><span class="lineno"><a class="line" href="structcutlass_1_1TileIteratorBase_1_1Params.html#a313984457c78eea66c980f6813047b9c"> 173</a></span>&#160; <a class="code" href="structcutlass_1_1TileIteratorBase.html#a44665808adfd69df0d26cec4b1840cc3">Index</a> <a class="code" href="structcutlass_1_1TileIteratorBase_1_1Params.html#a313984457c78eea66c980f6813047b9c">stride_w</a>;</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;</div><div class="line"><a name="l00175"></a><span class="lineno"><a class="line" href="structcutlass_1_1TileIteratorBase_1_1Params.html#af95fa1b5102176a0fa9b17713fd48150"> 175</a></span>&#160; <a class="code" href="structcutlass_1_1TileIteratorBase.html#a44665808adfd69df0d26cec4b1840cc3">Index</a> <a class="code" href="structcutlass_1_1TileIteratorBase_1_1Params.html#af95fa1b5102176a0fa9b17713fd48150">inc_d</a>;</div><div class="line"><a name="l00176"></a><span class="lineno"><a class="line" href="structcutlass_1_1TileIteratorBase_1_1Params.html#aea591d4278a8338ae8b50fa0b8f3a366"> 176</a></span>&#160; <a class="code" href="structcutlass_1_1TileIteratorBase.html#a44665808adfd69df0d26cec4b1840cc3">Index</a> <a class="code" href="structcutlass_1_1TileIteratorBase_1_1Params.html#aea591d4278a8338ae8b50fa0b8f3a366">inc_h</a>;</div><div class="line"><a name="l00177"></a><span class="lineno"><a class="line" href="structcutlass_1_1TileIteratorBase_1_1Params.html#ac6e81450a2d78555a6c2415dcc42b178"> 177</a></span>&#160; <a class="code" href="structcutlass_1_1TileIteratorBase.html#a44665808adfd69df0d26cec4b1840cc3">Index</a> <a class="code" href="structcutlass_1_1TileIteratorBase_1_1Params.html#ac6e81450a2d78555a6c2415dcc42b178">inc_w</a>;</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;</div><div class="line"><a name="l00179"></a><span class="lineno"><a class="line" href="structcutlass_1_1TileIteratorBase_1_1Params.html#a1187258cd4068a627e73bee0302f1fc2"> 179</a></span>&#160; <a class="code" href="structcutlass_1_1TileIteratorBase.html#a44665808adfd69df0d26cec4b1840cc3">Index</a> <a class="code" href="structcutlass_1_1TileIteratorBase_1_1Params.html#a1187258cd4068a627e73bee0302f1fc2">inc_advance</a>;</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <a class="code" href="cutlass_8h.html#a28c2443a142676d3d71effdae1a986b1">CUTLASS_HOST_DEVICE</a></div><div class="line"><a name="l00183"></a><span class="lineno"><a class="line" href="structcutlass_1_1TileIteratorBase_1_1Params.html#ad2631ffcc963638aa5b016c66a2e2c55"> 183</a></span>&#160; <span class="keywordtype">int</span> <a class="code" href="structcutlass_1_1TileIteratorBase_1_1Params.html#ad2631ffcc963638aa5b016c66a2e2c55">initialize</a>(<a class="code" href="structcutlass_1_1TileIteratorBase.html#a44665808adfd69df0d26cec4b1840cc3">Index</a> _stride_d,</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <a class="code" href="structcutlass_1_1TileIteratorBase.html#a44665808adfd69df0d26cec4b1840cc3">Index</a> _stride_h,</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; <a class="code" href="structcutlass_1_1TileIteratorBase.html#a44665808adfd69df0d26cec4b1840cc3">Index</a> _stride_w,</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; <a class="code" href="structcutlass_1_1TileIteratorBase.html#a44665808adfd69df0d26cec4b1840cc3">Index</a> _inc_d,</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <a class="code" href="structcutlass_1_1TileIteratorBase.html#a44665808adfd69df0d26cec4b1840cc3">Index</a> _inc_h,</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <a class="code" href="structcutlass_1_1TileIteratorBase.html#a44665808adfd69df0d26cec4b1840cc3">Index</a> _inc_w,</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <a class="code" href="structcutlass_1_1TileIteratorBase.html#a44665808adfd69df0d26cec4b1840cc3">Index</a> _inc_advance) {</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; <a class="code" href="structcutlass_1_1TileIteratorBase_1_1Params.html#ad67234ec264354a22032bb2519575dc1">stride_d</a> = _stride_d;</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <a class="code" href="structcutlass_1_1TileIteratorBase_1_1Params.html#a58e8c883aea4cfdfa5a84c25a4704ebc">stride_h</a> = _stride_h;</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <a class="code" href="structcutlass_1_1TileIteratorBase_1_1Params.html#a313984457c78eea66c980f6813047b9c">stride_w</a> = _stride_w;</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; <a class="code" href="structcutlass_1_1TileIteratorBase_1_1Params.html#af95fa1b5102176a0fa9b17713fd48150">inc_d</a> = _inc_d;</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; <a class="code" href="structcutlass_1_1TileIteratorBase_1_1Params.html#aea591d4278a8338ae8b50fa0b8f3a366">inc_h</a> = _inc_h;</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <a class="code" href="structcutlass_1_1TileIteratorBase_1_1Params.html#ac6e81450a2d78555a6c2415dcc42b178">inc_w</a> = _inc_w;</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <a class="code" href="structcutlass_1_1TileIteratorBase_1_1Params.html#a1187258cd4068a627e73bee0302f1fc2">inc_advance</a> = _inc_advance;</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160;</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; }</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160;</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <a class="code" href="cutlass_8h.html#a28c2443a142676d3d71effdae1a986b1">CUTLASS_HOST_DEVICE</a></div><div class="line"><a name="l00203"></a><span class="lineno"><a class="line" href="structcutlass_1_1TileIteratorBase_1_1Params.html#a3ba93370bd4b2ede4bd4eb97ac0881be"> 203</a></span>&#160; <span class="keywordtype">int</span> <a class="code" href="structcutlass_1_1TileIteratorBase_1_1Params.html#a3ba93370bd4b2ede4bd4eb97ac0881be">initialize</a>(<a class="code" href="structcutlass_1_1TileIteratorBase.html#a44665808adfd69df0d26cec4b1840cc3">Index</a> _stride_d, <a class="code" href="structcutlass_1_1TileIteratorBase.html#a44665808adfd69df0d26cec4b1840cc3">Index</a> _stride_h, <a class="code" href="structcutlass_1_1TileIteratorBase.html#a44665808adfd69df0d26cec4b1840cc3">Index</a> _stride_w) {</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; <a class="code" href="structcutlass_1_1TileIteratorBase_1_1Params.html#ad67234ec264354a22032bb2519575dc1">stride_d</a> = _stride_d;</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <a class="code" href="structcutlass_1_1TileIteratorBase_1_1Params.html#a58e8c883aea4cfdfa5a84c25a4704ebc">stride_h</a> = _stride_h;</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <a class="code" href="structcutlass_1_1TileIteratorBase_1_1Params.html#a313984457c78eea66c980f6813047b9c">stride_w</a> = _stride_w;</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160;</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; <a class="code" href="structcutlass_1_1TileIteratorBase_1_1Params.html#ac6e81450a2d78555a6c2415dcc42b178">inc_w</a> = <a class="code" href="structcutlass_1_1TileIteratorBase_1_1Params.html#a313984457c78eea66c980f6813047b9c">stride_w</a> * Delta::kW;</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; <a class="code" href="structcutlass_1_1TileIteratorBase_1_1Params.html#aea591d4278a8338ae8b50fa0b8f3a366">inc_h</a> = <a class="code" href="structcutlass_1_1TileIteratorBase_1_1Params.html#a58e8c883aea4cfdfa5a84c25a4704ebc">stride_h</a> * Delta::kH - <a class="code" href="structcutlass_1_1TileIteratorBase_1_1Params.html#a313984457c78eea66c980f6813047b9c">stride_w</a> * Delta::kW * (Iterations::kW - 1);</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="structcutlass_1_1TileIteratorBase.html#ac1a64e974dcd69c3a86a31db6cbff421">kAdvance</a> == <a class="code" href="structcutlass_1_1IteratorAdvance.html#a9ad9c2302ddffa148d47cdcf6c738ddaacfe756fca665eb1bbf389850915c1b81">IteratorAdvance::kH</a>) {</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <span class="comment">// Advance in the H dimension.</span></div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; <a class="code" href="structcutlass_1_1TileIteratorBase_1_1Params.html#af95fa1b5102176a0fa9b17713fd48150">inc_d</a> = 0;</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="structcutlass_1_1TileIteratorBase.html#ac1a64e974dcd69c3a86a31db6cbff421">kAdvance</a> == <a class="code" href="structcutlass_1_1IteratorAdvance.html#a9ad9c2302ddffa148d47cdcf6c738ddaa567e61af8a3401d302f3a3ab26418df0">IteratorAdvance::kW</a>) {</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; <span class="comment">// Advance in the W dimension.</span></div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; <a class="code" href="structcutlass_1_1TileIteratorBase_1_1Params.html#af95fa1b5102176a0fa9b17713fd48150">inc_d</a> = <a class="code" href="structcutlass_1_1TileIteratorBase_1_1Params.html#a313984457c78eea66c980f6813047b9c">stride_w</a> * Tile::kW - <a class="code" href="structcutlass_1_1TileIteratorBase_1_1Params.html#a58e8c883aea4cfdfa5a84c25a4704ebc">stride_h</a> * Tile::kH;</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; <span class="comment">// Advance in the D dimension.</span></div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; <a class="code" href="structcutlass_1_1TileIteratorBase_1_1Params.html#af95fa1b5102176a0fa9b17713fd48150">inc_d</a> = <a class="code" href="structcutlass_1_1TileIteratorBase_1_1Params.html#ad67234ec264354a22032bb2519575dc1">stride_d</a>;</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; }</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160;</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; <a class="code" href="structcutlass_1_1TileIteratorBase_1_1Params.html#a1187258cd4068a627e73bee0302f1fc2">inc_advance</a> = 0;</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160;</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; }</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160;</div><div class="line"><a name="l00227"></a><span class="lineno"><a class="line" href="structcutlass_1_1TileIteratorBase_1_1Params.html#af496afebb8983e5d346c681334955224"> 227</a></span>&#160; <a class="code" href="cutlass_8h.html#a28c2443a142676d3d71effdae1a986b1">CUTLASS_HOST_DEVICE</a> <span class="keywordtype">int</span> <a class="code" href="structcutlass_1_1TileIteratorBase_1_1Params.html#af496afebb8983e5d346c681334955224">initialize</a>() {</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; <a class="code" href="structcutlass_1_1TileIteratorBase_1_1Params.html#ad67234ec264354a22032bb2519575dc1">stride_d</a> = 0;</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; <a class="code" href="structcutlass_1_1TileIteratorBase_1_1Params.html#a58e8c883aea4cfdfa5a84c25a4704ebc">stride_h</a> = 0;</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; <a class="code" href="structcutlass_1_1TileIteratorBase_1_1Params.html#a313984457c78eea66c980f6813047b9c">stride_w</a> = 1;</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160;</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; <a class="code" href="structcutlass_1_1TileIteratorBase_1_1Params.html#af95fa1b5102176a0fa9b17713fd48150">inc_d</a> = <a class="code" href="structcutlass_1_1TileIteratorBase_1_1Params.html#aea591d4278a8338ae8b50fa0b8f3a366">inc_h</a> = <a class="code" href="structcutlass_1_1TileIteratorBase_1_1Params.html#ac6e81450a2d78555a6c2415dcc42b178">inc_w</a> = <a class="code" href="structcutlass_1_1TileIteratorBase_1_1Params.html#a1187258cd4068a627e73bee0302f1fc2">inc_advance</a> = 0;</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160;</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; }</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; };</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160;</div><div class="line"><a name="l00239"></a><span class="lineno"><a class="line" href="structcutlass_1_1TileIteratorBase.html#af78a2bf3e7507dc7f50343a3c209f770"> 239</a></span>&#160; CUTLASS_DEVICE <span class="keywordtype">bool</span> <a class="code" href="structcutlass_1_1TileIteratorBase.html#af78a2bf3e7507dc7f50343a3c209f770">valid</a>(<span class="keywordtype">int</span> d, <span class="keywordtype">int</span> h, <span class="keywordtype">int</span> w, <span class="keywordtype">int</span> c)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <span class="keyword">true</span>; }</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160;</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; <span class="comment">//</span></div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; <span class="comment">// Static function members</span></div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; <span class="comment">//</span></div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160;</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> PredicateIterator&gt;</div><div class="line"><a name="l00247"></a><span class="lineno"><a class="line" href="structcutlass_1_1TileIteratorBase.html#a78b6c0d6a1a96dd55a34bc302ecb07d7"> 247</a></span>&#160; CUTLASS_DEVICE <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="structcutlass_1_1TileIteratorBase.html#a78b6c0d6a1a96dd55a34bc302ecb07d7">initialize_predicates</a>(PredicateIterator predicate_it,</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; <a class="code" href="structcutlass_1_1Coord.html">Coord&lt;3&gt;</a> <span class="keyword">const</span> &amp;bounds,</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; <a class="code" href="structcutlass_1_1Coord.html">Coord&lt;3&gt;</a> <span class="keyword">const</span> &amp;offset = <a class="code" href="namespacecutlass.html#a7419519fa453a121dfa5f26bf87318d9">make_Coord</a>(0, 0, 0)) {</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">int</span> d = 0; d &lt; Iterations::kD; ++d) {</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; <span class="keywordtype">bool</span> enable_d = (d * Delta::kD + offset[0] &lt; bounds[0]);</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">int</span> h = 0; h &lt; Iterations::kH; ++h) {</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; <span class="keywordtype">bool</span> enable_h = (h * Delta::kH + offset[1] &lt; bounds[1]);</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">int</span> w = 0; w &lt; Iterations::kW; ++w) {</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; <span class="keywordtype">bool</span> enable_w = (w * Tile::kC * Delta::kW + offset[2] &lt; bounds[2]);</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; predicate_it.set(d, h, w, 0, enable_d &amp;&amp; enable_h &amp;&amp; enable_w);</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; }</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; }</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; }</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; }</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160;};</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160;</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160;</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160;</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> Traits_,</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; <span class="keyword">typename</span> Scalar_,</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; <a class="code" href="structcutlass_1_1IteratorAdvance.html#a9ad9c2302ddffa148d47cdcf6c738dda">IteratorAdvance::Kind</a> Advance_ = <a class="code" href="structcutlass_1_1IteratorAdvance.html#a9ad9c2302ddffa148d47cdcf6c738ddaacfe756fca665eb1bbf389850915c1b81">IteratorAdvance::kH</a>,</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; <a class="code" href="structcutlass_1_1MemorySpace.html#a1e031ec41668015a8fe4ba2c1145d03c">MemorySpace::Kind</a> MemorySpace = <a class="code" href="structcutlass_1_1MemorySpace.html#a1e031ec41668015a8fe4ba2c1145d03ca21a44c0b78017acea0d1ffe223e5ca38">MemorySpace::kGeneric</a>,</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; <span class="keyword">typename</span> Index_ = int,</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; <span class="keyword">typename</span> FragmentElement_ = Scalar_,</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; <a class="code" href="structcutlass_1_1IteratorFragment.html#ae7b6a9ac856eca8b8e437305fa716a80">IteratorFragment::Kind</a> IteratorFragment_ = <a class="code" href="structcutlass_1_1IteratorFragment.html#ae7b6a9ac856eca8b8e437305fa716a80aeca44a186befa21ccae44eb4dc7b6954">IteratorFragment::kScalar</a>,</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; <span class="keyword">typename</span> Skew_ = Shape&lt;0, 0, 0, 0&gt; &gt;</div><div class="line"><a name="l00302"></a><span class="lineno"><a class="line" href="structcutlass_1_1TileLoadIterator.html"> 302</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structcutlass_1_1TileLoadIterator.html">TileLoadIterator</a> : <span class="keyword">public</span> <a class="code" href="structcutlass_1_1TileIteratorBase.html">TileIteratorBase</a>&lt;Traits_,</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; Scalar_,</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; Advance_,</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; MemorySpace,</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; Index_,</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; FragmentElement_,</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; IteratorFragment_,</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; Skew_&gt; {</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; <span class="keyword">typedef</span> <a class="code" href="structcutlass_1_1TileIteratorBase.html">TileIteratorBase</a>&lt;Traits_,</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; Scalar_,</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; Advance_,</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; <a class="code" href="structcutlass_1_1MemorySpace.html">MemorySpace</a>,</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; Index_,</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; FragmentElement_,</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; IteratorFragment_,</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; Skew_&gt;</div><div class="line"><a name="l00319"></a><span class="lineno"><a class="line" href="structcutlass_1_1TileLoadIterator.html#a1bc1bd4893c14b313ee71b71db2903f3"> 319</a></span>&#160; <a class="code" href="structcutlass_1_1TileLoadIterator.html#a1bc1bd4893c14b313ee71b71db2903f3">Base</a>;</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160;</div><div class="line"><a name="l00322"></a><span class="lineno"><a class="line" href="structcutlass_1_1TileLoadIterator.html#a7c6182031d9aa41d0e4a64516723e20a"> 322</a></span>&#160; <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="structcutlass_1_1TileIteratorBase.html#ae7add0ee02bbec2c130ebaf608ab0696">Base::Traits</a> <a class="code" href="structcutlass_1_1TileLoadIterator.html#a7c6182031d9aa41d0e4a64516723e20a">Traits</a>;</div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160;</div><div class="line"><a name="l00325"></a><span class="lineno"><a class="line" href="structcutlass_1_1TileLoadIterator.html#ae8dff52e619f06fbdbca8cb847c79895"> 325</a></span>&#160; <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="structcutlass_1_1TileIteratorBase.html#a17163e93d7d3616b4950925f72bb4c16">Base::Scalar</a> <a class="code" href="structcutlass_1_1TileLoadIterator.html#ae8dff52e619f06fbdbca8cb847c79895">Scalar</a>;</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160;</div><div class="line"><a name="l00328"></a><span class="lineno"><a class="line" href="structcutlass_1_1TileLoadIterator.html#a2edd89863b8035137ccd8dd3ad7be464"> 328</a></span>&#160; <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="structcutlass_1_1TileIteratorBase.html#ac7cca14d54bf3f0749db1ffaea7c9ae7">Base::FragmentElement</a> <a class="code" href="structcutlass_1_1TileLoadIterator.html#a2edd89863b8035137ccd8dd3ad7be464">FragmentElement</a>;</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160;</div><div class="line"><a name="l00331"></a><span class="lineno"><a class="line" href="structcutlass_1_1TileLoadIterator.html#a69d2f21c8188fb3229af8c2dbe0a23b6"> 331</a></span>&#160; <span class="keyword">static</span> <a class="code" href="structcutlass_1_1IteratorAdvance.html#a9ad9c2302ddffa148d47cdcf6c738dda">IteratorAdvance::Kind</a> <span class="keyword">const</span> <a class="code" href="structcutlass_1_1TileLoadIterator.html#a69d2f21c8188fb3229af8c2dbe0a23b6">kAdvance</a> = <a class="code" href="structcutlass_1_1TileIteratorBase.html#ac1a64e974dcd69c3a86a31db6cbff421">Base::kAdvance</a>;</div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160;</div><div class="line"><a name="l00334"></a><span class="lineno"><a class="line" href="structcutlass_1_1TileLoadIterator.html#aba1d75a0cd5f11dee2aecf89b2b13d98"> 334</a></span>&#160; <span class="keyword">static</span> <a class="code" href="structcutlass_1_1IteratorFragment.html#ae7b6a9ac856eca8b8e437305fa716a80">IteratorFragment::Kind</a> <span class="keyword">const</span> <a class="code" href="structcutlass_1_1TileLoadIterator.html#aba1d75a0cd5f11dee2aecf89b2b13d98">kIteratorFragment</a> = <a class="code" href="structcutlass_1_1TileIteratorBase.html#a38c8ec1e9d0117172981b4c7dd4bf3be">Base::kIteratorFragment</a>;</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160;</div><div class="line"><a name="l00337"></a><span class="lineno"><a class="line" href="structcutlass_1_1TileLoadIterator.html#ac21bd78b31c99c826f0eddb5aa033bf1"> 337</a></span>&#160; <span class="keyword">static</span> <a class="code" href="structcutlass_1_1MemorySpace.html#a1e031ec41668015a8fe4ba2c1145d03c">MemorySpace::Kind</a> <span class="keyword">const</span> <a class="code" href="structcutlass_1_1TileLoadIterator.html#ac21bd78b31c99c826f0eddb5aa033bf1">kMemorySpace</a> = <a class="code" href="structcutlass_1_1TileIteratorBase.html#a871c9b82109eab432c5a1d465643bf97">Base::kMemorySpace</a>;</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160;</div><div class="line"><a name="l00340"></a><span class="lineno"><a class="line" href="structcutlass_1_1TileLoadIterator.html#aaa83f05e0cb3204053c3ee1da036cd36"> 340</a></span>&#160; <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="structcutlass_1_1TileIteratorBase.html#a44665808adfd69df0d26cec4b1840cc3">Base::Index</a> <a class="code" href="structcutlass_1_1TileLoadIterator.html#aaa83f05e0cb3204053c3ee1da036cd36">Index</a>;</div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160;</div><div class="line"><a name="l00343"></a><span class="lineno"><a class="line" href="structcutlass_1_1TileLoadIterator.html#a11ec4297c9a1352c8005ac222892b35c"> 343</a></span>&#160; <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="structcutlass_1_1Shape.html">Base::Skew</a> <a class="code" href="structcutlass_1_1TileLoadIterator.html#a11ec4297c9a1352c8005ac222892b35c">Skew</a>;</div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160;</div><div class="line"><a name="l00346"></a><span class="lineno"><a class="line" href="structcutlass_1_1TileLoadIterator.html#a7f1499ada284c21624487d4d3a5dbd10"> 346</a></span>&#160; <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="structcutlass_1_1TileIteratorBase.html#a954ef18acc12d8256a7d4e37683f8c2c">Base::Tile</a> <a class="code" href="structcutlass_1_1TileLoadIterator.html#a7f1499ada284c21624487d4d3a5dbd10">Tile</a>;</div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160;</div><div class="line"><a name="l00349"></a><span class="lineno"><a class="line" href="structcutlass_1_1TileLoadIterator.html#ac2a7f94723259f0d3c7b8a6d5b8778bf"> 349</a></span>&#160; <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="structcutlass_1_1TileIteratorBase.html#a9bc6c04f4a3adeb5a29743fa43425088">Base::Delta</a> <a class="code" href="structcutlass_1_1TileLoadIterator.html#ac2a7f94723259f0d3c7b8a6d5b8778bf">Delta</a>;</div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160;</div><div class="line"><a name="l00352"></a><span class="lineno"><a class="line" href="structcutlass_1_1TileLoadIterator.html#a9720b1e4a10c2d5aa85f9a9c66a31bbf"> 352</a></span>&#160; <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="structcutlass_1_1TileIteratorBase.html#a352ed0773b37f03bf68e4b6cf9899474">Base::Iterations</a> <a class="code" href="structcutlass_1_1TileLoadIterator.html#a9720b1e4a10c2d5aa85f9a9c66a31bbf">Iterations</a>;</div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160;</div><div class="line"><a name="l00355"></a><span class="lineno"><a class="line" href="structcutlass_1_1TileLoadIterator.html#a8a1527b4b469ae1f97afde2502ece70d"> 355</a></span>&#160; <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="structcutlass_1_1TileIteratorBase.html#a5abf4755aee07dc58b1d6183fbf4786f">Base::ThreadOffset</a> <a class="code" href="structcutlass_1_1TileLoadIterator.html#a8a1527b4b469ae1f97afde2502ece70d">ThreadOffset</a>;</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160;</div><div class="line"><a name="l00358"></a><span class="lineno"><a class="line" href="structcutlass_1_1TileLoadIterator.html#a7c27a7b0d8593b002eca186c15fdc869"> 358</a></span>&#160; <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="structcutlass_1_1TileIteratorBase.html#a14f4b356c9cd320e6e7b451edbf58c24">Base::FragmentShape</a> <a class="code" href="structcutlass_1_1TileLoadIterator.html#a7c27a7b0d8593b002eca186c15fdc869">FragmentShape</a>;</div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160;</div><div class="line"><a name="l00361"></a><span class="lineno"><a class="line" href="structcutlass_1_1TileLoadIterator.html#a4af8eeabe7c1ec0362782687a84466e0"> 361</a></span>&#160; <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="unioncutlass_1_1Vector.html">Base::AccessType</a> <a class="code" href="structcutlass_1_1TileLoadIterator.html#a4af8eeabe7c1ec0362782687a84466e0">AccessType</a>;</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160;</div><div class="line"><a name="l00364"></a><span class="lineno"><a class="line" href="structcutlass_1_1TileLoadIterator.html#aaf72c4897641080b1d84c0bbd8d813cc"> 364</a></span>&#160; <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="structcutlass_1_1TileIteratorBase.html#a0d7b595d7959cc1680fc07c2e02e1c8e">Base::Fragment</a> <a class="code" href="structcutlass_1_1TileLoadIterator.html#aaf72c4897641080b1d84c0bbd8d813cc">Fragment</a>;</div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160;</div><div class="line"><a name="l00367"></a><span class="lineno"><a class="line" href="structcutlass_1_1TileLoadIterator.html#aebbe5a0996dcd362caad618e78dc2591"> 367</a></span>&#160; <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="structcutlass_1_1TileIteratorBase.html#a379a52ed1128fc9f93cad35d3e3233e5">Base::FragmentIterator</a> <a class="code" href="structcutlass_1_1TileLoadIterator.html#aebbe5a0996dcd362caad618e78dc2591">FragmentIterator</a>;</div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160;</div><div class="line"><a name="l00370"></a><span class="lineno"><a class="line" href="structcutlass_1_1TileLoadIterator.html#a4c7a3a4917245de8269b74bdabe16b76"> 370</a></span>&#160; <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="structcutlass_1_1TileIteratorBase.html#a25a241bbdc0b0121992019a16f1a6d60">Base::FragmentConstIterator</a> <a class="code" href="structcutlass_1_1TileLoadIterator.html#a4c7a3a4917245de8269b74bdabe16b76">FragmentConstIterator</a>;</div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160;</div><div class="line"><a name="l00373"></a><span class="lineno"><a class="line" href="structcutlass_1_1TileLoadIterator.html#a64ae02b44f275ef2f016949aec769328"> 373</a></span>&#160; <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="structcutlass_1_1TileIteratorBase.html#a7ab46a9210b421d32af4d1394892cfd5">Base::PredicateVector</a> <a class="code" href="structcutlass_1_1TileLoadIterator.html#a64ae02b44f275ef2f016949aec769328">PredicateVector</a>;</div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160;</div><div class="line"><a name="l00376"></a><span class="lineno"><a class="line" href="structcutlass_1_1TileLoadIterator.html#ab457bd7953af9ef418510f55f52d1f39"> 376</a></span>&#160; <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="structcutlass_1_1TileIteratorBase.html#a6ca47fd6e2f9cbb3498c138417ea414a">Base::Storage</a> <a class="code" href="structcutlass_1_1TileLoadIterator.html#ab457bd7953af9ef418510f55f52d1f39">SharedStorage</a>;</div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160;</div><div class="line"><a name="l00379"></a><span class="lineno"><a class="line" href="structcutlass_1_1TileLoadIterator.html#a788bab4fa46dc26854348b751cf1cc76"> 379</a></span>&#160; <span class="keyword">typedef</span> <span class="keyword">typename</span> Base::Params <a class="code" href="structcutlass_1_1TileLoadIterator.html#a788bab4fa46dc26854348b751cf1cc76">BaseParams</a>;</div><div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160;</div><div class="line"><a name="l00382"></a><span class="lineno"><a class="line" href="structcutlass_1_1TileLoadIterator.html#a1f3601c595f12e7083919ece9b1ec84eaee9d9d6cea8079c32c9383bde45161fc"> 382</a></span>&#160; <span class="keyword">enum</span> { <a class="code" href="structcutlass_1_1TileLoadIterator.html#a1f3601c595f12e7083919ece9b1ec84eaee9d9d6cea8079c32c9383bde45161fc">kRequiresLoadFence</a> = Tile::kD == 1 };</div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160;</div><div class="line"><a name="l00385"></a><span class="lineno"><a class="line" href="structcutlass_1_1TileLoadIterator.html#a5a179e148ccd770e1703f288624fa9b8"> 385</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="structcutlass_1_1TileIteratorBase.html#a17163e93d7d3616b4950925f72bb4c16">Scalar</a> <span class="keyword">const</span> *<a class="code" href="structcutlass_1_1TileLoadIterator.html#a5a179e148ccd770e1703f288624fa9b8">Pointer</a>;</div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160;</div><div class="line"><a name="l00388"></a><span class="lineno"><a class="line" href="structcutlass_1_1TileLoadIterator_1_1Params.html"> 388</a></span>&#160; <span class="keyword">struct </span><a class="code" href="structcutlass_1_1TileLoadIterator_1_1Params.html">Params</a> : <span class="keyword">public</span> <a class="code" href="structcutlass_1_1TileIteratorBase_1_1Params.html">BaseParams</a> {</div><div class="line"><a name="l00390"></a><span class="lineno"><a class="line" href="structcutlass_1_1TileLoadIterator_1_1Params.html#a6608f7027994aaebdefd004fe94153d9"> 390</a></span>&#160; <a class="code" href="structcutlass_1_1TileLoadIterator.html#ae8dff52e619f06fbdbca8cb847c79895">Scalar</a> <span class="keyword">const</span> *<a class="code" href="structcutlass_1_1TileLoadIterator_1_1Params.html#a6608f7027994aaebdefd004fe94153d9">pointer</a>;</div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160;</div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; <a class="code" href="cutlass_8h.html#a28c2443a142676d3d71effdae1a986b1">CUTLASS_HOST_DEVICE</a></div><div class="line"><a name="l00394"></a><span class="lineno"><a class="line" href="structcutlass_1_1TileLoadIterator_1_1Params.html#aeeea0f8bdee876553a4908b9b7cbaf76"> 394</a></span>&#160; <span class="keywordtype">int</span> <a class="code" href="structcutlass_1_1TileLoadIterator_1_1Params.html#aeeea0f8bdee876553a4908b9b7cbaf76">initialize</a>(<a class="code" href="structcutlass_1_1TileLoadIterator.html#ab457bd7953af9ef418510f55f52d1f39">SharedStorage</a> <span class="keyword">const</span> &amp;storage) {</div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160; <a class="code" href="structcutlass_1_1TileLoadIterator_1_1Params.html#a6608f7027994aaebdefd004fe94153d9">pointer</a> = &amp;storage[0];</div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160; <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160; }</div><div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160;</div><div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160; <a class="code" href="cutlass_8h.html#a28c2443a142676d3d71effdae1a986b1">CUTLASS_HOST_DEVICE</a></div><div class="line"><a name="l00401"></a><span class="lineno"><a class="line" href="structcutlass_1_1TileLoadIterator_1_1Params.html#afd9e82df76ad35fe883b7834457242b2"> 401</a></span>&#160; <span class="keywordtype">int</span> <a class="code" href="structcutlass_1_1TileLoadIterator_1_1Params.html#afd9e82df76ad35fe883b7834457242b2">initialize</a>(<a class="code" href="structcutlass_1_1TileLoadIterator.html#ae8dff52e619f06fbdbca8cb847c79895">Scalar</a> <span class="keyword">const</span> *ptr, <a class="code" href="structcutlass_1_1TileIteratorBase.html#a44665808adfd69df0d26cec4b1840cc3">Index</a> <a class="code" href="structcutlass_1_1TileIteratorBase_1_1Params.html#ad67234ec264354a22032bb2519575dc1">stride_d</a>, <a class="code" href="structcutlass_1_1TileIteratorBase.html#a44665808adfd69df0d26cec4b1840cc3">Index</a> <a class="code" href="structcutlass_1_1TileIteratorBase_1_1Params.html#a58e8c883aea4cfdfa5a84c25a4704ebc">stride_h</a>, <a class="code" href="structcutlass_1_1TileIteratorBase.html#a44665808adfd69df0d26cec4b1840cc3">Index</a> <a class="code" href="structcutlass_1_1TileIteratorBase_1_1Params.html#a313984457c78eea66c980f6813047b9c">stride_w</a>) {</div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160; <a class="code" href="structcutlass_1_1TileIteratorBase_1_1Params.html#af496afebb8983e5d346c681334955224">Base::Params::initialize</a>(<a class="code" href="structcutlass_1_1TileIteratorBase_1_1Params.html#ad67234ec264354a22032bb2519575dc1">stride_d</a>, <a class="code" href="structcutlass_1_1TileIteratorBase_1_1Params.html#a58e8c883aea4cfdfa5a84c25a4704ebc">stride_h</a>, <a class="code" href="structcutlass_1_1TileIteratorBase_1_1Params.html#a313984457c78eea66c980f6813047b9c">stride_w</a>);</div><div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160; <a class="code" href="structcutlass_1_1TileLoadIterator_1_1Params.html#a6608f7027994aaebdefd004fe94153d9">pointer</a> = ptr;</div><div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160; <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160; }</div><div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160;</div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160; <a class="code" href="cutlass_8h.html#a28c2443a142676d3d71effdae1a986b1">CUTLASS_HOST_DEVICE</a></div><div class="line"><a name="l00409"></a><span class="lineno"><a class="line" href="structcutlass_1_1TileLoadIterator_1_1Params.html#aa3922946bb0da0c0040dec44aa389ec1"> 409</a></span>&#160; <span class="keywordtype">int</span> <a class="code" href="structcutlass_1_1TileLoadIterator_1_1Params.html#aa3922946bb0da0c0040dec44aa389ec1">initialize</a>(<a class="code" href="structcutlass_1_1TileLoadIterator.html#ae8dff52e619f06fbdbca8cb847c79895">Scalar</a> <span class="keyword">const</span> *ptr,</div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160; <a class="code" href="structcutlass_1_1TileIteratorBase.html#a44665808adfd69df0d26cec4b1840cc3">Index</a> _stride_d,</div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160; <a class="code" href="structcutlass_1_1TileIteratorBase.html#a44665808adfd69df0d26cec4b1840cc3">Index</a> _stride_h,</div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160; <a class="code" href="structcutlass_1_1TileIteratorBase.html#a44665808adfd69df0d26cec4b1840cc3">Index</a> _stride_w,</div><div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; <a class="code" href="structcutlass_1_1TileIteratorBase.html#a44665808adfd69df0d26cec4b1840cc3">Index</a> _inc_d,</div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160; <a class="code" href="structcutlass_1_1TileIteratorBase.html#a44665808adfd69df0d26cec4b1840cc3">Index</a> _inc_h,</div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; <a class="code" href="structcutlass_1_1TileIteratorBase.html#a44665808adfd69df0d26cec4b1840cc3">Index</a> _inc_w,</div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; <a class="code" href="structcutlass_1_1TileIteratorBase.html#a44665808adfd69df0d26cec4b1840cc3">Index</a> _inc_advance) {</div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; <a class="code" href="structcutlass_1_1TileLoadIterator_1_1Params.html#a6608f7027994aaebdefd004fe94153d9">pointer</a> = ptr;</div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; <a class="code" href="structcutlass_1_1TileIteratorBase_1_1Params.html#af496afebb8983e5d346c681334955224">Base::Params::initialize</a>(</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; _stride_d, _stride_h, _stride_w, _inc_d, _inc_h, _inc_w, _inc_advance);</div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; }</div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160;</div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160; <span class="comment">// Initializes params to default values</span></div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160; <a class="code" href="cutlass_8h.html#a28c2443a142676d3d71effdae1a986b1">CUTLASS_HOST_DEVICE</a></div><div class="line"><a name="l00425"></a><span class="lineno"><a class="line" href="structcutlass_1_1TileLoadIterator_1_1Params.html#aebaecd0f971245ffc5a50fe5f7a9b4e8"> 425</a></span>&#160; <span class="keywordtype">int</span> <a class="code" href="structcutlass_1_1TileLoadIterator_1_1Params.html#aebaecd0f971245ffc5a50fe5f7a9b4e8">initialize</a>() { <span class="keywordflow">return</span> <a class="code" href="structcutlass_1_1TileIteratorBase_1_1Params.html#af496afebb8983e5d346c681334955224">Base::Params::initialize</a>(); }</div><div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160; };</div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160;</div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160; <span class="comment">//</span></div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160; <span class="comment">// Data members</span></div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160; <span class="comment">//</span></div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160;</div><div class="line"><a name="l00433"></a><span class="lineno"><a class="line" href="structcutlass_1_1TileLoadIterator.html#aaafe35622751532971c1b7efc54c888b"> 433</a></span>&#160; Params <a class="code" href="structcutlass_1_1TileLoadIterator.html#aaafe35622751532971c1b7efc54c888b">params</a>;</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160;</div><div class="line"><a name="l00436"></a><span class="lineno"><a class="line" href="structcutlass_1_1TileLoadIterator.html#a7726cdd4fe056c59bb04adb9e5504457"> 436</a></span>&#160; <a class="code" href="structcutlass_1_1Coord.html">Coord&lt;4&gt;</a> <a class="code" href="structcutlass_1_1TileLoadIterator.html#a7726cdd4fe056c59bb04adb9e5504457">thread_offset</a>;</div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160;</div><div class="line"><a name="l00439"></a><span class="lineno"><a class="line" href="structcutlass_1_1TileLoadIterator.html#aa3fd9859de68d76e07ebee06c6ccee92"> 439</a></span>&#160; <span class="keywordtype">int</span> <a class="code" href="structcutlass_1_1TileLoadIterator.html#aa3fd9859de68d76e07ebee06c6ccee92">stage</a>;</div><div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160;</div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160; <span class="comment">//</span></div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160; <span class="comment">// Static member functions</span></div><div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160; <span class="comment">//</span></div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160;</div><div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> PredicateIterator&gt;</div><div class="line"><a name="l00447"></a><span class="lineno"><a class="line" href="structcutlass_1_1TileLoadIterator.html#a8291a51bf96f86bc77d0e3453345dbd5"> 447</a></span>&#160; <a class="code" href="cutlass_8h.html#a28c2443a142676d3d71effdae1a986b1">CUTLASS_HOST_DEVICE</a> <span class="keywordtype">void</span> <a class="code" href="structcutlass_1_1TileLoadIterator.html#a8291a51bf96f86bc77d0e3453345dbd5">initialize_predicates</a>(PredicateIterator predicate_it,</div><div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160; <a class="code" href="structcutlass_1_1Coord.html">Coord&lt;3&gt;</a> <span class="keyword">const</span> &amp;bounds,</div><div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160; <a class="code" href="structcutlass_1_1Coord.html">Coord&lt;3&gt;</a> <span class="keyword">const</span> &amp;block_offset = <a class="code" href="namespacecutlass.html#a7419519fa453a121dfa5f26bf87318d9">make_Coord</a>(0,</div><div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160; 0,</div><div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160; 0)) {</div><div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160; <a class="code" href="structcutlass_1_1TileIteratorBase.html#a78b6c0d6a1a96dd55a34bc302ecb07d7">Base::initialize_predicates</a>(</div><div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160; predicate_it,</div><div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160; bounds,</div><div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160; block_offset + <a class="code" href="namespacecutlass.html#a7419519fa453a121dfa5f26bf87318d9">make_Coord</a>(0, <a class="code" href="structcutlass_1_1TileLoadIterator.html#a7726cdd4fe056c59bb04adb9e5504457">thread_offset</a>[1], <a class="code" href="structcutlass_1_1TileLoadIterator.html#a7726cdd4fe056c59bb04adb9e5504457">thread_offset</a>[2] * Tile::kC));</div><div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160; }</div><div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160;</div><div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160; <span class="comment">//</span></div><div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160; <span class="comment">// Methods</span></div><div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160; <span class="comment">//</span></div><div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160;</div><div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160; <a class="code" href="cutlass_8h.html#a28c2443a142676d3d71effdae1a986b1">CUTLASS_HOST_DEVICE</a></div><div class="line"><a name="l00464"></a><span class="lineno"><a class="line" href="structcutlass_1_1TileLoadIterator.html#a81c9c0b17bf5f214230ecf10e0690a4e"> 464</a></span>&#160; <a class="code" href="structcutlass_1_1TileLoadIterator.html#a81c9c0b17bf5f214230ecf10e0690a4e">TileLoadIterator</a>() {}</div><div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160;</div><div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160; <a class="code" href="cutlass_8h.html#a28c2443a142676d3d71effdae1a986b1">CUTLASS_HOST_DEVICE</a></div><div class="line"><a name="l00468"></a><span class="lineno"><a class="line" href="structcutlass_1_1TileLoadIterator.html#a93e166575be3b2f7489833ae5da23f23"> 468</a></span>&#160; <a class="code" href="structcutlass_1_1TileLoadIterator.html#a93e166575be3b2f7489833ae5da23f23">TileLoadIterator</a>(Params <span class="keyword">const</span> &amp;_params,</div><div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160; <a class="code" href="structcutlass_1_1Coord.html">Coord&lt;3&gt;</a> <span class="keyword">const</span> &amp;block_offset = <a class="code" href="namespacecutlass.html#a7419519fa453a121dfa5f26bf87318d9">make_Coord</a>(0, 0, 0),</div><div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160; <a class="code" href="structcutlass_1_1TileIteratorBase.html#a5abf4755aee07dc58b1d6183fbf4786f">ThreadOffset</a> thread_offset_func = <a class="code" href="structcutlass_1_1TileLoadIterator.html#a8a1527b4b469ae1f97afde2502ece70d">ThreadOffset</a>())</div><div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160; : <a class="code" href="structcutlass_1_1TileLoadIterator.html#aaafe35622751532971c1b7efc54c888b">params</a>(_params), <a class="code" href="structcutlass_1_1TileLoadIterator.html#aa3fd9859de68d76e07ebee06c6ccee92">stage</a>(0) {</div><div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160; <a class="code" href="structcutlass_1_1TileLoadIterator.html#a7726cdd4fe056c59bb04adb9e5504457">thread_offset</a> = thread_offset_func();</div><div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160;</div><div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160; <a class="code" href="structcutlass_1_1TileIteratorBase.html#a44665808adfd69df0d26cec4b1840cc3">Index</a> block_offset_h = 0;</div><div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160; <a class="code" href="structcutlass_1_1TileIteratorBase.html#a44665808adfd69df0d26cec4b1840cc3">Index</a> block_offset_w = 0;</div><div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="structcutlass_1_1TileLoadIterator.html#a69d2f21c8188fb3229af8c2dbe0a23b6">kAdvance</a> == <a class="code" href="structcutlass_1_1IteratorAdvance.html#a9ad9c2302ddffa148d47cdcf6c738ddaacfe756fca665eb1bbf389850915c1b81">IteratorAdvance::kH</a>) {</div><div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160; block_offset_h = block_offset[1];</div><div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160; block_offset_w = block_offset[2];</div><div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160; block_offset_h = block_offset[2];</div><div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160; block_offset_w = block_offset[1];</div><div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160; }</div><div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160;</div><div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160; <a class="code" href="structcutlass_1_1TileLoadIterator.html#aaafe35622751532971c1b7efc54c888b">params</a>.<a class="code" href="structcutlass_1_1TileLoadIterator_1_1Params.html#a6608f7027994aaebdefd004fe94153d9">pointer</a> += block_offset[0] * <a class="code" href="structcutlass_1_1TileLoadIterator.html#aaafe35622751532971c1b7efc54c888b">params</a>.<a class="code" href="structcutlass_1_1TileIteratorBase_1_1Params.html#ad67234ec264354a22032bb2519575dc1">stride_d</a> +</div><div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160; (block_offset_h + <a class="code" href="structcutlass_1_1TileLoadIterator.html#a7726cdd4fe056c59bb04adb9e5504457">thread_offset</a>[1]) * <a class="code" href="structcutlass_1_1TileLoadIterator.html#aaafe35622751532971c1b7efc54c888b">params</a>.<a class="code" href="structcutlass_1_1TileIteratorBase_1_1Params.html#a58e8c883aea4cfdfa5a84c25a4704ebc">stride_h</a> +</div><div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160; (block_offset_w + <a class="code" href="structcutlass_1_1TileLoadIterator.html#a7726cdd4fe056c59bb04adb9e5504457">thread_offset</a>[2] * Tile::kC) / Tile::kC * <a class="code" href="structcutlass_1_1TileLoadIterator.html#aaafe35622751532971c1b7efc54c888b">params</a>.<a class="code" href="structcutlass_1_1TileIteratorBase_1_1Params.html#a313984457c78eea66c980f6813047b9c">stride_w</a>;</div><div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160; }</div><div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160;</div><div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160; <a class="code" href="cutlass_8h.html#a28c2443a142676d3d71effdae1a986b1">CUTLASS_HOST_DEVICE</a></div><div class="line"><a name="l00491"></a><span class="lineno"><a class="line" href="structcutlass_1_1TileLoadIterator.html#a53282fa4cb33cfcec79033d26e418af6"> 491</a></span>&#160; <a class="code" href="structcutlass_1_1TileLoadIterator.html#a53282fa4cb33cfcec79033d26e418af6">TileLoadIterator</a>(Params <span class="keyword">const</span> &amp;,</div><div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160; <a class="code" href="structcutlass_1_1TileLoadIterator.html#ab457bd7953af9ef418510f55f52d1f39">SharedStorage</a> &amp;shared_storage,</div><div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160; <a class="code" href="structcutlass_1_1Coord.html">Coord&lt;3&gt;</a> <span class="keyword">const</span> &amp;block_offset = <a class="code" href="namespacecutlass.html#a7419519fa453a121dfa5f26bf87318d9">make_Coord</a>(0, 0, 0),</div><div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160; <a class="code" href="structcutlass_1_1TileIteratorBase.html#a5abf4755aee07dc58b1d6183fbf4786f">ThreadOffset</a> thread_offset_func = <a class="code" href="structcutlass_1_1TileLoadIterator.html#a8a1527b4b469ae1f97afde2502ece70d">ThreadOffset</a>())</div><div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160; : <a class="code" href="structcutlass_1_1TileLoadIterator.html#aa3fd9859de68d76e07ebee06c6ccee92">stage</a>(0) {</div><div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160; <span class="keywordtype">int</span> <span class="keyword">const</span> offset = thread_offset_func()[2];</div><div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160; <a class="code" href="structcutlass_1_1TileLoadIterator.html#aaafe35622751532971c1b7efc54c888b">params</a>.<a class="code" href="structcutlass_1_1TileLoadIterator_1_1Params.html#a6608f7027994aaebdefd004fe94153d9">pointer</a> = &amp;shared_storage[offset];</div><div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160; }</div><div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160;</div><div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160; <a class="code" href="cutlass_8h.html#a28c2443a142676d3d71effdae1a986b1">CUTLASS_HOST_DEVICE</a></div><div class="line"><a name="l00502"></a><span class="lineno"><a class="line" href="structcutlass_1_1TileLoadIterator.html#afb6320b600f1f561594a9fb543b954e4"> 502</a></span>&#160; <a class="code" href="structcutlass_1_1TileIteratorBase.html#a17163e93d7d3616b4950925f72bb4c16">Scalar</a> <span class="keyword">const</span> *<a class="code" href="structcutlass_1_1TileLoadIterator.html#afb6320b600f1f561594a9fb543b954e4">data</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="structcutlass_1_1TileLoadIterator.html#aaafe35622751532971c1b7efc54c888b">params</a>.<a class="code" href="structcutlass_1_1TileLoadIterator_1_1Params.html#a6608f7027994aaebdefd004fe94153d9">pointer</a>; }</div><div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160;</div><div class="line"><a name="l00505"></a><span class="lineno"><a class="line" href="structcutlass_1_1TileLoadIterator.html#a0a93f37fd366a48c4ed6cc39aa850eb5"> 505</a></span>&#160; <a class="code" href="cutlass_8h.html#a28c2443a142676d3d71effdae1a986b1">CUTLASS_HOST_DEVICE</a> <span class="keywordtype">void</span> <a class="code" href="structcutlass_1_1TileLoadIterator.html#a0a93f37fd366a48c4ed6cc39aa850eb5">inc_d</a>() { <a class="code" href="structcutlass_1_1TileLoadIterator.html#aaafe35622751532971c1b7efc54c888b">params</a>.<a class="code" href="structcutlass_1_1TileLoadIterator_1_1Params.html#a6608f7027994aaebdefd004fe94153d9">pointer</a> += <a class="code" href="structcutlass_1_1TileLoadIterator.html#aaafe35622751532971c1b7efc54c888b">params</a>.<a class="code" href="structcutlass_1_1TileIteratorBase_1_1Params.html#af95fa1b5102176a0fa9b17713fd48150">inc_d</a>; }</div><div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160;</div><div class="line"><a name="l00508"></a><span class="lineno"><a class="line" href="structcutlass_1_1TileLoadIterator.html#a228a95cf2c9c6089287984fcbf5cface"> 508</a></span>&#160; <a class="code" href="cutlass_8h.html#a28c2443a142676d3d71effdae1a986b1">CUTLASS_HOST_DEVICE</a> <span class="keywordtype">void</span> <a class="code" href="structcutlass_1_1TileLoadIterator.html#a228a95cf2c9c6089287984fcbf5cface">inc_h</a>() { <a class="code" href="structcutlass_1_1TileLoadIterator.html#aaafe35622751532971c1b7efc54c888b">params</a>.<a class="code" href="structcutlass_1_1TileLoadIterator_1_1Params.html#a6608f7027994aaebdefd004fe94153d9">pointer</a> += <a class="code" href="structcutlass_1_1TileLoadIterator.html#aaafe35622751532971c1b7efc54c888b">params</a>.<a class="code" href="structcutlass_1_1TileIteratorBase_1_1Params.html#aea591d4278a8338ae8b50fa0b8f3a366">inc_h</a>; }</div><div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160;</div><div class="line"><a name="l00511"></a><span class="lineno"><a class="line" href="structcutlass_1_1TileLoadIterator.html#a49cf3ee608debebf451cdd8c2125d073"> 511</a></span>&#160; <a class="code" href="cutlass_8h.html#a28c2443a142676d3d71effdae1a986b1">CUTLASS_HOST_DEVICE</a> <span class="keywordtype">void</span> <a class="code" href="structcutlass_1_1TileLoadIterator.html#a49cf3ee608debebf451cdd8c2125d073">inc_w</a>() { <a class="code" href="structcutlass_1_1TileLoadIterator.html#aaafe35622751532971c1b7efc54c888b">params</a>.<a class="code" href="structcutlass_1_1TileLoadIterator_1_1Params.html#a6608f7027994aaebdefd004fe94153d9">pointer</a> += <a class="code" href="structcutlass_1_1TileLoadIterator.html#aaafe35622751532971c1b7efc54c888b">params</a>.<a class="code" href="structcutlass_1_1TileIteratorBase_1_1Params.html#ac6e81450a2d78555a6c2415dcc42b178">inc_w</a>; }</div><div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160;</div><div class="line"><a name="l00514"></a><span class="lineno"><a class="line" href="structcutlass_1_1TileLoadIterator.html#a91e13a7aad4b0acac002b6dd125abc37"> 514</a></span>&#160; <a class="code" href="cutlass_8h.html#a28c2443a142676d3d71effdae1a986b1">CUTLASS_HOST_DEVICE</a> <span class="keywordtype">void</span> <a class="code" href="structcutlass_1_1TileLoadIterator.html#a91e13a7aad4b0acac002b6dd125abc37">inc_advance</a>() { <a class="code" href="structcutlass_1_1TileLoadIterator.html#aaafe35622751532971c1b7efc54c888b">params</a>.<a class="code" href="structcutlass_1_1TileLoadIterator_1_1Params.html#a6608f7027994aaebdefd004fe94153d9">pointer</a> += <a class="code" href="structcutlass_1_1TileLoadIterator.html#aaafe35622751532971c1b7efc54c888b">params</a>.<a class="code" href="structcutlass_1_1TileIteratorBase_1_1Params.html#a1187258cd4068a627e73bee0302f1fc2">inc_advance</a>; }</div><div class="line"><a name="l00515"></a><span class="lineno"> 515</span>&#160;</div><div class="line"><a name="l00517"></a><span class="lineno"><a class="line" href="structcutlass_1_1TileLoadIterator.html#aeb3faf5e8f976f5a4d158ceb41a1cc64"> 517</a></span>&#160; CUTLASS_DEVICE <span class="keywordtype">void</span> <a class="code" href="structcutlass_1_1TileLoadIterator.html#aeb3faf5e8f976f5a4d158ceb41a1cc64">inc_stage</a>() {</div><div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160; <span class="keywordflow">if</span> (Tile::kD &gt; 1) {</div><div class="line"><a name="l00519"></a><span class="lineno"> 519</span>&#160; <span class="keywordtype">int</span> <span class="keyword">const</span> kStageSize = Tile::kH * Tile::kW * Tile::kC;</div><div class="line"><a name="l00520"></a><span class="lineno"> 520</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="structcutlass_1_1TileLoadIterator.html#aa3fd9859de68d76e07ebee06c6ccee92">stage</a> == Tile::kD - 1) {</div><div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160; <a class="code" href="structcutlass_1_1TileLoadIterator.html#aaafe35622751532971c1b7efc54c888b">params</a>.<a class="code" href="structcutlass_1_1TileLoadIterator_1_1Params.html#a6608f7027994aaebdefd004fe94153d9">pointer</a> -= (Tile::kD - 1) * kStageSize;</div><div class="line"><a name="l00522"></a><span class="lineno"> 522</span>&#160; <a class="code" href="structcutlass_1_1TileLoadIterator.html#aa3fd9859de68d76e07ebee06c6ccee92">stage</a> = 0;</div><div class="line"><a name="l00523"></a><span class="lineno"> 523</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00524"></a><span class="lineno"> 524</span>&#160; <a class="code" href="structcutlass_1_1TileLoadIterator.html#aaafe35622751532971c1b7efc54c888b">params</a>.<a class="code" href="structcutlass_1_1TileLoadIterator_1_1Params.html#a6608f7027994aaebdefd004fe94153d9">pointer</a> += kStageSize;</div><div class="line"><a name="l00525"></a><span class="lineno"> 525</span>&#160; <a class="code" href="structcutlass_1_1TileLoadIterator.html#aa3fd9859de68d76e07ebee06c6ccee92">stage</a> = <a class="code" href="structcutlass_1_1TileLoadIterator.html#aa3fd9859de68d76e07ebee06c6ccee92">stage</a> + 1;</div><div class="line"><a name="l00526"></a><span class="lineno"> 526</span>&#160; }</div><div class="line"><a name="l00527"></a><span class="lineno"> 527</span>&#160; }</div><div class="line"><a name="l00528"></a><span class="lineno"> 528</span>&#160; }</div><div class="line"><a name="l00529"></a><span class="lineno"> 529</span>&#160;</div><div class="line"><a name="l00530"></a><span class="lineno"> 530</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00532"></a><span class="lineno"> 532</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> Fragment, <span class="keyword">typename</span> PredicateIterator&gt;</div><div class="line"><a name="l00533"></a><span class="lineno"><a class="line" href="structcutlass_1_1TileLoadIterator.html#a2716b9010d2902b90e63abb0531ee915"> 533</a></span>&#160; <a class="code" href="cutlass_8h.html#a28c2443a142676d3d71effdae1a986b1">CUTLASS_HOST_DEVICE</a> <span class="keywordtype">void</span> <a class="code" href="structcutlass_1_1TileLoadIterator.html#a2716b9010d2902b90e63abb0531ee915">load_post_increment</a>(<a class="code" href="structcutlass_1_1TileIteratorBase.html#a0d7b595d7959cc1680fc07c2e02e1c8e">Fragment</a> &amp;fragment, PredicateIterator pred_it) {</div><div class="line"><a name="l00534"></a><span class="lineno"> 534</span>&#160; <a class="code" href="structcutlass_1_1TileIteratorBase.html#a379a52ed1128fc9f93cad35d3e3233e5">FragmentIterator</a> frag_iterator(fragment);</div><div class="line"><a name="l00535"></a><span class="lineno"> 535</span>&#160;</div><div class="line"><a name="l00536"></a><span class="lineno"> 536</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">int</span> d = 0; d &lt; Iterations::kD; ++d) {</div><div class="line"><a name="l00537"></a><span class="lineno"> 537</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">int</span> h = 0; h &lt; Iterations::kH; ++h) {</div><div class="line"><a name="l00538"></a><span class="lineno"> 538</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">int</span> w = 0; w &lt; Iterations::kW; ++w, ++pred_it) {</div><div class="line"><a name="l00539"></a><span class="lineno"> 539</span>&#160; <span class="keywordflow">if</span> (*pred_it) {</div><div class="line"><a name="l00540"></a><span class="lineno"> 540</span>&#160; <a class="code" href="structcutlass_1_1Load.html#ad033ebc1452d96b18913333bf7068140">Load&lt;typename Fragment::Element, Tile::kC, kMemorySpace&gt;::load</a>(</div><div class="line"><a name="l00541"></a><span class="lineno"> 541</span>&#160; reinterpret_cast&lt;AccessType &amp;&gt;(frag_iterator.at(d, h, w, 0)), <a class="code" href="structcutlass_1_1TileLoadIterator.html#afb6320b600f1f561594a9fb543b954e4">data</a>(), 0);</div><div class="line"><a name="l00542"></a><span class="lineno"> 542</span>&#160; }</div><div class="line"><a name="l00543"></a><span class="lineno"> 543</span>&#160;</div><div class="line"><a name="l00544"></a><span class="lineno"> 544</span>&#160; <span class="keywordflow">if</span> (w &lt; Iterations::kW - 1) {</div><div class="line"><a name="l00545"></a><span class="lineno"> 545</span>&#160; <a class="code" href="structcutlass_1_1TileLoadIterator.html#a49cf3ee608debebf451cdd8c2125d073">inc_w</a>();</div><div class="line"><a name="l00546"></a><span class="lineno"> 546</span>&#160; }</div><div class="line"><a name="l00547"></a><span class="lineno"> 547</span>&#160; }</div><div class="line"><a name="l00548"></a><span class="lineno"> 548</span>&#160; <span class="keywordflow">if</span> (h &lt; Iterations::kH - 1) {</div><div class="line"><a name="l00549"></a><span class="lineno"> 549</span>&#160; <a class="code" href="structcutlass_1_1TileLoadIterator.html#a228a95cf2c9c6089287984fcbf5cface">inc_h</a>();</div><div class="line"><a name="l00550"></a><span class="lineno"> 550</span>&#160; }</div><div class="line"><a name="l00551"></a><span class="lineno"> 551</span>&#160; }</div><div class="line"><a name="l00552"></a><span class="lineno"> 552</span>&#160; <span class="keywordflow">if</span> (d &lt; Iterations::kD - 1) {</div><div class="line"><a name="l00553"></a><span class="lineno"> 553</span>&#160; <a class="code" href="structcutlass_1_1TileLoadIterator.html#a0a93f37fd366a48c4ed6cc39aa850eb5">inc_d</a>();</div><div class="line"><a name="l00554"></a><span class="lineno"> 554</span>&#160; }</div><div class="line"><a name="l00555"></a><span class="lineno"> 555</span>&#160; }</div><div class="line"><a name="l00556"></a><span class="lineno"> 556</span>&#160; <a class="code" href="structcutlass_1_1TileLoadIterator.html#a91e13a7aad4b0acac002b6dd125abc37">inc_advance</a>();</div><div class="line"><a name="l00557"></a><span class="lineno"> 557</span>&#160; }</div><div class="line"><a name="l00558"></a><span class="lineno"> 558</span>&#160;</div><div class="line"><a name="l00560"></a><span class="lineno"> 560</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> Fragment&gt;</div><div class="line"><a name="l00561"></a><span class="lineno"><a class="line" href="structcutlass_1_1TileLoadIterator.html#a195993d58ae0eeb53203116ac02ab38d"> 561</a></span>&#160; <a class="code" href="cutlass_8h.html#a28c2443a142676d3d71effdae1a986b1">CUTLASS_HOST_DEVICE</a> <span class="keywordtype">void</span> <a class="code" href="structcutlass_1_1TileLoadIterator.html#a195993d58ae0eeb53203116ac02ab38d">load_post_increment</a>(<a class="code" href="structcutlass_1_1TileIteratorBase.html#a0d7b595d7959cc1680fc07c2e02e1c8e">Fragment</a> &amp;fragment) {</div><div class="line"><a name="l00562"></a><span class="lineno"> 562</span>&#160; <span class="keyword">typename</span> <a class="code" href="structcutlass_1_1PredicateVector_1_1TrivialIterator.html">PredicateVector::TrivialIterator</a> pred_it;</div><div class="line"><a name="l00563"></a><span class="lineno"> 563</span>&#160; <a class="code" href="structcutlass_1_1TileLoadIterator.html#a2716b9010d2902b90e63abb0531ee915">load_post_increment</a>(fragment, pred_it);</div><div class="line"><a name="l00564"></a><span class="lineno"> 564</span>&#160; }</div><div class="line"><a name="l00565"></a><span class="lineno"> 565</span>&#160;</div><div class="line"><a name="l00567"></a><span class="lineno"> 567</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> Fragment, <span class="keyword">typename</span> PredicateIterator&gt;</div><div class="line"><a name="l00568"></a><span class="lineno"><a class="line" href="structcutlass_1_1TileLoadIterator.html#a9c4b332857f419e6f789a93404dc2140"> 568</a></span>&#160; <a class="code" href="cutlass_8h.html#a28c2443a142676d3d71effdae1a986b1">CUTLASS_HOST_DEVICE</a> <span class="keywordtype">void</span> <a class="code" href="structcutlass_1_1TileLoadIterator.html#a9c4b332857f419e6f789a93404dc2140">load</a>(<a class="code" href="structcutlass_1_1TileIteratorBase.html#a0d7b595d7959cc1680fc07c2e02e1c8e">Fragment</a> &amp;fragment, PredicateIterator pred_it)<span class="keyword"> const </span>{</div><div class="line"><a name="l00569"></a><span class="lineno"> 569</span>&#160; <a class="code" href="structcutlass_1_1TileLoadIterator.html">TileLoadIterator</a> _load_it(*<span class="keyword">this</span>);</div><div class="line"><a name="l00570"></a><span class="lineno"> 570</span>&#160; _load_it.<a class="code" href="structcutlass_1_1TileLoadIterator.html#a2716b9010d2902b90e63abb0531ee915">load_post_increment</a>(fragment, pred_it);</div><div class="line"><a name="l00571"></a><span class="lineno"> 571</span>&#160; }</div><div class="line"><a name="l00572"></a><span class="lineno"> 572</span>&#160;</div><div class="line"><a name="l00574"></a><span class="lineno"> 574</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> Fragment&gt;</div><div class="line"><a name="l00575"></a><span class="lineno"><a class="line" href="structcutlass_1_1TileLoadIterator.html#a1058cdec33393db9c16b28c21d8957db"> 575</a></span>&#160; <a class="code" href="cutlass_8h.html#a28c2443a142676d3d71effdae1a986b1">CUTLASS_HOST_DEVICE</a> <span class="keywordtype">void</span> <a class="code" href="structcutlass_1_1TileLoadIterator.html#a1058cdec33393db9c16b28c21d8957db">load</a>(<a class="code" href="structcutlass_1_1TileIteratorBase.html#a0d7b595d7959cc1680fc07c2e02e1c8e">Fragment</a> &amp;fragment)<span class="keyword"> const </span>{</div><div class="line"><a name="l00576"></a><span class="lineno"> 576</span>&#160; <span class="keyword">typename</span> <a class="code" href="structcutlass_1_1PredicateVector_1_1TrivialIterator.html">PredicateVector::TrivialIterator</a> pred_it;</div><div class="line"><a name="l00577"></a><span class="lineno"> 577</span>&#160; <a class="code" href="structcutlass_1_1TileLoadIterator.html#a9c4b332857f419e6f789a93404dc2140">load</a>(fragment, pred_it);</div><div class="line"><a name="l00578"></a><span class="lineno"> 578</span>&#160; }</div><div class="line"><a name="l00579"></a><span class="lineno"> 579</span>&#160;};</div><div class="line"><a name="l00580"></a><span class="lineno"> 580</span>&#160;</div><div class="line"><a name="l00582"></a><span class="lineno"> 582</span>&#160;</div><div class="line"><a name="l00606"></a><span class="lineno"> 606</span>&#160;</div><div class="line"><a name="l00612"></a><span class="lineno"> 612</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> Traits_,</div><div class="line"><a name="l00613"></a><span class="lineno"> 613</span>&#160; <span class="keyword">typename</span> Scalar_,</div><div class="line"><a name="l00614"></a><span class="lineno"> 614</span>&#160; <a class="code" href="structcutlass_1_1IteratorAdvance.html#a9ad9c2302ddffa148d47cdcf6c738dda">IteratorAdvance::Kind</a> Advance_ = <a class="code" href="structcutlass_1_1IteratorAdvance.html#a9ad9c2302ddffa148d47cdcf6c738ddaacfe756fca665eb1bbf389850915c1b81">IteratorAdvance::kH</a>,</div><div class="line"><a name="l00615"></a><span class="lineno"> 615</span>&#160; <a class="code" href="structcutlass_1_1MemorySpace.html#a1e031ec41668015a8fe4ba2c1145d03c">MemorySpace::Kind</a> MemorySpace = <a class="code" href="structcutlass_1_1MemorySpace.html#a1e031ec41668015a8fe4ba2c1145d03ca21a44c0b78017acea0d1ffe223e5ca38">MemorySpace::kGeneric</a>,</div><div class="line"><a name="l00616"></a><span class="lineno"> 616</span>&#160; <span class="keyword">typename</span> Index_ = int,</div><div class="line"><a name="l00617"></a><span class="lineno"> 617</span>&#160; <span class="keyword">typename</span> FragmentElement_ = Scalar_,</div><div class="line"><a name="l00618"></a><span class="lineno"> 618</span>&#160; <a class="code" href="structcutlass_1_1IteratorFragment.html#ae7b6a9ac856eca8b8e437305fa716a80">IteratorFragment::Kind</a> IteratorFragment_ = <a class="code" href="structcutlass_1_1IteratorFragment.html#ae7b6a9ac856eca8b8e437305fa716a80aeca44a186befa21ccae44eb4dc7b6954">IteratorFragment::kScalar</a>,</div><div class="line"><a name="l00619"></a><span class="lineno"> 619</span>&#160; <span class="keyword">typename</span> Skew_ = Shape&lt;0, 0, 0, 0&gt; &gt;</div><div class="line"><a name="l00620"></a><span class="lineno"><a class="line" href="structcutlass_1_1TileStoreIterator.html"> 620</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structcutlass_1_1TileStoreIterator.html">TileStoreIterator</a> : <span class="keyword">public</span> <a class="code" href="structcutlass_1_1TileIteratorBase.html">TileIteratorBase</a>&lt;Traits_,</div><div class="line"><a name="l00621"></a><span class="lineno"> 621</span>&#160; Scalar_,</div><div class="line"><a name="l00622"></a><span class="lineno"> 622</span>&#160; Advance_,</div><div class="line"><a name="l00623"></a><span class="lineno"> 623</span>&#160; MemorySpace,</div><div class="line"><a name="l00624"></a><span class="lineno"> 624</span>&#160; Index_,</div><div class="line"><a name="l00625"></a><span class="lineno"> 625</span>&#160; FragmentElement_,</div><div class="line"><a name="l00626"></a><span class="lineno"> 626</span>&#160; IteratorFragment_,</div><div class="line"><a name="l00627"></a><span class="lineno"> 627</span>&#160; Skew_&gt; {</div><div class="line"><a name="l00629"></a><span class="lineno"> 629</span>&#160; <span class="keyword">typedef</span> <a class="code" href="structcutlass_1_1TileIteratorBase.html">TileIteratorBase</a>&lt;Traits_,</div><div class="line"><a name="l00630"></a><span class="lineno"> 630</span>&#160; Scalar_,</div><div class="line"><a name="l00631"></a><span class="lineno"> 631</span>&#160; Advance_,</div><div class="line"><a name="l00632"></a><span class="lineno"> 632</span>&#160; <a class="code" href="structcutlass_1_1MemorySpace.html">MemorySpace</a>,</div><div class="line"><a name="l00633"></a><span class="lineno"> 633</span>&#160; Index_,</div><div class="line"><a name="l00634"></a><span class="lineno"> 634</span>&#160; FragmentElement_,</div><div class="line"><a name="l00635"></a><span class="lineno"> 635</span>&#160; IteratorFragment_,</div><div class="line"><a name="l00636"></a><span class="lineno"> 636</span>&#160; Skew_&gt;</div><div class="line"><a name="l00637"></a><span class="lineno"><a class="line" href="structcutlass_1_1TileStoreIterator.html#af4576dca736bab8ac73b308522cb4a67"> 637</a></span>&#160; <a class="code" href="structcutlass_1_1TileStoreIterator.html#af4576dca736bab8ac73b308522cb4a67">Base</a>;</div><div class="line"><a name="l00638"></a><span class="lineno"> 638</span>&#160;</div><div class="line"><a name="l00640"></a><span class="lineno"><a class="line" href="structcutlass_1_1TileStoreIterator.html#a6f50a8aec2d7045e9057b93df08172a8"> 640</a></span>&#160; <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="structcutlass_1_1TileIteratorBase.html#ae7add0ee02bbec2c130ebaf608ab0696">Base::Traits</a> <a class="code" href="structcutlass_1_1TileStoreIterator.html#a6f50a8aec2d7045e9057b93df08172a8">Traits</a>;</div><div class="line"><a name="l00641"></a><span class="lineno"> 641</span>&#160;</div><div class="line"><a name="l00643"></a><span class="lineno"><a class="line" href="structcutlass_1_1TileStoreIterator.html#ad52318b430437575b55099ca992ca3a7"> 643</a></span>&#160; <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="structcutlass_1_1TileIteratorBase.html#a17163e93d7d3616b4950925f72bb4c16">Base::Scalar</a> <a class="code" href="structcutlass_1_1TileStoreIterator.html#ad52318b430437575b55099ca992ca3a7">Scalar</a>;</div><div class="line"><a name="l00644"></a><span class="lineno"> 644</span>&#160;</div><div class="line"><a name="l00646"></a><span class="lineno"><a class="line" href="structcutlass_1_1TileStoreIterator.html#a2b13136a970fae187fcb377c9be28fac"> 646</a></span>&#160; <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="structcutlass_1_1TileIteratorBase.html#ac7cca14d54bf3f0749db1ffaea7c9ae7">Base::FragmentElement</a> <a class="code" href="structcutlass_1_1TileStoreIterator.html#a2b13136a970fae187fcb377c9be28fac">FragmentElement</a>;</div><div class="line"><a name="l00647"></a><span class="lineno"> 647</span>&#160;</div><div class="line"><a name="l00649"></a><span class="lineno"><a class="line" href="structcutlass_1_1TileStoreIterator.html#a8059c57030df99b73309e9210ec5f624"> 649</a></span>&#160; <span class="keyword">static</span> <a class="code" href="structcutlass_1_1IteratorAdvance.html#a9ad9c2302ddffa148d47cdcf6c738dda">IteratorAdvance::Kind</a> <span class="keyword">const</span> <a class="code" href="structcutlass_1_1TileStoreIterator.html#a8059c57030df99b73309e9210ec5f624">kAdvance</a> = <a class="code" href="structcutlass_1_1TileIteratorBase.html#ac1a64e974dcd69c3a86a31db6cbff421">Base::kAdvance</a>;</div><div class="line"><a name="l00650"></a><span class="lineno"> 650</span>&#160;</div><div class="line"><a name="l00652"></a><span class="lineno"><a class="line" href="structcutlass_1_1TileStoreIterator.html#a94c0567316118abfb84fc28560a5a46a"> 652</a></span>&#160; <span class="keyword">static</span> <a class="code" href="structcutlass_1_1IteratorFragment.html#ae7b6a9ac856eca8b8e437305fa716a80">IteratorFragment::Kind</a> <span class="keyword">const</span> <a class="code" href="structcutlass_1_1TileStoreIterator.html#a94c0567316118abfb84fc28560a5a46a">kIteratorFragment</a> = <a class="code" href="structcutlass_1_1TileIteratorBase.html#a38c8ec1e9d0117172981b4c7dd4bf3be">Base::kIteratorFragment</a>;</div><div class="line"><a name="l00653"></a><span class="lineno"> 653</span>&#160;</div><div class="line"><a name="l00655"></a><span class="lineno"><a class="line" href="structcutlass_1_1TileStoreIterator.html#adaebec9eacf767f63f048033de73ea5b"> 655</a></span>&#160; <span class="keyword">static</span> <a class="code" href="structcutlass_1_1MemorySpace.html#a1e031ec41668015a8fe4ba2c1145d03c">MemorySpace::Kind</a> <span class="keyword">const</span> <a class="code" href="structcutlass_1_1TileStoreIterator.html#adaebec9eacf767f63f048033de73ea5b">kMemorySpace</a> = <a class="code" href="structcutlass_1_1TileIteratorBase.html#a871c9b82109eab432c5a1d465643bf97">Base::kMemorySpace</a>;</div><div class="line"><a name="l00656"></a><span class="lineno"> 656</span>&#160;</div><div class="line"><a name="l00658"></a><span class="lineno"><a class="line" href="structcutlass_1_1TileStoreIterator.html#a5ac2280dfcac08cec17b8c0db1c4593e"> 658</a></span>&#160; <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="structcutlass_1_1TileIteratorBase.html#a44665808adfd69df0d26cec4b1840cc3">Base::Index</a> <a class="code" href="structcutlass_1_1TileStoreIterator.html#a5ac2280dfcac08cec17b8c0db1c4593e">Index</a>;</div><div class="line"><a name="l00659"></a><span class="lineno"> 659</span>&#160;</div><div class="line"><a name="l00661"></a><span class="lineno"><a class="line" href="structcutlass_1_1TileStoreIterator.html#a57348779bb004ed1ea0fd9cc252e895d"> 661</a></span>&#160; <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="structcutlass_1_1TileIteratorBase.html#ae89afbcf642b3023770ff22969c51d16">Base::Skew</a> <a class="code" href="structcutlass_1_1TileStoreIterator.html#a57348779bb004ed1ea0fd9cc252e895d">Skew</a>;</div><div class="line"><a name="l00662"></a><span class="lineno"> 662</span>&#160;</div><div class="line"><a name="l00664"></a><span class="lineno"><a class="line" href="structcutlass_1_1TileStoreIterator.html#a8a87c8ef986e110a01a9226012594a61"> 664</a></span>&#160; <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="structcutlass_1_1TileIteratorBase.html#a954ef18acc12d8256a7d4e37683f8c2c">Base::Tile</a> <a class="code" href="structcutlass_1_1TileStoreIterator.html#a8a87c8ef986e110a01a9226012594a61">Tile</a>;</div><div class="line"><a name="l00665"></a><span class="lineno"> 665</span>&#160;</div><div class="line"><a name="l00667"></a><span class="lineno"><a class="line" href="structcutlass_1_1TileStoreIterator.html#a1c433ba0eea5e6a46f36101d8de98ed0"> 667</a></span>&#160; <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="structcutlass_1_1TileIteratorBase.html#a9bc6c04f4a3adeb5a29743fa43425088">Base::Delta</a> <a class="code" href="structcutlass_1_1TileStoreIterator.html#a1c433ba0eea5e6a46f36101d8de98ed0">Delta</a>;</div><div class="line"><a name="l00668"></a><span class="lineno"> 668</span>&#160;</div><div class="line"><a name="l00670"></a><span class="lineno"><a class="line" href="structcutlass_1_1TileStoreIterator.html#a552a67fb03c28e985d143f6193f88308"> 670</a></span>&#160; <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="structcutlass_1_1TileIteratorBase.html#a352ed0773b37f03bf68e4b6cf9899474">Base::Iterations</a> <a class="code" href="structcutlass_1_1TileStoreIterator.html#a552a67fb03c28e985d143f6193f88308">Iterations</a>;</div><div class="line"><a name="l00671"></a><span class="lineno"> 671</span>&#160;</div><div class="line"><a name="l00673"></a><span class="lineno"><a class="line" href="structcutlass_1_1TileStoreIterator.html#a6a6f51f459f98c0cddeacf476660cd27"> 673</a></span>&#160; <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="structcutlass_1_1TileIteratorBase.html#a5abf4755aee07dc58b1d6183fbf4786f">Base::ThreadOffset</a> <a class="code" href="structcutlass_1_1TileStoreIterator.html#a6a6f51f459f98c0cddeacf476660cd27">ThreadOffset</a>;</div><div class="line"><a name="l00674"></a><span class="lineno"> 674</span>&#160;</div><div class="line"><a name="l00676"></a><span class="lineno"><a class="line" href="structcutlass_1_1TileStoreIterator.html#a3b872e85844c9e009fa480a71a829136"> 676</a></span>&#160; <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="structcutlass_1_1TileIteratorBase.html#a14f4b356c9cd320e6e7b451edbf58c24">Base::FragmentShape</a> <a class="code" href="structcutlass_1_1TileStoreIterator.html#a3b872e85844c9e009fa480a71a829136">FragmentShape</a>;</div><div class="line"><a name="l00677"></a><span class="lineno"> 677</span>&#160;</div><div class="line"><a name="l00679"></a><span class="lineno"><a class="line" href="structcutlass_1_1TileStoreIterator.html#a0e79ed59263ebc3478c43f2f9a50cb5a"> 679</a></span>&#160; <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="unioncutlass_1_1Vector.html">Base::AccessType</a> <a class="code" href="structcutlass_1_1TileStoreIterator.html#a0e79ed59263ebc3478c43f2f9a50cb5a">AccessType</a>;</div><div class="line"><a name="l00680"></a><span class="lineno"> 680</span>&#160;</div><div class="line"><a name="l00682"></a><span class="lineno"><a class="line" href="structcutlass_1_1TileStoreIterator.html#a95da23108b74ad085024ab45e84083e1"> 682</a></span>&#160; <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="structcutlass_1_1TileIteratorBase.html#a0d7b595d7959cc1680fc07c2e02e1c8e">Base::Fragment</a> <a class="code" href="structcutlass_1_1TileStoreIterator.html#a95da23108b74ad085024ab45e84083e1">Fragment</a>;</div><div class="line"><a name="l00683"></a><span class="lineno"> 683</span>&#160;</div><div class="line"><a name="l00685"></a><span class="lineno"><a class="line" href="structcutlass_1_1TileStoreIterator.html#a0843b2d82422e7178f324a8d3be9d705"> 685</a></span>&#160; <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="structcutlass_1_1TileIteratorBase.html#a379a52ed1128fc9f93cad35d3e3233e5">Base::FragmentIterator</a> <a class="code" href="structcutlass_1_1TileStoreIterator.html#a0843b2d82422e7178f324a8d3be9d705">FragmentIterator</a>;</div><div class="line"><a name="l00686"></a><span class="lineno"> 686</span>&#160;</div><div class="line"><a name="l00688"></a><span class="lineno"><a class="line" href="structcutlass_1_1TileStoreIterator.html#a48de0db7ee2ee9699b946a9d5a0364c7"> 688</a></span>&#160; <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="structcutlass_1_1TileIteratorBase.html#a25a241bbdc0b0121992019a16f1a6d60">Base::FragmentConstIterator</a> <a class="code" href="structcutlass_1_1TileStoreIterator.html#a48de0db7ee2ee9699b946a9d5a0364c7">FragmentConstIterator</a>;</div><div class="line"><a name="l00689"></a><span class="lineno"> 689</span>&#160;</div><div class="line"><a name="l00691"></a><span class="lineno"><a class="line" href="structcutlass_1_1TileStoreIterator.html#a5aa507eaeb63951f8e69fb223ec41809"> 691</a></span>&#160; <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="structcutlass_1_1TileIteratorBase.html#a7ab46a9210b421d32af4d1394892cfd5">Base::PredicateVector</a> <a class="code" href="structcutlass_1_1TileStoreIterator.html#a5aa507eaeb63951f8e69fb223ec41809">PredicateVector</a>;</div><div class="line"><a name="l00692"></a><span class="lineno"> 692</span>&#160;</div><div class="line"><a name="l00694"></a><span class="lineno"><a class="line" href="structcutlass_1_1TileStoreIterator.html#ab7922305d47b67e6cfb439e4e8d9f09b"> 694</a></span>&#160; <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="structcutlass_1_1TileIteratorBase.html#a6ca47fd6e2f9cbb3498c138417ea414a">Base::Storage</a> <a class="code" href="structcutlass_1_1TileStoreIterator.html#ab7922305d47b67e6cfb439e4e8d9f09b">SharedStorage</a>;</div><div class="line"><a name="l00695"></a><span class="lineno"> 695</span>&#160;</div><div class="line"><a name="l00697"></a><span class="lineno"><a class="line" href="structcutlass_1_1TileStoreIterator.html#a5484b46ac2646edb7a185b51137f70c0"> 697</a></span>&#160; <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="structcutlass_1_1TileIteratorBase_1_1Params.html">Base::Params</a> <a class="code" href="structcutlass_1_1TileStoreIterator.html#a5484b46ac2646edb7a185b51137f70c0">BaseParams</a>;</div><div class="line"><a name="l00698"></a><span class="lineno"> 698</span>&#160;</div><div class="line"><a name="l00700"></a><span class="lineno"><a class="line" href="structcutlass_1_1TileStoreIterator_1_1Params.html"> 700</a></span>&#160; <span class="keyword">struct </span><a class="code" href="structcutlass_1_1TileStoreIterator_1_1Params.html">Params</a> : <span class="keyword">public</span> <a class="code" href="structcutlass_1_1TileIteratorBase_1_1Params.html">BaseParams</a> {</div><div class="line"><a name="l00702"></a><span class="lineno"><a class="line" href="structcutlass_1_1TileStoreIterator_1_1Params.html#a6bbadae6b13aef8f31a77cacd88b068b"> 702</a></span>&#160; <a class="code" href="structcutlass_1_1TileStoreIterator.html#ad52318b430437575b55099ca992ca3a7">Scalar</a> *<a class="code" href="structcutlass_1_1TileStoreIterator_1_1Params.html#a6bbadae6b13aef8f31a77cacd88b068b">pointer</a>;</div><div class="line"><a name="l00703"></a><span class="lineno"> 703</span>&#160;</div><div class="line"><a name="l00705"></a><span class="lineno"> 705</span>&#160; <a class="code" href="cutlass_8h.html#a28c2443a142676d3d71effdae1a986b1">CUTLASS_HOST_DEVICE</a></div><div class="line"><a name="l00706"></a><span class="lineno"><a class="line" href="structcutlass_1_1TileStoreIterator_1_1Params.html#a71f5238a712f7b2f377fb58938ac829b"> 706</a></span>&#160; <span class="keywordtype">int</span> <a class="code" href="structcutlass_1_1TileStoreIterator_1_1Params.html#a71f5238a712f7b2f377fb58938ac829b">initialize</a>(<a class="code" href="structcutlass_1_1TileStoreIterator.html#ab7922305d47b67e6cfb439e4e8d9f09b">SharedStorage</a> &amp;storage) {</div><div class="line"><a name="l00707"></a><span class="lineno"> 707</span>&#160; <a class="code" href="structcutlass_1_1TileStoreIterator_1_1Params.html#a6bbadae6b13aef8f31a77cacd88b068b">pointer</a> = &amp;storage[0];</div><div class="line"><a name="l00708"></a><span class="lineno"> 708</span>&#160; <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00709"></a><span class="lineno"> 709</span>&#160; }</div><div class="line"><a name="l00710"></a><span class="lineno"> 710</span>&#160;</div><div class="line"><a name="l00712"></a><span class="lineno"> 712</span>&#160; <a class="code" href="cutlass_8h.html#a28c2443a142676d3d71effdae1a986b1">CUTLASS_HOST_DEVICE</a></div><div class="line"><a name="l00713"></a><span class="lineno"><a class="line" href="structcutlass_1_1TileStoreIterator_1_1Params.html#af0d26a2df2a1a5ba3c3169b736bd5d43"> 713</a></span>&#160; <span class="keywordtype">int</span> <a class="code" href="structcutlass_1_1TileStoreIterator_1_1Params.html#af0d26a2df2a1a5ba3c3169b736bd5d43">initialize</a>(<a class="code" href="structcutlass_1_1TileStoreIterator.html#ad52318b430437575b55099ca992ca3a7">Scalar</a> *ptr, <a class="code" href="structcutlass_1_1TileIteratorBase.html#a44665808adfd69df0d26cec4b1840cc3">Index</a> <a class="code" href="structcutlass_1_1TileIteratorBase_1_1Params.html#ad67234ec264354a22032bb2519575dc1">stride_d</a>, <a class="code" href="structcutlass_1_1TileIteratorBase.html#a44665808adfd69df0d26cec4b1840cc3">Index</a> <a class="code" href="structcutlass_1_1TileIteratorBase_1_1Params.html#a58e8c883aea4cfdfa5a84c25a4704ebc">stride_h</a>, <a class="code" href="structcutlass_1_1TileIteratorBase.html#a44665808adfd69df0d26cec4b1840cc3">Index</a> <a class="code" href="structcutlass_1_1TileIteratorBase_1_1Params.html#a313984457c78eea66c980f6813047b9c">stride_w</a>) {</div><div class="line"><a name="l00714"></a><span class="lineno"> 714</span>&#160; <a class="code" href="structcutlass_1_1TileIteratorBase_1_1Params.html#af496afebb8983e5d346c681334955224">Base::Params::initialize</a>(<a class="code" href="structcutlass_1_1TileIteratorBase_1_1Params.html#ad67234ec264354a22032bb2519575dc1">stride_d</a>, <a class="code" href="structcutlass_1_1TileIteratorBase_1_1Params.html#a58e8c883aea4cfdfa5a84c25a4704ebc">stride_h</a>, <a class="code" href="structcutlass_1_1TileIteratorBase_1_1Params.html#a313984457c78eea66c980f6813047b9c">stride_w</a>);</div><div class="line"><a name="l00715"></a><span class="lineno"> 715</span>&#160; <a class="code" href="structcutlass_1_1TileStoreIterator_1_1Params.html#a6bbadae6b13aef8f31a77cacd88b068b">pointer</a> = ptr;</div><div class="line"><a name="l00716"></a><span class="lineno"> 716</span>&#160; <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00717"></a><span class="lineno"> 717</span>&#160; }</div><div class="line"><a name="l00718"></a><span class="lineno"> 718</span>&#160;</div><div class="line"><a name="l00720"></a><span class="lineno"> 720</span>&#160; <a class="code" href="cutlass_8h.html#a28c2443a142676d3d71effdae1a986b1">CUTLASS_HOST_DEVICE</a></div><div class="line"><a name="l00721"></a><span class="lineno"><a class="line" href="structcutlass_1_1TileStoreIterator_1_1Params.html#ac1cfe92f1543ba445fa10f1859a0db98"> 721</a></span>&#160; <span class="keywordtype">int</span> <a class="code" href="structcutlass_1_1TileStoreIterator_1_1Params.html#ac1cfe92f1543ba445fa10f1859a0db98">initialize</a>(<a class="code" href="structcutlass_1_1TileStoreIterator.html#ad52318b430437575b55099ca992ca3a7">Scalar</a> *ptr,</div><div class="line"><a name="l00722"></a><span class="lineno"> 722</span>&#160; <a class="code" href="structcutlass_1_1TileIteratorBase.html#a44665808adfd69df0d26cec4b1840cc3">Index</a> _stride_d,</div><div class="line"><a name="l00723"></a><span class="lineno"> 723</span>&#160; <a class="code" href="structcutlass_1_1TileIteratorBase.html#a44665808adfd69df0d26cec4b1840cc3">Index</a> _stride_h,</div><div class="line"><a name="l00724"></a><span class="lineno"> 724</span>&#160; <a class="code" href="structcutlass_1_1TileIteratorBase.html#a44665808adfd69df0d26cec4b1840cc3">Index</a> _stride_w,</div><div class="line"><a name="l00725"></a><span class="lineno"> 725</span>&#160; <a class="code" href="structcutlass_1_1TileIteratorBase.html#a44665808adfd69df0d26cec4b1840cc3">Index</a> _inc_d,</div><div class="line"><a name="l00726"></a><span class="lineno"> 726</span>&#160; <a class="code" href="structcutlass_1_1TileIteratorBase.html#a44665808adfd69df0d26cec4b1840cc3">Index</a> _inc_h,</div><div class="line"><a name="l00727"></a><span class="lineno"> 727</span>&#160; <a class="code" href="structcutlass_1_1TileIteratorBase.html#a44665808adfd69df0d26cec4b1840cc3">Index</a> _inc_w,</div><div class="line"><a name="l00728"></a><span class="lineno"> 728</span>&#160; <a class="code" href="structcutlass_1_1TileIteratorBase.html#a44665808adfd69df0d26cec4b1840cc3">Index</a> _inc_advance) {</div><div class="line"><a name="l00729"></a><span class="lineno"> 729</span>&#160; <a class="code" href="structcutlass_1_1TileStoreIterator_1_1Params.html#a6bbadae6b13aef8f31a77cacd88b068b">pointer</a> = ptr;</div><div class="line"><a name="l00730"></a><span class="lineno"> 730</span>&#160; <a class="code" href="structcutlass_1_1TileIteratorBase_1_1Params.html#af496afebb8983e5d346c681334955224">Base::Params::initialize</a>(</div><div class="line"><a name="l00731"></a><span class="lineno"> 731</span>&#160; _stride_d, _stride_h, _stride_w, _inc_d, _inc_h, _inc_w, _inc_advance);</div><div class="line"><a name="l00732"></a><span class="lineno"> 732</span>&#160; <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00733"></a><span class="lineno"> 733</span>&#160; }</div><div class="line"><a name="l00734"></a><span class="lineno"> 734</span>&#160;</div><div class="line"><a name="l00736"></a><span class="lineno"> 736</span>&#160; <a class="code" href="cutlass_8h.html#a28c2443a142676d3d71effdae1a986b1">CUTLASS_HOST_DEVICE</a></div><div class="line"><a name="l00737"></a><span class="lineno"><a class="line" href="structcutlass_1_1TileStoreIterator_1_1Params.html#af884f720d36aa82e7f972932686ae986"> 737</a></span>&#160; <span class="keywordtype">int</span> <a class="code" href="structcutlass_1_1TileStoreIterator_1_1Params.html#af884f720d36aa82e7f972932686ae986">initialize</a>() { <span class="keywordflow">return</span> <a class="code" href="structcutlass_1_1TileIteratorBase_1_1Params.html#af496afebb8983e5d346c681334955224">Base::Params::initialize</a>(); }</div><div class="line"><a name="l00738"></a><span class="lineno"> 738</span>&#160; };</div><div class="line"><a name="l00739"></a><span class="lineno"> 739</span>&#160;</div><div class="line"><a name="l00740"></a><span class="lineno"> 740</span>&#160; <span class="comment">//</span></div><div class="line"><a name="l00741"></a><span class="lineno"> 741</span>&#160; <span class="comment">// Data members</span></div><div class="line"><a name="l00742"></a><span class="lineno"> 742</span>&#160; <span class="comment">//</span></div><div class="line"><a name="l00743"></a><span class="lineno"> 743</span>&#160;</div><div class="line"><a name="l00745"></a><span class="lineno"><a class="line" href="structcutlass_1_1TileStoreIterator.html#a5e6c00b99e0f752137b07f7059f6ee0f"> 745</a></span>&#160; <a class="code" href="structcutlass_1_1TileStoreIterator_1_1Params.html">Params</a> <a class="code" href="structcutlass_1_1TileStoreIterator.html#a5e6c00b99e0f752137b07f7059f6ee0f">params</a>;</div><div class="line"><a name="l00746"></a><span class="lineno"> 746</span>&#160;</div><div class="line"><a name="l00748"></a><span class="lineno"><a class="line" href="structcutlass_1_1TileStoreIterator.html#a350f5beea87d811f43c55519bc0b9035"> 748</a></span>&#160; <a class="code" href="structcutlass_1_1Coord.html">Coord&lt;4&gt;</a> <a class="code" href="structcutlass_1_1TileStoreIterator.html#a350f5beea87d811f43c55519bc0b9035">thread_offset</a>;</div><div class="line"><a name="l00749"></a><span class="lineno"> 749</span>&#160;</div><div class="line"><a name="l00751"></a><span class="lineno"><a class="line" href="structcutlass_1_1TileStoreIterator.html#ae435b72b15eca46eb871446d92bd316e"> 751</a></span>&#160; <span class="keywordtype">int</span> <a class="code" href="structcutlass_1_1TileStoreIterator.html#ae435b72b15eca46eb871446d92bd316e">stage</a>;</div><div class="line"><a name="l00752"></a><span class="lineno"> 752</span>&#160;</div><div class="line"><a name="l00753"></a><span class="lineno"> 753</span>&#160; <span class="comment">//</span></div><div class="line"><a name="l00754"></a><span class="lineno"> 754</span>&#160; <span class="comment">// Static member functions</span></div><div class="line"><a name="l00755"></a><span class="lineno"> 755</span>&#160; <span class="comment">//</span></div><div class="line"><a name="l00756"></a><span class="lineno"> 756</span>&#160;</div><div class="line"><a name="l00758"></a><span class="lineno"> 758</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> PredicateIterator&gt;</div><div class="line"><a name="l00759"></a><span class="lineno"><a class="line" href="structcutlass_1_1TileStoreIterator.html#af92ba20db048a9ec96976a1673f0f7c2"> 759</a></span>&#160; <a class="code" href="cutlass_8h.html#a28c2443a142676d3d71effdae1a986b1">CUTLASS_HOST_DEVICE</a> <span class="keywordtype">void</span> <a class="code" href="structcutlass_1_1TileStoreIterator.html#af92ba20db048a9ec96976a1673f0f7c2">initialize_predicates</a>(PredicateIterator predicate_it,</div><div class="line"><a name="l00760"></a><span class="lineno"> 760</span>&#160; <a class="code" href="structcutlass_1_1Coord.html">Coord&lt;3&gt;</a> <span class="keyword">const</span> &amp;bounds,</div><div class="line"><a name="l00761"></a><span class="lineno"> 761</span>&#160; <a class="code" href="structcutlass_1_1Coord.html">Coord&lt;3&gt;</a> <span class="keyword">const</span> &amp;block_offset = <a class="code" href="namespacecutlass.html#a7419519fa453a121dfa5f26bf87318d9">make_Coord</a>(0,</div><div class="line"><a name="l00762"></a><span class="lineno"> 762</span>&#160; 0,</div><div class="line"><a name="l00763"></a><span class="lineno"> 763</span>&#160; 0)) {</div><div class="line"><a name="l00764"></a><span class="lineno"> 764</span>&#160; <a class="code" href="structcutlass_1_1TileIteratorBase.html#a78b6c0d6a1a96dd55a34bc302ecb07d7">Base::initialize_predicates</a>(</div><div class="line"><a name="l00765"></a><span class="lineno"> 765</span>&#160; predicate_it,</div><div class="line"><a name="l00766"></a><span class="lineno"> 766</span>&#160; bounds,</div><div class="line"><a name="l00767"></a><span class="lineno"> 767</span>&#160; block_offset + <a class="code" href="namespacecutlass.html#a7419519fa453a121dfa5f26bf87318d9">make_Coord</a>(0, <a class="code" href="structcutlass_1_1TileStoreIterator.html#a350f5beea87d811f43c55519bc0b9035">thread_offset</a>[1], <a class="code" href="structcutlass_1_1TileStoreIterator.html#a350f5beea87d811f43c55519bc0b9035">thread_offset</a>[2] * Tile::kC));</div><div class="line"><a name="l00768"></a><span class="lineno"> 768</span>&#160; }</div><div class="line"><a name="l00769"></a><span class="lineno"> 769</span>&#160;</div><div class="line"><a name="l00770"></a><span class="lineno"> 770</span>&#160; <span class="comment">//</span></div><div class="line"><a name="l00771"></a><span class="lineno"> 771</span>&#160; <span class="comment">// Methods</span></div><div class="line"><a name="l00772"></a><span class="lineno"> 772</span>&#160; <span class="comment">//</span></div><div class="line"><a name="l00773"></a><span class="lineno"> 773</span>&#160;</div><div class="line"><a name="l00775"></a><span class="lineno"> 775</span>&#160; <a class="code" href="cutlass_8h.html#a28c2443a142676d3d71effdae1a986b1">CUTLASS_HOST_DEVICE</a></div><div class="line"><a name="l00776"></a><span class="lineno"><a class="line" href="structcutlass_1_1TileStoreIterator.html#aac4d49854d63f632627b6974f9b59dbb"> 776</a></span>&#160; <a class="code" href="structcutlass_1_1TileStoreIterator.html#aac4d49854d63f632627b6974f9b59dbb">TileStoreIterator</a>() {}</div><div class="line"><a name="l00777"></a><span class="lineno"> 777</span>&#160;</div><div class="line"><a name="l00779"></a><span class="lineno"> 779</span>&#160; <a class="code" href="cutlass_8h.html#a28c2443a142676d3d71effdae1a986b1">CUTLASS_HOST_DEVICE</a></div><div class="line"><a name="l00780"></a><span class="lineno"><a class="line" href="structcutlass_1_1TileStoreIterator.html#a037ccd942359e6bc8640a240b13cd330"> 780</a></span>&#160; <a class="code" href="structcutlass_1_1TileStoreIterator.html#a037ccd942359e6bc8640a240b13cd330">TileStoreIterator</a>(<a class="code" href="structcutlass_1_1TileStoreIterator_1_1Params.html">Params</a> <span class="keyword">const</span> &amp;_params,</div><div class="line"><a name="l00781"></a><span class="lineno"> 781</span>&#160; <a class="code" href="structcutlass_1_1Coord.html">Coord&lt;3&gt;</a> <span class="keyword">const</span> &amp;block_offset = <a class="code" href="namespacecutlass.html#a7419519fa453a121dfa5f26bf87318d9">make_Coord</a>(0, 0, 0),</div><div class="line"><a name="l00782"></a><span class="lineno"> 782</span>&#160; <a class="code" href="structcutlass_1_1TileIteratorBase.html#a5abf4755aee07dc58b1d6183fbf4786f">ThreadOffset</a> thread_offset_func = <a class="code" href="structcutlass_1_1TileStoreIterator.html#a6a6f51f459f98c0cddeacf476660cd27">ThreadOffset</a>())</div><div class="line"><a name="l00783"></a><span class="lineno"> 783</span>&#160; : <a class="code" href="structcutlass_1_1TileStoreIterator.html#a5e6c00b99e0f752137b07f7059f6ee0f">params</a>(_params), <a class="code" href="structcutlass_1_1TileStoreIterator.html#ae435b72b15eca46eb871446d92bd316e">stage</a>(0) {</div><div class="line"><a name="l00784"></a><span class="lineno"> 784</span>&#160; <a class="code" href="structcutlass_1_1TileStoreIterator.html#a350f5beea87d811f43c55519bc0b9035">thread_offset</a> = thread_offset_func();</div><div class="line"><a name="l00785"></a><span class="lineno"> 785</span>&#160;</div><div class="line"><a name="l00786"></a><span class="lineno"> 786</span>&#160; <a class="code" href="structcutlass_1_1TileStoreIterator.html#a5e6c00b99e0f752137b07f7059f6ee0f">params</a>.<a class="code" href="structcutlass_1_1TileStoreIterator_1_1Params.html#a6bbadae6b13aef8f31a77cacd88b068b">pointer</a> += block_offset[0] * <a class="code" href="structcutlass_1_1TileStoreIterator.html#a5e6c00b99e0f752137b07f7059f6ee0f">params</a>.<a class="code" href="structcutlass_1_1TileIteratorBase_1_1Params.html#ad67234ec264354a22032bb2519575dc1">stride_d</a> +</div><div class="line"><a name="l00787"></a><span class="lineno"> 787</span>&#160; (block_offset[1] + <a class="code" href="structcutlass_1_1TileStoreIterator.html#a350f5beea87d811f43c55519bc0b9035">thread_offset</a>[1]) * <a class="code" href="structcutlass_1_1TileStoreIterator.html#a5e6c00b99e0f752137b07f7059f6ee0f">params</a>.<a class="code" href="structcutlass_1_1TileIteratorBase_1_1Params.html#a58e8c883aea4cfdfa5a84c25a4704ebc">stride_h</a> +</div><div class="line"><a name="l00788"></a><span class="lineno"> 788</span>&#160; (block_offset[2] + <a class="code" href="structcutlass_1_1TileStoreIterator.html#a350f5beea87d811f43c55519bc0b9035">thread_offset</a>[2] * Tile::kC) / Tile::kC * <a class="code" href="structcutlass_1_1TileStoreIterator.html#a5e6c00b99e0f752137b07f7059f6ee0f">params</a>.<a class="code" href="structcutlass_1_1TileIteratorBase_1_1Params.html#a313984457c78eea66c980f6813047b9c">stride_w</a>;</div><div class="line"><a name="l00789"></a><span class="lineno"> 789</span>&#160; }</div><div class="line"><a name="l00790"></a><span class="lineno"> 790</span>&#160;</div><div class="line"><a name="l00792"></a><span class="lineno"> 792</span>&#160; <a class="code" href="cutlass_8h.html#a28c2443a142676d3d71effdae1a986b1">CUTLASS_HOST_DEVICE</a></div><div class="line"><a name="l00793"></a><span class="lineno"><a class="line" href="structcutlass_1_1TileStoreIterator.html#a4f89c5182659de94605300e15c3651b2"> 793</a></span>&#160; <a class="code" href="structcutlass_1_1TileStoreIterator.html#a4f89c5182659de94605300e15c3651b2">TileStoreIterator</a>(<a class="code" href="structcutlass_1_1TileStoreIterator_1_1Params.html">Params</a> <span class="keyword">const</span> &amp;,</div><div class="line"><a name="l00794"></a><span class="lineno"> 794</span>&#160; <a class="code" href="structcutlass_1_1TileStoreIterator.html#ab7922305d47b67e6cfb439e4e8d9f09b">SharedStorage</a> &amp;shared_storage,</div><div class="line"><a name="l00795"></a><span class="lineno"> 795</span>&#160; <a class="code" href="structcutlass_1_1Coord.html">Coord&lt;3&gt;</a> <span class="keyword">const</span> &amp;block_offset = <a class="code" href="namespacecutlass.html#a7419519fa453a121dfa5f26bf87318d9">make_Coord</a>(0, 0, 0),</div><div class="line"><a name="l00796"></a><span class="lineno"> 796</span>&#160; <a class="code" href="structcutlass_1_1TileIteratorBase.html#a5abf4755aee07dc58b1d6183fbf4786f">ThreadOffset</a> thread_offset_func = <a class="code" href="structcutlass_1_1TileStoreIterator.html#a6a6f51f459f98c0cddeacf476660cd27">ThreadOffset</a>())</div><div class="line"><a name="l00797"></a><span class="lineno"> 797</span>&#160; : <a class="code" href="structcutlass_1_1TileStoreIterator.html#ae435b72b15eca46eb871446d92bd316e">stage</a>(0) {</div><div class="line"><a name="l00798"></a><span class="lineno"> 798</span>&#160; <span class="keywordtype">int</span> <span class="keyword">const</span> offset = thread_offset_func()[2];</div><div class="line"><a name="l00799"></a><span class="lineno"> 799</span>&#160; <a class="code" href="structcutlass_1_1TileStoreIterator.html#a5e6c00b99e0f752137b07f7059f6ee0f">params</a>.<a class="code" href="structcutlass_1_1TileStoreIterator_1_1Params.html#a6bbadae6b13aef8f31a77cacd88b068b">pointer</a> = &amp;shared_storage[offset];</div><div class="line"><a name="l00800"></a><span class="lineno"> 800</span>&#160; }</div><div class="line"><a name="l00801"></a><span class="lineno"> 801</span>&#160;</div><div class="line"><a name="l00803"></a><span class="lineno"> 803</span>&#160; <a class="code" href="cutlass_8h.html#a28c2443a142676d3d71effdae1a986b1">CUTLASS_HOST_DEVICE</a></div><div class="line"><a name="l00804"></a><span class="lineno"><a class="line" href="structcutlass_1_1TileStoreIterator.html#a5ebab59862d5f50ad980871515d999b0"> 804</a></span>&#160; <a class="code" href="structcutlass_1_1TileIteratorBase.html#a17163e93d7d3616b4950925f72bb4c16">Scalar</a> *<a class="code" href="structcutlass_1_1TileStoreIterator.html#a5ebab59862d5f50ad980871515d999b0">data</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="structcutlass_1_1TileStoreIterator.html#a5e6c00b99e0f752137b07f7059f6ee0f">params</a>.<a class="code" href="structcutlass_1_1TileStoreIterator_1_1Params.html#a6bbadae6b13aef8f31a77cacd88b068b">pointer</a>; }</div><div class="line"><a name="l00805"></a><span class="lineno"> 805</span>&#160;</div><div class="line"><a name="l00807"></a><span class="lineno"><a class="line" href="structcutlass_1_1TileStoreIterator.html#a74dffe1ddcc84935ab170117e939b7e3"> 807</a></span>&#160; <a class="code" href="cutlass_8h.html#a28c2443a142676d3d71effdae1a986b1">CUTLASS_HOST_DEVICE</a> <span class="keywordtype">void</span> <a class="code" href="structcutlass_1_1TileStoreIterator.html#a74dffe1ddcc84935ab170117e939b7e3">inc_d</a>() { <a class="code" href="structcutlass_1_1TileStoreIterator.html#a5e6c00b99e0f752137b07f7059f6ee0f">params</a>.<a class="code" href="structcutlass_1_1TileStoreIterator_1_1Params.html#a6bbadae6b13aef8f31a77cacd88b068b">pointer</a> += <a class="code" href="structcutlass_1_1TileStoreIterator.html#a5e6c00b99e0f752137b07f7059f6ee0f">params</a>.<a class="code" href="structcutlass_1_1TileIteratorBase_1_1Params.html#af95fa1b5102176a0fa9b17713fd48150">inc_d</a>; }</div><div class="line"><a name="l00808"></a><span class="lineno"> 808</span>&#160;</div><div class="line"><a name="l00810"></a><span class="lineno"><a class="line" href="structcutlass_1_1TileStoreIterator.html#a3793f5d5846862f22f1de736e36ae7c1"> 810</a></span>&#160; <a class="code" href="cutlass_8h.html#a28c2443a142676d3d71effdae1a986b1">CUTLASS_HOST_DEVICE</a> <span class="keywordtype">void</span> <a class="code" href="structcutlass_1_1TileStoreIterator.html#a3793f5d5846862f22f1de736e36ae7c1">inc_h</a>() { <a class="code" href="structcutlass_1_1TileStoreIterator.html#a5e6c00b99e0f752137b07f7059f6ee0f">params</a>.<a class="code" href="structcutlass_1_1TileStoreIterator_1_1Params.html#a6bbadae6b13aef8f31a77cacd88b068b">pointer</a> += <a class="code" href="structcutlass_1_1TileStoreIterator.html#a5e6c00b99e0f752137b07f7059f6ee0f">params</a>.<a class="code" href="structcutlass_1_1TileIteratorBase_1_1Params.html#aea591d4278a8338ae8b50fa0b8f3a366">inc_h</a>; }</div><div class="line"><a name="l00811"></a><span class="lineno"> 811</span>&#160;</div><div class="line"><a name="l00813"></a><span class="lineno"><a class="line" href="structcutlass_1_1TileStoreIterator.html#aa573a47a9ffc3e07239a09e2bc470cf1"> 813</a></span>&#160; <a class="code" href="cutlass_8h.html#a28c2443a142676d3d71effdae1a986b1">CUTLASS_HOST_DEVICE</a> <span class="keywordtype">void</span> <a class="code" href="structcutlass_1_1TileStoreIterator.html#aa573a47a9ffc3e07239a09e2bc470cf1">inc_w</a>() { <a class="code" href="structcutlass_1_1TileStoreIterator.html#a5e6c00b99e0f752137b07f7059f6ee0f">params</a>.<a class="code" href="structcutlass_1_1TileStoreIterator_1_1Params.html#a6bbadae6b13aef8f31a77cacd88b068b">pointer</a> += <a class="code" href="structcutlass_1_1TileStoreIterator.html#a5e6c00b99e0f752137b07f7059f6ee0f">params</a>.<a class="code" href="structcutlass_1_1TileIteratorBase_1_1Params.html#ac6e81450a2d78555a6c2415dcc42b178">inc_w</a>; }</div><div class="line"><a name="l00814"></a><span class="lineno"> 814</span>&#160;</div><div class="line"><a name="l00816"></a><span class="lineno"><a class="line" href="structcutlass_1_1TileStoreIterator.html#a1614b27755cf82c0e1f3e7852c5a4c75"> 816</a></span>&#160; <a class="code" href="cutlass_8h.html#a28c2443a142676d3d71effdae1a986b1">CUTLASS_HOST_DEVICE</a> <span class="keywordtype">void</span> <a class="code" href="structcutlass_1_1TileStoreIterator.html#a1614b27755cf82c0e1f3e7852c5a4c75">inc_advance</a>() {}</div><div class="line"><a name="l00817"></a><span class="lineno"> 817</span>&#160;</div><div class="line"><a name="l00819"></a><span class="lineno"><a class="line" href="structcutlass_1_1TileStoreIterator.html#a187e0852ec4862f6d3cb6249bedc3bb3"> 819</a></span>&#160; CUTLASS_DEVICE <span class="keywordtype">void</span> <a class="code" href="structcutlass_1_1TileStoreIterator.html#a187e0852ec4862f6d3cb6249bedc3bb3">inc_stage</a>() {</div><div class="line"><a name="l00820"></a><span class="lineno"> 820</span>&#160; <span class="keywordflow">if</span> (Tile::kD &gt; 1) {</div><div class="line"><a name="l00821"></a><span class="lineno"> 821</span>&#160; <span class="keywordtype">int</span> <span class="keyword">const</span> kStageSize = Tile::kH * Tile::kW * Tile::kC;</div><div class="line"><a name="l00822"></a><span class="lineno"> 822</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="structcutlass_1_1TileStoreIterator.html#ae435b72b15eca46eb871446d92bd316e">stage</a> == Tile::kD - 1) {</div><div class="line"><a name="l00823"></a><span class="lineno"> 823</span>&#160; <a class="code" href="structcutlass_1_1TileStoreIterator.html#a5e6c00b99e0f752137b07f7059f6ee0f">params</a>.<a class="code" href="structcutlass_1_1TileStoreIterator_1_1Params.html#a6bbadae6b13aef8f31a77cacd88b068b">pointer</a> -= (Tile::kD - 1) * kStageSize;</div><div class="line"><a name="l00824"></a><span class="lineno"> 824</span>&#160; <a class="code" href="structcutlass_1_1TileStoreIterator.html#ae435b72b15eca46eb871446d92bd316e">stage</a> = 0;</div><div class="line"><a name="l00825"></a><span class="lineno"> 825</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00826"></a><span class="lineno"> 826</span>&#160; <a class="code" href="structcutlass_1_1TileStoreIterator.html#a5e6c00b99e0f752137b07f7059f6ee0f">params</a>.<a class="code" href="structcutlass_1_1TileStoreIterator_1_1Params.html#a6bbadae6b13aef8f31a77cacd88b068b">pointer</a> += kStageSize;</div><div class="line"><a name="l00827"></a><span class="lineno"> 827</span>&#160; <a class="code" href="structcutlass_1_1TileStoreIterator.html#ae435b72b15eca46eb871446d92bd316e">stage</a> = <a class="code" href="structcutlass_1_1TileStoreIterator.html#ae435b72b15eca46eb871446d92bd316e">stage</a> + 1;</div><div class="line"><a name="l00828"></a><span class="lineno"> 828</span>&#160; }</div><div class="line"><a name="l00829"></a><span class="lineno"> 829</span>&#160; }</div><div class="line"><a name="l00830"></a><span class="lineno"> 830</span>&#160; }</div><div class="line"><a name="l00831"></a><span class="lineno"> 831</span>&#160;</div><div class="line"><a name="l00832"></a><span class="lineno"> 832</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00834"></a><span class="lineno"> 834</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> Fragment, <span class="keyword">typename</span> PredicateIterator&gt;</div><div class="line"><a name="l00835"></a><span class="lineno"><a class="line" href="structcutlass_1_1TileStoreIterator.html#a57aa2c36eb6ad9d2500c1f5396b3a526"> 835</a></span>&#160; <a class="code" href="cutlass_8h.html#a28c2443a142676d3d71effdae1a986b1">CUTLASS_HOST_DEVICE</a> <span class="keywordtype">void</span> <a class="code" href="structcutlass_1_1TileStoreIterator.html#a57aa2c36eb6ad9d2500c1f5396b3a526">store_post_increment</a>(<a class="code" href="structcutlass_1_1TileIteratorBase.html#a0d7b595d7959cc1680fc07c2e02e1c8e">Fragment</a> &amp;fragment, PredicateIterator pred_it) {</div><div class="line"><a name="l00836"></a><span class="lineno"> 836</span>&#160; <a class="code" href="structcutlass_1_1TileIteratorBase.html#a379a52ed1128fc9f93cad35d3e3233e5">FragmentIterator</a> frag_iterator(fragment);</div><div class="line"><a name="l00837"></a><span class="lineno"> 837</span>&#160;</div><div class="line"><a name="l00838"></a><span class="lineno"> 838</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">int</span> d = 0; d &lt; Iterations::kD; ++d) {</div><div class="line"><a name="l00839"></a><span class="lineno"> 839</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">int</span> h = 0; h &lt; Iterations::kH; ++h) {</div><div class="line"><a name="l00840"></a><span class="lineno"> 840</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">int</span> w = 0; w &lt; Iterations::kW; ++w, ++pred_it) {</div><div class="line"><a name="l00841"></a><span class="lineno"> 841</span>&#160; <span class="keywordflow">if</span> (*pred_it) {</div><div class="line"><a name="l00842"></a><span class="lineno"> 842</span>&#160; <a class="code" href="structcutlass_1_1Store.html#a1117fa7b7bdeeb3a7f2d647a1d340aaf">Store&lt;typename Fragment::Element, Tile::kC, kMemorySpace&gt;::store</a>(</div><div class="line"><a name="l00843"></a><span class="lineno"> 843</span>&#160; reinterpret_cast&lt;AccessType &amp;&gt;(frag_iterator.at(d, h, w, 0)), <a class="code" href="structcutlass_1_1TileStoreIterator.html#a5ebab59862d5f50ad980871515d999b0">data</a>(), 0);</div><div class="line"><a name="l00844"></a><span class="lineno"> 844</span>&#160; }</div><div class="line"><a name="l00845"></a><span class="lineno"> 845</span>&#160; <span class="keywordflow">if</span> (w &lt; Iterations::kW - 1) {</div><div class="line"><a name="l00846"></a><span class="lineno"> 846</span>&#160; <a class="code" href="structcutlass_1_1TileStoreIterator.html#aa573a47a9ffc3e07239a09e2bc470cf1">inc_w</a>();</div><div class="line"><a name="l00847"></a><span class="lineno"> 847</span>&#160; }</div><div class="line"><a name="l00848"></a><span class="lineno"> 848</span>&#160; }</div><div class="line"><a name="l00849"></a><span class="lineno"> 849</span>&#160; <span class="keywordflow">if</span> (h &lt; Iterations::kH - 1) {</div><div class="line"><a name="l00850"></a><span class="lineno"> 850</span>&#160; <a class="code" href="structcutlass_1_1TileStoreIterator.html#a3793f5d5846862f22f1de736e36ae7c1">inc_h</a>();</div><div class="line"><a name="l00851"></a><span class="lineno"> 851</span>&#160; }</div><div class="line"><a name="l00852"></a><span class="lineno"> 852</span>&#160; }</div><div class="line"><a name="l00853"></a><span class="lineno"> 853</span>&#160; <span class="keywordflow">if</span> (d &lt; Iterations::kD - 1) {</div><div class="line"><a name="l00854"></a><span class="lineno"> 854</span>&#160; <a class="code" href="structcutlass_1_1TileStoreIterator.html#a74dffe1ddcc84935ab170117e939b7e3">inc_d</a>();</div><div class="line"><a name="l00855"></a><span class="lineno"> 855</span>&#160; }</div><div class="line"><a name="l00856"></a><span class="lineno"> 856</span>&#160; }</div><div class="line"><a name="l00857"></a><span class="lineno"> 857</span>&#160; <a class="code" href="structcutlass_1_1TileStoreIterator.html#a1614b27755cf82c0e1f3e7852c5a4c75">inc_advance</a>();</div><div class="line"><a name="l00858"></a><span class="lineno"> 858</span>&#160; }</div><div class="line"><a name="l00859"></a><span class="lineno"> 859</span>&#160;</div><div class="line"><a name="l00861"></a><span class="lineno"> 861</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> Fragment&gt;</div><div class="line"><a name="l00862"></a><span class="lineno"><a class="line" href="structcutlass_1_1TileStoreIterator.html#ae63949f58c1b32959bbfa5b64d521f0f"> 862</a></span>&#160; <a class="code" href="cutlass_8h.html#a28c2443a142676d3d71effdae1a986b1">CUTLASS_HOST_DEVICE</a> <span class="keywordtype">void</span> <a class="code" href="structcutlass_1_1TileStoreIterator.html#ae63949f58c1b32959bbfa5b64d521f0f">store_post_increment</a>(<a class="code" href="structcutlass_1_1TileIteratorBase.html#a0d7b595d7959cc1680fc07c2e02e1c8e">Fragment</a> &amp;fragment) {</div><div class="line"><a name="l00863"></a><span class="lineno"> 863</span>&#160; <span class="keyword">typename</span> <a class="code" href="structcutlass_1_1PredicateVector_1_1TrivialIterator.html">PredicateVector::TrivialIterator</a> pred_it;</div><div class="line"><a name="l00864"></a><span class="lineno"> 864</span>&#160; <a class="code" href="structcutlass_1_1TileStoreIterator.html#a57aa2c36eb6ad9d2500c1f5396b3a526">store_post_increment</a>(fragment, pred_it);</div><div class="line"><a name="l00865"></a><span class="lineno"> 865</span>&#160; }</div><div class="line"><a name="l00866"></a><span class="lineno"> 866</span>&#160;</div><div class="line"><a name="l00868"></a><span class="lineno"> 868</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> Fragment, <span class="keyword">typename</span> PredicateIterator&gt;</div><div class="line"><a name="l00869"></a><span class="lineno"><a class="line" href="structcutlass_1_1TileStoreIterator.html#a53820de506cecb1f5fb07b3385d8272a"> 869</a></span>&#160; <a class="code" href="cutlass_8h.html#a28c2443a142676d3d71effdae1a986b1">CUTLASS_HOST_DEVICE</a> <span class="keywordtype">void</span> <a class="code" href="structcutlass_1_1TileStoreIterator.html#a53820de506cecb1f5fb07b3385d8272a">store</a>(<a class="code" href="structcutlass_1_1TileIteratorBase.html#a0d7b595d7959cc1680fc07c2e02e1c8e">Fragment</a> &amp;fragment, PredicateIterator pred_it)<span class="keyword"> const </span>{</div><div class="line"><a name="l00870"></a><span class="lineno"> 870</span>&#160; <a class="code" href="structcutlass_1_1TileStoreIterator.html">TileStoreIterator</a> _store_it(*<span class="keyword">this</span>);</div><div class="line"><a name="l00871"></a><span class="lineno"> 871</span>&#160; _store_it.<a class="code" href="structcutlass_1_1TileStoreIterator.html#a57aa2c36eb6ad9d2500c1f5396b3a526">store_post_increment</a>(fragment, pred_it);</div><div class="line"><a name="l00872"></a><span class="lineno"> 872</span>&#160; }</div><div class="line"><a name="l00873"></a><span class="lineno"> 873</span>&#160;</div><div class="line"><a name="l00875"></a><span class="lineno"> 875</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> Fragment&gt;</div><div class="line"><a name="l00876"></a><span class="lineno"><a class="line" href="structcutlass_1_1TileStoreIterator.html#a60258b7c1a1708f97e28f8f6c292bfe4"> 876</a></span>&#160; <a class="code" href="cutlass_8h.html#a28c2443a142676d3d71effdae1a986b1">CUTLASS_HOST_DEVICE</a> <span class="keywordtype">void</span> <a class="code" href="structcutlass_1_1TileStoreIterator.html#a60258b7c1a1708f97e28f8f6c292bfe4">store</a>(<a class="code" href="structcutlass_1_1TileIteratorBase.html#a0d7b595d7959cc1680fc07c2e02e1c8e">Fragment</a> &amp;fragment)<span class="keyword"> const </span>{</div><div class="line"><a name="l00877"></a><span class="lineno"> 877</span>&#160; <span class="keyword">typename</span> <a class="code" href="structcutlass_1_1PredicateVector_1_1TrivialIterator.html">PredicateVector::TrivialIterator</a> pred_it;</div><div class="line"><a name="l00878"></a><span class="lineno"> 878</span>&#160; <a class="code" href="structcutlass_1_1TileStoreIterator.html#a53820de506cecb1f5fb07b3385d8272a">store</a>(fragment, pred_it);</div><div class="line"><a name="l00879"></a><span class="lineno"> 879</span>&#160; }</div><div class="line"><a name="l00880"></a><span class="lineno"> 880</span>&#160;};</div><div class="line"><a name="l00881"></a><span class="lineno"> 881</span>&#160;}</div><div class="ttc" id="structcutlass_1_1TileIteratorBase_html_a4e0b2bc06bb8f52313e4d8c51ab30ff2"><div class="ttname"><a href="structcutlass_1_1TileIteratorBase.html#a4e0b2bc06bb8f52313e4d8c51ab30ff2">cutlass::TileIteratorBase::kFragmentSize</a></div><div class="ttdeci">static int const kFragmentSize</div><div class="ttdoc">The size of storage needed per fragment. </div><div class="ttdef"><b>Definition:</b> tile_iterator.h:149</div></div>
<div class="ttc" id="structcutlass_1_1TileLoadIterator_html_aba1d75a0cd5f11dee2aecf89b2b13d98"><div class="ttname"><a href="structcutlass_1_1TileLoadIterator.html#aba1d75a0cd5f11dee2aecf89b2b13d98">cutlass::TileLoadIterator::kIteratorFragment</a></div><div class="ttdeci">static IteratorFragment::Kind const kIteratorFragment</div><div class="ttdoc">Specifies type of iterator fragment storage (Salar or WmmaMatrix) </div><div class="ttdef"><b>Definition:</b> tile_iterator.h:334</div></div>
<div class="ttc" id="structcutlass_1_1TileStoreIterator_html_a1614b27755cf82c0e1f3e7852c5a4c75"><div class="ttname"><a href="structcutlass_1_1TileStoreIterator.html#a1614b27755cf82c0e1f3e7852c5a4c75">cutlass::TileStoreIterator::inc_advance</a></div><div class="ttdeci">CUTLASS_HOST_DEVICE void inc_advance()</div><div class="ttdoc">Increment in the next dimension. </div><div class="ttdef"><b>Definition:</b> tile_iterator.h:816</div></div>
<div class="ttc" id="structcutlass_1_1TileIteratorBase_html_a25a241bbdc0b0121992019a16f1a6d60"><div class="ttname"><a href="structcutlass_1_1TileIteratorBase.html#a25a241bbdc0b0121992019a16f1a6d60">cutlass::TileIteratorBase&lt; TileTraits_, TileTraits_::Scalar, IteratorAdvance::kH, MemorySpace::kGlobal, Index_ &gt;::FragmentConstIterator</a></div><div class="ttdeci">FragmentConstIterator&lt; Fragment, Iterations, AccessType &gt; FragmentConstIterator</div><div class="ttdoc">The fragment const iterator. </div><div class="ttdef"><b>Definition:</b> tile_iterator.h:158</div></div>
<div class="ttc" id="structcutlass_1_1TileStoreIterator_html_af4576dca736bab8ac73b308522cb4a67"><div class="ttname"><a href="structcutlass_1_1TileStoreIterator.html#af4576dca736bab8ac73b308522cb4a67">cutlass::TileStoreIterator::Base</a></div><div class="ttdeci">TileIteratorBase&lt; Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, IteratorFragment_, Skew_ &gt; Base</div><div class="ttdoc">Base class. </div><div class="ttdef"><b>Definition:</b> tile_iterator.h:637</div></div>
<div class="ttc" id="structcutlass_1_1TileStoreIterator_html_a95da23108b74ad085024ab45e84083e1"><div class="ttname"><a href="structcutlass_1_1TileStoreIterator.html#a95da23108b74ad085024ab45e84083e1">cutlass::TileStoreIterator::Fragment</a></div><div class="ttdeci">Base::Fragment Fragment</div><div class="ttdoc">Fragment definition. </div><div class="ttdef"><b>Definition:</b> tile_iterator.h:682</div></div>
<div class="ttc" id="structcutlass_1_1TileLoadIterator_html_aebbe5a0996dcd362caad618e78dc2591"><div class="ttname"><a href="structcutlass_1_1TileLoadIterator.html#aebbe5a0996dcd362caad618e78dc2591">cutlass::TileLoadIterator::FragmentIterator</a></div><div class="ttdeci">Base::FragmentIterator FragmentIterator</div><div class="ttdoc">Fragment iterator definition. </div><div class="ttdef"><b>Definition:</b> tile_iterator.h:367</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_1TileLoadIterator_html_a7f1499ada284c21624487d4d3a5dbd10"><div class="ttname"><a href="structcutlass_1_1TileLoadIterator.html#a7f1499ada284c21624487d4d3a5dbd10">cutlass::TileLoadIterator::Tile</a></div><div class="ttdeci">Base::Tile Tile</div><div class="ttdoc">Tile shape. </div><div class="ttdef"><b>Definition:</b> tile_iterator.h:346</div></div>
<div class="ttc" id="structcutlass_1_1TileLoadIterator_html_a2716b9010d2902b90e63abb0531ee915"><div class="ttname"><a href="structcutlass_1_1TileLoadIterator.html#a2716b9010d2902b90e63abb0531ee915">cutlass::TileLoadIterator::load_post_increment</a></div><div class="ttdeci">CUTLASS_HOST_DEVICE void load_post_increment(Fragment &amp;fragment, PredicateIterator pred_it)</div><div class="ttdoc">Loads a fragment and advances the iterator to the next tile. </div><div class="ttdef"><b>Definition:</b> tile_iterator.h:533</div></div>
<div class="ttc" id="structcutlass_1_1TileLoadIterator_html_a8a1527b4b469ae1f97afde2502ece70d"><div class="ttname"><a href="structcutlass_1_1TileLoadIterator.html#a8a1527b4b469ae1f97afde2502ece70d">cutlass::TileLoadIterator::ThreadOffset</a></div><div class="ttdeci">Base::ThreadOffset ThreadOffset</div><div class="ttdoc">ThreadOffset functor. </div><div class="ttdef"><b>Definition:</b> tile_iterator.h:355</div></div>
<div class="ttc" id="structcutlass_1_1TileStoreIterator_html_a8059c57030df99b73309e9210ec5f624"><div class="ttname"><a href="structcutlass_1_1TileStoreIterator.html#a8059c57030df99b73309e9210ec5f624">cutlass::TileStoreIterator::kAdvance</a></div><div class="ttdeci">static IteratorAdvance::Kind const kAdvance</div><div class="ttdoc">Specifies in which dimension post-increment accesses advance. </div><div class="ttdef"><b>Definition:</b> tile_iterator.h:649</div></div>
<div class="ttc" id="structcutlass_1_1TileIteratorBase_html_a14f4b356c9cd320e6e7b451edbf58c24"><div class="ttname"><a href="structcutlass_1_1TileIteratorBase.html#a14f4b356c9cd320e6e7b451edbf58c24">cutlass::TileIteratorBase::FragmentShape</a></div><div class="ttdeci">FragmentIterator::FragmentShape FragmentShape</div><div class="ttdoc">The shape of the fragment. </div><div class="ttdef"><b>Definition:</b> tile_iterator.h:160</div></div>
<div class="ttc" id="structcutlass_1_1TileIteratorBase_html_a5abf4755aee07dc58b1d6183fbf4786f"><div class="ttname"><a href="structcutlass_1_1TileIteratorBase.html#a5abf4755aee07dc58b1d6183fbf4786f">cutlass::TileIteratorBase::ThreadOffset</a></div><div class="ttdeci">Traits::ThreadOffset ThreadOffset</div><div class="ttdoc">Thread offset. </div><div class="ttdef"><b>Definition:</b> tile_iterator.h:140</div></div>
<div class="ttc" id="structcutlass_1_1TileStoreIterator_html_a94c0567316118abfb84fc28560a5a46a"><div class="ttname"><a href="structcutlass_1_1TileStoreIterator.html#a94c0567316118abfb84fc28560a5a46a">cutlass::TileStoreIterator::kIteratorFragment</a></div><div class="ttdeci">static IteratorFragment::Kind const kIteratorFragment</div><div class="ttdoc">Specifies type of iterator fragment storage (Salar or WmmaMatrix) </div><div class="ttdef"><b>Definition:</b> tile_iterator.h:652</div></div>
<div class="ttc" id="structcutlass_1_1TileIteratorBase_html_ae89afbcf642b3023770ff22969c51d16"><div class="ttname"><a href="structcutlass_1_1TileIteratorBase.html#ae89afbcf642b3023770ff22969c51d16">cutlass::TileIteratorBase::Skew</a></div><div class="ttdeci">Skew_ Skew</div><div class="ttdoc">Skew quantity. </div><div class="ttdef"><b>Definition:</b> tile_iterator.h:125</div></div>
<div class="ttc" id="structcutlass_1_1TileStoreIterator_html_a3b872e85844c9e009fa480a71a829136"><div class="ttname"><a href="structcutlass_1_1TileStoreIterator.html#a3b872e85844c9e009fa480a71a829136">cutlass::TileStoreIterator::FragmentShape</a></div><div class="ttdeci">Base::FragmentShape FragmentShape</div><div class="ttdoc">Fragment type. </div><div class="ttdef"><b>Definition:</b> tile_iterator.h:676</div></div>
<div class="ttc" id="structcutlass_1_1TileStoreIterator_1_1Params_html_a71f5238a712f7b2f377fb58938ac829b"><div class="ttname"><a href="structcutlass_1_1TileStoreIterator_1_1Params.html#a71f5238a712f7b2f377fb58938ac829b">cutlass::TileStoreIterator::Params::initialize</a></div><div class="ttdeci">CUTLASS_HOST_DEVICE int initialize(SharedStorage &amp;storage)</div><div class="ttdoc">Initialize params to access storage object. </div><div class="ttdef"><b>Definition:</b> tile_iterator.h:706</div></div>
<div class="ttc" id="structcutlass_1_1MemorySpace_html"><div class="ttname"><a href="structcutlass_1_1MemorySpace.html">cutlass::MemorySpace</a></div><div class="ttdoc">Enum to specify which memory space data resides in. </div><div class="ttdef"><b>Definition:</b> load_store.h:39</div></div>
<div class="ttc" id="structcutlass_1_1TileLoadIterator_html_a11ec4297c9a1352c8005ac222892b35c"><div class="ttname"><a href="structcutlass_1_1TileLoadIterator.html#a11ec4297c9a1352c8005ac222892b35c">cutlass::TileLoadIterator::Skew</a></div><div class="ttdeci">Base::Skew Skew</div><div class="ttdoc">Skew quantity. </div><div class="ttdef"><b>Definition:</b> tile_iterator.h:343</div></div>
<div class="ttc" id="structcutlass_1_1IteratorAdvance_html_a9ad9c2302ddffa148d47cdcf6c738dda"><div class="ttname"><a href="structcutlass_1_1IteratorAdvance.html#a9ad9c2302ddffa148d47cdcf6c738dda">cutlass::IteratorAdvance::Kind</a></div><div class="ttdeci">Kind</div><div class="ttdef"><b>Definition:</b> tile_iterator.h:62</div></div>
<div class="ttc" id="structcutlass_1_1TileIteratorBase_1_1Params_html_af496afebb8983e5d346c681334955224"><div class="ttname"><a href="structcutlass_1_1TileIteratorBase_1_1Params.html#af496afebb8983e5d346c681334955224">cutlass::TileIteratorBase::Params::initialize</a></div><div class="ttdeci">CUTLASS_HOST_DEVICE int initialize()</div><div class="ttdef"><b>Definition:</b> tile_iterator.h:227</div></div>
<div class="ttc" id="structcutlass_1_1TileStoreIterator_html_a57348779bb004ed1ea0fd9cc252e895d"><div class="ttname"><a href="structcutlass_1_1TileStoreIterator.html#a57348779bb004ed1ea0fd9cc252e895d">cutlass::TileStoreIterator::Skew</a></div><div class="ttdeci">Base::Skew Skew</div><div class="ttdoc">Skew quantity. </div><div class="ttdef"><b>Definition:</b> tile_iterator.h:661</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&lt; 1 &gt; 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_1TileStoreIterator_html_ab7922305d47b67e6cfb439e4e8d9f09b"><div class="ttname"><a href="structcutlass_1_1TileStoreIterator.html#ab7922305d47b67e6cfb439e4e8d9f09b">cutlass::TileStoreIterator::SharedStorage</a></div><div class="ttdeci">Base::Storage SharedStorage</div><div class="ttdoc">Storage object which may be stored to. </div><div class="ttdef"><b>Definition:</b> tile_iterator.h:694</div></div>
<div class="ttc" id="structcutlass_1_1TileTraits_html"><div class="ttname"><a href="structcutlass_1_1TileTraits.html">cutlass::TileTraits</a></div><div class="ttdoc">A template defining Tile Traits Concept. </div><div class="ttdef"><b>Definition:</b> tile_iterator.h:77</div></div>
<div class="ttc" id="structcutlass_1_1TileLoadIterator_html_afb6320b600f1f561594a9fb543b954e4"><div class="ttname"><a href="structcutlass_1_1TileLoadIterator.html#afb6320b600f1f561594a9fb543b954e4">cutlass::TileLoadIterator::data</a></div><div class="ttdeci">CUTLASS_HOST_DEVICE Scalar const * data() const</div><div class="ttdoc">Returns the current pointer. </div><div class="ttdef"><b>Definition:</b> tile_iterator.h:502</div></div>
<div class="ttc" id="structcutlass_1_1TileLoadIterator_html_a1bc1bd4893c14b313ee71b71db2903f3"><div class="ttname"><a href="structcutlass_1_1TileLoadIterator.html#a1bc1bd4893c14b313ee71b71db2903f3">cutlass::TileLoadIterator::Base</a></div><div class="ttdeci">TileIteratorBase&lt; Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, IteratorFragment_, Skew_ &gt; Base</div><div class="ttdoc">Base class. </div><div class="ttdef"><b>Definition:</b> tile_iterator.h:319</div></div>
<div class="ttc" id="structcutlass_1_1TileLoadIterator_html_a53282fa4cb33cfcec79033d26e418af6"><div class="ttname"><a href="structcutlass_1_1TileLoadIterator.html#a53282fa4cb33cfcec79033d26e418af6">cutlass::TileLoadIterator::TileLoadIterator</a></div><div class="ttdeci">CUTLASS_HOST_DEVICE TileLoadIterator(Params const &amp;, SharedStorage &amp;shared_storage, Coord&lt; 3 &gt; const &amp;block_offset=make_Coord(0, 0, 0), ThreadOffset thread_offset_func=ThreadOffset())</div><div class="ttdoc">Constructs a tile load iterator. </div><div class="ttdef"><b>Definition:</b> tile_iterator.h:491</div></div>
<div class="ttc" id="structcutlass_1_1TileLoadIterator_1_1Params_html_afd9e82df76ad35fe883b7834457242b2"><div class="ttname"><a href="structcutlass_1_1TileLoadIterator_1_1Params.html#afd9e82df76ad35fe883b7834457242b2">cutlass::TileLoadIterator::Params::initialize</a></div><div class="ttdeci">CUTLASS_HOST_DEVICE int initialize(Scalar const *ptr, Index stride_d, Index stride_h, Index stride_w)</div><div class="ttdoc">Initializes params to access a raw pointer. </div><div class="ttdef"><b>Definition:</b> tile_iterator.h:401</div></div>
<div class="ttc" id="structcutlass_1_1TileLoadIterator_html_a788bab4fa46dc26854348b751cf1cc76"><div class="ttname"><a href="structcutlass_1_1TileLoadIterator.html#a788bab4fa46dc26854348b751cf1cc76">cutlass::TileLoadIterator::BaseParams</a></div><div class="ttdeci">Base::Params BaseParams</div><div class="ttdoc">IteratorBase parameters. </div><div class="ttdef"><b>Definition:</b> tile_iterator.h:379</div></div>
<div class="ttc" id="structcutlass_1_1TileStoreIterator_html_a5e6c00b99e0f752137b07f7059f6ee0f"><div class="ttname"><a href="structcutlass_1_1TileStoreIterator.html#a5e6c00b99e0f752137b07f7059f6ee0f">cutlass::TileStoreIterator::params</a></div><div class="ttdeci">Params params</div><div class="ttdoc">Parameters structure. </div><div class="ttdef"><b>Definition:</b> tile_iterator.h:745</div></div>
<div class="ttc" id="structcutlass_1_1Load_html_ad033ebc1452d96b18913333bf7068140"><div class="ttname"><a href="structcutlass_1_1Load.html#ad033ebc1452d96b18913333bf7068140">cutlass::Load::load</a></div><div class="ttdeci">static CUTLASS_DEVICE void load(AccessType &amp;dst, Scalar_ const *pointer, int offset)</div><div class="ttdoc">The load function. </div><div class="ttdef"><b>Definition:</b> load_store.h:59</div></div>
<div class="ttc" id="structcutlass_1_1TileLoadIterator_1_1Params_html_aeeea0f8bdee876553a4908b9b7cbaf76"><div class="ttname"><a href="structcutlass_1_1TileLoadIterator_1_1Params.html#aeeea0f8bdee876553a4908b9b7cbaf76">cutlass::TileLoadIterator::Params::initialize</a></div><div class="ttdeci">CUTLASS_HOST_DEVICE int initialize(SharedStorage const &amp;storage)</div><div class="ttdoc">Initialize params to access storage object. </div><div class="ttdef"><b>Definition:</b> tile_iterator.h:394</div></div>
<div class="ttc" id="structcutlass_1_1TileLoadIterator_html_a1f3601c595f12e7083919ece9b1ec84eaee9d9d6cea8079c32c9383bde45161fc"><div class="ttname"><a href="structcutlass_1_1TileLoadIterator.html#a1f3601c595f12e7083919ece9b1ec84eaee9d9d6cea8079c32c9383bde45161fc">cutlass::TileLoadIterator::kRequiresLoadFence</a></div><div class="ttdef"><b>Definition:</b> tile_iterator.h:382</div></div>
<div class="ttc" id="structcutlass_1_1TileLoadIterator_html_ae8dff52e619f06fbdbca8cb847c79895"><div class="ttname"><a href="structcutlass_1_1TileLoadIterator.html#ae8dff52e619f06fbdbca8cb847c79895">cutlass::TileLoadIterator::Scalar</a></div><div class="ttdeci">Base::Scalar Scalar</div><div class="ttdoc">Scalar element. </div><div class="ttdef"><b>Definition:</b> tile_iterator.h:325</div></div>
<div class="ttc" id="structcutlass_1_1TileLoadIterator_html_a4af8eeabe7c1ec0362782687a84466e0"><div class="ttname"><a href="structcutlass_1_1TileLoadIterator.html#a4af8eeabe7c1ec0362782687a84466e0">cutlass::TileLoadIterator::AccessType</a></div><div class="ttdeci">Base::AccessType AccessType</div><div class="ttdoc">Memory access type. </div><div class="ttdef"><b>Definition:</b> tile_iterator.h:361</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_1TileStoreIterator_html_a53820de506cecb1f5fb07b3385d8272a"><div class="ttname"><a href="structcutlass_1_1TileStoreIterator.html#a53820de506cecb1f5fb07b3385d8272a">cutlass::TileStoreIterator::store</a></div><div class="ttdeci">CUTLASS_HOST_DEVICE void store(Fragment &amp;fragment, PredicateIterator pred_it) const</div><div class="ttdoc">Stores a fragment without advancing the iterator. </div><div class="ttdef"><b>Definition:</b> tile_iterator.h:869</div></div>
<div class="ttc" id="structcutlass_1_1TileLoadIterator_html_a69d2f21c8188fb3229af8c2dbe0a23b6"><div class="ttname"><a href="structcutlass_1_1TileLoadIterator.html#a69d2f21c8188fb3229af8c2dbe0a23b6">cutlass::TileLoadIterator::kAdvance</a></div><div class="ttdeci">static IteratorAdvance::Kind const kAdvance</div><div class="ttdoc">Specifies in which dimension post-increment accesses advance. </div><div class="ttdef"><b>Definition:</b> tile_iterator.h:331</div></div>
<div class="ttc" id="structcutlass_1_1TileLoadIterator_html_a195993d58ae0eeb53203116ac02ab38d"><div class="ttname"><a href="structcutlass_1_1TileLoadIterator.html#a195993d58ae0eeb53203116ac02ab38d">cutlass::TileLoadIterator::load_post_increment</a></div><div class="ttdeci">CUTLASS_HOST_DEVICE void load_post_increment(Fragment &amp;fragment)</div><div class="ttdoc">Loads a fragment and advances the iterator to the next tile. </div><div class="ttdef"><b>Definition:</b> tile_iterator.h:561</div></div>
<div class="ttc" id="structcutlass_1_1TileLoadIterator_html_a93e166575be3b2f7489833ae5da23f23"><div class="ttname"><a href="structcutlass_1_1TileLoadIterator.html#a93e166575be3b2f7489833ae5da23f23">cutlass::TileLoadIterator::TileLoadIterator</a></div><div class="ttdeci">CUTLASS_HOST_DEVICE TileLoadIterator(Params const &amp;_params, Coord&lt; 3 &gt; const &amp;block_offset=make_Coord(0, 0, 0), ThreadOffset thread_offset_func=ThreadOffset())</div><div class="ttdoc">Constructs a tile load iterator. </div><div class="ttdef"><b>Definition:</b> tile_iterator.h:468</div></div>
<div class="ttc" id="structcutlass_1_1TileIteratorBase_html_af78a2bf3e7507dc7f50343a3c209f770"><div class="ttname"><a href="structcutlass_1_1TileIteratorBase.html#af78a2bf3e7507dc7f50343a3c209f770">cutlass::TileIteratorBase::valid</a></div><div class="ttdeci">CUTLASS_DEVICE bool valid(int d, int h, int w, int c) const</div><div class="ttdoc">Is the iterator valid? </div><div class="ttdef"><b>Definition:</b> tile_iterator.h:239</div></div>
<div class="ttc" id="structcutlass_1_1TileTraits_html_af7ae2fdb4c8f1702169cc7d437d2b469"><div class="ttname"><a href="structcutlass_1_1TileTraits.html#af7ae2fdb4c8f1702169cc7d437d2b469">cutlass::TileTraits::Iterations</a></div><div class="ttdeci">Iterations_ Iterations</div><div class="ttdoc">Number of accesses performed. </div><div class="ttdef"><b>Definition:</b> tile_iterator.h:85</div></div>
<div class="ttc" id="structcutlass_1_1TileStoreIterator_1_1Params_html_af0d26a2df2a1a5ba3c3169b736bd5d43"><div class="ttname"><a href="structcutlass_1_1TileStoreIterator_1_1Params.html#af0d26a2df2a1a5ba3c3169b736bd5d43">cutlass::TileStoreIterator::Params::initialize</a></div><div class="ttdeci">CUTLASS_HOST_DEVICE int initialize(Scalar *ptr, Index stride_d, Index stride_h, Index stride_w)</div><div class="ttdoc">Initializes params to access a raw pointer. </div><div class="ttdef"><b>Definition:</b> tile_iterator.h:713</div></div>
<div class="ttc" id="structcutlass_1_1TileLoadIterator_html_aaafe35622751532971c1b7efc54c888b"><div class="ttname"><a href="structcutlass_1_1TileLoadIterator.html#aaafe35622751532971c1b7efc54c888b">cutlass::TileLoadIterator::params</a></div><div class="ttdeci">Params params</div><div class="ttdoc">Parameters structure. </div><div class="ttdef"><b>Definition:</b> tile_iterator.h:433</div></div>
<div class="ttc" id="structcutlass_1_1PredicateVector_1_1TrivialIterator_html"><div class="ttname"><a href="structcutlass_1_1PredicateVector_1_1TrivialIterator.html">cutlass::PredicateVector::TrivialIterator</a></div><div class="ttdoc">Iterator that always returns true. </div><div class="ttdef"><b>Definition:</b> predicate_vector.h:308</div></div>
<div class="ttc" id="structcutlass_1_1TileStoreIterator_html_ad52318b430437575b55099ca992ca3a7"><div class="ttname"><a href="structcutlass_1_1TileStoreIterator.html#ad52318b430437575b55099ca992ca3a7">cutlass::TileStoreIterator::Scalar</a></div><div class="ttdeci">Base::Scalar Scalar</div><div class="ttdoc">Scalar element. </div><div class="ttdef"><b>Definition:</b> tile_iterator.h:643</div></div>
<div class="ttc" id="structcutlass_1_1TileStoreIterator_html_a6f50a8aec2d7045e9057b93df08172a8"><div class="ttname"><a href="structcutlass_1_1TileStoreIterator.html#a6f50a8aec2d7045e9057b93df08172a8">cutlass::TileStoreIterator::Traits</a></div><div class="ttdeci">Base::Traits Traits</div><div class="ttdoc">concept TileTraits </div><div class="ttdef"><b>Definition:</b> tile_iterator.h:640</div></div>
<div class="ttc" id="structcutlass_1_1MemorySpace_html_a1e031ec41668015a8fe4ba2c1145d03c"><div class="ttname"><a href="structcutlass_1_1MemorySpace.html#a1e031ec41668015a8fe4ba2c1145d03c">cutlass::MemorySpace::Kind</a></div><div class="ttdeci">Kind</div><div class="ttdef"><b>Definition:</b> load_store.h:40</div></div>
<div class="ttc" id="structcutlass_1_1TileIteratorBase_1_1Params_html_a58e8c883aea4cfdfa5a84c25a4704ebc"><div class="ttname"><a href="structcutlass_1_1TileIteratorBase_1_1Params.html#a58e8c883aea4cfdfa5a84c25a4704ebc">cutlass::TileIteratorBase::Params::stride_h</a></div><div class="ttdeci">Index stride_h</div><div class="ttdef"><b>Definition:</b> tile_iterator.h:172</div></div>
<div class="ttc" id="structcutlass_1_1TileStoreIterator_html_ae63949f58c1b32959bbfa5b64d521f0f"><div class="ttname"><a href="structcutlass_1_1TileStoreIterator.html#ae63949f58c1b32959bbfa5b64d521f0f">cutlass::TileStoreIterator::store_post_increment</a></div><div class="ttdeci">CUTLASS_HOST_DEVICE void store_post_increment(Fragment &amp;fragment)</div><div class="ttdoc">Stores a fragment and advances to the next tile. </div><div class="ttdef"><b>Definition:</b> tile_iterator.h:862</div></div>
<div class="ttc" id="structcutlass_1_1TileIteratorBase_html_a6ca47fd6e2f9cbb3498c138417ea414a"><div class="ttname"><a href="structcutlass_1_1TileIteratorBase.html#a6ca47fd6e2f9cbb3498c138417ea414a">cutlass::TileIteratorBase::Storage</a></div><div class="ttdeci">Fragment&lt; Scalar, ShapeCount&lt; Tile &gt;::kCount, kFragmentSize &gt; Storage</div><div class="ttdoc">The storage. </div><div class="ttdef"><b>Definition:</b> tile_iterator.h:152</div></div>
<div class="ttc" id="structcutlass_1_1TileLoadIterator_1_1Params_html_aebaecd0f971245ffc5a50fe5f7a9b4e8"><div class="ttname"><a href="structcutlass_1_1TileLoadIterator_1_1Params.html#aebaecd0f971245ffc5a50fe5f7a9b4e8">cutlass::TileLoadIterator::Params::initialize</a></div><div class="ttdeci">CUTLASS_HOST_DEVICE int initialize()</div><div class="ttdef"><b>Definition:</b> tile_iterator.h:425</div></div>
<div class="ttc" id="structcutlass_1_1TileStoreIterator_html_a74dffe1ddcc84935ab170117e939b7e3"><div class="ttname"><a href="structcutlass_1_1TileStoreIterator.html#a74dffe1ddcc84935ab170117e939b7e3">cutlass::TileStoreIterator::inc_d</a></div><div class="ttdeci">CUTLASS_HOST_DEVICE void inc_d()</div><div class="ttdoc">Increment in the D dimension. </div><div class="ttdef"><b>Definition:</b> tile_iterator.h:807</div></div>
<div class="ttc" id="structcutlass_1_1TileLoadIterator_html_a9720b1e4a10c2d5aa85f9a9c66a31bbf"><div class="ttname"><a href="structcutlass_1_1TileLoadIterator.html#a9720b1e4a10c2d5aa85f9a9c66a31bbf">cutlass::TileLoadIterator::Iterations</a></div><div class="ttdeci">Base::Iterations Iterations</div><div class="ttdoc">Iterations. </div><div class="ttdef"><b>Definition:</b> tile_iterator.h:352</div></div>
<div class="ttc" id="structcutlass_1_1TileStoreIterator_1_1Params_html_af884f720d36aa82e7f972932686ae986"><div class="ttname"><a href="structcutlass_1_1TileStoreIterator_1_1Params.html#af884f720d36aa82e7f972932686ae986">cutlass::TileStoreIterator::Params::initialize</a></div><div class="ttdeci">CUTLASS_HOST_DEVICE int initialize()</div><div class="ttdoc">Initializes params to default values. </div><div class="ttdef"><b>Definition:</b> tile_iterator.h:737</div></div>
<div class="ttc" id="structcutlass_1_1TileLoadIterator_html_a4c7a3a4917245de8269b74bdabe16b76"><div class="ttname"><a href="structcutlass_1_1TileLoadIterator.html#a4c7a3a4917245de8269b74bdabe16b76">cutlass::TileLoadIterator::FragmentConstIterator</a></div><div class="ttdeci">Base::FragmentConstIterator FragmentConstIterator</div><div class="ttdoc">Fragment const iterator definition. </div><div class="ttdef"><b>Definition:</b> tile_iterator.h:370</div></div>
<div class="ttc" id="structcutlass_1_1TileIteratorBase_html_a44665808adfd69df0d26cec4b1840cc3"><div class="ttname"><a href="structcutlass_1_1TileIteratorBase.html#a44665808adfd69df0d26cec4b1840cc3">cutlass::TileIteratorBase::Index</a></div><div class="ttdeci">Index_ Index</div><div class="ttdoc">Index type. </div><div class="ttdef"><b>Definition:</b> tile_iterator.h:122</div></div>
<div class="ttc" id="structcutlass_1_1Store_html_a1117fa7b7bdeeb3a7f2d647a1d340aaf"><div class="ttname"><a href="structcutlass_1_1Store.html#a1117fa7b7bdeeb3a7f2d647a1d340aaf">cutlass::Store::store</a></div><div class="ttdeci">static CUTLASS_DEVICE void store(AccessType const &amp;src, Scalar_ *pointer, int offset)</div><div class="ttdoc">The store function. </div><div class="ttdef"><b>Definition:</b> load_store.h:136</div></div>
<div class="ttc" id="structcutlass_1_1TileIteratorBase_1_1Params_html_aea591d4278a8338ae8b50fa0b8f3a366"><div class="ttname"><a href="structcutlass_1_1TileIteratorBase_1_1Params.html#aea591d4278a8338ae8b50fa0b8f3a366">cutlass::TileIteratorBase::Params::inc_h</a></div><div class="ttdeci">Index inc_h</div><div class="ttdef"><b>Definition:</b> tile_iterator.h:176</div></div>
<div class="ttc" id="predicate__vector_8h_html"><div class="ttname"><a href="predicate__vector_8h.html">predicate_vector.h</a></div><div class="ttdoc">Defines container classes and iterators for managing a statically sized vector of boolean predicates...</div></div>
<div class="ttc" id="structcutlass_1_1TileLoadIterator_html_ab457bd7953af9ef418510f55f52d1f39"><div class="ttname"><a href="structcutlass_1_1TileLoadIterator.html#ab457bd7953af9ef418510f55f52d1f39">cutlass::TileLoadIterator::SharedStorage</a></div><div class="ttdeci">Base::Storage SharedStorage</div><div class="ttdoc">Storage object that may be loaded from. </div><div class="ttdef"><b>Definition:</b> tile_iterator.h:376</div></div>
<div class="ttc" id="structcutlass_1_1TileStoreIterator_1_1Params_html"><div class="ttname"><a href="structcutlass_1_1TileStoreIterator_1_1Params.html">cutlass::TileStoreIterator::Params</a></div><div class="ttdoc">Parameters. </div><div class="ttdef"><b>Definition:</b> tile_iterator.h:700</div></div>
<div class="ttc" id="structcutlass_1_1TileStoreIterator_html_af92ba20db048a9ec96976a1673f0f7c2"><div class="ttname"><a href="structcutlass_1_1TileStoreIterator.html#af92ba20db048a9ec96976a1673f0f7c2">cutlass::TileStoreIterator::initialize_predicates</a></div><div class="ttdeci">CUTLASS_HOST_DEVICE void initialize_predicates(PredicateIterator predicate_it, Coord&lt; 3 &gt; const &amp;bounds, Coord&lt; 3 &gt; const &amp;block_offset=make_Coord(0, 0, 0))</div><div class="ttdoc">Initializes a predicate vector. </div><div class="ttdef"><b>Definition:</b> tile_iterator.h:759</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_1TileLoadIterator_html_a7c6182031d9aa41d0e4a64516723e20a"><div class="ttname"><a href="structcutlass_1_1TileLoadIterator.html#a7c6182031d9aa41d0e4a64516723e20a">cutlass::TileLoadIterator::Traits</a></div><div class="ttdeci">Base::Traits Traits</div><div class="ttdoc">concept TileTraits </div><div class="ttdef"><b>Definition:</b> tile_iterator.h:322</div></div>
<div class="ttc" id="structcutlass_1_1TileIteratorBase_html_a78b6c0d6a1a96dd55a34bc302ecb07d7"><div class="ttname"><a href="structcutlass_1_1TileIteratorBase.html#a78b6c0d6a1a96dd55a34bc302ecb07d7">cutlass::TileIteratorBase::initialize_predicates</a></div><div class="ttdeci">static CUTLASS_DEVICE void initialize_predicates(PredicateIterator predicate_it, Coord&lt; 3 &gt; const &amp;bounds, Coord&lt; 3 &gt; const &amp;offset=make_Coord(0, 0, 0))</div><div class="ttdoc">Initializes a predicate vector. </div><div class="ttdef"><b>Definition:</b> tile_iterator.h:247</div></div>
<div class="ttc" id="structcutlass_1_1TileStoreIterator_html_a5484b46ac2646edb7a185b51137f70c0"><div class="ttname"><a href="structcutlass_1_1TileStoreIterator.html#a5484b46ac2646edb7a185b51137f70c0">cutlass::TileStoreIterator::BaseParams</a></div><div class="ttdeci">Base::Params BaseParams</div><div class="ttdoc">IteratorBase parameters. </div><div class="ttdef"><b>Definition:</b> tile_iterator.h:697</div></div>
<div class="ttc" id="structcutlass_1_1TileLoadIterator_html_a2edd89863b8035137ccd8dd3ad7be464"><div class="ttname"><a href="structcutlass_1_1TileLoadIterator.html#a2edd89863b8035137ccd8dd3ad7be464">cutlass::TileLoadIterator::FragmentElement</a></div><div class="ttdeci">Base::FragmentElement FragmentElement</div><div class="ttdoc">Fragment element. </div><div class="ttdef"><b>Definition:</b> tile_iterator.h:328</div></div>
<div class="ttc" id="structcutlass_1_1TileIteratorBase_html_a954ef18acc12d8256a7d4e37683f8c2c"><div class="ttname"><a href="structcutlass_1_1TileIteratorBase.html#a954ef18acc12d8256a7d4e37683f8c2c">cutlass::TileIteratorBase::Tile</a></div><div class="ttdeci">Traits::Tile Tile</div><div class="ttdoc">Tile shape. </div><div class="ttdef"><b>Definition:</b> tile_iterator.h:128</div></div>
<div class="ttc" id="structcutlass_1_1TileIteratorBase_html_a379a52ed1128fc9f93cad35d3e3233e5"><div class="ttname"><a href="structcutlass_1_1TileIteratorBase.html#a379a52ed1128fc9f93cad35d3e3233e5">cutlass::TileIteratorBase&lt; TileTraits_, TileTraits_::Scalar, IteratorAdvance::kH, MemorySpace::kGlobal, Index_ &gt;::FragmentIterator</a></div><div class="ttdeci">FragmentIterator&lt; Fragment, Iterations, AccessType &gt; FragmentIterator</div><div class="ttdoc">The fragment iterator. </div><div class="ttdef"><b>Definition:</b> tile_iterator.h:156</div></div>
<div class="ttc" id="structcutlass_1_1TileStoreIterator_html_ae435b72b15eca46eb871446d92bd316e"><div class="ttname"><a href="structcutlass_1_1TileStoreIterator.html#ae435b72b15eca46eb871446d92bd316e">cutlass::TileStoreIterator::stage</a></div><div class="ttdeci">int stage</div><div class="ttdoc">The stage. </div><div class="ttdef"><b>Definition:</b> tile_iterator.h:751</div></div>
<div class="ttc" id="structcutlass_1_1TileIteratorBase_1_1Params_html_ad2631ffcc963638aa5b016c66a2e2c55"><div class="ttname"><a href="structcutlass_1_1TileIteratorBase_1_1Params.html#ad2631ffcc963638aa5b016c66a2e2c55">cutlass::TileIteratorBase::Params::initialize</a></div><div class="ttdeci">CUTLASS_HOST_DEVICE int initialize(Index _stride_d, Index _stride_h, Index _stride_w, Index _inc_d, Index _inc_h, Index _inc_w, Index _inc_advance)</div><div class="ttdoc">Initializes params. </div><div class="ttdef"><b>Definition:</b> tile_iterator.h:183</div></div>
<div class="ttc" id="structcutlass_1_1TileStoreIterator_html_a0e79ed59263ebc3478c43f2f9a50cb5a"><div class="ttname"><a href="structcutlass_1_1TileStoreIterator.html#a0e79ed59263ebc3478c43f2f9a50cb5a">cutlass::TileStoreIterator::AccessType</a></div><div class="ttdeci">Base::AccessType AccessType</div><div class="ttdoc">Memory access type. </div><div class="ttdef"><b>Definition:</b> tile_iterator.h:679</div></div>
<div class="ttc" id="structcutlass_1_1TileStoreIterator_html_a2b13136a970fae187fcb377c9be28fac"><div class="ttname"><a href="structcutlass_1_1TileStoreIterator.html#a2b13136a970fae187fcb377c9be28fac">cutlass::TileStoreIterator::FragmentElement</a></div><div class="ttdeci">Base::FragmentElement FragmentElement</div><div class="ttdoc">Fragment element. </div><div class="ttdef"><b>Definition:</b> tile_iterator.h:646</div></div>
<div class="ttc" id="structcutlass_1_1MemorySpace_html_a1e031ec41668015a8fe4ba2c1145d03ca21a44c0b78017acea0d1ffe223e5ca38"><div class="ttname"><a href="structcutlass_1_1MemorySpace.html#a1e031ec41668015a8fe4ba2c1145d03ca21a44c0b78017acea0d1ffe223e5ca38">cutlass::MemorySpace::kGeneric</a></div><div class="ttdef"><b>Definition:</b> load_store.h:41</div></div>
<div class="ttc" id="structcutlass_1_1TileLoadIterator_html_aeb3faf5e8f976f5a4d158ceb41a1cc64"><div class="ttname"><a href="structcutlass_1_1TileLoadIterator.html#aeb3faf5e8f976f5a4d158ceb41a1cc64">cutlass::TileLoadIterator::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> tile_iterator.h:517</div></div>
<div class="ttc" id="structcutlass_1_1IteratorFragment_html_ae7b6a9ac856eca8b8e437305fa716a80"><div class="ttname"><a href="structcutlass_1_1IteratorFragment.html#ae7b6a9ac856eca8b8e437305fa716a80">cutlass::IteratorFragment::Kind</a></div><div class="ttdeci">Kind</div><div class="ttdef"><b>Definition:</b> tile_iterator.h:67</div></div>
<div class="ttc" id="structcutlass_1_1TileLoadIterator_html_a64ae02b44f275ef2f016949aec769328"><div class="ttname"><a href="structcutlass_1_1TileLoadIterator.html#a64ae02b44f275ef2f016949aec769328">cutlass::TileLoadIterator::PredicateVector</a></div><div class="ttdeci">Base::PredicateVector PredicateVector</div><div class="ttdoc">Default predicate mask type. </div><div class="ttdef"><b>Definition:</b> tile_iterator.h:373</div></div>
<div class="ttc" id="structcutlass_1_1TileLoadIterator_1_1Params_html_aa3922946bb0da0c0040dec44aa389ec1"><div class="ttname"><a href="structcutlass_1_1TileLoadIterator_1_1Params.html#aa3922946bb0da0c0040dec44aa389ec1">cutlass::TileLoadIterator::Params::initialize</a></div><div class="ttdeci">CUTLASS_HOST_DEVICE int initialize(Scalar const *ptr, Index _stride_d, Index _stride_h, Index _stride_w, Index _inc_d, Index _inc_h, Index _inc_w, Index _inc_advance)</div><div class="ttdoc">Initializes params. </div><div class="ttdef"><b>Definition:</b> tile_iterator.h:409</div></div>
<div class="ttc" id="structcutlass_1_1TileStoreIterator_1_1Params_html_ac1cfe92f1543ba445fa10f1859a0db98"><div class="ttname"><a href="structcutlass_1_1TileStoreIterator_1_1Params.html#ac1cfe92f1543ba445fa10f1859a0db98">cutlass::TileStoreIterator::Params::initialize</a></div><div class="ttdeci">CUTLASS_HOST_DEVICE int initialize(Scalar *ptr, Index _stride_d, Index _stride_h, Index _stride_w, Index _inc_d, Index _inc_h, Index _inc_w, Index _inc_advance)</div><div class="ttdoc">Initializes params. </div><div class="ttdef"><b>Definition:</b> tile_iterator.h:721</div></div>
<div class="ttc" id="structcutlass_1_1TileIteratorBase_html_ac7cca14d54bf3f0749db1ffaea7c9ae7"><div class="ttname"><a href="structcutlass_1_1TileIteratorBase.html#ac7cca14d54bf3f0749db1ffaea7c9ae7">cutlass::TileIteratorBase::FragmentElement</a></div><div class="ttdeci">FragmentElement_ FragmentElement</div><div class="ttdoc">Fragment element. </div><div class="ttdef"><b>Definition:</b> tile_iterator.h:110</div></div>
<div class="ttc" id="structcutlass_1_1TileStoreIterator_html_a5ac2280dfcac08cec17b8c0db1c4593e"><div class="ttname"><a href="structcutlass_1_1TileStoreIterator.html#a5ac2280dfcac08cec17b8c0db1c4593e">cutlass::TileStoreIterator::Index</a></div><div class="ttdeci">Base::Index Index</div><div class="ttdoc">Index type. </div><div class="ttdef"><b>Definition:</b> tile_iterator.h:658</div></div>
<div class="ttc" id="structcutlass_1_1TileStoreIterator_1_1Params_html_a6bbadae6b13aef8f31a77cacd88b068b"><div class="ttname"><a href="structcutlass_1_1TileStoreIterator_1_1Params.html#a6bbadae6b13aef8f31a77cacd88b068b">cutlass::TileStoreIterator::Params::pointer</a></div><div class="ttdeci">Scalar * pointer</div><div class="ttdoc">Pointer to memory. </div><div class="ttdef"><b>Definition:</b> tile_iterator.h:702</div></div>
<div class="ttc" id="structcutlass_1_1TileIteratorBase_1_1Params_html_a1187258cd4068a627e73bee0302f1fc2"><div class="ttname"><a href="structcutlass_1_1TileIteratorBase_1_1Params.html#a1187258cd4068a627e73bee0302f1fc2">cutlass::TileIteratorBase::Params::inc_advance</a></div><div class="ttdeci">Index inc_advance</div><div class="ttdef"><b>Definition:</b> tile_iterator.h:179</div></div>
<div class="ttc" id="structcutlass_1_1IteratorFragment_html_ae7b6a9ac856eca8b8e437305fa716a80a21d2b2793bab0d348df40715b8f14419"><div class="ttname"><a href="structcutlass_1_1IteratorFragment.html#ae7b6a9ac856eca8b8e437305fa716a80a21d2b2793bab0d348df40715b8f14419">cutlass::IteratorFragment::kWmmaMatrix</a></div><div class="ttdef"><b>Definition:</b> tile_iterator.h:67</div></div>
<div class="ttc" id="structcutlass_1_1FragmentIterator_html_a63ff1767c4923b0a2b6b64487306ed76"><div class="ttname"><a href="structcutlass_1_1FragmentIterator.html#a63ff1767c4923b0a2b6b64487306ed76">cutlass::FragmentIterator::FragmentShape</a></div><div class="ttdeci">ShapeMul&lt; Iterations, Shape&lt; 1, 1, 1, kElementsPerAccess &gt; &gt;::Shape FragmentShape</div><div class="ttdoc">The shape of the the fragment. </div><div class="ttdef"><b>Definition:</b> fragment.h:185</div></div>
<div class="ttc" id="structcutlass_1_1TileIteratorBase_1_1Params_html_a313984457c78eea66c980f6813047b9c"><div class="ttname"><a href="structcutlass_1_1TileIteratorBase_1_1Params.html#a313984457c78eea66c980f6813047b9c">cutlass::TileIteratorBase::Params::stride_w</a></div><div class="ttdeci">Index stride_w</div><div class="ttdef"><b>Definition:</b> tile_iterator.h:173</div></div>
<div class="ttc" id="structcutlass_1_1TileLoadIterator_html_a81c9c0b17bf5f214230ecf10e0690a4e"><div class="ttname"><a href="structcutlass_1_1TileLoadIterator.html#a81c9c0b17bf5f214230ecf10e0690a4e">cutlass::TileLoadIterator::TileLoadIterator</a></div><div class="ttdeci">CUTLASS_HOST_DEVICE TileLoadIterator()</div><div class="ttdoc">Default constructor. </div><div class="ttdef"><b>Definition:</b> tile_iterator.h:464</div></div>
<div class="ttc" id="load__store_8h_html"><div class="ttname"><a href="load__store_8h.html">load_store.h</a></div><div class="ttdoc">Defines abstractions for efficiently loading and storing vectors to memory. </div></div>
<div class="ttc" id="structcutlass_1_1TileLoadIterator_1_1Params_html_a6608f7027994aaebdefd004fe94153d9"><div class="ttname"><a href="structcutlass_1_1TileLoadIterator_1_1Params.html#a6608f7027994aaebdefd004fe94153d9">cutlass::TileLoadIterator::Params::pointer</a></div><div class="ttdeci">Scalar const * pointer</div><div class="ttdoc">Pointer to memory. </div><div class="ttdef"><b>Definition:</b> tile_iterator.h:390</div></div>
<div class="ttc" id="structcutlass_1_1TileStoreIterator_html_a037ccd942359e6bc8640a240b13cd330"><div class="ttname"><a href="structcutlass_1_1TileStoreIterator.html#a037ccd942359e6bc8640a240b13cd330">cutlass::TileStoreIterator::TileStoreIterator</a></div><div class="ttdeci">CUTLASS_HOST_DEVICE TileStoreIterator(Params const &amp;_params, Coord&lt; 3 &gt; const &amp;block_offset=make_Coord(0, 0, 0), ThreadOffset thread_offset_func=ThreadOffset())</div><div class="ttdoc">Constructs a tile store iterator. </div><div class="ttdef"><b>Definition:</b> tile_iterator.h:780</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_1TileStoreIterator_html_a350f5beea87d811f43c55519bc0b9035"><div class="ttname"><a href="structcutlass_1_1TileStoreIterator.html#a350f5beea87d811f43c55519bc0b9035">cutlass::TileStoreIterator::thread_offset</a></div><div class="ttdeci">Coord&lt; 4 &gt; thread_offset</div><div class="ttdoc">Offset of an individual lane from the start of the tile. </div><div class="ttdef"><b>Definition:</b> tile_iterator.h:748</div></div>
<div class="ttc" id="structcutlass_1_1TileIteratorBase_html_a352ed0773b37f03bf68e4b6cf9899474"><div class="ttname"><a href="structcutlass_1_1TileIteratorBase.html#a352ed0773b37f03bf68e4b6cf9899474">cutlass::TileIteratorBase::Iterations</a></div><div class="ttdeci">Traits::Iterations Iterations</div><div class="ttdoc">Iterations. </div><div class="ttdef"><b>Definition:</b> tile_iterator.h:137</div></div>
<div class="ttc" id="structcutlass_1_1TileIteratorBase_html_aef07ba456ea016092d7d2446751b76a3"><div class="ttname"><a href="structcutlass_1_1TileIteratorBase.html#aef07ba456ea016092d7d2446751b76a3">cutlass::TileIteratorBase::kAccessSize</a></div><div class="ttdeci">static int const kAccessSize</div><div class="ttdoc">The number of scalars accessed per load/store. </div><div class="ttdef"><b>Definition:</b> tile_iterator.h:143</div></div>
<div class="ttc" id="structcutlass_1_1TileTraits_html_ab831be0adb255eece4f2e12fd9713831"><div class="ttname"><a href="structcutlass_1_1TileTraits.html#ab831be0adb255eece4f2e12fd9713831">cutlass::TileTraits::Tile</a></div><div class="ttdeci">Tile_ Tile</div><div class="ttdoc">Shape of the tile. </div><div class="ttdef"><b>Definition:</b> tile_iterator.h:79</div></div>
<div class="ttc" id="structcutlass_1_1TileTraits_html_af88f5cea9f452d83004ea0fa0f9d56eb"><div class="ttname"><a href="structcutlass_1_1TileTraits.html#af88f5cea9f452d83004ea0fa0f9d56eb">cutlass::TileTraits::Delta</a></div><div class="ttdeci">Delta_ Delta</div><div class="ttdoc">Number of steps between accesses along each dimension. </div><div class="ttdef"><b>Definition:</b> tile_iterator.h:82</div></div>
<div class="ttc" id="structcutlass_1_1TileIteratorBase_1_1Params_html_a3ba93370bd4b2ede4bd4eb97ac0881be"><div class="ttname"><a href="structcutlass_1_1TileIteratorBase_1_1Params.html#a3ba93370bd4b2ede4bd4eb97ac0881be">cutlass::TileIteratorBase::Params::initialize</a></div><div class="ttdeci">CUTLASS_HOST_DEVICE int initialize(Index _stride_d, Index _stride_h, Index _stride_w)</div><div class="ttdef"><b>Definition:</b> tile_iterator.h:203</div></div>
<div class="ttc" id="structcutlass_1_1TileIteratorBase_1_1Params_html_ad67234ec264354a22032bb2519575dc1"><div class="ttname"><a href="structcutlass_1_1TileIteratorBase_1_1Params.html#ad67234ec264354a22032bb2519575dc1">cutlass::TileIteratorBase::Params::stride_d</a></div><div class="ttdeci">Index stride_d</div><div class="ttdef"><b>Definition:</b> tile_iterator.h:171</div></div>
<div class="ttc" id="structcutlass_1_1TileLoadIterator_html_a91e13a7aad4b0acac002b6dd125abc37"><div class="ttname"><a href="structcutlass_1_1TileLoadIterator.html#a91e13a7aad4b0acac002b6dd125abc37">cutlass::TileLoadIterator::inc_advance</a></div><div class="ttdeci">CUTLASS_HOST_DEVICE void inc_advance()</div><div class="ttdoc">Increment in the next dimension. </div><div class="ttdef"><b>Definition:</b> tile_iterator.h:514</div></div>
<div class="ttc" id="unioncutlass_1_1Vector_html"><div class="ttname"><a href="unioncutlass_1_1Vector.html">cutlass::Vector</a></div><div class="ttdef"><b>Definition:</b> vector.h:61</div></div>
<div class="ttc" id="structcutlass_1_1TileLoadIterator_html_ac2a7f94723259f0d3c7b8a6d5b8778bf"><div class="ttname"><a href="structcutlass_1_1TileLoadIterator.html#ac2a7f94723259f0d3c7b8a6d5b8778bf">cutlass::TileLoadIterator::Delta</a></div><div class="ttdeci">Base::Delta Delta</div><div class="ttdoc">Delta. </div><div class="ttdef"><b>Definition:</b> tile_iterator.h:349</div></div>
<div class="ttc" id="structcutlass_1_1TileStoreIterator_html_a8a87c8ef986e110a01a9226012594a61"><div class="ttname"><a href="structcutlass_1_1TileStoreIterator.html#a8a87c8ef986e110a01a9226012594a61">cutlass::TileStoreIterator::Tile</a></div><div class="ttdeci">Base::Tile Tile</div><div class="ttdoc">Tile shape. </div><div class="ttdef"><b>Definition:</b> tile_iterator.h:664</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_1TileLoadIterator_html_a7c27a7b0d8593b002eca186c15fdc869"><div class="ttname"><a href="structcutlass_1_1TileLoadIterator.html#a7c27a7b0d8593b002eca186c15fdc869">cutlass::TileLoadIterator::FragmentShape</a></div><div class="ttdeci">Base::FragmentShape FragmentShape</div><div class="ttdoc">Fragment type. </div><div class="ttdef"><b>Definition:</b> tile_iterator.h:358</div></div>
<div class="ttc" id="structcutlass_1_1IteratorAdvance_html"><div class="ttname"><a href="structcutlass_1_1IteratorAdvance.html">cutlass::IteratorAdvance</a></div><div class="ttdoc">Specifies dimension in which post-increment accesses advance. </div><div class="ttdef"><b>Definition:</b> tile_iterator.h:61</div></div>
<div class="ttc" id="structcutlass_1_1TileStoreIterator_html_adaebec9eacf767f63f048033de73ea5b"><div class="ttname"><a href="structcutlass_1_1TileStoreIterator.html#adaebec9eacf767f63f048033de73ea5b">cutlass::TileStoreIterator::kMemorySpace</a></div><div class="ttdeci">static MemorySpace::Kind const kMemorySpace</div><div class="ttdoc">Source or destination memory space. </div><div class="ttdef"><b>Definition:</b> tile_iterator.h:655</div></div>
<div class="ttc" id="structcutlass_1_1TileLoadIterator_html_a49cf3ee608debebf451cdd8c2125d073"><div class="ttname"><a href="structcutlass_1_1TileLoadIterator.html#a49cf3ee608debebf451cdd8c2125d073">cutlass::TileLoadIterator::inc_w</a></div><div class="ttdeci">CUTLASS_HOST_DEVICE void inc_w()</div><div class="ttdoc">Increment in the W dimension. </div><div class="ttdef"><b>Definition:</b> tile_iterator.h:511</div></div>
<div class="ttc" id="structcutlass_1_1Coord_html"><div class="ttname"><a href="structcutlass_1_1Coord.html">cutlass::Coord</a></div><div class="ttdoc">Statically-sized array specifying Coords within a tensor. </div><div class="ttdef"><b>Definition:</b> coord.h:48</div></div>
<div class="ttc" id="structcutlass_1_1TileIteratorBase_html_a561ceb1093b28b8dce67df0129b7b8b8"><div class="ttname"><a href="structcutlass_1_1TileIteratorBase.html#a561ceb1093b28b8dce67df0129b7b8b8">cutlass::TileIteratorBase::ImmediateOffsetStrides</a></div><div class="ttdeci">Traits::ImmediateOffsetStrides ImmediateOffsetStrides</div><div class="ttdoc">The strides in each dimension between different loads/stores. </div><div class="ttdef"><b>Definition:</b> tile_iterator.h:134</div></div>
<div class="ttc" id="structcutlass_1_1TileLoadIterator_html_aaf72c4897641080b1d84c0bbd8d813cc"><div class="ttname"><a href="structcutlass_1_1TileLoadIterator.html#aaf72c4897641080b1d84c0bbd8d813cc">cutlass::TileLoadIterator::Fragment</a></div><div class="ttdeci">Base::Fragment Fragment</div><div class="ttdoc">Fragment definition. </div><div class="ttdef"><b>Definition:</b> tile_iterator.h:364</div></div>
<div class="ttc" id="structcutlass_1_1TileStoreIterator_html_a552a67fb03c28e985d143f6193f88308"><div class="ttname"><a href="structcutlass_1_1TileStoreIterator.html#a552a67fb03c28e985d143f6193f88308">cutlass::TileStoreIterator::Iterations</a></div><div class="ttdeci">Base::Iterations Iterations</div><div class="ttdoc">Iterations. </div><div class="ttdef"><b>Definition:</b> tile_iterator.h:670</div></div>
<div class="ttc" id="vector_8h_html"><div class="ttname"><a href="vector_8h.html">vector.h</a></div><div class="ttdoc">Defines a 1D vector of elements held in the registers of each thread. </div></div>
<div class="ttc" id="structcutlass_1_1TileIteratorBase_html"><div class="ttname"><a href="structcutlass_1_1TileIteratorBase.html">cutlass::TileIteratorBase</a></div><div class="ttdoc">Iterator for accessing a stripmined tile in memory. </div><div class="ttdef"><b>Definition:</b> tile_iterator.h:102</div></div>
<div class="ttc" id="structcutlass_1_1TileIteratorBase_html_a38c8ec1e9d0117172981b4c7dd4bf3be"><div class="ttname"><a href="structcutlass_1_1TileIteratorBase.html#a38c8ec1e9d0117172981b4c7dd4bf3be">cutlass::TileIteratorBase::kIteratorFragment</a></div><div class="ttdeci">static IteratorFragment::Kind const kIteratorFragment</div><div class="ttdoc">Specifies iterator storage fragment type (Scalar or WmmaMatrix) </div><div class="ttdef"><b>Definition:</b> tile_iterator.h:116</div></div>
<div class="ttc" id="structcutlass_1_1TileStoreIterator_html_a1c433ba0eea5e6a46f36101d8de98ed0"><div class="ttname"><a href="structcutlass_1_1TileStoreIterator.html#a1c433ba0eea5e6a46f36101d8de98ed0">cutlass::TileStoreIterator::Delta</a></div><div class="ttdeci">Base::Delta Delta</div><div class="ttdoc">Delta. </div><div class="ttdef"><b>Definition:</b> tile_iterator.h:667</div></div>
<div class="ttc" id="structcutlass_1_1IteratorAdvance_html_a9ad9c2302ddffa148d47cdcf6c738ddaa56ecb02f4ed3bd7ae4a9c971805ee8c5"><div class="ttname"><a href="structcutlass_1_1IteratorAdvance.html#a9ad9c2302ddffa148d47cdcf6c738ddaa56ecb02f4ed3bd7ae4a9c971805ee8c5">cutlass::IteratorAdvance::kD</a></div><div class="ttdef"><b>Definition:</b> tile_iterator.h:62</div></div>
<div class="ttc" id="structcutlass_1_1TileStoreIterator_html_a5ebab59862d5f50ad980871515d999b0"><div class="ttname"><a href="structcutlass_1_1TileStoreIterator.html#a5ebab59862d5f50ad980871515d999b0">cutlass::TileStoreIterator::data</a></div><div class="ttdeci">CUTLASS_HOST_DEVICE Scalar * data() const</div><div class="ttdoc">Returns the current pointer. </div><div class="ttdef"><b>Definition:</b> tile_iterator.h:804</div></div>
<div class="ttc" id="structcutlass_1_1TileTraits_html_af9c0fc178dac7f9dac8d254da34e04dd"><div class="ttname"><a href="structcutlass_1_1TileTraits.html#af9c0fc178dac7f9dac8d254da34e04dd">cutlass::TileTraits::ThreadOffset</a></div><div class="ttdeci">ThreadOffset_ ThreadOffset</div><div class="ttdoc">Functor that returns the logical coordinate of each entity&amp;#39;s initial offset in the tile...</div><div class="ttdef"><b>Definition:</b> tile_iterator.h:88</div></div>
<div class="ttc" id="structcutlass_1_1TileIteratorBase_html_abb3dde23971ad35a477b75ee99381b53"><div class="ttname"><a href="structcutlass_1_1TileIteratorBase.html#abb3dde23971ad35a477b75ee99381b53">cutlass::TileIteratorBase::AccessType</a></div><div class="ttdeci">Vectorize&lt; FragmentElement, kAccessSize &gt;::Type AccessType</div><div class="ttdoc">The elements loaded/store by one instruction. </div><div class="ttdef"><b>Definition:</b> tile_iterator.h:146</div></div>
<div class="ttc" id="structcutlass_1_1TileLoadIterator_html_a0a93f37fd366a48c4ed6cc39aa850eb5"><div class="ttname"><a href="structcutlass_1_1TileLoadIterator.html#a0a93f37fd366a48c4ed6cc39aa850eb5">cutlass::TileLoadIterator::inc_d</a></div><div class="ttdeci">CUTLASS_HOST_DEVICE void inc_d()</div><div class="ttdoc">Increment in the D dimension. </div><div class="ttdef"><b>Definition:</b> tile_iterator.h:505</div></div>
<div class="ttc" id="structcutlass_1_1TileStoreIterator_html_a3793f5d5846862f22f1de736e36ae7c1"><div class="ttname"><a href="structcutlass_1_1TileStoreIterator.html#a3793f5d5846862f22f1de736e36ae7c1">cutlass::TileStoreIterator::inc_h</a></div><div class="ttdeci">CUTLASS_HOST_DEVICE void inc_h()</div><div class="ttdoc">Increment in the H dimension. </div><div class="ttdef"><b>Definition:</b> tile_iterator.h:810</div></div>
<div class="ttc" id="structcutlass_1_1TileStoreIterator_html_a60258b7c1a1708f97e28f8f6c292bfe4"><div class="ttname"><a href="structcutlass_1_1TileStoreIterator.html#a60258b7c1a1708f97e28f8f6c292bfe4">cutlass::TileStoreIterator::store</a></div><div class="ttdeci">CUTLASS_HOST_DEVICE void store(Fragment &amp;fragment) const</div><div class="ttdoc">Stores a fragment without advancing the iterator. </div><div class="ttdef"><b>Definition:</b> tile_iterator.h:876</div></div>
<div class="ttc" id="structcutlass_1_1TileLoadIterator_html_a228a95cf2c9c6089287984fcbf5cface"><div class="ttname"><a href="structcutlass_1_1TileLoadIterator.html#a228a95cf2c9c6089287984fcbf5cface">cutlass::TileLoadIterator::inc_h</a></div><div class="ttdeci">CUTLASS_HOST_DEVICE void inc_h()</div><div class="ttdoc">Increment in the H dimension. </div><div class="ttdef"><b>Definition:</b> tile_iterator.h:508</div></div>
<div class="ttc" id="structcutlass_1_1TileLoadIterator_1_1Params_html"><div class="ttname"><a href="structcutlass_1_1TileLoadIterator_1_1Params.html">cutlass::TileLoadIterator::Params</a></div><div class="ttdoc">Parameters. </div><div class="ttdef"><b>Definition:</b> tile_iterator.h:388</div></div>
<div class="ttc" id="structcutlass_1_1TileLoadIterator_html_ac21bd78b31c99c826f0eddb5aa033bf1"><div class="ttname"><a href="structcutlass_1_1TileLoadIterator.html#ac21bd78b31c99c826f0eddb5aa033bf1">cutlass::TileLoadIterator::kMemorySpace</a></div><div class="ttdeci">static MemorySpace::Kind const kMemorySpace</div><div class="ttdoc">Source or destination memory space. </div><div class="ttdef"><b>Definition:</b> tile_iterator.h:337</div></div>
<div class="ttc" id="structcutlass_1_1TileStoreIterator_html_a6a6f51f459f98c0cddeacf476660cd27"><div class="ttname"><a href="structcutlass_1_1TileStoreIterator.html#a6a6f51f459f98c0cddeacf476660cd27">cutlass::TileStoreIterator::ThreadOffset</a></div><div class="ttdeci">Base::ThreadOffset ThreadOffset</div><div class="ttdoc">ThreadOffset functor. </div><div class="ttdef"><b>Definition:</b> tile_iterator.h:673</div></div>
<div class="ttc" id="structcutlass_1_1TileIteratorBase_html_a871c9b82109eab432c5a1d465643bf97"><div class="ttname"><a href="structcutlass_1_1TileIteratorBase.html#a871c9b82109eab432c5a1d465643bf97">cutlass::TileIteratorBase::kMemorySpace</a></div><div class="ttdeci">static MemorySpace::Kind const kMemorySpace</div><div class="ttdoc">Source or destination memory space. </div><div class="ttdef"><b>Definition:</b> tile_iterator.h:119</div></div>
<div class="ttc" id="structcutlass_1_1TileStoreIterator_html_a0843b2d82422e7178f324a8d3be9d705"><div class="ttname"><a href="structcutlass_1_1TileStoreIterator.html#a0843b2d82422e7178f324a8d3be9d705">cutlass::TileStoreIterator::FragmentIterator</a></div><div class="ttdeci">Base::FragmentIterator FragmentIterator</div><div class="ttdoc">Fragment iterator definition. </div><div class="ttdef"><b>Definition:</b> tile_iterator.h:685</div></div>
<div class="ttc" id="structcutlass_1_1TileLoadIterator_html_a9c4b332857f419e6f789a93404dc2140"><div class="ttname"><a href="structcutlass_1_1TileLoadIterator.html#a9c4b332857f419e6f789a93404dc2140">cutlass::TileLoadIterator::load</a></div><div class="ttdeci">CUTLASS_HOST_DEVICE void load(Fragment &amp;fragment, PredicateIterator pred_it) const</div><div class="ttdoc">Loads a fragment without advancing the iterator.. </div><div class="ttdef"><b>Definition:</b> tile_iterator.h:568</div></div>
<div class="ttc" id="structcutlass_1_1TileStoreIterator_html_a4f89c5182659de94605300e15c3651b2"><div class="ttname"><a href="structcutlass_1_1TileStoreIterator.html#a4f89c5182659de94605300e15c3651b2">cutlass::TileStoreIterator::TileStoreIterator</a></div><div class="ttdeci">CUTLASS_HOST_DEVICE TileStoreIterator(Params const &amp;, SharedStorage &amp;shared_storage, Coord&lt; 3 &gt; const &amp;block_offset=make_Coord(0, 0, 0), ThreadOffset thread_offset_func=ThreadOffset())</div><div class="ttdoc">Constructs a tile store iterator. </div><div class="ttdef"><b>Definition:</b> tile_iterator.h:793</div></div>
<div class="ttc" id="structcutlass_1_1TileLoadIterator_html_a8291a51bf96f86bc77d0e3453345dbd5"><div class="ttname"><a href="structcutlass_1_1TileLoadIterator.html#a8291a51bf96f86bc77d0e3453345dbd5">cutlass::TileLoadIterator::initialize_predicates</a></div><div class="ttdeci">CUTLASS_HOST_DEVICE void initialize_predicates(PredicateIterator predicate_it, Coord&lt; 3 &gt; const &amp;bounds, Coord&lt; 3 &gt; const &amp;block_offset=make_Coord(0, 0, 0))</div><div class="ttdoc">Initializes a predicate vector. </div><div class="ttdef"><b>Definition:</b> tile_iterator.h:447</div></div>
<div class="ttc" id="structcutlass_1_1TileIteratorBase_html_a0d7b595d7959cc1680fc07c2e02e1c8e"><div class="ttname"><a href="structcutlass_1_1TileIteratorBase.html#a0d7b595d7959cc1680fc07c2e02e1c8e">cutlass::TileIteratorBase&lt; TileTraits_, TileTraits_::Scalar, IteratorAdvance::kH, MemorySpace::kGlobal, Index_ &gt;::Fragment</a></div><div class="ttdeci">Fragment&lt; FragmentElement, ShapeCount&lt; Iterations &gt;::kCount *kAccessSize &gt; Fragment</div><div class="ttdoc">The fragment. </div><div class="ttdef"><b>Definition:</b> tile_iterator.h:154</div></div>
<div class="ttc" id="structcutlass_1_1TileLoadIterator_html_a1058cdec33393db9c16b28c21d8957db"><div class="ttname"><a href="structcutlass_1_1TileLoadIterator.html#a1058cdec33393db9c16b28c21d8957db">cutlass::TileLoadIterator::load</a></div><div class="ttdeci">CUTLASS_HOST_DEVICE void load(Fragment &amp;fragment) const</div><div class="ttdoc">Loads a fragment without advancing the iterator.. </div><div class="ttdef"><b>Definition:</b> tile_iterator.h:575</div></div>
<div class="ttc" id="structcutlass_1_1IteratorAdvance_html_a9ad9c2302ddffa148d47cdcf6c738ddaa567e61af8a3401d302f3a3ab26418df0"><div class="ttname"><a href="structcutlass_1_1IteratorAdvance.html#a9ad9c2302ddffa148d47cdcf6c738ddaa567e61af8a3401d302f3a3ab26418df0">cutlass::IteratorAdvance::kW</a></div><div class="ttdef"><b>Definition:</b> tile_iterator.h:62</div></div>
<div class="ttc" id="structcutlass_1_1TileIteratorBase_html_ac1a64e974dcd69c3a86a31db6cbff421"><div class="ttname"><a href="structcutlass_1_1TileIteratorBase.html#ac1a64e974dcd69c3a86a31db6cbff421">cutlass::TileIteratorBase::kAdvance</a></div><div class="ttdeci">static IteratorAdvance::Kind const kAdvance</div><div class="ttdoc">Specifies dimension in which post-increment accesses advance. </div><div class="ttdef"><b>Definition:</b> tile_iterator.h:113</div></div>
<div class="ttc" id="structcutlass_1_1TileIteratorBase_1_1Params_html_ac6e81450a2d78555a6c2415dcc42b178"><div class="ttname"><a href="structcutlass_1_1TileIteratorBase_1_1Params.html#ac6e81450a2d78555a6c2415dcc42b178">cutlass::TileIteratorBase::Params::inc_w</a></div><div class="ttdeci">Index inc_w</div><div class="ttdef"><b>Definition:</b> tile_iterator.h:177</div></div>
<div class="ttc" id="structcutlass_1_1TileLoadIterator_html_a7726cdd4fe056c59bb04adb9e5504457"><div class="ttname"><a href="structcutlass_1_1TileLoadIterator.html#a7726cdd4fe056c59bb04adb9e5504457">cutlass::TileLoadIterator::thread_offset</a></div><div class="ttdeci">Coord&lt; 4 &gt; thread_offset</div><div class="ttdoc">Offset of an individual lane from the start of the tile. </div><div class="ttdef"><b>Definition:</b> tile_iterator.h:436</div></div>
<div class="ttc" id="structcutlass_1_1TileIteratorBase_html_a9bc6c04f4a3adeb5a29743fa43425088"><div class="ttname"><a href="structcutlass_1_1TileIteratorBase.html#a9bc6c04f4a3adeb5a29743fa43425088">cutlass::TileIteratorBase::Delta</a></div><div class="ttdeci">Traits::Delta Delta</div><div class="ttdoc">Distance along each dimension. </div><div class="ttdef"><b>Definition:</b> tile_iterator.h:131</div></div>
<div class="ttc" id="structcutlass_1_1TileLoadIterator_html_aa3fd9859de68d76e07ebee06c6ccee92"><div class="ttname"><a href="structcutlass_1_1TileLoadIterator.html#aa3fd9859de68d76e07ebee06c6ccee92">cutlass::TileLoadIterator::stage</a></div><div class="ttdeci">int stage</div><div class="ttdoc">Stage argument enables wrapping after some number of tiles have been loaded. </div><div class="ttdef"><b>Definition:</b> tile_iterator.h:439</div></div>
<div class="ttc" id="structcutlass_1_1TileStoreIterator_html_a48de0db7ee2ee9699b946a9d5a0364c7"><div class="ttname"><a href="structcutlass_1_1TileStoreIterator.html#a48de0db7ee2ee9699b946a9d5a0364c7">cutlass::TileStoreIterator::FragmentConstIterator</a></div><div class="ttdeci">Base::FragmentConstIterator FragmentConstIterator</div><div class="ttdoc">Fragment const iterator definition. </div><div class="ttdef"><b>Definition:</b> tile_iterator.h:688</div></div>
<div class="ttc" id="structcutlass_1_1TileStoreIterator_html_aac4d49854d63f632627b6974f9b59dbb"><div class="ttname"><a href="structcutlass_1_1TileStoreIterator.html#aac4d49854d63f632627b6974f9b59dbb">cutlass::TileStoreIterator::TileStoreIterator</a></div><div class="ttdeci">CUTLASS_HOST_DEVICE TileStoreIterator()</div><div class="ttdoc">Default constructor. </div><div class="ttdef"><b>Definition:</b> tile_iterator.h:776</div></div>
<div class="ttc" id="structcutlass_1_1TileStoreIterator_html_a5aa507eaeb63951f8e69fb223ec41809"><div class="ttname"><a href="structcutlass_1_1TileStoreIterator.html#a5aa507eaeb63951f8e69fb223ec41809">cutlass::TileStoreIterator::PredicateVector</a></div><div class="ttdeci">Base::PredicateVector PredicateVector</div><div class="ttdoc">Default predicate mask type. </div><div class="ttdef"><b>Definition:</b> tile_iterator.h:691</div></div>
<div class="ttc" id="structcutlass_1_1TileLoadIterator_html_a5a179e148ccd770e1703f288624fa9b8"><div class="ttname"><a href="structcutlass_1_1TileLoadIterator.html#a5a179e148ccd770e1703f288624fa9b8">cutlass::TileLoadIterator::Pointer</a></div><div class="ttdeci">Scalar const * Pointer</div><div class="ttdoc">The pointer type. </div><div class="ttdef"><b>Definition:</b> tile_iterator.h:385</div></div>
<div class="ttc" id="fragment_8h_html"><div class="ttname"><a href="fragment_8h.html">fragment.h</a></div><div class="ttdoc">Defines Fragment, a statically-sized array for storing parts of matrices within a thread&amp;#39;s registers...</div></div>
<div class="ttc" id="structcutlass_1_1TileIteratorBase_1_1Params_html"><div class="ttname"><a href="structcutlass_1_1TileIteratorBase_1_1Params.html">cutlass::TileIteratorBase::Params</a></div><div class="ttdoc">Parameters to the iterator. </div><div class="ttdef"><b>Definition:</b> tile_iterator.h:170</div></div>
<div class="ttc" id="structcutlass_1_1TileLoadIterator_html_aaa83f05e0cb3204053c3ee1da036cd36"><div class="ttname"><a href="structcutlass_1_1TileLoadIterator.html#aaa83f05e0cb3204053c3ee1da036cd36">cutlass::TileLoadIterator::Index</a></div><div class="ttdeci">Base::Index Index</div><div class="ttdoc">Index type. </div><div class="ttdef"><b>Definition:</b> tile_iterator.h:340</div></div>
<div class="ttc" id="structcutlass_1_1TileStoreIterator_html_a187e0852ec4862f6d3cb6249bedc3bb3"><div class="ttname"><a href="structcutlass_1_1TileStoreIterator.html#a187e0852ec4862f6d3cb6249bedc3bb3">cutlass::TileStoreIterator::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> tile_iterator.h:819</div></div>
<div class="ttc" id="structcutlass_1_1TileStoreIterator_html_a57aa2c36eb6ad9d2500c1f5396b3a526"><div class="ttname"><a href="structcutlass_1_1TileStoreIterator.html#a57aa2c36eb6ad9d2500c1f5396b3a526">cutlass::TileStoreIterator::store_post_increment</a></div><div class="ttdeci">CUTLASS_HOST_DEVICE void store_post_increment(Fragment &amp;fragment, PredicateIterator pred_it)</div><div class="ttdoc">Stores a fragment and advances to the next tile. </div><div class="ttdef"><b>Definition:</b> tile_iterator.h:835</div></div>
<div class="ttc" id="structcutlass_1_1TileStoreIterator_html_aa573a47a9ffc3e07239a09e2bc470cf1"><div class="ttname"><a href="structcutlass_1_1TileStoreIterator.html#aa573a47a9ffc3e07239a09e2bc470cf1">cutlass::TileStoreIterator::inc_w</a></div><div class="ttdeci">CUTLASS_HOST_DEVICE void inc_w()</div><div class="ttdoc">Increment in the W dimension. </div><div class="ttdef"><b>Definition:</b> tile_iterator.h:813</div></div>
<div class="ttc" id="structcutlass_1_1TileIteratorBase_html_a7ab46a9210b421d32af4d1394892cfd5"><div class="ttname"><a href="structcutlass_1_1TileIteratorBase.html#a7ab46a9210b421d32af4d1394892cfd5">cutlass::TileIteratorBase&lt; TileTraits_, TileTraits_::Scalar, IteratorAdvance::kH, MemorySpace::kGlobal, Index_ &gt;::PredicateVector</a></div><div class="ttdeci">PredicateVector&lt; ShapeCount&lt; Iterations &gt;::kCount &gt; PredicateVector</div><div class="ttdoc">Default predicate mask type. </div><div class="ttdef"><b>Definition:</b> tile_iterator.h:163</div></div>
<div class="ttc" id="structcutlass_1_1IteratorFragment_html_ae7b6a9ac856eca8b8e437305fa716a80aeca44a186befa21ccae44eb4dc7b6954"><div class="ttname"><a href="structcutlass_1_1IteratorFragment.html#ae7b6a9ac856eca8b8e437305fa716a80aeca44a186befa21ccae44eb4dc7b6954">cutlass::IteratorFragment::kScalar</a></div><div class="ttdef"><b>Definition:</b> tile_iterator.h:67</div></div>
<div class="ttc" id="structcutlass_1_1TileIteratorBase_html_a17163e93d7d3616b4950925f72bb4c16"><div class="ttname"><a href="structcutlass_1_1TileIteratorBase.html#a17163e93d7d3616b4950925f72bb4c16">cutlass::TileIteratorBase::Scalar</a></div><div class="ttdeci">Scalar_ Scalar</div><div class="ttdoc">Scalar element. </div><div class="ttdef"><b>Definition:</b> tile_iterator.h:107</div></div>
<div class="ttc" id="structcutlass_1_1IteratorFragment_html"><div class="ttname"><a href="structcutlass_1_1IteratorFragment.html">cutlass::IteratorFragment</a></div><div class="ttdoc">Specifies whether iterator storage fragment consists of Scalar values or WMMA matrix. </div><div class="ttdef"><b>Definition:</b> tile_iterator.h:66</div></div>
<div class="ttc" id="structcutlass_1_1TileIteratorBase_1_1Params_html_af95fa1b5102176a0fa9b17713fd48150"><div class="ttname"><a href="structcutlass_1_1TileIteratorBase_1_1Params.html#af95fa1b5102176a0fa9b17713fd48150">cutlass::TileIteratorBase::Params::inc_d</a></div><div class="ttdeci">Index inc_d</div><div class="ttdef"><b>Definition:</b> tile_iterator.h:175</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_1TileIteratorBase_html_ae7add0ee02bbec2c130ebaf608ab0696"><div class="ttname"><a href="structcutlass_1_1TileIteratorBase.html#ae7add0ee02bbec2c130ebaf608ab0696">cutlass::TileIteratorBase::Traits</a></div><div class="ttdeci">Traits_ Traits</div><div class="ttdoc">concept TileTraits </div><div class="ttdef"><b>Definition:</b> tile_iterator.h:104</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 &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.14
</small></address>
</body>
</html>