tensor_adaptor< Transforms, LowerDimensionHiddenIdss, UpperDimensionHiddenIdss, BottomDimensionHiddenIds, TopDimensionHiddenIds > Struct Template Reference

tensor_adaptor&lt; Transforms, LowerDimensionHiddenIdss, UpperDimensionHiddenIdss, BottomDimensionHiddenIds, TopDimensionHiddenIds &gt; Struct Template Reference#

Composable Kernel: ck_tile::tensor_adaptor< Transforms, LowerDimensionHiddenIdss, UpperDimensionHiddenIdss, BottomDimensionHiddenIds, TopDimensionHiddenIds > Struct Template Reference
ck_tile::tensor_adaptor< Transforms, LowerDimensionHiddenIdss, UpperDimensionHiddenIdss, BottomDimensionHiddenIds, TopDimensionHiddenIds > Struct Template Reference

#include <tensor_adaptor.hpp>

Public Types

using HiddenIndex = multi_index<ndim_hidden_>
using BottomIndex = multi_index<ndim_bottom_>
using TopIndex = multi_index<ndim_top_>
using ElementSize = remove_cv_t<decltype(initialize_element_size(Transforms{}))>

Public Member Functions

CK_TILE_HOST_DEVICE constexpr const auto & get_transforms () const
CK_TILE_HOST_DEVICE constexpr tensor_adaptor ()=default
CK_TILE_HOST_DEVICE constexpr tensor_adaptor (const Transforms &transforms)
CK_TILE_HOST_DEVICE constexpr auto get_element_size () const
template<index_t IDimHidden>
CK_TILE_HOST_DEVICE constexpr auto get_hidden_dimension_length (number< IDimHidden >) const
template<index_t IDimTop>
CK_TILE_HOST_DEVICE constexpr auto get_top_dimension_length (number< IDimTop > idim_top) const
CK_TILE_HOST_DEVICE constexpr auto get_top_dimension_lengths () const
template<typename TopIdx>
CK_TILE_HOST_DEVICE constexpr auto calculate_bottom_index (const TopIdx &idx_top) const

Static Public Member Functions

static CK_TILE_HOST_DEVICE constexpr index_t get_num_of_transform ()
static CK_TILE_HOST_DEVICE constexpr auto get_lower_dimension_hidden_idss ()
static CK_TILE_HOST_DEVICE constexpr auto get_upper_dimension_hidden_idss ()
static CK_TILE_HOST_DEVICE constexpr auto get_bottom_dimension_hidden_ids ()
static CK_TILE_HOST_DEVICE constexpr auto get_top_dimension_hidden_ids ()
static CK_TILE_HOST_DEVICE constexpr auto initialize_element_size (const Transforms &transforms)
template<index_t IDimHidden>
static CK_TILE_HOST_DEVICE constexpr auto get_transform_and_its_upper_dimension (number< IDimHidden >)
static CK_TILE_HOST_DEVICE constexpr index_t get_num_of_bottom_dimension ()
static CK_TILE_HOST_DEVICE constexpr index_t get_num_of_top_dimension ()
static CK_TILE_HOST_DEVICE constexpr index_t get_num_of_hidden_dimension ()
static CK_TILE_HOST_DEVICE constexpr bool is_static ()
static CK_TILE_HOST_DEVICE constexpr bool is_known_at_compile_time ()
template<index_t Internal = 0>
static CK_TILE_HOST_DEVICE constexpr auto get_top_dimension_safe_vector_length_strides (const array< index_t, ndim_hidden_ > &guaranteed_vector_lengths, const array< index_t, ndim_hidden_ > &guaranteed_vector_strides)

Static Public Attributes

static constexpr index_t ntransform_ = get_num_of_transform()
static constexpr index_t ndim_hidden_ = get_num_of_hidden_dimension()
static constexpr index_t ndim_bottom_ = get_num_of_bottom_dimension()
static constexpr index_t ndim_top_ = get_num_of_top_dimension()

Member Typedef Documentation

◆ BottomIndex

template<typename Transforms, typename LowerDimensionHiddenIdss, typename UpperDimensionHiddenIdss, typename BottomDimensionHiddenIds, typename TopDimensionHiddenIds>
using ck_tile::tensor_adaptor< Transforms, LowerDimensionHiddenIdss, UpperDimensionHiddenIdss, BottomDimensionHiddenIds, TopDimensionHiddenIds >::BottomIndex = multi_index<ndim_bottom_>

◆ ElementSize

template<typename Transforms, typename LowerDimensionHiddenIdss, typename UpperDimensionHiddenIdss, typename BottomDimensionHiddenIds, typename TopDimensionHiddenIds>
using ck_tile::tensor_adaptor< Transforms, LowerDimensionHiddenIdss, UpperDimensionHiddenIdss, BottomDimensionHiddenIds, TopDimensionHiddenIds >::ElementSize = remove_cv_t<decltype(initialize_element_size(Transforms{}))>

◆ HiddenIndex

template<typename Transforms, typename LowerDimensionHiddenIdss, typename UpperDimensionHiddenIdss, typename BottomDimensionHiddenIds, typename TopDimensionHiddenIds>
using ck_tile::tensor_adaptor< Transforms, LowerDimensionHiddenIdss, UpperDimensionHiddenIdss, BottomDimensionHiddenIds, TopDimensionHiddenIds >::HiddenIndex = multi_index<ndim_hidden_>

◆ TopIndex

template<typename Transforms, typename LowerDimensionHiddenIdss, typename UpperDimensionHiddenIdss, typename BottomDimensionHiddenIds, typename TopDimensionHiddenIds>
using ck_tile::tensor_adaptor< Transforms, LowerDimensionHiddenIdss, UpperDimensionHiddenIdss, BottomDimensionHiddenIds, TopDimensionHiddenIds >::TopIndex = multi_index<ndim_top_>

Constructor & Destructor Documentation

◆ tensor_adaptor() [1/2]

template<typename Transforms, typename LowerDimensionHiddenIdss, typename UpperDimensionHiddenIdss, typename BottomDimensionHiddenIds, typename TopDimensionHiddenIds>
CK_TILE_HOST_DEVICE constexpr ck_tile::tensor_adaptor< Transforms, LowerDimensionHiddenIdss, UpperDimensionHiddenIdss, BottomDimensionHiddenIds, TopDimensionHiddenIds >::tensor_adaptor ( )
constexprdefault

◆ tensor_adaptor() [2/2]

template<typename Transforms, typename LowerDimensionHiddenIdss, typename UpperDimensionHiddenIdss, typename BottomDimensionHiddenIds, typename TopDimensionHiddenIds>
CK_TILE_HOST_DEVICE constexpr ck_tile::tensor_adaptor< Transforms, LowerDimensionHiddenIdss, UpperDimensionHiddenIdss, BottomDimensionHiddenIds, TopDimensionHiddenIds >::tensor_adaptor ( const Transforms & transforms)
inlineconstexpr

Member Function Documentation

◆ calculate_bottom_index()

template<typename Transforms, typename LowerDimensionHiddenIdss, typename UpperDimensionHiddenIdss, typename BottomDimensionHiddenIds, typename TopDimensionHiddenIds>
template<typename TopIdx>
CK_TILE_HOST_DEVICE constexpr auto ck_tile::tensor_adaptor< Transforms, LowerDimensionHiddenIdss, UpperDimensionHiddenIdss, BottomDimensionHiddenIds, TopDimensionHiddenIds >::calculate_bottom_index ( const TopIdx & idx_top) const
inlineconstexpr

◆ get_bottom_dimension_hidden_ids()

template<typename Transforms, typename LowerDimensionHiddenIdss, typename UpperDimensionHiddenIdss, typename BottomDimensionHiddenIds, typename TopDimensionHiddenIds>
CK_TILE_HOST_DEVICE constexpr auto ck_tile::tensor_adaptor< Transforms, LowerDimensionHiddenIdss, UpperDimensionHiddenIdss, BottomDimensionHiddenIds, TopDimensionHiddenIds >::get_bottom_dimension_hidden_ids ( )
inlinestaticconstexpr

◆ get_element_size()

template<typename Transforms, typename LowerDimensionHiddenIdss, typename UpperDimensionHiddenIdss, typename BottomDimensionHiddenIds, typename TopDimensionHiddenIds>
CK_TILE_HOST_DEVICE constexpr auto ck_tile::tensor_adaptor< Transforms, LowerDimensionHiddenIdss, UpperDimensionHiddenIdss, BottomDimensionHiddenIds, TopDimensionHiddenIds >::get_element_size ( ) const
inlineconstexpr

◆ get_hidden_dimension_length()

template<typename Transforms, typename LowerDimensionHiddenIdss, typename UpperDimensionHiddenIdss, typename BottomDimensionHiddenIds, typename TopDimensionHiddenIds>
template<index_t IDimHidden>
CK_TILE_HOST_DEVICE constexpr auto ck_tile::tensor_adaptor< Transforms, LowerDimensionHiddenIdss, UpperDimensionHiddenIdss, BottomDimensionHiddenIds, TopDimensionHiddenIds >::get_hidden_dimension_length ( number< IDimHidden > ) const
inlineconstexpr

◆ get_lower_dimension_hidden_idss()

template<typename Transforms, typename LowerDimensionHiddenIdss, typename UpperDimensionHiddenIdss, typename BottomDimensionHiddenIds, typename TopDimensionHiddenIds>
CK_TILE_HOST_DEVICE constexpr auto ck_tile::tensor_adaptor< Transforms, LowerDimensionHiddenIdss, UpperDimensionHiddenIdss, BottomDimensionHiddenIds, TopDimensionHiddenIds >::get_lower_dimension_hidden_idss ( )
inlinestaticconstexpr

◆ get_num_of_bottom_dimension()

template<typename Transforms, typename LowerDimensionHiddenIdss, typename UpperDimensionHiddenIdss, typename BottomDimensionHiddenIds, typename TopDimensionHiddenIds>
CK_TILE_HOST_DEVICE constexpr index_t ck_tile::tensor_adaptor< Transforms, LowerDimensionHiddenIdss, UpperDimensionHiddenIdss, BottomDimensionHiddenIds, TopDimensionHiddenIds >::get_num_of_bottom_dimension ( )
inlinestaticconstexpr

◆ get_num_of_hidden_dimension()

template<typename Transforms, typename LowerDimensionHiddenIdss, typename UpperDimensionHiddenIdss, typename BottomDimensionHiddenIds, typename TopDimensionHiddenIds>
CK_TILE_HOST_DEVICE constexpr index_t ck_tile::tensor_adaptor< Transforms, LowerDimensionHiddenIdss, UpperDimensionHiddenIdss, BottomDimensionHiddenIds, TopDimensionHiddenIds >::get_num_of_hidden_dimension ( )
inlinestaticconstexpr

◆ get_num_of_top_dimension()

template<typename Transforms, typename LowerDimensionHiddenIdss, typename UpperDimensionHiddenIdss, typename BottomDimensionHiddenIds, typename TopDimensionHiddenIds>
CK_TILE_HOST_DEVICE constexpr index_t ck_tile::tensor_adaptor< Transforms, LowerDimensionHiddenIdss, UpperDimensionHiddenIdss, BottomDimensionHiddenIds, TopDimensionHiddenIds >::get_num_of_top_dimension ( )
inlinestaticconstexpr

◆ get_num_of_transform()

template<typename Transforms, typename LowerDimensionHiddenIdss, typename UpperDimensionHiddenIdss, typename BottomDimensionHiddenIds, typename TopDimensionHiddenIds>
CK_TILE_HOST_DEVICE constexpr index_t ck_tile::tensor_adaptor< Transforms, LowerDimensionHiddenIdss, UpperDimensionHiddenIdss, BottomDimensionHiddenIds, TopDimensionHiddenIds >::get_num_of_transform ( )
inlinestaticconstexpr

◆ get_top_dimension_hidden_ids()

template<typename Transforms, typename LowerDimensionHiddenIdss, typename UpperDimensionHiddenIdss, typename BottomDimensionHiddenIds, typename TopDimensionHiddenIds>
CK_TILE_HOST_DEVICE constexpr auto ck_tile::tensor_adaptor< Transforms, LowerDimensionHiddenIdss, UpperDimensionHiddenIdss, BottomDimensionHiddenIds, TopDimensionHiddenIds >::get_top_dimension_hidden_ids ( )
inlinestaticconstexpr

◆ get_top_dimension_length()

template<typename Transforms, typename LowerDimensionHiddenIdss, typename UpperDimensionHiddenIdss, typename BottomDimensionHiddenIds, typename TopDimensionHiddenIds>
template<index_t IDimTop>
CK_TILE_HOST_DEVICE constexpr auto ck_tile::tensor_adaptor< Transforms, LowerDimensionHiddenIdss, UpperDimensionHiddenIdss, BottomDimensionHiddenIds, TopDimensionHiddenIds >::get_top_dimension_length ( number< IDimTop > idim_top) const
inlineconstexpr

◆ get_top_dimension_lengths()

template<typename Transforms, typename LowerDimensionHiddenIdss, typename UpperDimensionHiddenIdss, typename BottomDimensionHiddenIds, typename TopDimensionHiddenIds>
CK_TILE_HOST_DEVICE constexpr auto ck_tile::tensor_adaptor< Transforms, LowerDimensionHiddenIdss, UpperDimensionHiddenIdss, BottomDimensionHiddenIds, TopDimensionHiddenIds >::get_top_dimension_lengths ( ) const
inlineconstexpr

◆ get_top_dimension_safe_vector_length_strides()

template<typename Transforms, typename LowerDimensionHiddenIdss, typename UpperDimensionHiddenIdss, typename BottomDimensionHiddenIds, typename TopDimensionHiddenIds>
template<index_t Internal = 0>
CK_TILE_HOST_DEVICE constexpr auto ck_tile::tensor_adaptor< Transforms, LowerDimensionHiddenIdss, UpperDimensionHiddenIdss, BottomDimensionHiddenIds, TopDimensionHiddenIds >::get_top_dimension_safe_vector_length_strides ( const array< index_t, ndim_hidden_ > & guaranteed_vector_lengths,
const array< index_t, ndim_hidden_ > & guaranteed_vector_strides )
inlinestaticconstexpr

◆ get_transform_and_its_upper_dimension()

template<typename Transforms, typename LowerDimensionHiddenIdss, typename UpperDimensionHiddenIdss, typename BottomDimensionHiddenIds, typename TopDimensionHiddenIds>
template<index_t IDimHidden>
CK_TILE_HOST_DEVICE constexpr auto ck_tile::tensor_adaptor< Transforms, LowerDimensionHiddenIdss, UpperDimensionHiddenIdss, BottomDimensionHiddenIds, TopDimensionHiddenIds >::get_transform_and_its_upper_dimension ( number< IDimHidden > )
inlinestaticconstexpr

◆ get_transforms()

template<typename Transforms, typename LowerDimensionHiddenIdss, typename UpperDimensionHiddenIdss, typename BottomDimensionHiddenIds, typename TopDimensionHiddenIds>
CK_TILE_HOST_DEVICE constexpr const auto & ck_tile::tensor_adaptor< Transforms, LowerDimensionHiddenIdss, UpperDimensionHiddenIdss, BottomDimensionHiddenIds, TopDimensionHiddenIds >::get_transforms ( ) const
inlineconstexpr

◆ get_upper_dimension_hidden_idss()

template<typename Transforms, typename LowerDimensionHiddenIdss, typename UpperDimensionHiddenIdss, typename BottomDimensionHiddenIds, typename TopDimensionHiddenIds>
CK_TILE_HOST_DEVICE constexpr auto ck_tile::tensor_adaptor< Transforms, LowerDimensionHiddenIdss, UpperDimensionHiddenIdss, BottomDimensionHiddenIds, TopDimensionHiddenIds >::get_upper_dimension_hidden_idss ( )
inlinestaticconstexpr

◆ initialize_element_size()

template<typename Transforms, typename LowerDimensionHiddenIdss, typename UpperDimensionHiddenIdss, typename BottomDimensionHiddenIds, typename TopDimensionHiddenIds>
CK_TILE_HOST_DEVICE constexpr auto ck_tile::tensor_adaptor< Transforms, LowerDimensionHiddenIdss, UpperDimensionHiddenIdss, BottomDimensionHiddenIds, TopDimensionHiddenIds >::initialize_element_size ( const Transforms & transforms)
inlinestaticconstexpr

◆ is_known_at_compile_time()

template<typename Transforms, typename LowerDimensionHiddenIdss, typename UpperDimensionHiddenIdss, typename BottomDimensionHiddenIds, typename TopDimensionHiddenIds>
CK_TILE_HOST_DEVICE constexpr bool ck_tile::tensor_adaptor< Transforms, LowerDimensionHiddenIdss, UpperDimensionHiddenIdss, BottomDimensionHiddenIds, TopDimensionHiddenIds >::is_known_at_compile_time ( )
inlinestaticconstexpr

◆ is_static()

template<typename Transforms, typename LowerDimensionHiddenIdss, typename UpperDimensionHiddenIdss, typename BottomDimensionHiddenIds, typename TopDimensionHiddenIds>
CK_TILE_HOST_DEVICE constexpr bool ck_tile::tensor_adaptor< Transforms, LowerDimensionHiddenIdss, UpperDimensionHiddenIdss, BottomDimensionHiddenIds, TopDimensionHiddenIds >::is_static ( )
inlinestaticconstexpr

Member Data Documentation

◆ ndim_bottom_

template<typename Transforms, typename LowerDimensionHiddenIdss, typename UpperDimensionHiddenIdss, typename BottomDimensionHiddenIds, typename TopDimensionHiddenIds>
index_t ck_tile::tensor_adaptor< Transforms, LowerDimensionHiddenIdss, UpperDimensionHiddenIdss, BottomDimensionHiddenIds, TopDimensionHiddenIds >::ndim_bottom_ = get_num_of_bottom_dimension()
staticconstexpr

◆ ndim_hidden_

template<typename Transforms, typename LowerDimensionHiddenIdss, typename UpperDimensionHiddenIdss, typename BottomDimensionHiddenIds, typename TopDimensionHiddenIds>
index_t ck_tile::tensor_adaptor< Transforms, LowerDimensionHiddenIdss, UpperDimensionHiddenIdss, BottomDimensionHiddenIds, TopDimensionHiddenIds >::ndim_hidden_ = get_num_of_hidden_dimension()
staticconstexpr

◆ ndim_top_

template<typename Transforms, typename LowerDimensionHiddenIdss, typename UpperDimensionHiddenIdss, typename BottomDimensionHiddenIds, typename TopDimensionHiddenIds>
index_t ck_tile::tensor_adaptor< Transforms, LowerDimensionHiddenIdss, UpperDimensionHiddenIdss, BottomDimensionHiddenIds, TopDimensionHiddenIds >::ndim_top_ = get_num_of_top_dimension()
staticconstexpr

◆ ntransform_

template<typename Transforms, typename LowerDimensionHiddenIdss, typename UpperDimensionHiddenIdss, typename BottomDimensionHiddenIds, typename TopDimensionHiddenIds>
index_t ck_tile::tensor_adaptor< Transforms, LowerDimensionHiddenIdss, UpperDimensionHiddenIdss, BottomDimensionHiddenIds, TopDimensionHiddenIds >::ntransform_ = get_num_of_transform()
staticconstexpr

The documentation for this struct was generated from the following file: