tile_window_with_static_distribution< BottomTensorView_, WindowLengths_, StaticTileDistribution_, NumCoord > Struct Template Reference#
This class provides tile (windowed) view and access to the device memory. More...
#include <tile_window.hpp>
Public Types | |
| using | Base |
| Public Types inherited from ck_tile::tile_window_with_tile_dstr_base< tile_window_with_static_distribution< BottomTensorView_, WindowLengths_, StaticTileDistribution_, NumCoord >, BottomTensorView_, WindowLengths_, StaticTileDistribution_ > | |
| using | TileDstr |
| using | TileWindowBase |
| using | WindowAdaptor |
| using | AdaptorTopIndex |
| using | WindowAdaptorCoord |
| using | BottomTensorCoord |
| Public Types inherited from ck_tile::tile_window_base< TileWindowType_, BottomTensorView_, WindowLengths_ > | |
| using | BottomTensorView = remove_reference_t<BottomTensorView_> |
| using | WindowLengths = remove_cvref_t<WindowLengths_> |
| using | BottomTensorDesc = typename BottomTensorView::TensorDesc |
| using | DataType = remove_cvref_t<typename BottomTensorView::DataType> |
| using | BottomTensorIndex = array<index_t, NDimBottomTensor> |
Public Member Functions | |
| CK_TILE_DEVICE constexpr | tile_window_with_static_distribution ()=default |
| CK_TILE_DEVICE constexpr | tile_window_with_static_distribution (const typename Base::BottomTensorView &bottom_tensor_view, const typename Base::WindowLengths &window_lengths, const typename Base::BottomTensorIndex &window_origin, const typename Base::TileDstr &tile_distribution) |
| 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 TileWindow_, typename ElementWise_, index_t i_access_unsupport_ = -1, bool oob_conditional_check = true> | |
| CK_TILE_DEVICE auto | load (const TileWindow_ &tile_window, ElementWise_ elementwise, number< i_access_unsupport_ >={}, bool_constant< oob_conditional_check >={}) const |
| Load tile with elementwise function. | |
| template<typename DistributedTensor, typename TileWindow_, typename ElementWise_, index_t i_access_unsupport_ = -1, bool oob_conditional_check = true> | |
| CK_TILE_DEVICE auto | load (DistributedTensor &dst_tensor, const TileWindow_ &tile_window, ElementWise_ elementwise, 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 DstTile, index_t i_access_unsupport_ = -1, bool oob_conditional_check = true, bool pre_nop = false> | |
| CK_TILE_DEVICE void | load_raw (DstTile &dst_tensor, number< i_access_unsupport_ >={}, bool_constant< oob_conditional_check >={}, bool_constant< pre_nop >={}) 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<typename LdsTileWindow_, index_t i_access_unsupport_ = -1, bool oob_conditional_check = true> | |
| CK_TILE_DEVICE auto | async_load (LdsTileWindow_ &&lds_tile, number< i_access_unsupport_ >={}, bool_constant< oob_conditional_check >={}) const |
| template<typename Policy, index_t i_access_unsupport_ = -1, bool oob_conditional_check = true> | |
| CK_TILE_DEVICE auto | load_transpose () const |
| template<typename Policy, typename DistributedTensor, index_t i_access_unsupport_ = -1, bool oob_conditional_check = true> | |
| CK_TILE_DEVICE auto | load_transpose (DistributedTensor &dst_tensor, number< i_access_unsupport_ >={}, bool_constant< oob_conditional_check >={}) const |
| template<index_t i_access_unsupport_ = -1, bool oob_conditional_check = true> | |
| CK_TILE_DEVICE void | store (const static_distributed_tensor< typename Base::DataType, typename Base::TileDstr > &dstr_tensor, number< i_access_unsupport_ >={}, bool_constant< oob_conditional_check >={}) const |
| template<index_t i_access_unsupport_ = -1> | |
| CK_TILE_DEVICE void | store_raw (const static_distributed_tensor< typename Base::DataType, typename Base::TileDstr > &dstr_tensor, number< i_access_unsupport_ >={}) const |
| template<index_t i_access_unsupport_ = -1, bool oob_conditional_check = true> | |
| CK_TILE_DEVICE void | update (const static_distributed_tensor< typename Base::DataType, typename Base::TileDstr > &dstr_tensor, number< i_access_unsupport_ >={}, bool_constant< oob_conditional_check >={}) const |
| template<index_t i_access_unsupport_ = -1, bool oob_conditional_check = true, bool pre_nop> | |
| CK_TILE_DEVICE void | update_raw (const static_distributed_tensor< typename Base::DataType, typename Base::TileDstr > &dstr_tensor, number< i_access_unsupport_ >={}, bool_constant< oob_conditional_check >={}, bool_constant< pre_nop >={}) const |
| CK_TILE_DEVICE void | move_extended (const typename Base::BottomTensorIndex &step) |
| CK_TILE_DEVICE void | set_window_origin_extended (const typename Base::BottomTensorIndex &) |
| Public Member Functions inherited from ck_tile::tile_window_with_tile_dstr_base< tile_window_with_static_distribution< BottomTensorView_, WindowLengths_, StaticTileDistribution_, NumCoord >, BottomTensorView_, WindowLengths_, StaticTileDistribution_ > | |
| CK_TILE_DEVICE constexpr auto | get_tile_distribution () const |
| CK_TILE_HOST_DEVICE void | init_raw () |
| 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 |
| CK_TILE_DEVICE constexpr auto | get_num_of_access () const |
| Public Member Functions inherited from ck_tile::tile_window_base< TileWindowType_, BottomTensorView_, WindowLengths_ > | |
| CK_TILE_DEVICE constexpr auto | get_window_origin () const |
| CK_TILE_DEVICE constexpr auto | get_window_lengths () const |
| CK_TILE_DEVICE constexpr auto | get_bottom_tensor_view () const |
| CK_TILE_DEVICE void | set_window_origin (const BottomTensorIndex &new_window_origin) |
| CK_TILE_DEVICE void | set_window_origin_extended (const BottomTensorIndex &) |
| CK_TILE_DEVICE constexpr void | set_bottom_tensor_view_data_ptr (typename BottomTensorView::DataType *data) |
| CK_TILE_DEVICE void | move (const BottomTensorIndex &step) |
| CK_TILE_DEVICE void | move_extended (const BottomTensorIndex &) |
Public Attributes | |
| array< tuple< typename Base::WindowAdaptorCoord, typename Base::BottomTensorCoord >, NumCoord > | pre_computed_coords_ |
| Public Attributes inherited from ck_tile::tile_window_with_tile_dstr_base< tile_window_with_static_distribution< BottomTensorView_, WindowLengths_, StaticTileDistribution_, NumCoord >, BottomTensorView_, WindowLengths_, StaticTileDistribution_ > | |
| TileDstr | tile_dstr_ |
| Public Attributes inherited from ck_tile::tile_window_base< TileWindowType_, BottomTensorView_, WindowLengths_ > | |
| BottomTensorIndex | window_origin_ |
| WindowLengths | window_lengths_ |
| BottomTensorView | bottom_tensor_view_ |
Static Public Attributes | |
| static constexpr auto | I0 = number<0>{} |
| static constexpr auto | I1 = number<1>{} |
| static constexpr index_t | NumAccessPerCoord = Base::Traits::NumAccess / NumCoord |
| Static Public Attributes inherited from ck_tile::tile_window_with_tile_dstr_base< tile_window_with_static_distribution< BottomTensorView_, WindowLengths_, StaticTileDistribution_, NumCoord >, BottomTensorView_, WindowLengths_, StaticTileDistribution_ > | |
| static constexpr index_t | NDimWindowAdaptorTop |
| static constexpr index_t | NDimP |
| static constexpr index_t | NDimY |
| Static Public Attributes inherited from ck_tile::tile_window_base< TileWindowType_, BottomTensorView_, WindowLengths_ > | |
| static constexpr index_t | NDimBottomTensor = BottomTensorDesc::get_num_of_dimension() |
Additional Inherited Members | |
| Static Public Member Functions inherited from ck_tile::tile_window_with_tile_dstr_base< tile_window_with_static_distribution< BottomTensorView_, WindowLengths_, StaticTileDistribution_, NumCoord >, BottomTensorView_, WindowLengths_, StaticTileDistribution_ > | |
| static CK_TILE_DEVICE constexpr bool | has_static_tile_distribution () |
| static CK_TILE_DEVICE constexpr auto | get_window_adaptor_ys_safe_vector_length_strides () |
| Static Public Member Functions inherited from ck_tile::tile_window_base< TileWindowType_, BottomTensorView_, WindowLengths_ > | |
| static CK_TILE_DEVICE constexpr index_t | get_num_of_dimension () |
Detailed Description
struct ck_tile::tile_window_with_static_distribution< BottomTensorView_, WindowLengths_, StaticTileDistribution_, NumCoord >
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 NumCoord TBD
Member Typedef Documentation
◆ Base
| using ck_tile::tile_window_with_static_distribution< BottomTensorView_, WindowLengths_, StaticTileDistribution_, NumCoord >::Base |
Constructor & Destructor Documentation
◆ tile_window_with_static_distribution() [1/2]
|
constexprdefault |
◆ tile_window_with_static_distribution() [2/2]
|
inlineconstexpr |
Member Function Documentation
◆ async_load()
|
inline |
◆ async_load_raw()
|
inline |
TODO: use structure binding (to be captured later) if compiled in C++20
◆ load() [1/4]
|
inline |
Load tile with elementwise function.
- Note
- Load tile with elementwise — during value loading, an elementwise function is executed for each A0, A1, … AN. The values A0, A1, … AN are read by the same thread. In this way, we reduce the amount of information loaded into the registers. The same thread, during vectorized reading, accesses the same set of data from A0, A1, A2, … AN.
◆ load() [2/4]
|
inline |
TODO: use structure binding (to be captured later) if compiled in C++20
◆ load() [3/4]
|
inline |
TODO: use structure binding (to be captured later) if compiled in C++20
◆ load() [4/4]
|
inline |
◆ load_raw()
|
inline |
TODO: use structure binding (to be captured later) if compiled in C++20
◆ load_transpose() [1/2]
|
inline |
◆ load_transpose() [2/2]
|
inline |
TODO: use structure binding (to be captured later) if compiled in C++20
◆ move_extended()
|
inline |
◆ set_window_origin_extended()
|
inline |
◆ store()
|
inline |
◆ store_raw()
|
inline |
TODO: use structure binding (to be captured later) if compiled in C++20
◆ update()
|
inline |
TODO: use structure binding (to be captured later) if compiled in C++20
◆ update_raw()
|
inline |
TODO: use structure binding (to be captured later) if compiled in C++20
Member Data Documentation
◆ I0
|
staticconstexpr |
◆ I1
|
staticconstexpr |
◆ NumAccessPerCoord
|
staticconstexpr |
◆ pre_computed_coords_
| array<tuple<typename Base::WindowAdaptorCoord, typename Base::BottomTensorCoord>, NumCoord> ck_tile::tile_window_with_static_distribution< BottomTensorView_, WindowLengths_, StaticTileDistribution_, NumCoord >::pre_computed_coords_ |
The documentation for this struct was generated from the following file: