<ahref="wmma__gemm__global__tile_8h.html">Go to the documentation of this file.</a><divclass="fragment"><divclass="line"><aname="l00001"></a><spanclass="lineno"> 1</span> <spanclass="comment">/***************************************************************************************************</span></div><divclass="line"><aname="l00002"></a><spanclass="lineno"> 2</span> <spanclass="comment"> * Copyright (c) 2017-2018, NVIDIA CORPORATION. All rights reserved.</span></div><divclass="line"><aname="l00003"></a><spanclass="lineno"> 3</span> <spanclass="comment"> *</span></div><divclass="line"><aname="l00004"></a><spanclass="lineno"> 4</span> <spanclass="comment"> * Redistribution and use in source and binary forms, with or without modification, are permitted</span></div><divclass="line"><aname="l00005"></a><spanclass="lineno"> 5</span> <spanclass="comment"> * provided that the following conditions are met:</span></div><divclass="line"><aname="l00006"></a><spanclass="lineno"> 6</span> <spanclass="comment"> * * Redistributions of source code must retain the above copyright notice, this list of</span></div><divclass="line"><aname="l00007"></a><spanclass="lineno"> 7</span> <spanclass="comment"> * conditions and the following disclaimer.</span></div><divclass="line"><aname="l00008"></a><spanclass="lineno"> 8</span> <spanclass="comment"> * * Redistributions in binary form must reproduce the above copyright notice, this list of</span></div><divclass="line"><aname="l00009"></a><spanclass="lineno"> 9</span> <spanclass="comment"> * conditions and the following disclaimer in the documentation and/or other materials</span></div><divclass="line"><aname="l00010"></a><spanclass="lineno"> 10</span> <spanclass="comment"> * provided with the distribution.</span></div><divclass="line"><aname="l00011"></a><spanclass="lineno"> 11</span> <spanclass="comment"> * * Neither the name of the NVIDIA CORPORATION nor the names of its contributors may be used</span></div><divclass="line"><aname="l00012"></a><spanclass="lineno"> 12</span> <spanclass="comment"> * to endorse or promote products derived from this software without specific prior written</span></div><divclass="line"><aname="l00013"></a><spanclass="lineno"> 13</span> <spanclass="comment"> * permission.</span></div><divclass="line"><aname="l00014"></a><spanclass="lineno"> 14</span> <spanclass="comment"> *</span></div><divclass="line"><aname="l00015"></a><spanclass="lineno"> 15</span> <spanclass="comment"> * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR</span></div><divclass="line"><aname="l00016"></a><spanclass="lineno"> 16</span> <spanclass="comment"> * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND</span></div><divclass="line"><aname="l00017"></a><spanclass="lineno"> 17</span> <spanclass="comment"> * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE</span></div><divclass="line"><aname="l00018"></a><spanclass="lineno"> 18</span> <spanclass="comment"> * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,</span></div><divclass="line"><aname="l00019"></a><spanclass="lineno"> 19</span> <spanclass="comment"> * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;</span></div><divclass="line"><aname="l00020"></a><spanclass="lineno"> 20</span> <spanclass="comment"> * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,</span></div><divclass="line"><aname="l00021"></a><spanclass="lineno"> 21</span> <spanclass="comment"> * STRICT LIABILITY, OR TOR (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE</span></div><divclass="line"><an
<divclass="ttc"id="structcutlass_1_1gemm_1_1GemmGlobalIteratorCd_1_1Params_html_a8c2618ac16362a8362dcddeed71c41d4"><divclass="ttname"><ahref="structcutlass_1_1gemm_1_1GemmGlobalIteratorCd_1_1Params.html#a8c2618ac16362a8362dcddeed71c41d4">cutlass::gemm::GemmGlobalIteratorCd::Params::inc_advance</a></div><divclass="ttdeci">Index inc_advance</div><divclass="ttdoc">The strides to increment the pointer. </div><divclass="ttdef"><b>Definition:</b> gemm_global_tile.h:406</div></div>
<divclass="ttc"id="gemm__global__tile_8h_html"><divclass="ttname"><ahref="gemm__global__tile_8h.html">gemm_global_tile.h</a></div><divclass="ttdoc">Defines iterators for efficiently loading and storing to global memory. </div></div>
<divclass="ttc"id="structcutlass_1_1gemm_1_1WmmaGemmGlobalIteratorCd_1_1Params_html_a98867f4fc4daf790e309f8365e71cc8f"><divclass="ttname"><ahref="structcutlass_1_1gemm_1_1WmmaGemmGlobalIteratorCd_1_1Params.html#a98867f4fc4daf790e309f8365e71cc8f">cutlass::gemm::WmmaGemmGlobalIteratorCd::Params::initialize</a></div><divclass="ttdeci">CUTLASS_HOST_DEVICE int initialize(Pointer pointer, long long batch_stride, Index ldm, Index n, Index epilogue_stride_w, Index epilogue_delta_w)</div><divclass="ttdoc">Setup the params. </div><divclass="ttdef"><b>Definition:</b> wmma_gemm_global_tile.h:99</div></div>
<divclass="ttc"id="namespacecutlass_html_a7419519fa453a121dfa5f26bf87318d9"><divclass="ttname"><ahref="namespacecutlass.html#a7419519fa453a121dfa5f26bf87318d9">cutlass::make_Coord</a></div><divclass="ttdeci">CUTLASS_HOST_DEVICE Coord< 1 > make_Coord(int _0)</div><divclass="ttdoc">Helper to make a 2-element coordinate. </div><divclass="ttdef"><b>Definition:</b> coord.h:368</div></div>
<divclass="ttc"id="structcutlass_1_1gemm_1_1WmmaGemmGlobalIteratorCd_html_a109209936a9453e8f1f3f5eecfd6afca"><divclass="ttname"><ahref="structcutlass_1_1gemm_1_1WmmaGemmGlobalIteratorCd.html#a109209936a9453e8f1f3f5eecfd6afca">cutlass::gemm::WmmaGemmGlobalIteratorCd::load_element</a></div><divclass="ttdeci">CUTLASS_DEVICE void load_element(typename Base::AccessType &value, int d, int h, int w, int c) const</div><divclass="ttdoc">Loads a single fragment element from memory. </div><divclass="ttdef"><b>Definition:</b> wmma_gemm_global_tile.h:134</div></div>
<divclass="ttc"id="structcutlass_1_1gemm_1_1GemmGlobalIteratorCd_1_1Params_html_a2b5d2b02d241e89677c41eb658ace129"><divclass="ttname"><ahref="structcutlass_1_1gemm_1_1GemmGlobalIteratorCd_1_1Params.html#a2b5d2b02d241e89677c41eb658ace129">cutlass::gemm::GemmGlobalIteratorCd::Params::predicate_inc_advance</a></div><divclass="ttdeci">Index predicate_inc_advance</div><divclass="ttdoc">The strides to increment the predicate offset. </div><divclass="ttdef"><b>Definition:</b> gemm_global_tile.h:408</div></div>
<divclass="ttc"id="structcutlass_1_1gemm_1_1GemmGlobalIteratorCd_1_1Params_html_a0c6b03c635e14ad4424a83f8c7f8025e"><divclass="ttname"><ahref="structcutlass_1_1gemm_1_1GemmGlobalIteratorCd_1_1Params.html#a0c6b03c635e14ad4424a83f8c7f8025e">cutlass::gemm::GemmGlobalIteratorCd::Params::stride_h</a></div><divclass="ttdeci">Index stride_h</div><divclass="ttdoc">The stride in the H dimension to setup the thread in the block. </div><divclass="ttdef"><b>Definition:</b> gemm_global_tile.h:404</div></div>
<divclass="ttc"id="structcutlass_1_1gemm_1_1GemmGlobalIteratorCd_html_a6034b7229e4aca05f63c39560f219433"><divclass="ttname"><ahref="structcutlass_1_1gemm_1_1GemmGlobalIteratorCd.html#a6034b7229e4aca05f63c39560f219433">cutlass::gemm::GemmGlobalIteratorCd::load_element</a></div><divclass="ttdeci">CUTLASS_HOST_DEVICE void load_element(typename Base::AccessType &value, int d, int h, int w, int c) const</div><divclass="ttdoc">Loads a single fragment element from memory. </div><divclass="ttdef"><b>Definition:</b> gemm_global_tile.h:512</div></div>
<divclass="ttc"id="structcutlass_1_1gemm_1_1WmmaGemmGlobalIteratorCdTraits_html_ab55665f7c2f2cb8b8b9b8ac852d48002"><divclass="ttname"><ahref="structcutlass_1_1gemm_1_1WmmaGemmGlobalIteratorCdTraits.html#ab55665f7c2f2cb8b8b9b8ac852d48002">cutlass::gemm::WmmaGemmGlobalIteratorCdTraits::Delta</a></div><divclass="ttdeci">Shape< 0, 0, Base::Delta::kW, Base::Delta::kC > Delta</div><divclass="ttdoc">Override the strides in each dimension between different loads/stores. </div><divclass="ttdef"><b>Definition:</b> wmma_gemm_global_tile.h:54</div></div>
<divclass="ttc"id="structcutlass_1_1Shape_html"><divclass="ttname"><ahref="structcutlass_1_1Shape.html">cutlass::Shape</a></div><divclass="ttdoc">A Shape implementing Layout Concept describing the dimensions of a cube. </div><divclass="ttdef"><b>Definition:</b> shape.h:64</div></div>
<divclass="ttc"id="structcutlass_1_1TileIteratorBase_html"><divclass="ttname"><ahref="structcutlass_1_1TileIteratorBase.html">cutlass::TileIteratorBase</a></div><divclass="ttdoc">Iterator for accessing a stripmined tile in memory. </div><divclass="ttdef"><b>Definition:</b> tile_iterator.h:144</div></div>
<divclass="ttc"id="structcutlass_1_1Shape_html_a78836a20250ff24c25a6622ad818b421"><divclass="ttname"><ahref="structcutlass_1_1Shape.html#a78836a20250ff24c25a6622ad818b421">cutlass::Shape::kW</a></div><divclass="ttdeci">static int const kW</div><divclass="ttdoc">The width of the cube. </div><divclass="ttdef"><b>Definition:</b> shape.h:70</div></div>
<divclass="ttc"id="structcutlass_1_1TileIteratorBase_html_a8a4edd46b8cad3eeafc2a3dc3a344499"><divclass="ttname"><ahref="structcutlass_1_1TileIteratorBase.html#a8a4edd46b8cad3eeafc2a3dc3a344499">cutlass::TileIteratorBase< TileTraits_, TileTraits_::Scalar, IteratorAdvance::kH, MemorySpace::kGlobal, Index_ >::kAccessSize</a></div><divclass="ttdeci">static int const kAccessSize</div><divclass="ttdoc">The number of scalars accessed per load/store. </div><divclass="ttdef"><b>Definition:</b> tile_iterator.h:188</div></div>
<divclass="ttc"id="structcutlass_1_1ComputeOffsetFromStrides_html_aa28231590bfa0ced0f317e6a4d52dc1e"><divclass="ttname"><ahref="structcutlass_1_1ComputeOffsetFromStrides.html#aa28231590bfa0ced0f317e6a4d52dc1e">cutlass::ComputeOffsetFromStrides::get</a></div><divclass="ttdeci">static CUTLASS_HOST_DEVICE int get(int d, int h, int w, int c)</div><divclass="ttdef"><b>Definition:</b> shape.h:199</div></div>
<divclass="ttc"id="structcutlass_1_1gemm_1_1GemmGlobalIteratorCd_1_1Params_html_a1a53695ce7f3cb267225d3ab86a0d5aa"><divclass="ttname"><ahref="structcutlass_1_1gemm_1_1GemmGlobalIteratorCd_1_1Params.html#a1a53695ce7f3cb267225d3ab86a0d5aa">cutlass::gemm::GemmGlobalIteratorCd::Params::stride_d</a></div><divclass="ttdeci">long long stride_d</div><divclass="ttdoc">The stride in the D dimension. </div><divclass="ttdef"><b>Definition:</b> gemm_global_tile.h:402</div></div>
<divclass="ttc"id="structcutlass_1_1gemm_1_1WmmaGemmGlobalIteratorCd_html_af53d49bad7060b87a2761fe8a82a7ddd"><divclass="ttname"><ahref="structcutlass_1_1gemm_1_1WmmaGemmGlobalIteratorCd.html#af53d49bad7060b87a2761fe8a82a7ddd">cutlass::gemm::WmmaGemmGlobalIteratorCd::ImmediateOffsetStrides</a></div><divclass="ttdeci">Shape< 0, 0, Base::Delta::kW, Base::Delta::kC > ImmediateOffsetStrides</div><divclass="ttdoc">Override the strides in each dimension between different loads/stores. </div><divclass="ttdef"><b>Definition:</b> wmma_gemm_global_tile.h:79</div></div>
<divclass="ttc"id="structcutlass_1_1gemm_1_1WmmaGemmGlobalIteratorCdTraits_1_1ThreadOffset_html"><divclass="ttname"><ahref="structcutlass_1_1gemm_1_1WmmaGemmGlobalIteratorCdTraits_1_1ThreadOffset.html">cutlass::gemm::WmmaGemmGlobalIteratorCdTraits::ThreadOffset</a></div><divclass="ttdoc">Computes the thread offset in (H, W) based on thread ID. </div><divclass="ttdef"><b>Definition:</b> wmma_gemm_global_tile.h:57</div></div>
<divclass="ttc"id="structcutlass_1_1gemm_1_1GemmGlobalIteratorCd_1_1Params_html_a3e8f6cf08d23318f3e3263b55cf3b84a"><divclass="ttname"><ahref="structcutlass_1_1gemm_1_1GemmGlobalIteratorCd_1_1Params.html#a3e8f6cf08d23318f3e3263b55cf3b84a">cutlass::gemm::GemmGlobalIteratorCd::Params::predicate_offset</a></div><divclass="ttdeci">Index predicate_offset</div><divclass="ttdoc">The column offset to compute the predicate for the columns. </div><divclass="ttdef"><b>Definition:</b> gemm_global_tile.h:410</div></div>
<divclass="ttc"id="structcutlass_1_1gemm_1_1WmmaGemmGlobalIteratorCd_html_a051eb2a8637601cf9c1f52999117151b"><divclass="ttname"><ahref="structcutlass_1_1gemm_1_1WmmaGemmGlobalIteratorCd.html#a051eb2a8637601cf9c1f52999117151b">cutlass::gemm::WmmaGemmGlobalIteratorCd::store_element</a></div><divclass="ttdeci">CUTLASS_DEVICE void store_element(typename Base::AccessType const &value, int d, int h, int w, int c)</div><divclass="ttdoc">Stores a single fragment element into memory. </div><divclass="ttdef"><b>Definition:</b> wmma_gemm_global_tile.h:140</div></div>