SpaceFillingCurve< TensorLengths, DimAccessOrder, ScalarsPerAccess, SnakeCurved > Struct Template Reference

SpaceFillingCurve&lt; TensorLengths, DimAccessOrder, ScalarsPerAccess, SnakeCurved &gt; Struct Template Reference#

Composable Kernel: ck::SpaceFillingCurve< TensorLengths, DimAccessOrder, ScalarsPerAccess, SnakeCurved > Struct Template Reference
ck::SpaceFillingCurve< TensorLengths, DimAccessOrder, ScalarsPerAccess, SnakeCurved > Struct Template Reference

#include <tensor_space_filling_curve.hpp>

Public Types

using Index = MultiIndex< nDim >
 

Static Public Member Functions

__host__ static constexpr __device__ index_t GetNumOfAccess ()
 
template<index_t AccessIdx1dBegin, index_t AccessIdx1dEnd>
static __device__ constexpr __host__ auto GetStepBetween (Number< AccessIdx1dBegin >, Number< AccessIdx1dEnd >)
 
template<index_t AccessIdx1d>
static __device__ constexpr __host__ auto GetForwardStep (Number< AccessIdx1d >)
 
template<index_t AccessIdx1d>
static __device__ constexpr __host__ auto GetBackwardStep (Number< AccessIdx1d >)
 
template<index_t AccessIdx1d>
static __device__ constexpr __host__ Index GetIndex (Number< AccessIdx1d >)
 
template<index_t AccessIdx1d>
static __device__ constexpr __host__ auto GetIndexTupleOfNumber (Number< AccessIdx1d >)
 

Static Public Attributes

static constexpr index_t nDim = TensorLengths::Size()
 
static constexpr index_t ScalarPerVector
 
static constexpr auto access_lengths = TensorLengths{} / ScalarsPerAccess{}
 
static constexpr auto dim_access_order = DimAccessOrder{}
 
static constexpr auto ordered_access_lengths
 
static constexpr auto to_index_adaptor
 
static constexpr auto I0 = Number<0>{}
 
static constexpr auto I1 = Number<1>{}
 

Member Typedef Documentation

◆ Index

template<typename TensorLengths , typename DimAccessOrder , typename ScalarsPerAccess , bool SnakeCurved = true>
using ck::SpaceFillingCurve< TensorLengths, DimAccessOrder, ScalarsPerAccess, SnakeCurved >::Index = MultiIndex<nDim>

Member Function Documentation

◆ GetBackwardStep()

template<typename TensorLengths , typename DimAccessOrder , typename ScalarsPerAccess , bool SnakeCurved = true>
template<index_t AccessIdx1d>
static __device__ constexpr __host__ auto ck::SpaceFillingCurve< TensorLengths, DimAccessOrder, ScalarsPerAccess, SnakeCurved >::GetBackwardStep ( Number< AccessIdx1d >  )
inlinestaticconstexpr

◆ GetForwardStep()

template<typename TensorLengths , typename DimAccessOrder , typename ScalarsPerAccess , bool SnakeCurved = true>
template<index_t AccessIdx1d>
static __device__ constexpr __host__ auto ck::SpaceFillingCurve< TensorLengths, DimAccessOrder, ScalarsPerAccess, SnakeCurved >::GetForwardStep ( Number< AccessIdx1d >  )
inlinestaticconstexpr

◆ GetIndex()

template<typename TensorLengths , typename DimAccessOrder , typename ScalarsPerAccess , bool SnakeCurved = true>
template<index_t AccessIdx1d>
static __device__ constexpr __host__ Index ck::SpaceFillingCurve< TensorLengths, DimAccessOrder, ScalarsPerAccess, SnakeCurved >::GetIndex ( Number< AccessIdx1d >  )
inlinestaticconstexpr

◆ GetIndexTupleOfNumber()

template<typename TensorLengths , typename DimAccessOrder , typename ScalarsPerAccess , bool SnakeCurved = true>
template<index_t AccessIdx1d>
static __device__ constexpr __host__ auto ck::SpaceFillingCurve< TensorLengths, DimAccessOrder, ScalarsPerAccess, SnakeCurved >::GetIndexTupleOfNumber ( Number< AccessIdx1d >  )
inlinestaticconstexpr

◆ GetNumOfAccess()

template<typename TensorLengths , typename DimAccessOrder , typename ScalarsPerAccess , bool SnakeCurved = true>
__host__ static constexpr __device__ index_t ck::SpaceFillingCurve< TensorLengths, DimAccessOrder, ScalarsPerAccess, SnakeCurved >::GetNumOfAccess ( )
inlinestaticconstexpr

◆ GetStepBetween()

template<typename TensorLengths , typename DimAccessOrder , typename ScalarsPerAccess , bool SnakeCurved = true>
template<index_t AccessIdx1dBegin, index_t AccessIdx1dEnd>
static __device__ constexpr __host__ auto ck::SpaceFillingCurve< TensorLengths, DimAccessOrder, ScalarsPerAccess, SnakeCurved >::GetStepBetween ( Number< AccessIdx1dBegin >  ,
Number< AccessIdx1dEnd >   
)
inlinestaticconstexpr

Member Data Documentation

◆ access_lengths

template<typename TensorLengths , typename DimAccessOrder , typename ScalarsPerAccess , bool SnakeCurved = true>
constexpr auto ck::SpaceFillingCurve< TensorLengths, DimAccessOrder, ScalarsPerAccess, SnakeCurved >::access_lengths = TensorLengths{} / ScalarsPerAccess{}
staticconstexpr

◆ dim_access_order

template<typename TensorLengths , typename DimAccessOrder , typename ScalarsPerAccess , bool SnakeCurved = true>
constexpr auto ck::SpaceFillingCurve< TensorLengths, DimAccessOrder, ScalarsPerAccess, SnakeCurved >::dim_access_order = DimAccessOrder{}
staticconstexpr

◆ I0

template<typename TensorLengths , typename DimAccessOrder , typename ScalarsPerAccess , bool SnakeCurved = true>
constexpr auto ck::SpaceFillingCurve< TensorLengths, DimAccessOrder, ScalarsPerAccess, SnakeCurved >::I0 = Number<0>{}
staticconstexpr

◆ I1

template<typename TensorLengths , typename DimAccessOrder , typename ScalarsPerAccess , bool SnakeCurved = true>
constexpr auto ck::SpaceFillingCurve< TensorLengths, DimAccessOrder, ScalarsPerAccess, SnakeCurved >::I1 = Number<1>{}
staticconstexpr

◆ nDim

template<typename TensorLengths , typename DimAccessOrder , typename ScalarsPerAccess , bool SnakeCurved = true>
constexpr index_t ck::SpaceFillingCurve< TensorLengths, DimAccessOrder, ScalarsPerAccess, SnakeCurved >::nDim = TensorLengths::Size()
staticconstexpr

◆ ordered_access_lengths

template<typename TensorLengths , typename DimAccessOrder , typename ScalarsPerAccess , bool SnakeCurved = true>
constexpr auto ck::SpaceFillingCurve< TensorLengths, DimAccessOrder, ScalarsPerAccess, SnakeCurved >::ordered_access_lengths
staticconstexpr
Initial value:
=
__host__ constexpr __device__ auto container_reorder_given_new2old(const Array< TData, NSize > &old_array, Sequence< IRs... >)
Definition: container_helper.hpp:43
static constexpr auto access_lengths
Definition: tensor_space_filling_curve.hpp:28
static constexpr auto dim_access_order
Definition: tensor_space_filling_curve.hpp:29

◆ ScalarPerVector

template<typename TensorLengths , typename DimAccessOrder , typename ScalarsPerAccess , bool SnakeCurved = true>
constexpr index_t ck::SpaceFillingCurve< TensorLengths, DimAccessOrder, ScalarsPerAccess, SnakeCurved >::ScalarPerVector
staticconstexpr
Initial value:
=
reduce_on_sequence(ScalarsPerAccess{}, math::multiplies{}, Number<1>{})
__host__ __device__ multiplies() -> multiplies< void, void >
FIXME: create macro to replace 'host device' and nothing more.
__host__ constexpr __device__ index_t reduce_on_sequence(Seq, Reduce f, Number< Init >)
Definition: sequence.hpp:857

◆ to_index_adaptor

template<typename TensorLengths , typename DimAccessOrder , typename ScalarsPerAccess , bool SnakeCurved = true>
constexpr auto ck::SpaceFillingCurve< TensorLengths, DimAccessOrder, ScalarsPerAccess, SnakeCurved >::to_index_adaptor
staticconstexpr
Initial value:
make_tuple(Sequence<0>{}))
__host__ constexpr __device__ auto make_merge_transform(const LowLengths &low_lengths)
Definition: multi_index_transform_helper.hpp:55
__host__ constexpr __device__ auto make_single_stage_tensor_adaptor(const Transforms &transforms, LowerDimensionOldTopIdss, UpperDimensionNewTopIdss)
Definition: tensor_adaptor.hpp:429
__host__ constexpr __device__ auto make_tuple(Xs &&... xs)
Definition: tuple.hpp:211
static constexpr auto ordered_access_lengths
Definition: tensor_space_filling_curve.hpp:30
typename conditional< kHasContent, type0, type1 >::type type
Definition: sequence.hpp:256

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_space_filling_curve.hpp