TensorDescriptor< Transforms, LowerDimensionIdss, UpperDimensionIdss, VisibleDimensionIds, ElementSpaceSize > Struct Template Reference

TensorDescriptor&lt; Transforms, LowerDimensionIdss, UpperDimensionIdss, VisibleDimensionIds, ElementSpaceSize &gt; Struct Template Reference#

Composable Kernel: ck::TensorDescriptor< Transforms, LowerDimensionIdss, UpperDimensionIdss, VisibleDimensionIds, ElementSpaceSize > Struct Template Reference
ck::TensorDescriptor< Transforms, LowerDimensionIdss, UpperDimensionIdss, VisibleDimensionIds, ElementSpaceSize > Struct Template Reference

#include <tensor_descriptor.hpp>

Public Types

using VisibleIndex = MultiIndex< ndim_visible_ >
 
using HiddenIndex = MultiIndex< ndim_hidden_ >
 
using Coordinate = TensorCoordinate< ndim_hidden_, VisibleDimensionIds >
 
using ElementSize = remove_cv_t< decltype(InitializeElementSize(Transforms{}))>
 

Public Member Functions

__host__ constexpr __device__ TensorDescriptor ()
 
__host__ constexpr __device__ TensorDescriptor (const Transforms &transforms, ElementSpaceSize element_space_size)
 
template<index_t IDim>
__host__ constexpr __device__ auto GetLength (Number< IDim >) const
 
__host__ constexpr __device__ auto GetLengths () const
 
__host__ constexpr __device__ auto GetElementSize () const
 
__host__ constexpr __device__ auto GetElementSpaceSize () const
 
template<typename Idx >
__host__ constexpr __device__ index_t CalculateOffset (const Idx &idx) const
 
__host__ constexpr __device__ const auto & GetTransforms () const
 
__host__ __device__ void Print () const
 

Static Public Member Functions

__host__ static constexpr __device__ index_t GetNumOfTransform ()
 
__host__ static constexpr __device__ index_t GetNumOfVisibleDimension ()
 
__host__ static constexpr __device__ index_t GetNumOfHiddenDimension ()
 
__host__ static constexpr __device__ auto InitializeElementSize (const Transforms &transforms)
 
template<index_t IDim>
__host__ static constexpr __device__ auto GetTransformAndItsUpperDimension (Number< IDim >)
 
__host__ static constexpr __device__ index_t GetNumOfDimension ()
 
__host__ static constexpr __device__ auto GetLowerDimensionIdss ()
 
__host__ static constexpr __device__ auto GetUpperDimensionIdss ()
 
__host__ static constexpr __device__ auto GetVisibleDimensionIds ()
 
__host__ static constexpr __device__ bool IsKnownAtCompileTime ()
 

Public Attributes

Transforms transforms_
 
ElementSize element_size_
 
ElementSpaceSize element_space_size_
 

Static Public Attributes

constexpr static index_t ntransform_ = GetNumOfTransform()
 
constexpr static index_t ndim_visible_ = GetNumOfVisibleDimension()
 
constexpr static index_t ndim_hidden_ = GetNumOfHiddenDimension()
 

Member Typedef Documentation

◆ Coordinate

template<typename Transforms , typename LowerDimensionIdss , typename UpperDimensionIdss , typename VisibleDimensionIds , typename ElementSpaceSize >
using ck::TensorDescriptor< Transforms, LowerDimensionIdss, UpperDimensionIdss, VisibleDimensionIds, ElementSpaceSize >::Coordinate = TensorCoordinate<ndim_hidden_, VisibleDimensionIds>

◆ ElementSize

template<typename Transforms , typename LowerDimensionIdss , typename UpperDimensionIdss , typename VisibleDimensionIds , typename ElementSpaceSize >
using ck::TensorDescriptor< Transforms, LowerDimensionIdss, UpperDimensionIdss, VisibleDimensionIds, ElementSpaceSize >::ElementSize = remove_cv_t<decltype(InitializeElementSize(Transforms{}))>

◆ HiddenIndex

template<typename Transforms , typename LowerDimensionIdss , typename UpperDimensionIdss , typename VisibleDimensionIds , typename ElementSpaceSize >
using ck::TensorDescriptor< Transforms, LowerDimensionIdss, UpperDimensionIdss, VisibleDimensionIds, ElementSpaceSize >::HiddenIndex = MultiIndex<ndim_hidden_>

◆ VisibleIndex

template<typename Transforms , typename LowerDimensionIdss , typename UpperDimensionIdss , typename VisibleDimensionIds , typename ElementSpaceSize >
using ck::TensorDescriptor< Transforms, LowerDimensionIdss, UpperDimensionIdss, VisibleDimensionIds, ElementSpaceSize >::VisibleIndex = MultiIndex<ndim_visible_>

Constructor & Destructor Documentation

◆ TensorDescriptor() [1/2]

template<typename Transforms , typename LowerDimensionIdss , typename UpperDimensionIdss , typename VisibleDimensionIds , typename ElementSpaceSize >
__host__ constexpr __device__ ck::TensorDescriptor< Transforms, LowerDimensionIdss, UpperDimensionIdss, VisibleDimensionIds, ElementSpaceSize >::TensorDescriptor ( )
inlineconstexpr

◆ TensorDescriptor() [2/2]

template<typename Transforms , typename LowerDimensionIdss , typename UpperDimensionIdss , typename VisibleDimensionIds , typename ElementSpaceSize >
__host__ constexpr __device__ ck::TensorDescriptor< Transforms, LowerDimensionIdss, UpperDimensionIdss, VisibleDimensionIds, ElementSpaceSize >::TensorDescriptor ( const Transforms &  transforms,
ElementSpaceSize  element_space_size 
)
inlineconstexpr

Member Function Documentation

◆ CalculateOffset()

template<typename Transforms , typename LowerDimensionIdss , typename UpperDimensionIdss , typename VisibleDimensionIds , typename ElementSpaceSize >
template<typename Idx >
__host__ constexpr __device__ index_t ck::TensorDescriptor< Transforms, LowerDimensionIdss, UpperDimensionIdss, VisibleDimensionIds, ElementSpaceSize >::CalculateOffset ( const Idx &  idx) const
inlineconstexpr

◆ GetElementSize()

template<typename Transforms , typename LowerDimensionIdss , typename UpperDimensionIdss , typename VisibleDimensionIds , typename ElementSpaceSize >
__host__ constexpr __device__ auto ck::TensorDescriptor< Transforms, LowerDimensionIdss, UpperDimensionIdss, VisibleDimensionIds, ElementSpaceSize >::GetElementSize ( ) const
inlineconstexpr

◆ GetElementSpaceSize()

template<typename Transforms , typename LowerDimensionIdss , typename UpperDimensionIdss , typename VisibleDimensionIds , typename ElementSpaceSize >
__host__ constexpr __device__ auto ck::TensorDescriptor< Transforms, LowerDimensionIdss, UpperDimensionIdss, VisibleDimensionIds, ElementSpaceSize >::GetElementSpaceSize ( ) const
inlineconstexpr

◆ GetLength()

template<typename Transforms , typename LowerDimensionIdss , typename UpperDimensionIdss , typename VisibleDimensionIds , typename ElementSpaceSize >
template<index_t IDim>
__host__ constexpr __device__ auto ck::TensorDescriptor< Transforms, LowerDimensionIdss, UpperDimensionIdss, VisibleDimensionIds, ElementSpaceSize >::GetLength ( Number< IDim >  ) const
inlineconstexpr

◆ GetLengths()

template<typename Transforms , typename LowerDimensionIdss , typename UpperDimensionIdss , typename VisibleDimensionIds , typename ElementSpaceSize >
__host__ constexpr __device__ auto ck::TensorDescriptor< Transforms, LowerDimensionIdss, UpperDimensionIdss, VisibleDimensionIds, ElementSpaceSize >::GetLengths ( ) const
inlineconstexpr

◆ GetLowerDimensionIdss()

template<typename Transforms , typename LowerDimensionIdss , typename UpperDimensionIdss , typename VisibleDimensionIds , typename ElementSpaceSize >
__host__ static constexpr __device__ auto ck::TensorDescriptor< Transforms, LowerDimensionIdss, UpperDimensionIdss, VisibleDimensionIds, ElementSpaceSize >::GetLowerDimensionIdss ( )
inlinestaticconstexpr

◆ GetNumOfDimension()

template<typename Transforms , typename LowerDimensionIdss , typename UpperDimensionIdss , typename VisibleDimensionIds , typename ElementSpaceSize >
__host__ static constexpr __device__ index_t ck::TensorDescriptor< Transforms, LowerDimensionIdss, UpperDimensionIdss, VisibleDimensionIds, ElementSpaceSize >::GetNumOfDimension ( )
inlinestaticconstexpr

◆ GetNumOfHiddenDimension()

template<typename Transforms , typename LowerDimensionIdss , typename UpperDimensionIdss , typename VisibleDimensionIds , typename ElementSpaceSize >
__host__ static constexpr __device__ index_t ck::TensorDescriptor< Transforms, LowerDimensionIdss, UpperDimensionIdss, VisibleDimensionIds, ElementSpaceSize >::GetNumOfHiddenDimension ( )
inlinestaticconstexpr

◆ GetNumOfTransform()

template<typename Transforms , typename LowerDimensionIdss , typename UpperDimensionIdss , typename VisibleDimensionIds , typename ElementSpaceSize >
__host__ static constexpr __device__ index_t ck::TensorDescriptor< Transforms, LowerDimensionIdss, UpperDimensionIdss, VisibleDimensionIds, ElementSpaceSize >::GetNumOfTransform ( )
inlinestaticconstexpr

◆ GetNumOfVisibleDimension()

template<typename Transforms , typename LowerDimensionIdss , typename UpperDimensionIdss , typename VisibleDimensionIds , typename ElementSpaceSize >
__host__ static constexpr __device__ index_t ck::TensorDescriptor< Transforms, LowerDimensionIdss, UpperDimensionIdss, VisibleDimensionIds, ElementSpaceSize >::GetNumOfVisibleDimension ( )
inlinestaticconstexpr

◆ GetTransformAndItsUpperDimension()

template<typename Transforms , typename LowerDimensionIdss , typename UpperDimensionIdss , typename VisibleDimensionIds , typename ElementSpaceSize >
template<index_t IDim>
__host__ static constexpr __device__ auto ck::TensorDescriptor< Transforms, LowerDimensionIdss, UpperDimensionIdss, VisibleDimensionIds, ElementSpaceSize >::GetTransformAndItsUpperDimension ( Number< IDim >  )
inlinestaticconstexpr

◆ GetTransforms()

template<typename Transforms , typename LowerDimensionIdss , typename UpperDimensionIdss , typename VisibleDimensionIds , typename ElementSpaceSize >
__host__ constexpr __device__ const auto& ck::TensorDescriptor< Transforms, LowerDimensionIdss, UpperDimensionIdss, VisibleDimensionIds, ElementSpaceSize >::GetTransforms ( ) const
inlineconstexpr

◆ GetUpperDimensionIdss()

template<typename Transforms , typename LowerDimensionIdss , typename UpperDimensionIdss , typename VisibleDimensionIds , typename ElementSpaceSize >
__host__ static constexpr __device__ auto ck::TensorDescriptor< Transforms, LowerDimensionIdss, UpperDimensionIdss, VisibleDimensionIds, ElementSpaceSize >::GetUpperDimensionIdss ( )
inlinestaticconstexpr

◆ GetVisibleDimensionIds()

template<typename Transforms , typename LowerDimensionIdss , typename UpperDimensionIdss , typename VisibleDimensionIds , typename ElementSpaceSize >
__host__ static constexpr __device__ auto ck::TensorDescriptor< Transforms, LowerDimensionIdss, UpperDimensionIdss, VisibleDimensionIds, ElementSpaceSize >::GetVisibleDimensionIds ( )
inlinestaticconstexpr

◆ InitializeElementSize()

template<typename Transforms , typename LowerDimensionIdss , typename UpperDimensionIdss , typename VisibleDimensionIds , typename ElementSpaceSize >
__host__ static constexpr __device__ auto ck::TensorDescriptor< Transforms, LowerDimensionIdss, UpperDimensionIdss, VisibleDimensionIds, ElementSpaceSize >::InitializeElementSize ( const Transforms &  transforms)
inlinestaticconstexpr

◆ IsKnownAtCompileTime()

template<typename Transforms , typename LowerDimensionIdss , typename UpperDimensionIdss , typename VisibleDimensionIds , typename ElementSpaceSize >
__host__ static constexpr __device__ bool ck::TensorDescriptor< Transforms, LowerDimensionIdss, UpperDimensionIdss, VisibleDimensionIds, ElementSpaceSize >::IsKnownAtCompileTime ( )
inlinestaticconstexpr

◆ Print()

template<typename Transforms , typename LowerDimensionIdss , typename UpperDimensionIdss , typename VisibleDimensionIds , typename ElementSpaceSize >
__host__ __device__ void ck::TensorDescriptor< Transforms, LowerDimensionIdss, UpperDimensionIdss, VisibleDimensionIds, ElementSpaceSize >::Print ( ) const
inline

Member Data Documentation

◆ element_size_

template<typename Transforms , typename LowerDimensionIdss , typename UpperDimensionIdss , typename VisibleDimensionIds , typename ElementSpaceSize >
ElementSize ck::TensorDescriptor< Transforms, LowerDimensionIdss, UpperDimensionIdss, VisibleDimensionIds, ElementSpaceSize >::element_size_

◆ element_space_size_

template<typename Transforms , typename LowerDimensionIdss , typename UpperDimensionIdss , typename VisibleDimensionIds , typename ElementSpaceSize >
ElementSpaceSize ck::TensorDescriptor< Transforms, LowerDimensionIdss, UpperDimensionIdss, VisibleDimensionIds, ElementSpaceSize >::element_space_size_

◆ ndim_hidden_

template<typename Transforms , typename LowerDimensionIdss , typename UpperDimensionIdss , typename VisibleDimensionIds , typename ElementSpaceSize >
constexpr static index_t ck::TensorDescriptor< Transforms, LowerDimensionIdss, UpperDimensionIdss, VisibleDimensionIds, ElementSpaceSize >::ndim_hidden_ = GetNumOfHiddenDimension()
staticconstexpr

◆ ndim_visible_

template<typename Transforms , typename LowerDimensionIdss , typename UpperDimensionIdss , typename VisibleDimensionIds , typename ElementSpaceSize >
constexpr static index_t ck::TensorDescriptor< Transforms, LowerDimensionIdss, UpperDimensionIdss, VisibleDimensionIds, ElementSpaceSize >::ndim_visible_ = GetNumOfVisibleDimension()
staticconstexpr

◆ ntransform_

template<typename Transforms , typename LowerDimensionIdss , typename UpperDimensionIdss , typename VisibleDimensionIds , typename ElementSpaceSize >
constexpr static index_t ck::TensorDescriptor< Transforms, LowerDimensionIdss, UpperDimensionIdss, VisibleDimensionIds, ElementSpaceSize >::ntransform_ = GetNumOfTransform()
staticconstexpr

◆ transforms_

template<typename Transforms , typename LowerDimensionIdss , typename UpperDimensionIdss , typename VisibleDimensionIds , typename ElementSpaceSize >
Transforms ck::TensorDescriptor< Transforms, LowerDimensionIdss, UpperDimensionIdss, VisibleDimensionIds, ElementSpaceSize >::transforms_

The documentation for this struct was generated from the following file:
  • /home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-composable-kernel/checkouts/docs-6.4.3/include/ck/tensor_description/tensor_descriptor.hpp