Slice< LowLength, SliceBegin, SliceEnd > Struct Template Reference

Slice&lt; LowLength, SliceBegin, SliceEnd &gt; Struct Template Reference#

Composable Kernel: ck::Slice< LowLength, SliceBegin, SliceEnd > Struct Template Reference
ck::Slice< LowLength, SliceBegin, SliceEnd > Struct Template Reference

#include <multi_index_transform.hpp>

Public Types

using LowerIndex = MultiIndex< 1 >
 
using UpperIndex = MultiIndex< 1 >
 
using UpLengths = decltype(make_tuple(SliceEnd{} - SliceBegin{}))
 

Public Member Functions

__host__ constexpr __device__ Slice ()=default
 
__host__ constexpr __device__ Slice (const LowLength &, const SliceBegin &slice_begin, const SliceEnd &slice_end)
 
__host__ constexpr __device__ const auto & GetUpperLengths () const
 
template<typename LowIdx , typename UpIdx >
__host__ constexpr __device__ void CalculateLowerIndex (LowIdx &idx_low, const UpIdx &idx_up) const
 
template<typename UpIdx >
__host__ constexpr __device__ bool IsValidUpperIndexMappedToValidLowerIndex (const UpIdx &) const
 
__host__ __device__ void Print () const
 

Static Public Member Functions

__host__ static constexpr __device__ index_t GetNumOfLowerDimension ()
 
__host__ static constexpr __device__ index_t GetNumOfUpperDimension ()
 
template<typename LowIdxDiff , typename UpIdxDiff , typename LowIdx , typename UpIdx , index_t Hack>
__host__ static __device__ void UpdateLowerIndex (LowIdxDiff &idx_diff_low, const UpIdxDiff &idx_diff_up, LowIdx &idx_low, const UpIdx &, Number< Hack >)
 
__host__ static constexpr __device__ bool IsLinearTransform ()
 
__host__ static constexpr __device__ bool IsValidUpperIndexAlwaysMappedToValidLowerIndex ()
 
__host__ static constexpr __device__ bool IsKnownAtCompileTime ()
 

Public Attributes

UpLengths up_lengths_
 
SliceBegin slice_begin_
 
SliceEnd slice_end_
 

Member Typedef Documentation

◆ LowerIndex

template<typename LowLength , typename SliceBegin , typename SliceEnd >
using ck::Slice< LowLength, SliceBegin, SliceEnd >::LowerIndex = MultiIndex<1>

◆ UpLengths

template<typename LowLength , typename SliceBegin , typename SliceEnd >
using ck::Slice< LowLength, SliceBegin, SliceEnd >::UpLengths = decltype(make_tuple(SliceEnd{} - SliceBegin{}))

◆ UpperIndex

template<typename LowLength , typename SliceBegin , typename SliceEnd >
using ck::Slice< LowLength, SliceBegin, SliceEnd >::UpperIndex = MultiIndex<1>

Constructor & Destructor Documentation

◆ Slice() [1/2]

template<typename LowLength , typename SliceBegin , typename SliceEnd >
__host__ constexpr __device__ ck::Slice< LowLength, SliceBegin, SliceEnd >::Slice ( )
constexprdefault

◆ Slice() [2/2]

template<typename LowLength , typename SliceBegin , typename SliceEnd >
__host__ constexpr __device__ ck::Slice< LowLength, SliceBegin, SliceEnd >::Slice ( const LowLength &  ,
const SliceBegin &  slice_begin,
const SliceEnd &  slice_end 
)
inlineconstexpr

Member Function Documentation

◆ CalculateLowerIndex()

template<typename LowLength , typename SliceBegin , typename SliceEnd >
template<typename LowIdx , typename UpIdx >
__host__ constexpr __device__ void ck::Slice< LowLength, SliceBegin, SliceEnd >::CalculateLowerIndex ( LowIdx &  idx_low,
const UpIdx &  idx_up 
) const
inlineconstexpr

◆ GetNumOfLowerDimension()

template<typename LowLength , typename SliceBegin , typename SliceEnd >
__host__ static constexpr __device__ index_t ck::Slice< LowLength, SliceBegin, SliceEnd >::GetNumOfLowerDimension ( )
inlinestaticconstexpr

◆ GetNumOfUpperDimension()

template<typename LowLength , typename SliceBegin , typename SliceEnd >
__host__ static constexpr __device__ index_t ck::Slice< LowLength, SliceBegin, SliceEnd >::GetNumOfUpperDimension ( )
inlinestaticconstexpr

◆ GetUpperLengths()

template<typename LowLength , typename SliceBegin , typename SliceEnd >
__host__ constexpr __device__ const auto& ck::Slice< LowLength, SliceBegin, SliceEnd >::GetUpperLengths ( ) const
inlineconstexpr

◆ IsKnownAtCompileTime()

template<typename LowLength , typename SliceBegin , typename SliceEnd >
__host__ static constexpr __device__ bool ck::Slice< LowLength, SliceBegin, SliceEnd >::IsKnownAtCompileTime ( )
inlinestaticconstexpr

◆ IsLinearTransform()

template<typename LowLength , typename SliceBegin , typename SliceEnd >
__host__ static constexpr __device__ bool ck::Slice< LowLength, SliceBegin, SliceEnd >::IsLinearTransform ( )
inlinestaticconstexpr

◆ IsValidUpperIndexAlwaysMappedToValidLowerIndex()

template<typename LowLength , typename SliceBegin , typename SliceEnd >
__host__ static constexpr __device__ bool ck::Slice< LowLength, SliceBegin, SliceEnd >::IsValidUpperIndexAlwaysMappedToValidLowerIndex ( )
inlinestaticconstexpr

◆ IsValidUpperIndexMappedToValidLowerIndex()

template<typename LowLength , typename SliceBegin , typename SliceEnd >
template<typename UpIdx >
__host__ constexpr __device__ bool ck::Slice< LowLength, SliceBegin, SliceEnd >::IsValidUpperIndexMappedToValidLowerIndex ( const UpIdx &  ) const
inlineconstexpr

◆ Print()

template<typename LowLength , typename SliceBegin , typename SliceEnd >
__host__ __device__ void ck::Slice< LowLength, SliceBegin, SliceEnd >::Print ( ) const
inline

◆ UpdateLowerIndex()

template<typename LowLength , typename SliceBegin , typename SliceEnd >
template<typename LowIdxDiff , typename UpIdxDiff , typename LowIdx , typename UpIdx , index_t Hack>
__host__ static __device__ void ck::Slice< LowLength, SliceBegin, SliceEnd >::UpdateLowerIndex ( LowIdxDiff &  idx_diff_low,
const UpIdxDiff &  idx_diff_up,
LowIdx &  idx_low,
const UpIdx &  ,
Number< Hack >   
)
inlinestatic

Member Data Documentation

◆ slice_begin_

template<typename LowLength , typename SliceBegin , typename SliceEnd >
SliceBegin ck::Slice< LowLength, SliceBegin, SliceEnd >::slice_begin_

◆ slice_end_

template<typename LowLength , typename SliceBegin , typename SliceEnd >
SliceEnd ck::Slice< LowLength, SliceBegin, SliceEnd >::slice_end_

◆ up_lengths_

template<typename LowLength , typename SliceBegin , typename SliceEnd >
UpLengths ck::Slice< LowLength, SliceBegin, SliceEnd >::up_lengths_

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/multi_index_transform.hpp