<ahref="gemm__stream__pair_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="l
<divclass="ttc"id="structcutlass_1_1gemm_1_1SharedStreamPair_html_aa1e8da4d8a313881d5e6509cf6e852d4"><divclass="ttname"><ahref="structcutlass_1_1gemm_1_1SharedStreamPair.html#aa1e8da4d8a313881d5e6509cf6e852d4">cutlass::gemm::SharedStreamPair::StreamA</a></div><divclass="ttdeci">StreamA_ StreamA</div><divclass="ttdoc">Stream for A multiplicand. </div><divclass="ttdef"><b>Definition:</b> gemm_stream_pair.h:186</div></div>
<divclass="ttc"id="structcutlass_1_1gemm_1_1GlobalLoadStreamPair_html_ab94c0c95d6d4e019563ba8a142f9d410"><divclass="ttname"><ahref="structcutlass_1_1gemm_1_1GlobalLoadStreamPair.html#ab94c0c95d6d4e019563ba8a142f9d410">cutlass::gemm::GlobalLoadStreamPair::move_to_residue</a></div><divclass="ttdeci">CUTLASS_DEVICE void move_to_residue(Index k, Index kTileK)</div><divclass="ttdoc">Move to residue. </div><divclass="ttdef"><b>Definition:</b> gemm_stream_pair.h:160</div></div>
<divclass="ttc"id="tile__iterator_8h_html"><divclass="ttname"><ahref="tile__iterator_8h.html">tile_iterator.h</a></div><divclass="ttdoc">Defines the Tile Traits concept and iterators for loading and storing to tiles efficiently. </div></div>
<divclass="ttc"id="gemm_2threadblock__swizzle_8h_html"><divclass="ttname"><ahref="gemm_2threadblock__swizzle_8h.html">threadblock_swizzle.h</a></div><divclass="ttdoc">Defies functors for mapping blockIdx to partitions of the GEMM computation. </div></div>
<divclass="ttc"id="structcutlass_1_1gemm_1_1GlobalLoadStreamPair_1_1SharedStorage_html"><divclass="ttname"><ahref="structcutlass_1_1gemm_1_1GlobalLoadStreamPair_1_1SharedStorage.html">cutlass::gemm::GlobalLoadStreamPair::SharedStorage</a></div><divclass="ttdoc">Defines a structure containing shared storage for each pair. </div><divclass="ttdef"><b>Definition:</b> gemm_stream_pair.h:91</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_1GlobalLoadStreamPair_html_a08171f4eae2442c98f81acc88e8bd55c"><divclass="ttname"><ahref="structcutlass_1_1gemm_1_1GlobalLoadStreamPair.html#a08171f4eae2442c98f81acc88e8bd55c">cutlass::gemm::GlobalLoadStreamPair::StreamB</a></div><divclass="ttdeci">StreamB_ StreamB</div><divclass="ttdoc">Stream for B multiplicand. </div><divclass="ttdef"><b>Definition:</b> gemm_stream_pair.h:59</div></div>
<divclass="ttc"id="structcutlass_1_1gemm_1_1SharedStreamPair_html"><divclass="ttname"><ahref="structcutlass_1_1gemm_1_1SharedStreamPair.html">cutlass::gemm::SharedStreamPair</a></div><divclass="ttdoc">Collect the global load streams for multiplicands. </div><divclass="ttdef"><b>Definition:</b> gemm_stream_pair.h:180</div></div>
<divclass="ttc"id="structcutlass_1_1gemm_1_1SharedStreamPair_html_a375e96bc2e35447682bd1dea3c4d87ad"><divclass="ttname"><ahref="structcutlass_1_1gemm_1_1SharedStreamPair.html#a375e96bc2e35447682bd1dea3c4d87ad">cutlass::gemm::SharedStreamPair::fragment_b</a></div><divclass="ttdeci">CUTLASS_DEVICE StreamB::TransformedFragment const & fragment_b(int step) const</div><divclass="ttdoc">The fragment B. </div><divclass="ttdef"><b>Definition:</b> gemm_stream_pair.h:244</div></div>
<divclass="ttc"id="structcutlass_1_1gemm_1_1GlobalLoadStreamPair_html_a6a9287a2cd87ca8a96cbf6b6d29199da"><divclass="ttname"><ahref="structcutlass_1_1gemm_1_1GlobalLoadStreamPair.html#a6a9287a2cd87ca8a96cbf6b6d29199da">cutlass::gemm::GlobalLoadStreamPair::rollback</a></div><divclass="ttdeci">CUTLASS_DEVICE void rollback(bool kRollback)</div><divclass="ttdoc">Rollback to beginning of first tile. </div><divclass="ttdef"><b>Definition:</b> gemm_stream_pair.h:170</div></div>
<divclass="ttc"id="structcutlass_1_1gemm_1_1SharedStreamPair_html_a157cec4ae2881fd37e0244614bc4ab7a"><divclass="ttname"><ahref="structcutlass_1_1gemm_1_1SharedStreamPair.html#a157cec4ae2881fd37e0244614bc4ab7a">cutlass::gemm::SharedStreamPair::stream_a</a></div><divclass="ttdeci">StreamA stream_a</div><divclass="ttdoc">The stream for A. </div><divclass="ttdef"><b>Definition:</b> gemm_stream_pair.h:210</div></div>
<divclass="ttc"id="structcutlass_1_1gemm_1_1SharedStreamPair_html_af29f052dc0145abe3144dea1472d241a"><divclass="ttname"><ahref="structcutlass_1_1gemm_1_1SharedStreamPair.html#af29f052dc0145abe3144dea1472d241a">cutlass::gemm::SharedStreamPair::fragment_a</a></div><divclass="ttdeci">CUTLASS_DEVICE StreamA::TransformedFragment const & fragment_a(int step) const</div><divclass="ttdoc">The fragment A. </div><divclass="ttdef"><b>Definition:</b> gemm_stream_pair.h:238</div></div>
<divclass="ttc"id="structcutlass_1_1gemm_1_1GlobalLoadStreamPair_html"><divclass="ttname"><ahref="structcutlass_1_1gemm_1_1GlobalLoadStreamPair.html">cutlass::gemm::GlobalLoadStreamPair</a></div><divclass="ttdoc">Collect the global load streams for multiplicands. </div><divclass="ttdef"><b>Definition:</b> gemm_stream_pair.h:50</div></div>
<divclass="ttc"id="structcutlass_1_1gemm_1_1SharedStreamPair_html_ad46887abb2e3136b635c3ef5be29cf69"><divclass="ttname"><ahref="structcutlass_1_1gemm_1_1SharedStreamPair.html#ad46887abb2e3136b635c3ef5be29cf69">cutlass::gemm::SharedStreamPair::copy</a></div><divclass="ttdeci">CUTLASS_DEVICE void copy(int step)</div><divclass="ttdoc">Trigger the copies from shared memory to registers. </div><divclass="ttdef"><b>Definition:</b> gemm_stream_pair.h:225</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="reshape__tile_8h_html"><divclass="ttname"><ahref="reshape__tile_8h.html">reshape_tile.h</a></div><divclass="ttdoc">Defines a type for restructuring a tile. </div></div>
<divclass="ttc"id="gemm__operand_8h_html"><divclass="ttname"><ahref="gemm__operand_8h.html">gemm_operand.h</a></div><divclass="ttdoc">Defines constant expressions for mapping GEMM problem size and strides onto pitch-linear memory...</div></div>
<divclass="ttc"id="clear__accumulators_8h_html"><divclass="ttname"><ahref="clear__accumulators_8h.html">clear_accumulators.h</a></div><divclass="ttdoc">Defines abstractions for efficiently clearing accumulator tiles. </div></div>
<divclass="ttc"id="structcutlass_1_1gemm_1_1GlobalLoadStreamPair_html_ae2c4829f874ef9e83aaa52c412fa1227"><divclass="ttname"><ahref="structcutlass_1_1gemm_1_1GlobalLoadStreamPair.html#ae2c4829f874ef9e83aaa52c412fa1227">cutlass::gemm::GlobalLoadStreamPair::StreamA</a></div><divclass="ttdeci">StreamA_ StreamA</div><divclass="ttdoc">Stream for A multiplicand. </div><divclass="ttdef"><b>Definition:</b> gemm_stream_pair.h:56</div></div>
<divclass="ttc"id="structcutlass_1_1gemm_1_1GlobalLoadStreamPair_html_a93cde16f4aef554603fcf27fa23d5127"><divclass="ttname"><ahref="structcutlass_1_1gemm_1_1GlobalLoadStreamPair.html#a93cde16f4aef554603fcf27fa23d5127">cutlass::gemm::GlobalLoadStreamPair::stream_a</a></div><divclass="ttdeci">StreamA stream_a</div><divclass="ttdoc">Stream for A multiplicand. </div><divclass="ttdef"><b>Definition:</b> gemm_stream_pair.h:101</div></div>
<divclass="ttc"id="structcutlass_1_1gemm_1_1GlobalLoadStreamPair_html_a3e22454d24cadb7d335f2a0152caae2a"><divclass="ttname"><ahref="structcutlass_1_1gemm_1_1GlobalLoadStreamPair.html#a3e22454d24cadb7d335f2a0152caae2a">cutlass::gemm::GlobalLoadStreamPair::Index</a></div><divclass="ttdeci">StreamA::Index Index</div><divclass="ttdoc">Assumes the A stream defines the index type. </div><divclass="ttdef"><b>Definition:</b> gemm_stream_pair.h:80</div></div>
<divclass="ttc"id="structcutlass_1_1ZipTileAllocation_html"><divclass="ttname"><ahref="structcutlass_1_1ZipTileAllocation.html">cutlass::ZipTileAllocation</a></div><divclass="ttdoc">Manages a pair of tile allocations as if they are one allocation. </div><divclass="ttdef"><b>Definition:</b> tile_allocation.h:125</div></div>
<divclass="ttc"id="gemm__config_8h_html"><divclass="ttname"><ahref="gemm__config_8h.html">gemm_config.h</a></div><divclass="ttdoc">Defines properties of GEMM computation that impose some constraints on caller. </div></div>
<divclass="ttc"id="structcutlass_1_1gemm_1_1SharedStreamPair_html_a8be3e50ce5b65b777972720c77b51529"><divclass="ttname"><ahref="structcutlass_1_1gemm_1_1SharedStreamPair.html#a8be3e50ce5b65b777972720c77b51529">cutlass::gemm::SharedStreamPair::StreamB</a></div><divclass="ttdeci">StreamB_ StreamB</div><divclass="ttdoc">Stream for B multiplicand. </div><divclass="ttdef"><b>Definition:</b> gemm_stream_pair.h:189</div></div>
<divclass="ttc"id="gemm__global__stream_8h_html"><divclass="ttname"><ahref="gemm__global__stream_8h.html">gemm_global_stream.h</a></div><divclass="ttdoc">Implements efficient loading of the thread block-level tile from global memory and storing to shared ...</div></div>
<divclass="ttc"id="structcutlass_1_1gemm_1_1SharedStreamPair_html_a698586bcc25212e8cd65ab6a4e5c42a9"><divclass="ttname"><ahref="structcutlass_1_1gemm_1_1SharedStreamPair.html#a698586bcc25212e8cd65ab6a4e5c42a9">cutlass::gemm::SharedStreamPair::stream_b</a></div><divclass="ttdeci">StreamB stream_b</div><divclass="ttdoc">The stream for B. </div><divclass="ttdef"><b>Definition:</b> gemm_stream_pair.h:213</div></div>
<divclass="ttc"id="structcutlass_1_1gemm_1_1SharedStreamPair_html_ad4b9b1c1fe4b0c6961842d0eff6d7db7"><divclass="ttname"><ahref="structcutlass_1_1gemm_1_1SharedStreamPair.html#ad4b9b1c1fe4b0c6961842d0eff6d7db7">cutlass::gemm::SharedStreamPair::inc_stage</a></div><divclass="ttdeci">CUTLASS_DEVICE void inc_stage()</div><divclass="ttdoc">Increment the stage. </div><divclass="ttdef"><b>Definition:</b> gemm_stream_pair.h:249</div></div>
<divclass="ttc"id="structcutlass_1_1gemm_1_1SharedStreamPair_1_1Params_html"><divclass="ttname"><ahref="structcutlass_1_1gemm_1_1SharedStreamPair_1_1Params.html">cutlass::gemm::SharedStreamPair::Params</a></div><divclass="ttdoc">Parameters object passed to load iterators. </div><divclass="ttdef"><b>Definition:</b> gemm_stream_pair.h:192</div></div>
<divclass="ttc"id="matrix__traits_8h_html"><divclass="ttname"><ahref="matrix__traits_8h.html">matrix_traits.h</a></div><divclass="ttdoc">Defines properties of matrices used to denote layout and operands to GEMM kernels. </div></div>
<divclass="ttc"id="structcutlass_1_1gemm_1_1GlobalLoadStreamPair_html_a5c0efc259bb3bd1675f5d395dab71e95"><divclass="ttname"><ahref="structcutlass_1_1gemm_1_1GlobalLoadStreamPair.html#a5c0efc259bb3bd1675f5d395dab71e95">cutlass::gemm::GlobalLoadStreamPair::copy</a></div><divclass="ttdeci">CUTLASS_DEVICE void copy()</div><divclass="ttdoc">Trigger the copies from shared memory to registers. </div><divclass="ttdef"><b>Definition:</b> gemm_stream_pair.h:142</div></div>
<divclass="ttc"id="structcutlass_1_1gemm_1_1GlobalLoadStreamPair_1_1Params_html_a235c77b257b93dace812d2f7b9340705"><divclass="ttname"><ahref="structcutlass_1_1gemm_1_1GlobalLoadStreamPair_1_1Params.html#a235c77b257b93dace812d2f7b9340705">cutlass::gemm::GlobalLoadStreamPair::Params::stream_a</a></div><divclass="ttdeci">StreamA::Params stream_a</div><divclass="ttdoc">Parameters object for StreamA. </div><divclass="ttdef"><b>Definition:</b> gemm_stream_pair.h:64</div></div>
<divclass="ttc"id="gemm__shared__stream_8h_html"><divclass="ttname"><ahref="gemm__shared__stream_8h.html">gemm_shared_stream.h</a></div><divclass="ttdoc">Defines abstractions for managing loading and storing fragments to shared memory in the efficient GEM...</div></div>
<divclass="ttc"id="structcutlass_1_1gemm_1_1GlobalLoadStreamPair_html_a9aeaeabd4f8af2d864f28c76c6a301d9"><divclass="ttname"><ahref="structcutlass_1_1gemm_1_1GlobalLoadStreamPair.html#a9aeaeabd4f8af2d864f28c76c6a301d9">cutlass::gemm::GlobalLoadStreamPair::stream_b</a></div><divclass="ttdeci">StreamB stream_b</div><divclass="ttdoc">Stream for B multiplicand. </div><divclass="ttdef"><b>Definition:</b> gemm_stream_pair.h:104</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>