tile_scatter_gather< BottomTensorView_, WindowLengths_, StaticTileDistribution_, StaticPageIndexArray_, StaticValidArray_, HsGatherDim, NumCoord, YsGatherDim > Struct Template Reference

tile_scatter_gather&lt; BottomTensorView_, WindowLengths_, StaticTileDistribution_, StaticPageIndexArray_, StaticValidArray_, HsGatherDim, NumCoord, YsGatherDim &gt; Struct Template Reference#

Composable Kernel: ck_tile::tile_scatter_gather< BottomTensorView_, WindowLengths_, StaticTileDistribution_, StaticPageIndexArray_, StaticValidArray_, HsGatherDim, NumCoord, YsGatherDim > Struct Template Reference
ck_tile::tile_scatter_gather< BottomTensorView_, WindowLengths_, StaticTileDistribution_, StaticPageIndexArray_, StaticValidArray_, HsGatherDim, NumCoord, YsGatherDim > Struct Template Reference

This class provides tile (windowed) view and access to the device memory. More...

#include <tile_scatter_gather.hpp>

Classes

struct  load_store_traits
 

Public Types

using BottomTensorView = remove_reference_t< BottomTensorView_ >
 
using WindowLengths = remove_cvref_t< WindowLengths_ >
 
using TileDstr = remove_cvref_t< StaticTileDistribution_ >
 
using PageIdxArray = remove_cvref_t< StaticPageIndexArray_ >
 
using ValidArray = remove_cvref_t< StaticValidArray_ >
 
using WindowAdaptor = typename TileDstr::PsYs2XsAdaptor
 
using BottomTensorDesc = typename BottomTensorView::TensorDesc
 
using DataType = remove_cvref_t< typename BottomTensorView::DataType >
 
using AdaptorTopIndex = array< index_t, NDimWindowAdaptorTop >
 
using BottomTensorIndex = array< index_t, NDimBottomTensor >
 
using WindowAdaptorCoord = decltype(make_tensor_adaptor_coordinate(WindowAdaptor{}, AdaptorTopIndex{}))
 
using BottomTensorCoord = decltype(make_tensor_coordinate(BottomTensorDesc{}, BottomTensorIndex{}))
 

Public Member Functions

constexpr CK_TILE_DEVICE tile_scatter_gather ()=default
 
constexpr CK_TILE_DEVICE tile_scatter_gather (const BottomTensorView &bottom_tensor_view, const WindowLengths &window_lengths, const BottomTensorIndex &window_origin, const TileDstr &tile_distribution, const PageIdxArray &page_idx, const ValidArray &valids)
 
constexpr CK_TILE_DEVICE auto get_window_lengths () const
 
constexpr CK_TILE_DEVICE auto get_tile_distribution () const
 
constexpr CK_TILE_DEVICE auto get_bottom_tensor_view () const
 
constexpr CK_TILE_DEVICE auto get_window_origin () const
 
constexpr CK_TILE_DEVICE void set_bottom_tensor_view_data_ptr (typename BottomTensorView::DataType *data)
 
template<typename ATopIndex >
CK_TILE_DEVICE void move_window_adaptor_and_bottom_tensor_thread_coordinate (WindowAdaptorCoord &window_adaptor_thread_coord, BottomTensorCoord &bottom_tensor_thread_coord, const ATopIndex &idx_diff_adaptor_top) const
 
constexpr CK_TILE_DEVICE auto get_num_of_access () const
 
template<index_t i_access_unsupport_ = -1, bool oob_conditional_check = true>
CK_TILE_DEVICE auto load (number< i_access_unsupport_ >={}, bool_constant< oob_conditional_check >={}) const
 
template<typename DistributedTensor , index_t i_access_unsupport_ = -1, bool oob_conditional_check = true>
CK_TILE_DEVICE auto load (DistributedTensor &dst_tensor, number< i_access_unsupport_ >={}, bool_constant< oob_conditional_check >={}) const
 
template<typename LdsTileWindow_ , index_t i_access_unsupport_ = -1, bool oob_conditional_check = true, bool pre_nop = false>
CK_TILE_DEVICE auto async_load_raw (LdsTileWindow_ &&lds_tile, number< i_access_unsupport_ >={}, bool_constant< oob_conditional_check >={}, bool_constant< pre_nop >={}) const
 
template<index_t i_access_unsupport_ = -1, bool oob_conditional_check = true>
CK_TILE_DEVICE void store (const static_distributed_tensor< DataType, TileDstr > &dstr_tensor, number< i_access_unsupport_ >={}, bool_constant< oob_conditional_check >={}) const
 
CK_TILE_DEVICE void move (const BottomTensorIndex &step)
 
CK_TILE_DEVICE void update_page_idx (const PageIdxArray &new_idx)
 
CK_TILE_DEVICE void update_valids (const ValidArray &new_valids)
 
CK_TILE_DEVICE void update_page_idx_and_valids (const PageIdxArray &new_idx, const ValidArray &new_valids)
 
CK_TILE_DEVICE void set_window_origin (const BottomTensorIndex &new_window_origin)
 
CK_TILE_HOST_DEVICE void init_raw ()
 

Static Public Member Functions

static constexpr CK_TILE_DEVICE index_t get_num_of_dimension ()
 
static constexpr CK_TILE_DEVICE bool has_static_tile_distribution ()
 
static constexpr CK_TILE_DEVICE auto get_window_adaptor_ys_safe_vector_length_strides ()
 

Public Attributes

BottomTensorView bottom_tensor_view_
 
WindowLengths window_lengths_
 
BottomTensorIndex window_origin_
 
TileDstr tile_dstr_
 
PageIdxArray page_idx_
 
ValidArray valids_
 
array< tuple< WindowAdaptorCoord, BottomTensorCoord >, NumCoord > pre_computed_coords_
 

Static Public Attributes

static constexpr index_t NDimWindowAdaptorTop = WindowAdaptor::get_num_of_top_dimension()
 
static constexpr index_t NDimBottomTensor = BottomTensorDesc::get_num_of_dimension()
 
static constexpr index_t NDimP = TileDstr::get_num_of_dimension_p()
 
static constexpr index_t NDimY = TileDstr::get_num_of_dimension_y()
 
static constexpr auto I0 = number<0>{}
 
static constexpr auto I1 = number<1>{}
 
static constexpr index_t NumAccessPerCoord = load_store_traits::NumAccess / NumCoord
 

Detailed Description

template<typename BottomTensorView_, typename WindowLengths_, typename StaticTileDistribution_, typename StaticPageIndexArray_, typename StaticValidArray_, index_t HsGatherDim = 0, index_t NumCoord = 1, index_t YsGatherDim = 0>
struct ck_tile::tile_scatter_gather< BottomTensorView_, WindowLengths_, StaticTileDistribution_, StaticPageIndexArray_, StaticValidArray_, HsGatherDim, NumCoord, YsGatherDim >

This class provides tile (windowed) view and access to the device memory.

Note
This tile window does not support single issue you need to use tile_window_linear structure for this purpose
Template Parameters
BottomTensorView_Class describing & holding device tensor memory.
WindowLengths_Spatial sizes of windowed view on tensor.
StaticTileDistribution_Thread distribution (mapping) into Tile dimensions
NumCoordTBD

Member Typedef Documentation

◆ AdaptorTopIndex

template<typename BottomTensorView_ , typename WindowLengths_ , typename StaticTileDistribution_ , typename StaticPageIndexArray_ , typename StaticValidArray_ , index_t HsGatherDim = 0, index_t NumCoord = 1, index_t YsGatherDim = 0>
using ck_tile::tile_scatter_gather< BottomTensorView_, WindowLengths_, StaticTileDistribution_, StaticPageIndexArray_, StaticValidArray_, HsGatherDim, NumCoord, YsGatherDim >::AdaptorTopIndex = array<index_t, NDimWindowAdaptorTop>

◆ BottomTensorCoord

template<typename BottomTensorView_ , typename WindowLengths_ , typename StaticTileDistribution_ , typename StaticPageIndexArray_ , typename StaticValidArray_ , index_t HsGatherDim = 0, index_t NumCoord = 1, index_t YsGatherDim = 0>
using ck_tile::tile_scatter_gather< BottomTensorView_, WindowLengths_, StaticTileDistribution_, StaticPageIndexArray_, StaticValidArray_, HsGatherDim, NumCoord, YsGatherDim >::BottomTensorCoord = decltype(make_tensor_coordinate(BottomTensorDesc{}, BottomTensorIndex{}))

◆ BottomTensorDesc

template<typename BottomTensorView_ , typename WindowLengths_ , typename StaticTileDistribution_ , typename StaticPageIndexArray_ , typename StaticValidArray_ , index_t HsGatherDim = 0, index_t NumCoord = 1, index_t YsGatherDim = 0>
using ck_tile::tile_scatter_gather< BottomTensorView_, WindowLengths_, StaticTileDistribution_, StaticPageIndexArray_, StaticValidArray_, HsGatherDim, NumCoord, YsGatherDim >::BottomTensorDesc = typename BottomTensorView::TensorDesc

◆ BottomTensorIndex

template<typename BottomTensorView_ , typename WindowLengths_ , typename StaticTileDistribution_ , typename StaticPageIndexArray_ , typename StaticValidArray_ , index_t HsGatherDim = 0, index_t NumCoord = 1, index_t YsGatherDim = 0>
using ck_tile::tile_scatter_gather< BottomTensorView_, WindowLengths_, StaticTileDistribution_, StaticPageIndexArray_, StaticValidArray_, HsGatherDim, NumCoord, YsGatherDim >::BottomTensorIndex = array<index_t, NDimBottomTensor>

◆ BottomTensorView

template<typename BottomTensorView_ , typename WindowLengths_ , typename StaticTileDistribution_ , typename StaticPageIndexArray_ , typename StaticValidArray_ , index_t HsGatherDim = 0, index_t NumCoord = 1, index_t YsGatherDim = 0>
using ck_tile::tile_scatter_gather< BottomTensorView_, WindowLengths_, StaticTileDistribution_, StaticPageIndexArray_, StaticValidArray_, HsGatherDim, NumCoord, YsGatherDim >::BottomTensorView = remove_reference_t<BottomTensorView_>

◆ DataType

template<typename BottomTensorView_ , typename WindowLengths_ , typename StaticTileDistribution_ , typename StaticPageIndexArray_ , typename StaticValidArray_ , index_t HsGatherDim = 0, index_t NumCoord = 1, index_t YsGatherDim = 0>
using ck_tile::tile_scatter_gather< BottomTensorView_, WindowLengths_, StaticTileDistribution_, StaticPageIndexArray_, StaticValidArray_, HsGatherDim, NumCoord, YsGatherDim >::DataType = remove_cvref_t<typename BottomTensorView::DataType>

◆ PageIdxArray

template<typename BottomTensorView_ , typename WindowLengths_ , typename StaticTileDistribution_ , typename StaticPageIndexArray_ , typename StaticValidArray_ , index_t HsGatherDim = 0, index_t NumCoord = 1, index_t YsGatherDim = 0>
using ck_tile::tile_scatter_gather< BottomTensorView_, WindowLengths_, StaticTileDistribution_, StaticPageIndexArray_, StaticValidArray_, HsGatherDim, NumCoord, YsGatherDim >::PageIdxArray = remove_cvref_t<StaticPageIndexArray_>

◆ TileDstr

template<typename BottomTensorView_ , typename WindowLengths_ , typename StaticTileDistribution_ , typename StaticPageIndexArray_ , typename StaticValidArray_ , index_t HsGatherDim = 0, index_t NumCoord = 1, index_t YsGatherDim = 0>
using ck_tile::tile_scatter_gather< BottomTensorView_, WindowLengths_, StaticTileDistribution_, StaticPageIndexArray_, StaticValidArray_, HsGatherDim, NumCoord, YsGatherDim >::TileDstr = remove_cvref_t<StaticTileDistribution_>

◆ ValidArray

template<typename BottomTensorView_ , typename WindowLengths_ , typename StaticTileDistribution_ , typename StaticPageIndexArray_ , typename StaticValidArray_ , index_t HsGatherDim = 0, index_t NumCoord = 1, index_t YsGatherDim = 0>
using ck_tile::tile_scatter_gather< BottomTensorView_, WindowLengths_, StaticTileDistribution_, StaticPageIndexArray_, StaticValidArray_, HsGatherDim, NumCoord, YsGatherDim >::ValidArray = remove_cvref_t<StaticValidArray_>

◆ WindowAdaptor

template<typename BottomTensorView_ , typename WindowLengths_ , typename StaticTileDistribution_ , typename StaticPageIndexArray_ , typename StaticValidArray_ , index_t HsGatherDim = 0, index_t NumCoord = 1, index_t YsGatherDim = 0>
using ck_tile::tile_scatter_gather< BottomTensorView_, WindowLengths_, StaticTileDistribution_, StaticPageIndexArray_, StaticValidArray_, HsGatherDim, NumCoord, YsGatherDim >::WindowAdaptor = typename TileDstr::PsYs2XsAdaptor

◆ WindowAdaptorCoord

template<typename BottomTensorView_ , typename WindowLengths_ , typename StaticTileDistribution_ , typename StaticPageIndexArray_ , typename StaticValidArray_ , index_t HsGatherDim = 0, index_t NumCoord = 1, index_t YsGatherDim = 0>
using ck_tile::tile_scatter_gather< BottomTensorView_, WindowLengths_, StaticTileDistribution_, StaticPageIndexArray_, StaticValidArray_, HsGatherDim, NumCoord, YsGatherDim >::WindowAdaptorCoord = decltype(make_tensor_adaptor_coordinate(WindowAdaptor{}, AdaptorTopIndex{}))

◆ WindowLengths

template<typename BottomTensorView_ , typename WindowLengths_ , typename StaticTileDistribution_ , typename StaticPageIndexArray_ , typename StaticValidArray_ , index_t HsGatherDim = 0, index_t NumCoord = 1, index_t YsGatherDim = 0>
using ck_tile::tile_scatter_gather< BottomTensorView_, WindowLengths_, StaticTileDistribution_, StaticPageIndexArray_, StaticValidArray_, HsGatherDim, NumCoord, YsGatherDim >::WindowLengths = remove_cvref_t<WindowLengths_>

Constructor & Destructor Documentation

◆ tile_scatter_gather() [1/2]

template<typename BottomTensorView_ , typename WindowLengths_ , typename StaticTileDistribution_ , typename StaticPageIndexArray_ , typename StaticValidArray_ , index_t HsGatherDim = 0, index_t NumCoord = 1, index_t YsGatherDim = 0>
constexpr CK_TILE_DEVICE ck_tile::tile_scatter_gather< BottomTensorView_, WindowLengths_, StaticTileDistribution_, StaticPageIndexArray_, StaticValidArray_, HsGatherDim, NumCoord, YsGatherDim >::tile_scatter_gather ( )
constexprdefault

◆ tile_scatter_gather() [2/2]

template<typename BottomTensorView_ , typename WindowLengths_ , typename StaticTileDistribution_ , typename StaticPageIndexArray_ , typename StaticValidArray_ , index_t HsGatherDim = 0, index_t NumCoord = 1, index_t YsGatherDim = 0>
constexpr CK_TILE_DEVICE ck_tile::tile_scatter_gather< BottomTensorView_, WindowLengths_, StaticTileDistribution_, StaticPageIndexArray_, StaticValidArray_, HsGatherDim, NumCoord, YsGatherDim >::tile_scatter_gather ( const BottomTensorView bottom_tensor_view,
const WindowLengths window_lengths,
const BottomTensorIndex window_origin,
const TileDstr tile_distribution,
const PageIdxArray page_idx,
const ValidArray valids 
)
inlineconstexpr

Member Function Documentation

◆ async_load_raw()

template<typename BottomTensorView_ , typename WindowLengths_ , typename StaticTileDistribution_ , typename StaticPageIndexArray_ , typename StaticValidArray_ , index_t HsGatherDim = 0, index_t NumCoord = 1, index_t YsGatherDim = 0>
template<typename LdsTileWindow_ , index_t i_access_unsupport_ = -1, bool oob_conditional_check = true, bool pre_nop = false>
CK_TILE_DEVICE auto ck_tile::tile_scatter_gather< BottomTensorView_, WindowLengths_, StaticTileDistribution_, StaticPageIndexArray_, StaticValidArray_, HsGatherDim, NumCoord, YsGatherDim >::async_load_raw ( LdsTileWindow_ &&  lds_tile,
number< i_access_unsupport_ >  = {},
bool_constant< oob_conditional_check >  = {},
bool_constant< pre_nop >  = {} 
) const
inline

TODO: use structure binding (to be captured later) if compiled in C++20

◆ get_bottom_tensor_view()

template<typename BottomTensorView_ , typename WindowLengths_ , typename StaticTileDistribution_ , typename StaticPageIndexArray_ , typename StaticValidArray_ , index_t HsGatherDim = 0, index_t NumCoord = 1, index_t YsGatherDim = 0>
constexpr CK_TILE_DEVICE auto ck_tile::tile_scatter_gather< BottomTensorView_, WindowLengths_, StaticTileDistribution_, StaticPageIndexArray_, StaticValidArray_, HsGatherDim, NumCoord, YsGatherDim >::get_bottom_tensor_view ( ) const
inlineconstexpr

◆ get_num_of_access()

template<typename BottomTensorView_ , typename WindowLengths_ , typename StaticTileDistribution_ , typename StaticPageIndexArray_ , typename StaticValidArray_ , index_t HsGatherDim = 0, index_t NumCoord = 1, index_t YsGatherDim = 0>
constexpr CK_TILE_DEVICE auto ck_tile::tile_scatter_gather< BottomTensorView_, WindowLengths_, StaticTileDistribution_, StaticPageIndexArray_, StaticValidArray_, HsGatherDim, NumCoord, YsGatherDim >::get_num_of_access ( ) const
inlineconstexpr

◆ get_num_of_dimension()

template<typename BottomTensorView_ , typename WindowLengths_ , typename StaticTileDistribution_ , typename StaticPageIndexArray_ , typename StaticValidArray_ , index_t HsGatherDim = 0, index_t NumCoord = 1, index_t YsGatherDim = 0>
static constexpr CK_TILE_DEVICE index_t ck_tile::tile_scatter_gather< BottomTensorView_, WindowLengths_, StaticTileDistribution_, StaticPageIndexArray_, StaticValidArray_, HsGatherDim, NumCoord, YsGatherDim >::get_num_of_dimension ( )
inlinestaticconstexpr

◆ get_tile_distribution()

template<typename BottomTensorView_ , typename WindowLengths_ , typename StaticTileDistribution_ , typename StaticPageIndexArray_ , typename StaticValidArray_ , index_t HsGatherDim = 0, index_t NumCoord = 1, index_t YsGatherDim = 0>
constexpr CK_TILE_DEVICE auto ck_tile::tile_scatter_gather< BottomTensorView_, WindowLengths_, StaticTileDistribution_, StaticPageIndexArray_, StaticValidArray_, HsGatherDim, NumCoord, YsGatherDim >::get_tile_distribution ( ) const
inlineconstexpr

◆ get_window_adaptor_ys_safe_vector_length_strides()

template<typename BottomTensorView_ , typename WindowLengths_ , typename StaticTileDistribution_ , typename StaticPageIndexArray_ , typename StaticValidArray_ , index_t HsGatherDim = 0, index_t NumCoord = 1, index_t YsGatherDim = 0>
static constexpr CK_TILE_DEVICE auto ck_tile::tile_scatter_gather< BottomTensorView_, WindowLengths_, StaticTileDistribution_, StaticPageIndexArray_, StaticValidArray_, HsGatherDim, NumCoord, YsGatherDim >::get_window_adaptor_ys_safe_vector_length_strides ( )
inlinestaticconstexpr

◆ get_window_lengths()

template<typename BottomTensorView_ , typename WindowLengths_ , typename StaticTileDistribution_ , typename StaticPageIndexArray_ , typename StaticValidArray_ , index_t HsGatherDim = 0, index_t NumCoord = 1, index_t YsGatherDim = 0>
constexpr CK_TILE_DEVICE auto ck_tile::tile_scatter_gather< BottomTensorView_, WindowLengths_, StaticTileDistribution_, StaticPageIndexArray_, StaticValidArray_, HsGatherDim, NumCoord, YsGatherDim >::get_window_lengths ( ) const
inlineconstexpr

◆ get_window_origin()

template<typename BottomTensorView_ , typename WindowLengths_ , typename StaticTileDistribution_ , typename StaticPageIndexArray_ , typename StaticValidArray_ , index_t HsGatherDim = 0, index_t NumCoord = 1, index_t YsGatherDim = 0>
constexpr CK_TILE_DEVICE auto ck_tile::tile_scatter_gather< BottomTensorView_, WindowLengths_, StaticTileDistribution_, StaticPageIndexArray_, StaticValidArray_, HsGatherDim, NumCoord, YsGatherDim >::get_window_origin ( ) const
inlineconstexpr

◆ has_static_tile_distribution()

template<typename BottomTensorView_ , typename WindowLengths_ , typename StaticTileDistribution_ , typename StaticPageIndexArray_ , typename StaticValidArray_ , index_t HsGatherDim = 0, index_t NumCoord = 1, index_t YsGatherDim = 0>
static constexpr CK_TILE_DEVICE bool ck_tile::tile_scatter_gather< BottomTensorView_, WindowLengths_, StaticTileDistribution_, StaticPageIndexArray_, StaticValidArray_, HsGatherDim, NumCoord, YsGatherDim >::has_static_tile_distribution ( )
inlinestaticconstexpr

◆ init_raw()

template<typename BottomTensorView_ , typename WindowLengths_ , typename StaticTileDistribution_ , typename StaticPageIndexArray_ , typename StaticValidArray_ , index_t HsGatherDim = 0, index_t NumCoord = 1, index_t YsGatherDim = 0>
CK_TILE_HOST_DEVICE void ck_tile::tile_scatter_gather< BottomTensorView_, WindowLengths_, StaticTileDistribution_, StaticPageIndexArray_, StaticValidArray_, HsGatherDim, NumCoord, YsGatherDim >::init_raw ( )
inline

◆ load() [1/2]

template<typename BottomTensorView_ , typename WindowLengths_ , typename StaticTileDistribution_ , typename StaticPageIndexArray_ , typename StaticValidArray_ , index_t HsGatherDim = 0, index_t NumCoord = 1, index_t YsGatherDim = 0>
template<typename DistributedTensor , index_t i_access_unsupport_ = -1, bool oob_conditional_check = true>
CK_TILE_DEVICE auto ck_tile::tile_scatter_gather< BottomTensorView_, WindowLengths_, StaticTileDistribution_, StaticPageIndexArray_, StaticValidArray_, HsGatherDim, NumCoord, YsGatherDim >::load ( DistributedTensor &  dst_tensor,
number< i_access_unsupport_ >  = {},
bool_constant< oob_conditional_check >  = {} 
) const
inline

TODO: use structure binding (to be captured later) if compiled in C++20

◆ load() [2/2]

template<typename BottomTensorView_ , typename WindowLengths_ , typename StaticTileDistribution_ , typename StaticPageIndexArray_ , typename StaticValidArray_ , index_t HsGatherDim = 0, index_t NumCoord = 1, index_t YsGatherDim = 0>
template<index_t i_access_unsupport_ = -1, bool oob_conditional_check = true>
CK_TILE_DEVICE auto ck_tile::tile_scatter_gather< BottomTensorView_, WindowLengths_, StaticTileDistribution_, StaticPageIndexArray_, StaticValidArray_, HsGatherDim, NumCoord, YsGatherDim >::load ( number< i_access_unsupport_ >  = {},
bool_constant< oob_conditional_check >  = {} 
) const
inline

◆ move()

template<typename BottomTensorView_ , typename WindowLengths_ , typename StaticTileDistribution_ , typename StaticPageIndexArray_ , typename StaticValidArray_ , index_t HsGatherDim = 0, index_t NumCoord = 1, index_t YsGatherDim = 0>
CK_TILE_DEVICE void ck_tile::tile_scatter_gather< BottomTensorView_, WindowLengths_, StaticTileDistribution_, StaticPageIndexArray_, StaticValidArray_, HsGatherDim, NumCoord, YsGatherDim >::move ( const BottomTensorIndex step)
inline

◆ move_window_adaptor_and_bottom_tensor_thread_coordinate()

template<typename BottomTensorView_ , typename WindowLengths_ , typename StaticTileDistribution_ , typename StaticPageIndexArray_ , typename StaticValidArray_ , index_t HsGatherDim = 0, index_t NumCoord = 1, index_t YsGatherDim = 0>
template<typename ATopIndex >
CK_TILE_DEVICE void ck_tile::tile_scatter_gather< BottomTensorView_, WindowLengths_, StaticTileDistribution_, StaticPageIndexArray_, StaticValidArray_, HsGatherDim, NumCoord, YsGatherDim >::move_window_adaptor_and_bottom_tensor_thread_coordinate ( WindowAdaptorCoord window_adaptor_thread_coord,
BottomTensorCoord bottom_tensor_thread_coord,
const ATopIndex &  idx_diff_adaptor_top 
) const
inline

◆ set_bottom_tensor_view_data_ptr()

template<typename BottomTensorView_ , typename WindowLengths_ , typename StaticTileDistribution_ , typename StaticPageIndexArray_ , typename StaticValidArray_ , index_t HsGatherDim = 0, index_t NumCoord = 1, index_t YsGatherDim = 0>
constexpr CK_TILE_DEVICE void ck_tile::tile_scatter_gather< BottomTensorView_, WindowLengths_, StaticTileDistribution_, StaticPageIndexArray_, StaticValidArray_, HsGatherDim, NumCoord, YsGatherDim >::set_bottom_tensor_view_data_ptr ( typename BottomTensorView::DataType *  data)
inlineconstexpr

◆ set_window_origin()

template<typename BottomTensorView_ , typename WindowLengths_ , typename StaticTileDistribution_ , typename StaticPageIndexArray_ , typename StaticValidArray_ , index_t HsGatherDim = 0, index_t NumCoord = 1, index_t YsGatherDim = 0>
CK_TILE_DEVICE void ck_tile::tile_scatter_gather< BottomTensorView_, WindowLengths_, StaticTileDistribution_, StaticPageIndexArray_, StaticValidArray_, HsGatherDim, NumCoord, YsGatherDim >::set_window_origin ( const BottomTensorIndex new_window_origin)
inline

◆ store()

template<typename BottomTensorView_ , typename WindowLengths_ , typename StaticTileDistribution_ , typename StaticPageIndexArray_ , typename StaticValidArray_ , index_t HsGatherDim = 0, index_t NumCoord = 1, index_t YsGatherDim = 0>
template<index_t i_access_unsupport_ = -1, bool oob_conditional_check = true>
CK_TILE_DEVICE void ck_tile::tile_scatter_gather< BottomTensorView_, WindowLengths_, StaticTileDistribution_, StaticPageIndexArray_, StaticValidArray_, HsGatherDim, NumCoord, YsGatherDim >::store ( const static_distributed_tensor< DataType, TileDstr > &  dstr_tensor,
number< i_access_unsupport_ >  = {},
bool_constant< oob_conditional_check >  = {} 
) const
inline

◆ update_page_idx()

template<typename BottomTensorView_ , typename WindowLengths_ , typename StaticTileDistribution_ , typename StaticPageIndexArray_ , typename StaticValidArray_ , index_t HsGatherDim = 0, index_t NumCoord = 1, index_t YsGatherDim = 0>
CK_TILE_DEVICE void ck_tile::tile_scatter_gather< BottomTensorView_, WindowLengths_, StaticTileDistribution_, StaticPageIndexArray_, StaticValidArray_, HsGatherDim, NumCoord, YsGatherDim >::update_page_idx ( const PageIdxArray new_idx)
inline

◆ update_page_idx_and_valids()

template<typename BottomTensorView_ , typename WindowLengths_ , typename StaticTileDistribution_ , typename StaticPageIndexArray_ , typename StaticValidArray_ , index_t HsGatherDim = 0, index_t NumCoord = 1, index_t YsGatherDim = 0>
CK_TILE_DEVICE void ck_tile::tile_scatter_gather< BottomTensorView_, WindowLengths_, StaticTileDistribution_, StaticPageIndexArray_, StaticValidArray_, HsGatherDim, NumCoord, YsGatherDim >::update_page_idx_and_valids ( const PageIdxArray new_idx,
const ValidArray new_valids 
)
inline

◆ update_valids()

template<typename BottomTensorView_ , typename WindowLengths_ , typename StaticTileDistribution_ , typename StaticPageIndexArray_ , typename StaticValidArray_ , index_t HsGatherDim = 0, index_t NumCoord = 1, index_t YsGatherDim = 0>
CK_TILE_DEVICE void ck_tile::tile_scatter_gather< BottomTensorView_, WindowLengths_, StaticTileDistribution_, StaticPageIndexArray_, StaticValidArray_, HsGatherDim, NumCoord, YsGatherDim >::update_valids ( const ValidArray new_valids)
inline

Member Data Documentation

◆ bottom_tensor_view_

template<typename BottomTensorView_ , typename WindowLengths_ , typename StaticTileDistribution_ , typename StaticPageIndexArray_ , typename StaticValidArray_ , index_t HsGatherDim = 0, index_t NumCoord = 1, index_t YsGatherDim = 0>
BottomTensorView ck_tile::tile_scatter_gather< BottomTensorView_, WindowLengths_, StaticTileDistribution_, StaticPageIndexArray_, StaticValidArray_, HsGatherDim, NumCoord, YsGatherDim >::bottom_tensor_view_

◆ I0

template<typename BottomTensorView_ , typename WindowLengths_ , typename StaticTileDistribution_ , typename StaticPageIndexArray_ , typename StaticValidArray_ , index_t HsGatherDim = 0, index_t NumCoord = 1, index_t YsGatherDim = 0>
constexpr auto ck_tile::tile_scatter_gather< BottomTensorView_, WindowLengths_, StaticTileDistribution_, StaticPageIndexArray_, StaticValidArray_, HsGatherDim, NumCoord, YsGatherDim >::I0 = number<0>{}
staticconstexpr

◆ I1

template<typename BottomTensorView_ , typename WindowLengths_ , typename StaticTileDistribution_ , typename StaticPageIndexArray_ , typename StaticValidArray_ , index_t HsGatherDim = 0, index_t NumCoord = 1, index_t YsGatherDim = 0>
constexpr auto ck_tile::tile_scatter_gather< BottomTensorView_, WindowLengths_, StaticTileDistribution_, StaticPageIndexArray_, StaticValidArray_, HsGatherDim, NumCoord, YsGatherDim >::I1 = number<1>{}
staticconstexpr

◆ NDimBottomTensor

template<typename BottomTensorView_ , typename WindowLengths_ , typename StaticTileDistribution_ , typename StaticPageIndexArray_ , typename StaticValidArray_ , index_t HsGatherDim = 0, index_t NumCoord = 1, index_t YsGatherDim = 0>
constexpr index_t ck_tile::tile_scatter_gather< BottomTensorView_, WindowLengths_, StaticTileDistribution_, StaticPageIndexArray_, StaticValidArray_, HsGatherDim, NumCoord, YsGatherDim >::NDimBottomTensor = BottomTensorDesc::get_num_of_dimension()
staticconstexpr

◆ NDimP

template<typename BottomTensorView_ , typename WindowLengths_ , typename StaticTileDistribution_ , typename StaticPageIndexArray_ , typename StaticValidArray_ , index_t HsGatherDim = 0, index_t NumCoord = 1, index_t YsGatherDim = 0>
constexpr index_t ck_tile::tile_scatter_gather< BottomTensorView_, WindowLengths_, StaticTileDistribution_, StaticPageIndexArray_, StaticValidArray_, HsGatherDim, NumCoord, YsGatherDim >::NDimP = TileDstr::get_num_of_dimension_p()
staticconstexpr

◆ NDimWindowAdaptorTop

template<typename BottomTensorView_ , typename WindowLengths_ , typename StaticTileDistribution_ , typename StaticPageIndexArray_ , typename StaticValidArray_ , index_t HsGatherDim = 0, index_t NumCoord = 1, index_t YsGatherDim = 0>
constexpr index_t ck_tile::tile_scatter_gather< BottomTensorView_, WindowLengths_, StaticTileDistribution_, StaticPageIndexArray_, StaticValidArray_, HsGatherDim, NumCoord, YsGatherDim >::NDimWindowAdaptorTop = WindowAdaptor::get_num_of_top_dimension()
staticconstexpr

◆ NDimY

template<typename BottomTensorView_ , typename WindowLengths_ , typename StaticTileDistribution_ , typename StaticPageIndexArray_ , typename StaticValidArray_ , index_t HsGatherDim = 0, index_t NumCoord = 1, index_t YsGatherDim = 0>
constexpr index_t ck_tile::tile_scatter_gather< BottomTensorView_, WindowLengths_, StaticTileDistribution_, StaticPageIndexArray_, StaticValidArray_, HsGatherDim, NumCoord, YsGatherDim >::NDimY = TileDstr::get_num_of_dimension_y()
staticconstexpr

◆ NumAccessPerCoord

template<typename BottomTensorView_ , typename WindowLengths_ , typename StaticTileDistribution_ , typename StaticPageIndexArray_ , typename StaticValidArray_ , index_t HsGatherDim = 0, index_t NumCoord = 1, index_t YsGatherDim = 0>
constexpr index_t ck_tile::tile_scatter_gather< BottomTensorView_, WindowLengths_, StaticTileDistribution_, StaticPageIndexArray_, StaticValidArray_, HsGatherDim, NumCoord, YsGatherDim >::NumAccessPerCoord = load_store_traits::NumAccess / NumCoord
staticconstexpr

◆ page_idx_

template<typename BottomTensorView_ , typename WindowLengths_ , typename StaticTileDistribution_ , typename StaticPageIndexArray_ , typename StaticValidArray_ , index_t HsGatherDim = 0, index_t NumCoord = 1, index_t YsGatherDim = 0>
PageIdxArray ck_tile::tile_scatter_gather< BottomTensorView_, WindowLengths_, StaticTileDistribution_, StaticPageIndexArray_, StaticValidArray_, HsGatherDim, NumCoord, YsGatherDim >::page_idx_

◆ pre_computed_coords_

template<typename BottomTensorView_ , typename WindowLengths_ , typename StaticTileDistribution_ , typename StaticPageIndexArray_ , typename StaticValidArray_ , index_t HsGatherDim = 0, index_t NumCoord = 1, index_t YsGatherDim = 0>
array<tuple<WindowAdaptorCoord, BottomTensorCoord>, NumCoord> ck_tile::tile_scatter_gather< BottomTensorView_, WindowLengths_, StaticTileDistribution_, StaticPageIndexArray_, StaticValidArray_, HsGatherDim, NumCoord, YsGatherDim >::pre_computed_coords_

◆ tile_dstr_

template<typename BottomTensorView_ , typename WindowLengths_ , typename StaticTileDistribution_ , typename StaticPageIndexArray_ , typename StaticValidArray_ , index_t HsGatherDim = 0, index_t NumCoord = 1, index_t YsGatherDim = 0>
TileDstr ck_tile::tile_scatter_gather< BottomTensorView_, WindowLengths_, StaticTileDistribution_, StaticPageIndexArray_, StaticValidArray_, HsGatherDim, NumCoord, YsGatherDim >::tile_dstr_

◆ valids_

template<typename BottomTensorView_ , typename WindowLengths_ , typename StaticTileDistribution_ , typename StaticPageIndexArray_ , typename StaticValidArray_ , index_t HsGatherDim = 0, index_t NumCoord = 1, index_t YsGatherDim = 0>
ValidArray ck_tile::tile_scatter_gather< BottomTensorView_, WindowLengths_, StaticTileDistribution_, StaticPageIndexArray_, StaticValidArray_, HsGatherDim, NumCoord, YsGatherDim >::valids_

◆ window_lengths_

template<typename BottomTensorView_ , typename WindowLengths_ , typename StaticTileDistribution_ , typename StaticPageIndexArray_ , typename StaticValidArray_ , index_t HsGatherDim = 0, index_t NumCoord = 1, index_t YsGatherDim = 0>
WindowLengths ck_tile::tile_scatter_gather< BottomTensorView_, WindowLengths_, StaticTileDistribution_, StaticPageIndexArray_, StaticValidArray_, HsGatherDim, NumCoord, YsGatherDim >::window_lengths_

◆ window_origin_

template<typename BottomTensorView_ , typename WindowLengths_ , typename StaticTileDistribution_ , typename StaticPageIndexArray_ , typename StaticValidArray_ , index_t HsGatherDim = 0, index_t NumCoord = 1, index_t YsGatherDim = 0>
BottomTensorIndex ck_tile::tile_scatter_gather< BottomTensorView_, WindowLengths_, StaticTileDistribution_, StaticPageIndexArray_, StaticValidArray_, HsGatherDim, NumCoord, YsGatherDim >::window_origin_

The documentation for this struct was generated from the following file:
  • /home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-composable-kernel/checkouts/develop/include/ck_tile/core/tensor/tile_scatter_gather.hpp