CUTLASS
CUDA Templates for Linear Algebra Subroutines and Solvers
Public Types | Public Member Functions | Static Public Attributes | List of all members
cutlass::epilogue::warp::TileIteratorSimt< WarpShape_, Operator_, Element_, layout::RowMajor, MmaSimtPolicy_ > Class Template Reference

Template for reading and writing tiles of accumulators to shared memory.

#include <tile_iterator_simt.h>

Public Types

using WarpShape = WarpShape_
 
using Operator = Operator_
 
using Element = Element_
 
using Layout = layout::RowMajor
 
using TensorRef = TensorRef< Element, Layout >
 Tensor Reference object. More...
 
using TensorCoord = MatrixCoord
 Logical coordinate in referenced tensor. More...
 
using Index = typename TensorRef::Index
 
using LongIndex = typename TensorRef::LongIndex
 
using Policy = SimtPolicy< WarpShape, Operator, Layout, MmaSimtPolicy_ >
 
using Shape = MatrixShape< Policy::kRowsPerIteration, WarpShape::kN >
 Shape of the tile in memory. More...
 
using Fragment = Array< typename Operator::ElementC, Policy::kElementsPerIteration >
 This is the fragment size produced by one access of the iterator. More...
 
using AccumulatorTile = Array< typename Operator::ElementC, Policy::kAccumulatorElementCount >
 This is the complete warp-level accumulator tile. More...
 
using Padding = MatrixShape< 0, 4 *Policy::kElementsPerAccess >
 Padding quantity. More...
 

Public Member Functions

CUTLASS_HOST_DEVICE TileIteratorSimt ()
 Default constructor. More...
 
CUTLASS_HOST_DEVICE TileIteratorSimt (TensorRef const &ref, unsigned lane_id)
 Constructor from TensorRef. More...
 
CUTLASS_HOST_DEVICE TileIteratorSimtadd_pointer_offset (Index pointer_offset)
 Adds a pointer offset. More...
 
CUTLASS_HOST_DEVICE TileIteratorSimtadd_tile_offset (TensorCoord const &tile_offset)
 advances in units of whole tiles along the logical coordinate space of the tensor More...
 
CUTLASS_HOST_DEVICE TileIteratorSimtoperator+= (TensorCoord const &tile_offset)
 
CUTLASS_HOST_DEVICE void store_with_pointer_offset (Fragment const &frag, Index pointer_offset)
 Store. More...
 
CUTLASS_HOST_DEVICE void store (Fragment const &frag)
 Store. More...
 
CUTLASS_HOST_DEVICE void load_with_pointer_offset (Fragment &frag, Index pointer_offset) const
 Load. More...
 
CUTLASS_HOST_DEVICE void load (Fragment &frag) const
 Load. More...
 

Static Public Attributes

static int const kIterations = Policy::kIterations
 Number of times this iterator can be incremented. More...
 

Member Typedef Documentation

template<typename WarpShape_ , typename Operator_ , typename Element_ , typename MmaSimtPolicy_ >
using cutlass::epilogue::warp::TileIteratorSimt< WarpShape_, Operator_, Element_, layout::RowMajor, MmaSimtPolicy_ >::AccumulatorTile = Array< typename Operator::ElementC, Policy::kAccumulatorElementCount>
template<typename WarpShape_ , typename Operator_ , typename Element_ , typename MmaSimtPolicy_ >
using cutlass::epilogue::warp::TileIteratorSimt< WarpShape_, Operator_, Element_, layout::RowMajor, MmaSimtPolicy_ >::Element = Element_
template<typename WarpShape_ , typename Operator_ , typename Element_ , typename MmaSimtPolicy_ >
using cutlass::epilogue::warp::TileIteratorSimt< WarpShape_, Operator_, Element_, layout::RowMajor, MmaSimtPolicy_ >::Fragment = Array< typename Operator::ElementC, Policy::kElementsPerIteration>
template<typename WarpShape_ , typename Operator_ , typename Element_ , typename MmaSimtPolicy_ >
using cutlass::epilogue::warp::TileIteratorSimt< WarpShape_, Operator_, Element_, layout::RowMajor, MmaSimtPolicy_ >::Index = typename TensorRef::Index
template<typename WarpShape_ , typename Operator_ , typename Element_ , typename MmaSimtPolicy_ >
using cutlass::epilogue::warp::TileIteratorSimt< WarpShape_, Operator_, Element_, layout::RowMajor, MmaSimtPolicy_ >::Layout = layout::RowMajor
template<typename WarpShape_ , typename Operator_ , typename Element_ , typename MmaSimtPolicy_ >
using cutlass::epilogue::warp::TileIteratorSimt< WarpShape_, Operator_, Element_, layout::RowMajor, MmaSimtPolicy_ >::LongIndex = typename TensorRef::LongIndex
template<typename WarpShape_ , typename Operator_ , typename Element_ , typename MmaSimtPolicy_ >
using cutlass::epilogue::warp::TileIteratorSimt< WarpShape_, Operator_, Element_, layout::RowMajor, MmaSimtPolicy_ >::Operator = Operator_
template<typename WarpShape_ , typename Operator_ , typename Element_ , typename MmaSimtPolicy_ >
using cutlass::epilogue::warp::TileIteratorSimt< WarpShape_, Operator_, Element_, layout::RowMajor, MmaSimtPolicy_ >::Padding = MatrixShape< 0, 4 * Policy::kElementsPerAccess>
template<typename WarpShape_ , typename Operator_ , typename Element_ , typename MmaSimtPolicy_ >
using cutlass::epilogue::warp::TileIteratorSimt< WarpShape_, Operator_, Element_, layout::RowMajor, MmaSimtPolicy_ >::Policy = SimtPolicy<WarpShape, Operator, Layout, MmaSimtPolicy_>
template<typename WarpShape_ , typename Operator_ , typename Element_ , typename MmaSimtPolicy_ >
using cutlass::epilogue::warp::TileIteratorSimt< WarpShape_, Operator_, Element_, layout::RowMajor, MmaSimtPolicy_ >::Shape = MatrixShape< Policy::kRowsPerIteration, WarpShape::kN >
template<typename WarpShape_ , typename Operator_ , typename Element_ , typename MmaSimtPolicy_ >
using cutlass::epilogue::warp::TileIteratorSimt< WarpShape_, Operator_, Element_, layout::RowMajor, MmaSimtPolicy_ >::TensorCoord = MatrixCoord
template<typename WarpShape_ , typename Operator_ , typename Element_ , typename MmaSimtPolicy_ >
using cutlass::epilogue::warp::TileIteratorSimt< WarpShape_, Operator_, Element_, layout::RowMajor, MmaSimtPolicy_ >::TensorRef = TensorRef<Element, Layout>
template<typename WarpShape_ , typename Operator_ , typename Element_ , typename MmaSimtPolicy_ >
using cutlass::epilogue::warp::TileIteratorSimt< WarpShape_, Operator_, Element_, layout::RowMajor, MmaSimtPolicy_ >::WarpShape = WarpShape_

Constructor & Destructor Documentation

template<typename WarpShape_ , typename Operator_ , typename Element_ , typename MmaSimtPolicy_ >
CUTLASS_HOST_DEVICE cutlass::epilogue::warp::TileIteratorSimt< WarpShape_, Operator_, Element_, layout::RowMajor, MmaSimtPolicy_ >::TileIteratorSimt ( )
inline
template<typename WarpShape_ , typename Operator_ , typename Element_ , typename MmaSimtPolicy_ >
CUTLASS_HOST_DEVICE cutlass::epilogue::warp::TileIteratorSimt< WarpShape_, Operator_, Element_, layout::RowMajor, MmaSimtPolicy_ >::TileIteratorSimt ( TensorRef const &  ref,
unsigned  lane_id 
)
inline

Member Function Documentation

template<typename WarpShape_ , typename Operator_ , typename Element_ , typename MmaSimtPolicy_ >
CUTLASS_HOST_DEVICE TileIteratorSimt& cutlass::epilogue::warp::TileIteratorSimt< WarpShape_, Operator_, Element_, layout::RowMajor, MmaSimtPolicy_ >::add_pointer_offset ( Index  pointer_offset)
inline

advances in units of whole tiles along the logical coordinate space of the tensor

template<typename WarpShape_ , typename Operator_ , typename Element_ , typename MmaSimtPolicy_ >
CUTLASS_HOST_DEVICE TileIteratorSimt& cutlass::epilogue::warp::TileIteratorSimt< WarpShape_, Operator_, Element_, layout::RowMajor, MmaSimtPolicy_ >::add_tile_offset ( TensorCoord const &  tile_offset)
inline
template<typename WarpShape_ , typename Operator_ , typename Element_ , typename MmaSimtPolicy_ >
CUTLASS_HOST_DEVICE void cutlass::epilogue::warp::TileIteratorSimt< WarpShape_, Operator_, Element_, layout::RowMajor, MmaSimtPolicy_ >::load ( Fragment frag) const
inline
template<typename WarpShape_ , typename Operator_ , typename Element_ , typename MmaSimtPolicy_ >
CUTLASS_HOST_DEVICE void cutlass::epilogue::warp::TileIteratorSimt< WarpShape_, Operator_, Element_, layout::RowMajor, MmaSimtPolicy_ >::load_with_pointer_offset ( Fragment frag,
Index  pointer_offset 
) const
inline
template<typename WarpShape_ , typename Operator_ , typename Element_ , typename MmaSimtPolicy_ >
CUTLASS_HOST_DEVICE TileIteratorSimt& cutlass::epilogue::warp::TileIteratorSimt< WarpShape_, Operator_, Element_, layout::RowMajor, MmaSimtPolicy_ >::operator+= ( TensorCoord const &  tile_offset)
inline
template<typename WarpShape_ , typename Operator_ , typename Element_ , typename MmaSimtPolicy_ >
CUTLASS_HOST_DEVICE void cutlass::epilogue::warp::TileIteratorSimt< WarpShape_, Operator_, Element_, layout::RowMajor, MmaSimtPolicy_ >::store ( Fragment const &  frag)
inline
template<typename WarpShape_ , typename Operator_ , typename Element_ , typename MmaSimtPolicy_ >
CUTLASS_HOST_DEVICE void cutlass::epilogue::warp::TileIteratorSimt< WarpShape_, Operator_, Element_, layout::RowMajor, MmaSimtPolicy_ >::store_with_pointer_offset ( Fragment const &  frag,
Index  pointer_offset 
)
inline

Member Data Documentation

template<typename WarpShape_ , typename Operator_ , typename Element_ , typename MmaSimtPolicy_ >
int const cutlass::epilogue::warp::TileIteratorSimt< WarpShape_, Operator_, Element_, layout::RowMajor, MmaSimtPolicy_ >::kIterations = Policy::kIterations
static

The documentation for this class was generated from the following file: