Cutlass
CUDA Templates for Linear Algebra Subroutines and Solvers
|
Specialization for rank=1 case with no internal StrideVector.
#include <tensor_ref.h>
Classes | |
struct | StrideVector |
Public Types | |
typedef Storage_ | Storage |
Data type of individual access. More... | |
typedef MapFunc_ | MapFunc |
Mapping function from logical coordinate to internal n-D array. More... | |
typedef Index_ | Index |
Index type. More... | |
typedef LongIndex_ | LongIndex |
Typically, strides in memory can be very large. More... | |
typedef Coord< kRank > | TensorCoord |
Coordinate in logical tensor space. More... | |
typedef Coord< kStorageRank > | StorageCoord |
Coordinate in storage n-D array. More... | |
typedef TensorRef< typename platform::remove_const< Storage >::type const, Rank_, MapFunc_, kStorageRank, Index_, LongIndex_ > | ConstTensorRef |
Tensor reference to of constant value. More... | |
typedef TensorCoord | Coord_t |
Coordinate in logical tensor space. More... | |
Public Member Functions | |
CUTLASS_HOST_DEVICE | TensorRef (Storage *ptr=nullptr) |
Helper for 1-D memory. All higher ranks are projected onto the fastest changing rank. More... | |
CUTLASS_HOST_DEVICE | TensorRef (Storage *ptr, StrideVector const &stride) |
Constructs from a single pointer and stride vector. More... | |
CUTLASS_HOST_DEVICE | TensorRef (Storage *ptr, StorageCoord const &stride) |
CUTLASS_HOST_DEVICE | TensorRef (TensorRef< typename platform::remove_const< Storage >::type, kRank, MapFunc, kStorageRank, Index, LongIndex > const &ref) |
Enables conversion from TensorRef of non-const type. More... | |
CUTLASS_HOST_DEVICE ConstTensorRef | const_ref () const |
Returns a reference to constant-valued tensor. More... | |
CUTLASS_HOST_DEVICE void | reset (Storage *ptr=nullptr) |
Updates only the pointer. More... | |
CUTLASS_HOST_DEVICE void | reset (Storage *ptr, StorageCoord const &stride) |
Updates the pointer, stride, and location within a TensorRef. More... | |
CUTLASS_HOST_DEVICE bool | good () const |
Returns true if the TensorRef may be safely accessed. More... | |
CUTLASS_HOST_DEVICE Storage * | data () const |
Returns the pointer to referenced data. More... | |
CUTLASS_HOST_DEVICE StorageCoord | stride () const |
Returns the stride of the tensor. More... | |
CUTLASS_HOST_DEVICE Index | stride (int dim) const |
Returns the stride of the tensor in the given dimension. More... | |
CUTLASS_HOST_DEVICE Index | leading_dim (int idx=0) const |
Returns the maximum stride element as the 'leading dimension'. More... | |
CUTLASS_HOST_DEVICE StorageCoord | map (TensorCoord const &coord) const |
Maps a logical coordinate to an n-D array in memory. More... | |
CUTLASS_HOST_DEVICE LongIndex | offset (TensorCoord const &coord) const |
Computes the offset of an index from the origin of the tensor. More... | |
CUTLASS_HOST_DEVICE Storage & | at (TensorCoord const &coord) const |
Returns a reference to the element at a given Coord. More... | |
CUTLASS_HOST_DEVICE Storage & | at (LongIndex idx) const |
Returns a reference to the element at a given linear index. More... | |
CUTLASS_HOST_DEVICE Storage & | operator[] (TensorCoord const &coord) const |
Returns a reference to the element at a given Coord. More... | |
CUTLASS_HOST_DEVICE Storage & | operator[] (LongIndex idx) const |
Returns a reference to the element at a given linear index. More... | |
CUTLASS_HOST_DEVICE TensorRef & | add_pointer_offset (LongIndex delta) |
Adds an offset to each pointer. More... | |
CUTLASS_HOST_DEVICE TensorRef | operator+ (TensorCoord const &b) const |
Returns a TensorRef offset by a given amount. More... | |
CUTLASS_HOST_DEVICE TensorRef & | operator+= (TensorCoord const &b) |
Returns a TensorRef offset by a given amount. More... | |
CUTLASS_HOST_DEVICE TensorRef | operator- (TensorCoord const &b) const |
Returns a TensorRef offset by a given amount. More... | |
CUTLASS_HOST_DEVICE TensorRef & | operator-= (TensorCoord const &b) |
Returns a TensorRef offset by a given amount. More... | |
Static Public Attributes | |
static int const | kRank = Rank_ |
Logical rank of tensor index space. More... | |
static int const | kStorageRank = 1 |
Rank of internal storage. More... | |
static int const | Rank = kRank |
Logical rank of tensor index space. More... | |
typedef TensorRef< typename platform::remove_const<Storage>::type const, Rank_, MapFunc_, kStorageRank, Index_, LongIndex_> cutlass::TensorRef< Storage_, Rank_, MapFunc_, 1, Index_, LongIndex_ >::ConstTensorRef |
typedef TensorCoord cutlass::TensorRef< Storage_, Rank_, MapFunc_, 1, Index_, LongIndex_ >::Coord_t |
typedef Index_ cutlass::TensorRef< Storage_, Rank_, MapFunc_, 1, Index_, LongIndex_ >::Index |
typedef LongIndex_ cutlass::TensorRef< Storage_, Rank_, MapFunc_, 1, Index_, LongIndex_ >::LongIndex |
typedef MapFunc_ cutlass::TensorRef< Storage_, Rank_, MapFunc_, 1, Index_, LongIndex_ >::MapFunc |
typedef Storage_ cutlass::TensorRef< Storage_, Rank_, MapFunc_, 1, Index_, LongIndex_ >::Storage |
typedef Coord<kStorageRank> cutlass::TensorRef< Storage_, Rank_, MapFunc_, 1, Index_, LongIndex_ >::StorageCoord |
typedef Coord<kRank> cutlass::TensorRef< Storage_, Rank_, MapFunc_, 1, Index_, LongIndex_ >::TensorCoord |
|
inline |
|
inline |
|
inline |
Constructs from a pointer and a stride vector of size kRank. If fastest changing stride is not 1, construction fails and subsequent calls to good() will return false.
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
static |
|
static |
|
static |