CUTLASS
CUDA Templates for Linear Algebra Subroutines and Solvers
Classes | Public Types | Public Member Functions | Static Public Attributes | List of all members
cutlass::epilogue::warp::TileIteratorVoltaTensorOp< WarpShape_, gemm::GemmShape< 32, 32, 4 >, half_t, layout::RowMajor > Class Template Reference

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

#include <tile_iterator_volta_tensor_op.h>

Classes

struct  Detail
 

Public Types

using WarpShape = WarpShape_
 
using InterleavedTileShape = gemm::GemmShape< 32, 32, 4 >
 
using Element = half_t
 
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 = VoltaTensorOpPolicy< WarpShape, InterleavedTileShape, Element, Layout >
 
using Shape = MatrixShape< Policy::kRowsPerIteration, WarpShape::kN >
 Shape of the tile in memory. More...
 
using AccessType = typename Policy::AccessType
 Array type for aligned memory accesses. More...
 
using Fragment = typename Policy::Fragment
 This is the fragment size produced by one access of the iterator. More...
 
using AccumulatorTile = typename Policy::AccumulatorTile
 This is the complete warp-level accumulator tile. More...
 
using Padding = MatrixShape< 0, Policy::kElementsPerAccess >
 Padding quantity. More...
 

Public Member Functions

CUTLASS_HOST_DEVICE TileIteratorVoltaTensorOp ()
 Default constructor. More...
 
CUTLASS_DEVICE TileIteratorVoltaTensorOp (TensorRef const &ref, unsigned lane_id)
 Constructor from TensorRef. More...
 
CUTLASS_HOST_DEVICE TileIteratorVoltaTensorOpadd_pointer_offset (Index pointer_offset)
 Adds a pointer offset. More...
 
CUTLASS_HOST_DEVICE TileIteratorVoltaTensorOpadd_tile_offset (TensorCoord const &tile_offset)
 advances in units of whole tiles along the logical coordinate space of the tensor More...
 
CUTLASS_HOST_DEVICE TileIteratorVoltaTensorOpoperator+= (TensorCoord const &tile_offset)
 
CUTLASS_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 const &frag, Index pointer_offset)
 Load. More...
 
CUTLASS_HOST_DEVICE void load (Fragment const &frag)
 Load. More...
 

Static Public Attributes

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

Member Typedef Documentation

template<typename WarpShape_ >
using cutlass::epilogue::warp::TileIteratorVoltaTensorOp< WarpShape_, gemm::GemmShape< 32, 32, 4 >, half_t, layout::RowMajor >::AccessType = typename Policy::AccessType
template<typename WarpShape_ >
using cutlass::epilogue::warp::TileIteratorVoltaTensorOp< WarpShape_, gemm::GemmShape< 32, 32, 4 >, half_t, layout::RowMajor >::AccumulatorTile = typename Policy::AccumulatorTile
template<typename WarpShape_ >
using cutlass::epilogue::warp::TileIteratorVoltaTensorOp< WarpShape_, gemm::GemmShape< 32, 32, 4 >, half_t, layout::RowMajor >::Element = half_t
template<typename WarpShape_ >
using cutlass::epilogue::warp::TileIteratorVoltaTensorOp< WarpShape_, gemm::GemmShape< 32, 32, 4 >, half_t, layout::RowMajor >::Fragment = typename Policy::Fragment
template<typename WarpShape_ >
using cutlass::epilogue::warp::TileIteratorVoltaTensorOp< WarpShape_, gemm::GemmShape< 32, 32, 4 >, half_t, layout::RowMajor >::Index = typename TensorRef::Index
template<typename WarpShape_ >
using cutlass::epilogue::warp::TileIteratorVoltaTensorOp< WarpShape_, gemm::GemmShape< 32, 32, 4 >, half_t, layout::RowMajor >::InterleavedTileShape = gemm::GemmShape<32, 32, 4>
template<typename WarpShape_ >
using cutlass::epilogue::warp::TileIteratorVoltaTensorOp< WarpShape_, gemm::GemmShape< 32, 32, 4 >, half_t, layout::RowMajor >::Layout = layout::RowMajor
template<typename WarpShape_ >
using cutlass::epilogue::warp::TileIteratorVoltaTensorOp< WarpShape_, gemm::GemmShape< 32, 32, 4 >, half_t, layout::RowMajor >::LongIndex = typename TensorRef::LongIndex
template<typename WarpShape_ >
using cutlass::epilogue::warp::TileIteratorVoltaTensorOp< WarpShape_, gemm::GemmShape< 32, 32, 4 >, half_t, layout::RowMajor >::Padding = MatrixShape< 0, Policy::kElementsPerAccess>
template<typename WarpShape_ >
using cutlass::epilogue::warp::TileIteratorVoltaTensorOp< WarpShape_, gemm::GemmShape< 32, 32, 4 >, half_t, layout::RowMajor >::Shape = MatrixShape< Policy::kRowsPerIteration, WarpShape::kN >
template<typename WarpShape_ >
using cutlass::epilogue::warp::TileIteratorVoltaTensorOp< WarpShape_, gemm::GemmShape< 32, 32, 4 >, half_t, layout::RowMajor >::TensorCoord = MatrixCoord
template<typename WarpShape_ >
using cutlass::epilogue::warp::TileIteratorVoltaTensorOp< WarpShape_, gemm::GemmShape< 32, 32, 4 >, half_t, layout::RowMajor >::TensorRef = TensorRef<Element, Layout>
template<typename WarpShape_ >
using cutlass::epilogue::warp::TileIteratorVoltaTensorOp< WarpShape_, gemm::GemmShape< 32, 32, 4 >, half_t, layout::RowMajor >::WarpShape = WarpShape_

Constructor & Destructor Documentation

template<typename WarpShape_ >
CUTLASS_DEVICE cutlass::epilogue::warp::TileIteratorVoltaTensorOp< WarpShape_, gemm::GemmShape< 32, 32, 4 >, half_t, layout::RowMajor >::TileIteratorVoltaTensorOp ( TensorRef const &  ref,
unsigned  lane_id 
)
inline

Member Function Documentation

template<typename WarpShape_ >
CUTLASS_HOST_DEVICE TileIteratorVoltaTensorOp& cutlass::epilogue::warp::TileIteratorVoltaTensorOp< WarpShape_, gemm::GemmShape< 32, 32, 4 >, half_t, 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_ >
CUTLASS_HOST_DEVICE TileIteratorVoltaTensorOp& cutlass::epilogue::warp::TileIteratorVoltaTensorOp< WarpShape_, gemm::GemmShape< 32, 32, 4 >, half_t, layout::RowMajor >::add_tile_offset ( TensorCoord const &  tile_offset)
inline
template<typename WarpShape_ >
CUTLASS_HOST_DEVICE void cutlass::epilogue::warp::TileIteratorVoltaTensorOp< WarpShape_, gemm::GemmShape< 32, 32, 4 >, half_t, layout::RowMajor >::load ( Fragment const &  frag)
inline
template<typename WarpShape_ >
CUTLASS_HOST_DEVICE void cutlass::epilogue::warp::TileIteratorVoltaTensorOp< WarpShape_, gemm::GemmShape< 32, 32, 4 >, half_t, layout::RowMajor >::load_with_pointer_offset ( Fragment const &  frag,
Index  pointer_offset 
)
inline
template<typename WarpShape_ >
CUTLASS_HOST_DEVICE TileIteratorVoltaTensorOp& cutlass::epilogue::warp::TileIteratorVoltaTensorOp< WarpShape_, gemm::GemmShape< 32, 32, 4 >, half_t, layout::RowMajor >::operator+= ( TensorCoord const &  tile_offset)
inline
template<typename WarpShape_ >
CUTLASS_HOST_DEVICE void cutlass::epilogue::warp::TileIteratorVoltaTensorOp< WarpShape_, gemm::GemmShape< 32, 32, 4 >, half_t, layout::RowMajor >::store ( Fragment const &  frag)
inline
template<typename WarpShape_ >
CUTLASS_DEVICE void cutlass::epilogue::warp::TileIteratorVoltaTensorOp< WarpShape_, gemm::GemmShape< 32, 32, 4 >, half_t, layout::RowMajor >::store_with_pointer_offset ( Fragment const &  frag,
Index  pointer_offset 
)
inline

Member Data Documentation

template<typename WarpShape_ >
int const cutlass::epilogue::warp::TileIteratorVoltaTensorOp< WarpShape_, gemm::GemmShape< 32, 32, 4 >, half_t, layout::RowMajor >::kElementsPerAccess = Policy::kElementsPerAccess
static
template<typename WarpShape_ >
int const cutlass::epilogue::warp::TileIteratorVoltaTensorOp< WarpShape_, gemm::GemmShape< 32, 32, 4 >, half_t, layout::RowMajor >::kIterations = Policy::kIterations
static

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