| CUTLASS CUDA Templates for Linear Algebra Subroutines and Solvers

- Main Page
- Modules
- Namespaces
- Classes
- Files

- Class List
- Class Index
- Class Hierarchy
- Class Members

Public Types | Public Member Functions | Static Public Member Functions | Static Public Attributes | List of all members
cutlass::layout::TensorOpMultiplicandCrosswise< ElementSize, Crosswise > Struct Template Reference

`#include <tensor_op_multiplicand_sm75.h>`

## Public Types
using | Index = int32_t
| Index type used for coordinates. More...
using | LongIndex = int64_t
| Long index type used for offsets. More...
using | TensorCoord = PitchLinearCoord
| Logical coordinate. More...
using | Stride = Coord< kStrideRank, Index, LongIndex >
| Stride vector. More...
using | Base = TensorOpMultiplicand< ElementSize, Crosswise >
using | TileShape = typename Base::TileShape
using | PartitionShape = typename Base::PartitionShape
using | PartitionCount = typename Base::PartitionCount
using | AccessCount = typename Base::AccessCount

## Public Member Functions
CUTLASS_HOST_DEVICE | TensorOpMultiplicandCrosswise (Index ldm=0)
| Ctor. More...
CUTLASS_HOST_DEVICE | TensorOpMultiplicandCrosswise (Stride stride)
| Ctor. More...
CUTLASS_HOST_DEVICE LongIndex | operator() (TensorCoord const &coord) const
CUTLASS_HOST_DEVICE TensorCoord | inverse (LongIndex offset) const
| Inverse of layout function, mapping linear offset to logical coordinate. More...
CUTLASS_HOST_DEVICE Stride | stride () const
| Returns the stride of the layout. More...
CUTLASS_HOST_DEVICE Stride & | stride ()
| Returns the stride of the layout. More...
CUTLASS_HOST_DEVICE LongIndex | capacity (TensorCoord const &extent) const

## Static Public Member Functions
static CUTLASS_HOST_DEVICE TensorOpMultiplicandCrosswise | packed (TensorCoord const &extent)
| Helper returns a layout to a tightly packed tensor. More...

## Static Public Attributes
static int const | kRank = 2
| Logical rank of tensor. More...
static int const | kStrideRank = 1
| Rank of stride vector. More...
static int const | kAccessSize = Base::kAccessSize
| This layout is optimized for 128b accesses. More...
static int const | kElementSize = Base::kElementSize
static int const | kElementsPerAccess = Base::kElementsPerAccess
static int const | kCrosswise = Base::kCrosswise
static int const | kFactor = Base::kFactor

## Detailed Description

### template<int ElementSize, int Crosswise>
struct cutlass::layout::TensorOpMultiplicandCrosswise< ElementSize, Crosswise >

Template based on element size (in bits) - defined in terms of pitch-linear memory and Crosswise size (in elements).

## Member Typedef Documentation

template<int ElementSize, int Crosswise>

using cutlass::layout::TensorOpMultiplicandCrosswise< ElementSize, Crosswise >::AccessCount = typename Base::AccessCount

template<int ElementSize, int Crosswise>

using cutlass::layout::TensorOpMultiplicandCrosswise< ElementSize, Crosswise >::Base = TensorOpMultiplicand<ElementSize, Crosswise>

template<int ElementSize, int Crosswise>

using cutlass::layout::TensorOpMultiplicandCrosswise< ElementSize, Crosswise >::Index = int32_t

template<int ElementSize, int Crosswise>

using cutlass::layout::TensorOpMultiplicandCrosswise< ElementSize, Crosswise >::LongIndex = int64_t

template<int ElementSize, int Crosswise>

using cutlass::layout::TensorOpMultiplicandCrosswise< ElementSize, Crosswise >::PartitionCount = typename Base::PartitionCount

template<int ElementSize, int Crosswise>

using cutlass::layout::TensorOpMultiplicandCrosswise< ElementSize, Crosswise >::PartitionShape = typename Base::PartitionShape

template<int ElementSize, int Crosswise>

using cutlass::layout::TensorOpMultiplicandCrosswise< ElementSize, Crosswise >::Stride = Coord<kStrideRank, Index, LongIndex>

template<int ElementSize, int Crosswise>

using cutlass::layout::TensorOpMultiplicandCrosswise< ElementSize, Crosswise >::TensorCoord = PitchLinearCoord

template<int ElementSize, int Crosswise>

using cutlass::layout::TensorOpMultiplicandCrosswise< ElementSize, Crosswise >::TileShape = typename Base::TileShape

## Constructor & Destructor Documentation

template<int ElementSize, int Crosswise>

CUTLASS_HOST_DEVICE cutlass::layout::TensorOpMultiplicandCrosswise< ElementSize, Crosswise >::TensorOpMultiplicandCrosswise | ( | Index | ldm = `0` | ) |
| inline

template<int ElementSize, int Crosswise>

CUTLASS_HOST_DEVICE cutlass::layout::TensorOpMultiplicandCrosswise< ElementSize, Crosswise >::TensorOpMultiplicandCrosswise | ( | Stride | stride | ) |
| inline

## Member Function Documentation

template<int ElementSize, int Crosswise>

CUTLASS_HOST_DEVICE LongIndex cutlass::layout::TensorOpMultiplicandCrosswise< ElementSize, Crosswise >::capacity | ( | TensorCoord const & | extent | ) | const
| inline

Compute the number of contiguous elements needed to store a tensor with the given size

template<int ElementSize, int Crosswise>

CUTLASS_HOST_DEVICE TensorCoord cutlass::layout::TensorOpMultiplicandCrosswise< ElementSize, Crosswise >::inverse | ( | LongIndex | offset | ) | const
| inline

template<int ElementSize, int Crosswise>

CUTLASS_HOST_DEVICE LongIndex cutlass::layout::TensorOpMultiplicandCrosswise< ElementSize, Crosswise >::operator() | ( | TensorCoord const & | coord | ) | const
| inline

Returns the offset of a coordinate in linear memory. Assumes coordinate has convention (contiguous, strided)

template<int ElementSize, int Crosswise>

static CUTLASS_HOST_DEVICE TensorOpMultiplicandCrosswise cutlass::layout::TensorOpMultiplicandCrosswise< ElementSize, Crosswise >::packed | ( | TensorCoord const & | extent | ) |
| inline static

template<int ElementSize, int Crosswise>

CUTLASS_HOST_DEVICE Stride cutlass::layout::TensorOpMultiplicandCrosswise< ElementSize, Crosswise >::stride | ( |  | ) | const
| inline

template<int ElementSize, int Crosswise>

CUTLASS_HOST_DEVICE Stride& cutlass::layout::TensorOpMultiplicandCrosswise< ElementSize, Crosswise >::stride | ( |  | ) |
| inline

## Member Data Documentation

template<int ElementSize, int Crosswise>

int const cutlass::layout::TensorOpMultiplicandCrosswise< ElementSize, Crosswise >::kAccessSize = Base::kAccessSize
| static

template<int ElementSize, int Crosswise>

int const cutlass::layout::TensorOpMultiplicandCrosswise< ElementSize, Crosswise >::kCrosswise = Base::kCrosswise
| static

template<int ElementSize, int Crosswise>

int const cutlass::layout::TensorOpMultiplicandCrosswise< ElementSize, Crosswise >::kElementSize = Base::kElementSize
| static

template<int ElementSize, int Crosswise>

int const cutlass::layout::TensorOpMultiplicandCrosswise< ElementSize, Crosswise >::kElementsPerAccess = Base::kElementsPerAccess
| static

template<int ElementSize, int Crosswise>

int const cutlass::layout::TensorOpMultiplicandCrosswise< ElementSize, Crosswise >::kFactor = Base::kFactor
| static

template<int ElementSize, int Crosswise>

int const cutlass::layout::TensorOpMultiplicandCrosswise< ElementSize, Crosswise >::kRank = 2
| static

template<int ElementSize, int Crosswise>

int const cutlass::layout::TensorOpMultiplicandCrosswise< ElementSize, Crosswise >::kStrideRank = 1
| static

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

- tensor_op_multiplicand_sm75.h