<ahref="gemm__global__stream_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"><aname=
<divclass="ttc"id="structcutlass_1_1gemm_1_1GlobalLoadStream_html_a16542631e4a4562cc72aa50f146a9724"><divclass="ttname"><ahref="structcutlass_1_1gemm_1_1GlobalLoadStream.html#a16542631e4a4562cc72aa50f146a9724">cutlass::gemm::GlobalLoadStream::project_coordinate</a></div><divclass="ttdeci">static CUTLASS_HOST_DEVICE Coord< 3 > project_coordinate(Coord< 3 > const &coord, Index d_offset=0)</div><divclass="ttdoc">Maps a coordinate in the GEMM&#39;s (K, N, M) coordinate system to global memory. </div><divclass="ttdef"><b>Definition:</b> gemm_global_stream.h:151</div></div>
<divclass="ttc"id="structcutlass_1_1gemm_1_1GlobalLoadStream_html_a45a4bceb72fcb856e32eaa20eec11e9d"><divclass="ttname"><ahref="structcutlass_1_1gemm_1_1GlobalLoadStream.html#a45a4bceb72fcb856e32eaa20eec11e9d">cutlass::gemm::GlobalLoadStream::store_iterator</a></div><divclass="ttdeci">StoreIterator store_iterator</div><divclass="ttdoc">The store iterator. </div><divclass="ttdef"><b>Definition:</b> gemm_global_stream.h:250</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_1TileAllocation_html_aa0bf6caeab13dc004350c6c0cfe0df80"><divclass="ttname"><ahref="structcutlass_1_1TileAllocation.html#aa0bf6caeab13dc004350c6c0cfe0df80">cutlass::TileAllocation::TensorRef</a></div><divclass="ttdeci">TensorRef< Scalar, 4 > TensorRef</div><divclass="ttdoc">Defines the tensor reference for this allocation. </div><divclass="ttdef"><b>Definition:</b> tile_allocation.h:63</div></div>
<divclass="ttc"id="structcutlass_1_1gemm_1_1GlobalLoadStream_html_a30113b850dfd3de60f8778bc7a66f700"><divclass="ttname"><ahref="structcutlass_1_1gemm_1_1GlobalLoadStream.html#a30113b850dfd3de60f8778bc7a66f700">cutlass::gemm::GlobalLoadStream::kOperand</a></div><divclass="ttdeci">static GemmOperand::Kind const kOperand</div><divclass="ttdoc">Indicates the type of GEMM operand. </div><divclass="ttdef"><b>Definition:</b> gemm_global_stream.h:54</div></div>
<divclass="ttc"id="structcutlass_1_1gemm_1_1GlobalLoadStream_html_a8e79a153de72eef10d90bfd02b5dd27e"><divclass="ttname"><ahref="structcutlass_1_1gemm_1_1GlobalLoadStream.html#a8e79a153de72eef10d90bfd02b5dd27e">cutlass::gemm::GlobalLoadStream::operator+=</a></div><divclass="ttdeci">CUTLASS_DEVICE GlobalLoadStream & operator+=(Coord< 3 > const &offset)</div><divclass="ttdoc">Adds a Coord<3> to the underlying global load iterator. </div><divclass="ttdef"><b>Definition:</b> gemm_global_stream.h:220</div></div>
<divclass="ttc"id="structcutlass_1_1gemm_1_1GlobalLoadStream_html_a3784dbb3efe0865ffa946419111c824a"><divclass="ttname"><ahref="structcutlass_1_1gemm_1_1GlobalLoadStream.html#a3784dbb3efe0865ffa946419111c824a">cutlass::gemm::GlobalLoadStream::copy</a></div><divclass="ttdeci">CUTLASS_DEVICE void copy()</div><divclass="ttdoc">Load the data from shared memory to the fetch fragment. </div><divclass="ttdef"><b>Definition:</b> gemm_global_stream.h:178</div></div>
<divclass="ttc"id="coord_8h_html"><divclass="ttname"><ahref="coord_8h.html">coord.h</a></div><divclass="ttdoc">A Coord is a coordinate of arbitrary rank into a tensor or matrix. </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="namespacecutlass_1_1MatrixLayout_html_a97ef07af21b122c1804245b0c7784d2b"><divclass="ttname"><ahref="namespacecutlass_1_1MatrixLayout.html#a97ef07af21b122c1804245b0c7784d2b">cutlass::MatrixLayout::Kind</a></div><divclass="ttdeci">Kind</div><divclass="ttdoc">Enumeration defining fundamental contiguous layouts. </div><divclass="ttdef"><b>Definition:</b> matrix_traits.h:159</div></div>
<divclass="ttc"id="structcutlass_1_1gemm_1_1GlobalLoadStream_html_ac29cd1ba94e802762d665c300e22e7db"><divclass="ttname"><ahref="structcutlass_1_1gemm_1_1GlobalLoadStream.html#ac29cd1ba94e802762d665c300e22e7db">cutlass::gemm::GlobalLoadStream::kLayout</a></div><divclass="ttdeci">static MatrixLayout::Kind const kLayout</div><divclass="ttdoc">Make sure the transformed fragment is the same as the store fragment. </div><divclass="ttdef"><b>Definition:</b> gemm_global_stream.h:76</div></div>
<divclass="ttc"id="structcutlass_1_1gemm_1_1GlobalLoadStream_html_a1c117b87024937f1dc3da128795b6e03"><divclass="ttname"><ahref="structcutlass_1_1gemm_1_1GlobalLoadStream.html#a1c117b87024937f1dc3da128795b6e03">cutlass::gemm::GlobalLoadStream::fetched_fragment</a></div><divclass="ttdeci">FetchedFragment fetched_fragment</div><divclass="ttdoc">The fragment to fetch from shared memory. </div><divclass="ttdef"><b>Definition:</b> gemm_global_stream.h:244</div></div>
<divclass="ttc"id="structcutlass_1_1gemm_1_1GlobalLoadStream_1_1Params_html_aeb306cd3cb97471774b425fb50a861ae"><divclass="ttname"><ahref="structcutlass_1_1gemm_1_1GlobalLoadStream_1_1Params.html#aeb306cd3cb97471774b425fb50a861ae">cutlass::gemm::GlobalLoadStream::Params::initialize</a></div><divclass="ttdeci">CUTLASS_HOST_DEVICE int initialize(Pointer pointer, LongIndex batch_stride_, Index ldm, Index offset_to_residue_, Index offset_to_residue_last_partition_)</div><divclass="ttdoc">Setup the params. </div><divclass="ttdef"><b>Definition:</b> gemm_global_stream.h:113</div></div>
<divclass="ttc"id="structcutlass_1_1gemm_1_1GlobalLoadStream_html_a7073b32c2cc62ffcad70a9ca46995c4c"><divclass="ttname"><ahref="structcutlass_1_1gemm_1_1GlobalLoadStream.html#a7073b32c2cc62ffcad70a9ca46995c4c">cutlass::gemm::GlobalLoadStream::Scalar</a></div><divclass="ttdeci">LoadIterator::Scalar Scalar</div><divclass="ttdoc">The scalar type of the iterator. </div><divclass="ttdef"><b>Definition:</b> gemm_global_stream.h:78</div></div>
<divclass="ttc"id="structcutlass_1_1gemm_1_1GlobalLoadStream_html_a7d7042e60aaab0dd00772b239e1f1db1"><divclass="ttname"><ahref="structcutlass_1_1gemm_1_1GlobalLoadStream.html#a7d7042e60aaab0dd00772b239e1f1db1">cutlass::gemm::GlobalLoadStream::transformed_fragment</a></div><divclass="ttdeci">TransformedFragment transformed_fragment</div><divclass="ttdoc">The fragment to convert the data after it has been fetched from shared memory. </div><divclass="ttdef"><b>Definition:</b> gemm_global_stream.h:248</div></div>
<divclass="ttc"id="tile__allocation_8h_html"><divclass="ttname"><ahref="tile__allocation_8h.html">tile_allocation.h</a></div><divclass="ttdoc">Defines a fragment based on a Shape<> template. </div></div>
<divclass="ttc"id="structcutlass_1_1gemm_1_1GlobalLoadStream_html_aed33be079f056998624015460b4e3836"><divclass="ttname"><ahref="structcutlass_1_1gemm_1_1GlobalLoadStream.html#aed33be079f056998624015460b4e3836">cutlass::gemm::GlobalLoadStream::add_batch_offset</a></div><divclass="ttdeci">CUTLASS_DEVICE GlobalLoadStream & add_batch_offset(int batch_id)</div><divclass="ttdoc">Adds an offset based on batch stride. </div><divclass="ttdef"><b>Definition:</b> gemm_global_stream.h:226</div></div>
<divclass="ttc"id="structcutlass_1_1TileAllocation_html"><divclass="ttname"><ahref="structcutlass_1_1TileAllocation.html">cutlass::TileAllocation</a></div><divclass="ttdoc">Class for storing a tile in memory and accessing it through a tensor ref. </div><divclass="ttdef"><b>Definition:</b> tile_allocation.h:42</div></div>
<divclass="ttc"id="structcutlass_1_1gemm_1_1GlobalLoadStream_1_1Params_html_ab5d9e5de9b1cc3462920ce7a8f52bbec"><divclass="ttname"><ahref="structcutlass_1_1gemm_1_1GlobalLoadStream_1_1Params.html#ab5d9e5de9b1cc3462920ce7a8f52bbec">cutlass::gemm::GlobalLoadStream::Params::batch_stride</a></div><divclass="ttdeci">LongIndex batch_stride</div><divclass="ttdoc">Batch stride in global memory. </div><divclass="ttdef"><b>Definition:</b> gemm_global_stream.h:101</div></div>
<divclass="ttc"id="structcutlass_1_1gemm_1_1GlobalLoadStream_html_ac16e31930c346068d7522dd8de9d93d2"><divclass="ttname"><ahref="structcutlass_1_1gemm_1_1GlobalLoadStream.html#ac16e31930c346068d7522dd8de9d93d2">cutlass::gemm::GlobalLoadStream::StoreIterator</a></div><divclass="ttdeci">StoreIterator_ StoreIterator</div><divclass="ttdoc">The store iterator to write to shared memory. </div><divclass="ttdef"><b>Definition:</b> gemm_global_stream.h:60</div></div>
<divclass="ttc"id="structcutlass_1_1gemm_1_1GlobalLoadStream_html_ac269a9280a55d3988ca60f571bdf7f29"><divclass="ttname"><ahref="structcutlass_1_1gemm_1_1GlobalLoadStream.html#ac269a9280a55d3988ca60f571bdf7f29">cutlass::gemm::GlobalLoadStream::move_to_residue</a></div><divclass="ttdeci">CUTLASS_DEVICE void move_to_residue(Index k, Index kTileK)</div><divclass="ttdoc">Move to the residue portion. </div><divclass="ttdef"><b>Definition:</b> gemm_global_stream.h:198</div></div>
<divclass="ttc"id="structcutlass_1_1gemm_1_1GlobalLoadStream_html_a7d9b4339129c1ab4f21f1df1144faddf"><divclass="ttname"><ahref="structcutlass_1_1gemm_1_1GlobalLoadStream.html#a7d9b4339129c1ab4f21f1df1144faddf">cutlass::gemm::GlobalLoadStream::FetchedFragment</a></div><divclass="ttdeci">LoadIterator::Fragment FetchedFragment</div><divclass="ttdoc">The fragment that is copied from shared memory. </div><divclass="ttdef"><b>Definition:</b> gemm_global_stream.h:63</div></div>
<divclass="ttc"id="structcutlass_1_1gemm_1_1GlobalLoadStream_html_a9eb2fb49698d0d018c04e7712e239ce9"><divclass="ttname"><ahref="structcutlass_1_1gemm_1_1GlobalLoadStream.html#a9eb2fb49698d0d018c04e7712e239ce9">cutlass::gemm::GlobalLoadStream::TransformedFragment</a></div><divclass="ttdeci">Transformer::OutputFragment TransformedFragment</div><divclass="ttdoc">The fragment that is obtained after the transformation by the transformer. </div><divclass="ttdef"><b>Definition:</b> gemm_global_stream.h:65</div></div>
<divclass="ttc"id="convert_8h_html"><divclass="ttname"><ahref="convert_8h.html">convert.h</a></div><divclass="ttdoc">Defines conversion operations among Fragments of different base type. </div></div>
<divclass="ttc"id="structcutlass_1_1gemm_1_1GlobalLoadStream_1_1Params_html_a9c0707b48565a522884cbd077aa299ee"><divclass="ttname"><ahref="structcutlass_1_1gemm_1_1GlobalLoadStream_1_1Params.html#a9c0707b48565a522884cbd077aa299ee">cutlass::gemm::GlobalLoadStream::Params::get_offset_to_residue</a></div><divclass="ttdeci">CUTLASS_DEVICE Index get_offset_to_residue()</div><divclass="ttdef"><b>Definition:</b> gemm_global_stream.h:131</div></div>
<divclass="ttc"id="structcutlass_1_1gemm_1_1GlobalLoadStream_html_a1e2eecdba1871fc11aa43a06edf6ed34"><divclass="ttname"><ahref="structcutlass_1_1gemm_1_1GlobalLoadStream.html#a1e2eecdba1871fc11aa43a06edf6ed34">cutlass::gemm::GlobalLoadStream::rollback</a></div><divclass="ttdeci">CUTLASS_DEVICE void rollback(void)</div><divclass="ttdoc">Rollback to the beginning of the first tile. </div><divclass="ttdef"><b>Definition:</b> gemm_global_stream.h:208</div></div>