<ahref="igemm__traits_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="l00022
<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="igemm__swizzle_8h_html"><divclass="ttname"><ahref="igemm__swizzle_8h.html">igemm_swizzle.h</a></div><divclass="ttdoc">Transposes a fragment of data containing packed 8-bit integer elements. </div></div>
<divclass="ttc"id="structcutlass_1_1gemm_1_1IgemmTileTraitsHelperA_3_01MatrixLayout_1_1kRowMajor_00_01GemmConfig___00_01Index___01_4_html_a11d02ea6e4ab68a0f4dff1eb8ecf4f9d"><divclass="ttname"><ahref="structcutlass_1_1gemm_1_1IgemmTileTraitsHelperA_3_01MatrixLayout_1_1kRowMajor_00_01GemmConfig___00_01Index___01_4.html#a11d02ea6e4ab68a0f4dff1eb8ecf4f9d">cutlass::gemm::IgemmTileTraitsHelperA< MatrixLayout::kRowMajor, GemmConfig_, Index_ >::SharedStoreTileTraits</a></div><divclass="ttdeci">GemmSharedStoreWithSkewTileAbTraits< int8_t, Shape< GemmConfig_::kStages, GemmConfig_::OutputTile::kD/4, GemmConfig_::OutputTile::kW *4 >, typename GlobalTileTraits::Threads, kScalarsPerStsA, 16 > SharedStoreTileTraits</div><divclass="ttdoc">The traits class to build the iterator to store data to shared memory for A^N. </div><divclass="ttdef"><b>Definition:</b> igemm_traits.h:233</div></div>
<divclass="ttc"id="structcutlass_1_1gemm_1_1IgemmTileTraitsHelperB_3_01MatrixLayout_1_1kColumnMajor_00_01GemmConfig___00_01Index___01_4_html_af6f6d293f058666f9f0da53f34c712aa"><divclass="ttname"><ahref="structcutlass_1_1gemm_1_1IgemmTileTraitsHelperB_3_01MatrixLayout_1_1kColumnMajor_00_01GemmConfig___00_01Index___01_4.html#af6f6d293f058666f9f0da53f34c712aa">cutlass::gemm::IgemmTileTraitsHelperB< MatrixLayout::kColumnMajor, GemmConfig_, Index_ >::GlobalTileTraits</a></div><divclass="ttdeci">IgemmGlobalTileTraits< GemmOperand::kB, MatrixLayout::kColumnMajor, int8_t const, Shape< 1, GemmConfig_::OutputTile::kH, GemmConfig_::OutputTile::kD >, Shape< 1, ShapeCount< typename GemmConfig_::Warps >::kCount, GemmConfig_::kWarpSize >, GemmConfig_::kScalarsPerLdgB > GlobalTileTraits</div><divclass="ttdoc">The traits class to build the iterator to load data from global memory for B^T. </div><divclass="ttdef"><b>Definition:</b> igemm_traits.h:289</div></div>
<divclass="ttc"id="structcutlass_1_1gemm_1_1IgemmTraitsHelper_html_ad1a34cb78f88fe2fcbf13239e89f6137"><divclass="ttname"><ahref="structcutlass_1_1gemm_1_1IgemmTraitsHelper.html#ad1a34cb78f88fe2fcbf13239e89f6137">cutlass::gemm::IgemmTraitsHelper::GlobalLoadIteratorB</a></div><divclass="ttdeci">GemmTileTraitsHelperB::GlobalLoadIterator GlobalLoadIteratorB</div><divclass="ttdoc">The iterator to load B from global memory. </div><divclass="ttdef"><b>Definition:</b> igemm_traits.h:445</div></div>
<divclass="ttc"id="igemm__multiply__add_8h_html"><divclass="ttname"><ahref="igemm__multiply__add_8h.html">igemm_multiply_add.h</a></div><divclass="ttdoc">Implements matrix multiply accumulate operation of 8-bit integer data using DP4A instruction. </div></div>
<divclass="ttc"id="structcutlass_1_1gemm_1_1IgemmTraitsHelper_html_a2953ae145fdb2eadf871aee8219e92d1"><divclass="ttname"><ahref="structcutlass_1_1gemm_1_1IgemmTraitsHelper.html#a2953ae145fdb2eadf871aee8219e92d1">cutlass::gemm::IgemmTraitsHelper::SharedStoreIteratorB</a></div><divclass="ttdeci">TileStoreIterator< typename GemmTileTraitsHelperB::SharedStoreTileTraits, typename GemmTileTraitsHelperB::SharedStoreTileTraits::Scalar, IteratorAdvance::kH, MemorySpace::kShared > SharedStoreIteratorB</div><divclass="ttdoc">The iterator to store B to shared memory. </div><divclass="ttdef"><b>Definition:</b> igemm_traits.h:454</div></div>
<divclass="ttc"id="structcutlass_1_1gemm_1_1IgemmTileTraitsHelperB_3_01MatrixLayout_1_1kColumnMajor_00_01GemmConfig___00_01Index___01_4_html_ad8f1b0fda40f1fb7dc598cc841f38afe"><divclass="ttname"><ahref="structcutlass_1_1gemm_1_1IgemmTileTraitsHelperB_3_01MatrixLayout_1_1kColumnMajor_00_01GemmConfig___00_01Index___01_4.html#ad8f1b0fda40f1fb7dc598cc841f38afe">cutlass::gemm::IgemmTileTraitsHelperB< MatrixLayout::kColumnMajor, GemmConfig_, Index_ >::SharedLoadTileTraits</a></div><divclass="ttdeci">GemmSharedLoadTileBTraits< int8_t const, typename GemmConfig_::OutputTile, typename GemmConfig_::Warps, typename GemmConfig_::MultiplyAdd::ThreadsPerWarp, typename GemmConfig_::InstructionShape, GemmConfig_::kStages, 16, SharedStoreTileTraits::kSkew > SharedLoadTileTraits</div><divclass="ttdoc">The traits class to build the iterator to load from shared memory for B^N. </div><divclass="ttdef"><b>Definition:</b> igemm_traits.h:326</div></div>
<divclass="ttc"id="gemm__epilogue_8h_html"><divclass="ttname"><ahref="gemm__epilogue_8h.html">gemm_epilogue.h</a></div><divclass="ttdoc">Implements the epilogue phase of the GEMM kernel that efficiently updates global memory with the comp...</div></div>
<divclass="ttc"id="structcutlass_1_1gemm_1_1IgemmEpilogueScalar_3_01int_01_4_html_a0983fd25494f6a7ed5af37a02e99f650"><divclass="ttname"><ahref="structcutlass_1_1gemm_1_1IgemmEpilogueScalar_3_01int_01_4.html#a0983fd25494f6a7ed5af37a02e99f650">cutlass::gemm::IgemmEpilogueScalar< int >::Scalar</a></div><divclass="ttdeci">int Scalar</div><divclass="ttdef"><b>Definition:</b> igemm_traits.h:499</div></div>
<divclass="ttc"id="structcutlass_1_1gemm_1_1IgemmTileTraitsHelperA_3_01MatrixLayout_1_1kColumnMajor_00_01GemmConfig___00_01Index___01_4_html_aa21c231aa56c9e5f2705cac62b17bbbe"><divclass="ttname"><ahref="structcutlass_1_1gemm_1_1IgemmTileTraitsHelperA_3_01MatrixLayout_1_1kColumnMajor_00_01GemmConfig___00_01Index___01_4.html#aa21c231aa56c9e5f2705cac62b17bbbe">cutlass::gemm::IgemmTileTraitsHelperA< MatrixLayout::kColumnMajor, GemmConfig_, Index_ >::SharedStoreTileTraits</a></div><divclass="ttdeci">GemmSharedStoreTileAbTraits< int8_t, Shape< GemmConfig_::kStages, GemmConfig_::OutputTile::kD/4, GemmConfig_::OutputTile::kW *4 >, typename GlobalTileTraits::Threads, kScalarsPerStsA > SharedStoreTileTraits</div><divclass="ttdoc">The traits class to build the iterator to store data to shared memory for A^N. </div><divclass="ttdef"><b>Definition:</b> igemm_traits.h:185</div></div>
<divclass="ttc"id="structcutlass_1_1TileLoadIterator_html"><divclass="ttname"><ahref="structcutlass_1_1TileLoadIterator.html">cutlass::TileLoadIterator</a></div><divclass="ttdoc">An iterator implementing Tile Load Iterator Concept for loading a tile from memory. </div><divclass="ttdef"><b>Definition:</b> tile_iterator.h:402</div></div>
<divclass="ttc"id="gemm__shared__tile_8h_html"><divclass="ttname"><ahref="gemm__shared__tile_8h.html">gemm_shared_tile.h</a></div><divclass="ttdoc">Defines iterators for efficiently loading and storing tiles to and from shared memory. </div></div>
<divclass="ttc"id="structcutlass_1_1gemm_1_1IgemmTraitsHelper_html_ae59454c1b3862522c8ea293bacb194a8"><divclass="ttname"><ahref="structcutlass_1_1gemm_1_1IgemmTraitsHelper.html#ae59454c1b3862522c8ea293bacb194a8">cutlass::gemm::IgemmTraitsHelper::GlobalLoadStreamB</a></div><divclass="ttdeci">GlobalLoadStream< GemmOperand::kB, GlobalLoadIteratorB, SharedStoreIteratorB, GlobalTransformerB > GlobalLoadStreamB</div><divclass="ttdoc">The stream to load B from global memory to shared memory. </div><divclass="ttdef"><b>Definition:</b> igemm_traits.h:460</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="structcutlass_1_1gemm_1_1IgemmTraitsHelper_html_a48f6b161acb181aee1e5bdb3bc909b04"><divclass="ttname"><ahref="structcutlass_1_1gemm_1_1IgemmTraitsHelper.html#a48f6b161acb181aee1e5bdb3bc909b04">cutlass::gemm::IgemmTraitsHelper::GlobalLoadIteratorA</a></div><divclass="ttdeci">GemmTileTraitsHelperA::GlobalLoadIterator GlobalLoadIteratorA</div><divclass="ttdoc">The iterator to load A from global memory. </div><divclass="ttdef"><b>Definition:</b> igemm_traits.h:427</div></div>
<divclass="ttc"id="structcutlass_1_1gemm_1_1IgemmTraitsHelper_html_a3d2b39cacb975afbfeae9e368f0656ae"><divclass="ttname"><ahref="structcutlass_1_1gemm_1_1IgemmTraitsHelper.html#a3d2b39cacb975afbfeae9e368f0656ae">cutlass::gemm::IgemmTraitsHelper::SharedStoreIteratorA</a></div><divclass="ttdeci">TileStoreIterator< typename GemmTileTraitsHelperA::SharedStoreTileTraits, typename GemmTileTraitsHelperA::SharedStoreTileTraits::Scalar, IteratorAdvance::kH, MemorySpace::kShared > SharedStoreIteratorA</div><divclass="ttdoc">The iterator to store A to shared memory. </div><divclass="ttdef"><b>Definition:</b> igemm_traits.h:436</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_1gemm_1_1IgemmTraitsHelper_html_a94111367763890341e88450f43b59312"><divclass="ttname"><ahref="structcutlass_1_1gemm_1_1IgemmTraitsHelper.html#a94111367763890341e88450f43b59312">cutlass::gemm::IgemmTraitsHelper::SharedLoadIteratorB</a></div><divclass="ttdeci">TileLoadIterator< typename GemmTileTraitsHelperB::SharedLoadTileTraits, typename GemmTileTraitsHelperB::SharedLoadTileTraits::Scalar, IteratorAdvance::kH, MemorySpace::kShared > SharedLoadIteratorB</div><divclass="ttdoc">The iterator to load B from shared memory. </div><divclass="ttdef"><b>Definition:</b> igemm_traits.h:476</div></div>
<divclass="ttc"id="structcutlass_1_1gemm_1_1IgemmTileTraitsHelperB_3_01MatrixLayout_1_1kRowMajor_00_01GemmConfig___00_01Index___01_4_html_a872dc2d0b8ed6c75c41d258a23183861"><divclass="ttname"><ahref="structcutlass_1_1gemm_1_1IgemmTileTraitsHelperB_3_01MatrixLayout_1_1kRowMajor_00_01GemmConfig___00_01Index___01_4.html#a872dc2d0b8ed6c75c41d258a23183861">cutlass::gemm::IgemmTileTraitsHelperB< MatrixLayout::kRowMajor, GemmConfig_, Index_ >::SharedStoreTileTraits</a></div><divclass="ttdeci">GemmSharedStoreTileAbTraits< int8_t, Shape< GemmConfig_::kStages, GemmConfig_::OutputTile::kD/4, GemmConfig_::OutputTile::kH *4 >, typename GlobalTileTraits::Threads, kScalarsPerStsB > SharedStoreTileTraits</div><divclass="ttdoc">The traits class to build the iterator to store data to shared memory for B^N. </div><divclass="ttdef"><b>Definition:</b> igemm_traits.h:368</div></div>
<divclass="ttc"id="structcutlass_1_1gemm_1_1ThreadMultiplyAdd_html"><divclass="ttname"><ahref="structcutlass_1_1gemm_1_1ThreadMultiplyAdd.html">cutlass::gemm::ThreadMultiplyAdd</a></div><divclass="ttdoc">Template performing matrix multiply-add operation within a thread. </div><divclass="ttdef"><b>Definition:</b> thread_multiply_add.h:44</div></div>
<divclass="ttc"id="structcutlass_1_1gemm_1_1LinearScaling_html"><divclass="ttname"><ahref="structcutlass_1_1gemm_1_1LinearScaling.html">cutlass::gemm::LinearScaling</a></div><divclass="ttdoc">Functor to compute linear combination of fragments. </div><divclass="ttdef"><b>Definition:</b> linear_scaling.h:51</div></div>
<divclass="ttc"id="structcutlass_1_1gemm_1_1IgemmTraitsHelper_html_a7e035ceab26dc904726ddbf14371f476"><divclass="ttname"><ahref="structcutlass_1_1gemm_1_1IgemmTraitsHelper.html#a7e035ceab26dc904726ddbf14371f476">cutlass::gemm::IgemmTraitsHelper::SharedLoadStreamA</a></div><divclass="ttdeci">SharedLoadStream< SharedLoadIteratorA, Copy< typename SharedLoadIteratorA::Fragment >> SharedLoadStreamA</div><divclass="ttdoc">The stream to load A from shared memory. </div><divclass="ttdef"><b>Definition:</b> igemm_traits.h:470</div></div>
<divclass="ttc"id="structcutlass_1_1gemm_1_1IgemmTraitsHelper_html_a2aceaceb30287e909c254f01f1716845"><divclass="ttname"><ahref="structcutlass_1_1gemm_1_1IgemmTraitsHelper.html#a2aceaceb30287e909c254f01f1716845">cutlass::gemm::IgemmTraitsHelper::GlobalLoadStreamA</a></div><divclass="ttdeci">GlobalLoadStream< GemmOperand::kA, GlobalLoadIteratorA, SharedStoreIteratorA, GlobalTransformerA > GlobalLoadStreamA</div><divclass="ttdoc">The stream to load A from global memory to shared memory. </div><divclass="ttdef"><b>Definition:</b> igemm_traits.h:442</div></div>
<divclass="ttc"id="structcutlass_1_1gemm_1_1IgemmTraitsHelper_html_aee1dfb15e1b63f838a712af93777e5d3"><divclass="ttname"><ahref="structcutlass_1_1gemm_1_1IgemmTraitsHelper.html#aee1dfb15e1b63f838a712af93777e5d3">cutlass::gemm::IgemmTraitsHelper::GemmTileTraitsHelperA</a></div><divclass="ttdeci">IgemmTileTraitsHelperA< kLayoutA_, GemmConfig, Index_ > GemmTileTraitsHelperA</div><divclass="ttdoc">The GEMM config for A. </div><divclass="ttdef"><b>Definition:</b> igemm_traits.h:422</div></div>
<divclass="ttc"id="gemm__epilogue__traits_8h_html"><divclass="ttname"><ahref="gemm__epilogue__traits_8h.html">gemm_epilogue_traits.h</a></div><divclass="ttdoc">Defines structural properties of the GEMM epilogue. </div></div>
<divclass="ttc"id="igemm__epilogue_8h_html"><divclass="ttname"><ahref="igemm__epilogue_8h.html">igemm_epilogue.h</a></div><divclass="ttdoc">Defines the epilogue phase of the GEMM computation for IGEMM, supporting integer and floating-point o...</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_1IgemmTileTraitsHelperB_3_01MatrixLayout_1_1kColumnMajor_00_01GemmConfig___00_01Index___01_4_html_a86ed2ebc5b6e4426ab35a1f30a3e47bb"><divclass="ttname"><ahref="structcutlass_1_1gemm_1_1IgemmTileTraitsHelperB_3_01MatrixLayout_1_1kColumnMajor_00_01GemmConfig___00_01Index___01_4.html#a86ed2ebc5b6e4426ab35a1f30a3e47bb">cutlass::gemm::IgemmTileTraitsHelperB< MatrixLayout::kColumnMajor, GemmConfig_, Index_ >::SharedStoreTileTraits</a></div><divclass="ttdeci">GemmSharedStoreWithSkewTileAbTraits< int8_t, Shape< GemmConfig_::kStages, GemmConfig_::OutputTile::kD/4, GemmConfig_::OutputTile::kH *4 >, typename GlobalTileTraits::Threads, kScalarsPerStsB, 16 > SharedStoreTileTraits</div><divclass="ttdoc">The traits class to build the iterator to store data to shared memory for B^N. </div><divclass="ttdef"><b>Definition:</b> igemm_traits.h:306</div></div>
<divclass="ttc"id="igemm__global__tile_8h_html"><divclass="ttname"><ahref="igemm__global__tile_8h.html">igemm_global_tile.h</a></div><divclass="ttdoc">Implements tile iterators to partition the thread block tile into 2D subtiles and efficiently load ea...</div></div>
<divclass="ttc"id="structcutlass_1_1TileStoreIterator_html"><divclass="ttname"><ahref="structcutlass_1_1TileStoreIterator.html">cutlass::TileStoreIterator</a></div><divclass="ttdoc">An iterator implementing Tile Store Iterator Concept for storing a tile to memory. </div><divclass="ttdef"><b>Definition:</b> tile_iterator.h:841</div></div>