CUTLASS
CUDA Templates for Linear Algebra Subroutines and Solvers
Public Types | Public Member Functions | Static Public Attributes | List of all members
cutlass::epilogue::warp::FragmentIteratorTensorOp< WarpShape_, OperatorShape_, OperatorElementC_, OperatorFragmentC_, layout::ColumnMajorInterleaved< InterleavedK > > Class Template Reference

Dedicated to interleaved layout.

#include <fragment_iterator_tensor_op.h>

Public Types

using WarpShape = WarpShape_
 
using OperatorShape = OperatorShape_
 
using OperatorElementC = OperatorElementC_
 
using OperatorFragmentC = OperatorFragmentC_
 
using Layout = layout::ColumnMajorInterleaved< kInterleavedK >
 
using Policy = TensorOpPolicy< WarpShape, OperatorShape, Layout >
 
using Fragment = Array< OperatorElementC, Policy::kElementsPerAccess *InterleavedK/OperatorShape::kN >
 This is the fragment size produced by one access of the iterator. More...
 
using AccumulatorTile = Array< OperatorElementC, OperatorFragmentC::kElements *Policy::OperatorCount::kRow *Policy::OperatorCount::kColumn >
 This is the complete warp-level accumulator tile. More...
 

Public Member Functions

CUTLASS_HOST_DEVICE FragmentIteratorTensorOp (AccumulatorTile const &accum)
 Constructs an iterator. More...
 
CUTLASS_HOST_DEVICE FragmentIteratorTensorOpoperator++ ()
 Increments. More...
 
CUTLASS_HOST_DEVICE FragmentIteratorTensorOpoperator-- ()
 Decrements. More...
 
CUTLASS_HOST_DEVICE void load (Fragment &frag, int index_offset=0) const
 Loads a fragment from the referenced part of the accumulator tile. More...
 

Static Public Attributes

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

Member Typedef Documentation

template<typename WarpShape_ , typename OperatorShape_ , typename OperatorElementC_ , typename OperatorFragmentC_ , int InterleavedK>
using cutlass::epilogue::warp::FragmentIteratorTensorOp< WarpShape_, OperatorShape_, OperatorElementC_, OperatorFragmentC_, layout::ColumnMajorInterleaved< InterleavedK > >::AccumulatorTile = Array<OperatorElementC, OperatorFragmentC::kElements * Policy::OperatorCount::kRow * Policy::OperatorCount::kColumn>
template<typename WarpShape_ , typename OperatorShape_ , typename OperatorElementC_ , typename OperatorFragmentC_ , int InterleavedK>
using cutlass::epilogue::warp::FragmentIteratorTensorOp< WarpShape_, OperatorShape_, OperatorElementC_, OperatorFragmentC_, layout::ColumnMajorInterleaved< InterleavedK > >::Fragment = Array<OperatorElementC, Policy::kElementsPerAccess * InterleavedK / OperatorShape::kN>
template<typename WarpShape_ , typename OperatorShape_ , typename OperatorElementC_ , typename OperatorFragmentC_ , int InterleavedK>
using cutlass::epilogue::warp::FragmentIteratorTensorOp< WarpShape_, OperatorShape_, OperatorElementC_, OperatorFragmentC_, layout::ColumnMajorInterleaved< InterleavedK > >::Layout = layout::ColumnMajorInterleaved<kInterleavedK>
template<typename WarpShape_ , typename OperatorShape_ , typename OperatorElementC_ , typename OperatorFragmentC_ , int InterleavedK>
using cutlass::epilogue::warp::FragmentIteratorTensorOp< WarpShape_, OperatorShape_, OperatorElementC_, OperatorFragmentC_, layout::ColumnMajorInterleaved< InterleavedK > >::OperatorElementC = OperatorElementC_
template<typename WarpShape_ , typename OperatorShape_ , typename OperatorElementC_ , typename OperatorFragmentC_ , int InterleavedK>
using cutlass::epilogue::warp::FragmentIteratorTensorOp< WarpShape_, OperatorShape_, OperatorElementC_, OperatorFragmentC_, layout::ColumnMajorInterleaved< InterleavedK > >::OperatorFragmentC = OperatorFragmentC_
template<typename WarpShape_ , typename OperatorShape_ , typename OperatorElementC_ , typename OperatorFragmentC_ , int InterleavedK>
using cutlass::epilogue::warp::FragmentIteratorTensorOp< WarpShape_, OperatorShape_, OperatorElementC_, OperatorFragmentC_, layout::ColumnMajorInterleaved< InterleavedK > >::OperatorShape = OperatorShape_
template<typename WarpShape_ , typename OperatorShape_ , typename OperatorElementC_ , typename OperatorFragmentC_ , int InterleavedK>
using cutlass::epilogue::warp::FragmentIteratorTensorOp< WarpShape_, OperatorShape_, OperatorElementC_, OperatorFragmentC_, layout::ColumnMajorInterleaved< InterleavedK > >::Policy = TensorOpPolicy<WarpShape, OperatorShape, Layout>
template<typename WarpShape_ , typename OperatorShape_ , typename OperatorElementC_ , typename OperatorFragmentC_ , int InterleavedK>
using cutlass::epilogue::warp::FragmentIteratorTensorOp< WarpShape_, OperatorShape_, OperatorElementC_, OperatorFragmentC_, layout::ColumnMajorInterleaved< InterleavedK > >::WarpShape = WarpShape_

Constructor & Destructor Documentation

template<typename WarpShape_ , typename OperatorShape_ , typename OperatorElementC_ , typename OperatorFragmentC_ , int InterleavedK>
CUTLASS_HOST_DEVICE cutlass::epilogue::warp::FragmentIteratorTensorOp< WarpShape_, OperatorShape_, OperatorElementC_, OperatorFragmentC_, layout::ColumnMajorInterleaved< InterleavedK > >::FragmentIteratorTensorOp ( AccumulatorTile const &  accum)
inline

Member Function Documentation

template<typename WarpShape_ , typename OperatorShape_ , typename OperatorElementC_ , typename OperatorFragmentC_ , int InterleavedK>
CUTLASS_HOST_DEVICE void cutlass::epilogue::warp::FragmentIteratorTensorOp< WarpShape_, OperatorShape_, OperatorElementC_, OperatorFragmentC_, layout::ColumnMajorInterleaved< InterleavedK > >::load ( Fragment frag,
int  index_offset = 0 
) const
inline
template<typename WarpShape_ , typename OperatorShape_ , typename OperatorElementC_ , typename OperatorFragmentC_ , int InterleavedK>
CUTLASS_HOST_DEVICE FragmentIteratorTensorOp& cutlass::epilogue::warp::FragmentIteratorTensorOp< WarpShape_, OperatorShape_, OperatorElementC_, OperatorFragmentC_, layout::ColumnMajorInterleaved< InterleavedK > >::operator++ ( )
inline
template<typename WarpShape_ , typename OperatorShape_ , typename OperatorElementC_ , typename OperatorFragmentC_ , int InterleavedK>
CUTLASS_HOST_DEVICE FragmentIteratorTensorOp& cutlass::epilogue::warp::FragmentIteratorTensorOp< WarpShape_, OperatorShape_, OperatorElementC_, OperatorFragmentC_, layout::ColumnMajorInterleaved< InterleavedK > >::operator-- ( )
inline

Member Data Documentation

template<typename WarpShape_ , typename OperatorShape_ , typename OperatorElementC_ , typename OperatorFragmentC_ , int InterleavedK>
int const cutlass::epilogue::warp::FragmentIteratorTensorOp< WarpShape_, OperatorShape_, OperatorElementC_, OperatorFragmentC_, layout::ColumnMajorInterleaved< InterleavedK > >::kInterleavedK = InterleavedK
static
template<typename WarpShape_ , typename OperatorShape_ , typename OperatorElementC_ , typename OperatorFragmentC_ , int InterleavedK>
int const cutlass::epilogue::warp::FragmentIteratorTensorOp< WarpShape_, OperatorShape_, OperatorElementC_, OperatorFragmentC_, layout::ColumnMajorInterleaved< InterleavedK > >::kIterations = Policy::kIterations
static

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