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>
|
inlinestaticconstexpr |
◆ GetForwardStep()
template<typename TensorLengths , typename DimAccessOrder , typename ScalarsPerAccess , bool SnakeCurved = true>
template<index_t AccessIdx1d>
|
inlinestaticconstexpr |
◆ GetIndex()
template<typename TensorLengths , typename DimAccessOrder , typename ScalarsPerAccess , bool SnakeCurved = true>
template<index_t AccessIdx1d>
|
inlinestaticconstexpr |
◆ GetIndexTupleOfNumber()
template<typename TensorLengths , typename DimAccessOrder , typename ScalarsPerAccess , bool SnakeCurved = true>
template<index_t AccessIdx1d>
|
inlinestaticconstexpr |
◆ GetNumOfAccess()
template<typename TensorLengths , typename DimAccessOrder , typename ScalarsPerAccess , bool SnakeCurved = true>
|
inlinestaticconstexpr |
◆ GetStepBetween()
template<typename TensorLengths , typename DimAccessOrder , typename ScalarsPerAccess , bool SnakeCurved = true>
template<index_t AccessIdx1dBegin, index_t AccessIdx1dEnd>
|
inlinestaticconstexpr |
Member Data Documentation
◆ access_lengths
template<typename TensorLengths , typename DimAccessOrder , typename ScalarsPerAccess , bool SnakeCurved = true>
|
staticconstexpr |
◆ dim_access_order
template<typename TensorLengths , typename DimAccessOrder , typename ScalarsPerAccess , bool SnakeCurved = true>
|
staticconstexpr |
◆ I0
template<typename TensorLengths , typename DimAccessOrder , typename ScalarsPerAccess , bool SnakeCurved = true>
|
staticconstexpr |
◆ I1
template<typename TensorLengths , typename DimAccessOrder , typename ScalarsPerAccess , bool SnakeCurved = true>
|
staticconstexpr |
◆ nDim
template<typename TensorLengths , typename DimAccessOrder , typename ScalarsPerAccess , bool SnakeCurved = true>
|
staticconstexpr |
◆ ordered_access_lengths
template<typename TensorLengths , typename DimAccessOrder , typename ScalarsPerAccess , bool SnakeCurved = true>
|
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>
|
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>
|
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
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