CUTLASS
CUDA Templates for Linear Algebra Subroutines and Solvers
Public Types | Public Member Functions | List of all members
cutlass::epilogue::warp::TileIteratorWmmaTensorOp< WarpShape_, OperatorShape_, OperatorFragment_, layout::RowMajor > Class Template Reference

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

#include <tile_iterator_wmma_tensor_op.h>

Public Types

using WarpShape = WarpShape_
 
using OperatorShape = OperatorShape_
 
using OperatorFragment = OperatorFragment_
 
using Layout = layout::RowMajor
 
using WmmaDataType = typename OperatorFragment::element_type
 
using Element = typename cutlass::arch::WmmaToCutlassDataType< WmmaDataType >::Type
 Data Type of element stored in nvcuda::wmma::frament. More...
 
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 = WmmaTensorOpPolicy< WarpShape, OperatorShape, Layout >
 
using Shape = MatrixShape< Policy::kRowsPerIteration, WarpShape::kN >
 Shape of the tile in memory. More...
 
using Fragment = WmmaFragmentArray< OperatorFragment, Policy::OperatorCount::kColumn *Policy::kWmmaFragmentsPerAccess >
 This is the fragment size produced by one access of the iterator. More...
 
using Padding = MatrixShape< 0, 4 *Policy::kElementsPerAccess >
 This is the complete warp-level accumulator tile. More...
 

Public Member Functions

CUTLASS_HOST_DEVICE TileIteratorWmmaTensorOp ()
 Default constructor. More...
 
CUTLASS_HOST_DEVICE TileIteratorWmmaTensorOp (TensorRef const &ref, unsigned lane_id)
 Constructor from TensorRef. More...
 
CUTLASS_HOST_DEVICE TileIteratorWmmaTensorOpadd_pointer_offset (Index pointer_offset)
 Adds a pointer offset. More...
 
CUTLASS_HOST_DEVICE TileIteratorWmmaTensorOpadd_tile_offset (TensorCoord const &tile_offset)
 advances in units of whole tiles along the logical coordinate space of the tensor More...
 
CUTLASS_HOST_DEVICE TileIteratorWmmaTensorOpoperator+= (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...
 

Member Typedef Documentation

template<typename WarpShape_ , typename OperatorShape_ , typename OperatorFragment_ >
using cutlass::epilogue::warp::TileIteratorWmmaTensorOp< WarpShape_, OperatorShape_, OperatorFragment_, layout::RowMajor >::Element = typename cutlass::arch::WmmaToCutlassDataType<WmmaDataType>::Type
template<typename WarpShape_ , typename OperatorShape_ , typename OperatorFragment_ >
using cutlass::epilogue::warp::TileIteratorWmmaTensorOp< WarpShape_, OperatorShape_, OperatorFragment_, layout::RowMajor >::Fragment = WmmaFragmentArray<OperatorFragment, Policy::OperatorCount::kColumn * Policy::kWmmaFragmentsPerAccess>
template<typename WarpShape_ , typename OperatorShape_ , typename OperatorFragment_ >
using cutlass::epilogue::warp::TileIteratorWmmaTensorOp< WarpShape_, OperatorShape_, OperatorFragment_, layout::RowMajor >::Index = typename TensorRef::Index
template<typename WarpShape_ , typename OperatorShape_ , typename OperatorFragment_ >
using cutlass::epilogue::warp::TileIteratorWmmaTensorOp< WarpShape_, OperatorShape_, OperatorFragment_, layout::RowMajor >::Layout = layout::RowMajor
template<typename WarpShape_ , typename OperatorShape_ , typename OperatorFragment_ >
using cutlass::epilogue::warp::TileIteratorWmmaTensorOp< WarpShape_, OperatorShape_, OperatorFragment_, layout::RowMajor >::LongIndex = typename TensorRef::LongIndex
template<typename WarpShape_ , typename OperatorShape_ , typename OperatorFragment_ >
using cutlass::epilogue::warp::TileIteratorWmmaTensorOp< WarpShape_, OperatorShape_, OperatorFragment_, layout::RowMajor >::OperatorFragment = OperatorFragment_
template<typename WarpShape_ , typename OperatorShape_ , typename OperatorFragment_ >
using cutlass::epilogue::warp::TileIteratorWmmaTensorOp< WarpShape_, OperatorShape_, OperatorFragment_, layout::RowMajor >::OperatorShape = OperatorShape_
template<typename WarpShape_ , typename OperatorShape_ , typename OperatorFragment_ >
using cutlass::epilogue::warp::TileIteratorWmmaTensorOp< WarpShape_, OperatorShape_, OperatorFragment_, layout::RowMajor >::Padding = MatrixShape< 0, 4 * Policy::kElementsPerAccess >

Padding quantity

template<typename WarpShape_ , typename OperatorShape_ , typename OperatorFragment_ >
using cutlass::epilogue::warp::TileIteratorWmmaTensorOp< WarpShape_, OperatorShape_, OperatorFragment_, layout::RowMajor >::Policy = WmmaTensorOpPolicy<WarpShape, OperatorShape, Layout>
template<typename WarpShape_ , typename OperatorShape_ , typename OperatorFragment_ >
using cutlass::epilogue::warp::TileIteratorWmmaTensorOp< WarpShape_, OperatorShape_, OperatorFragment_, layout::RowMajor >::Shape = MatrixShape< Policy::kRowsPerIteration, WarpShape::kN >
template<typename WarpShape_ , typename OperatorShape_ , typename OperatorFragment_ >
using cutlass::epilogue::warp::TileIteratorWmmaTensorOp< WarpShape_, OperatorShape_, OperatorFragment_, layout::RowMajor >::TensorCoord = MatrixCoord
template<typename WarpShape_ , typename OperatorShape_ , typename OperatorFragment_ >
using cutlass::epilogue::warp::TileIteratorWmmaTensorOp< WarpShape_, OperatorShape_, OperatorFragment_, layout::RowMajor >::TensorRef = TensorRef<Element, Layout>
template<typename WarpShape_ , typename OperatorShape_ , typename OperatorFragment_ >
using cutlass::epilogue::warp::TileIteratorWmmaTensorOp< WarpShape_, OperatorShape_, OperatorFragment_, layout::RowMajor >::WarpShape = WarpShape_
template<typename WarpShape_ , typename OperatorShape_ , typename OperatorFragment_ >
using cutlass::epilogue::warp::TileIteratorWmmaTensorOp< WarpShape_, OperatorShape_, OperatorFragment_, layout::RowMajor >::WmmaDataType = typename OperatorFragment::element_type

Constructor & Destructor Documentation

template<typename WarpShape_ , typename OperatorShape_ , typename OperatorFragment_ >
CUTLASS_HOST_DEVICE cutlass::epilogue::warp::TileIteratorWmmaTensorOp< WarpShape_, OperatorShape_, OperatorFragment_, layout::RowMajor >::TileIteratorWmmaTensorOp ( )
inline
template<typename WarpShape_ , typename OperatorShape_ , typename OperatorFragment_ >
CUTLASS_HOST_DEVICE cutlass::epilogue::warp::TileIteratorWmmaTensorOp< WarpShape_, OperatorShape_, OperatorFragment_, layout::RowMajor >::TileIteratorWmmaTensorOp ( TensorRef const &  ref,
unsigned  lane_id 
)
inline

Member Function Documentation

template<typename WarpShape_ , typename OperatorShape_ , typename OperatorFragment_ >
CUTLASS_HOST_DEVICE TileIteratorWmmaTensorOp& cutlass::epilogue::warp::TileIteratorWmmaTensorOp< WarpShape_, OperatorShape_, OperatorFragment_, layout::RowMajor >::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 OperatorShape_ , typename OperatorFragment_ >
CUTLASS_HOST_DEVICE TileIteratorWmmaTensorOp& cutlass::epilogue::warp::TileIteratorWmmaTensorOp< WarpShape_, OperatorShape_, OperatorFragment_, layout::RowMajor >::add_tile_offset ( TensorCoord const &  tile_offset)
inline
template<typename WarpShape_ , typename OperatorShape_ , typename OperatorFragment_ >
CUTLASS_HOST_DEVICE void cutlass::epilogue::warp::TileIteratorWmmaTensorOp< WarpShape_, OperatorShape_, OperatorFragment_, layout::RowMajor >::load ( Fragment frag) const
inline
template<typename WarpShape_ , typename OperatorShape_ , typename OperatorFragment_ >
CUTLASS_HOST_DEVICE void cutlass::epilogue::warp::TileIteratorWmmaTensorOp< WarpShape_, OperatorShape_, OperatorFragment_, layout::RowMajor >::load_with_pointer_offset ( Fragment frag,
Index  pointer_offset 
) const
inline
template<typename WarpShape_ , typename OperatorShape_ , typename OperatorFragment_ >
CUTLASS_HOST_DEVICE TileIteratorWmmaTensorOp& cutlass::epilogue::warp::TileIteratorWmmaTensorOp< WarpShape_, OperatorShape_, OperatorFragment_, layout::RowMajor >::operator+= ( TensorCoord const &  tile_offset)
inline
template<typename WarpShape_ , typename OperatorShape_ , typename OperatorFragment_ >
CUTLASS_HOST_DEVICE void cutlass::epilogue::warp::TileIteratorWmmaTensorOp< WarpShape_, OperatorShape_, OperatorFragment_, layout::RowMajor >::store ( Fragment const &  frag)
inline
template<typename WarpShape_ , typename OperatorShape_ , typename OperatorFragment_ >
CUTLASS_HOST_DEVICE void cutlass::epilogue::warp::TileIteratorWmmaTensorOp< WarpShape_, OperatorShape_, OperatorFragment_, layout::RowMajor >::store_with_pointer_offset ( Fragment const &  frag,
Index  pointer_offset 
)
inline

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