PageBlockNavigator< DataType_, VirtualDim, TensorView > Struct Template Reference

PageBlockNavigator&lt; DataType_, VirtualDim, TensorView &gt; Struct Template Reference#

Composable Kernel: ck_tile::PageBlockNavigator< DataType_, VirtualDim, TensorView > Struct Template Reference
ck_tile::PageBlockNavigator< DataType_, VirtualDim, TensorView > Struct Template Reference

#include <page_block_navigator.hpp>

Public Types

using DataType = DataType_
using WindowOrigin = multi_index<2>

Public Member Functions

CK_TILE_HOST_DEVICE constexpr PageBlockNavigator (copy_const_t< DataType, void > *physical_blocks_, long_index_t block_stride_, long_index_t fixed_offset_, const int32_t *physical_block_indices_, index_t num_blocks_, index_t page_block_size_, const TensorView &complete_view_, const TensorView &last_view_)
template<typename WindowLengths>
CK_TILE_HOST_DEVICE auto make_tile_window (const WindowLengths &window_lengths, const WindowOrigin &window_origin) const
template<typename WindowLengths, typename TileDistribution>
CK_TILE_HOST_DEVICE auto make_tile_window (const WindowLengths &window_lengths, const WindowOrigin &window_origin, const TileDistribution &tile_distribution) const
template<typename TileWindow>
CK_TILE_HOST_DEVICE index_t move_tile_window (index_t block_index, TileWindow &tile_window, const typename remove_cvref_t< TileWindow >::BottomTensorIndex &step) const
template<typename TileWindow>
CK_TILE_HOST_DEVICE index_t move_tile_window (index_t block_index, TileWindow &tile_window, const typename remove_cvref_t< TileWindow >::BottomTensorIndex &step, index_t id) const
template<typename TileWindow>
CK_TILE_HOST_DEVICE index_t prefetch_table_id (index_t block_index, TileWindow &tile_window, const typename remove_cvref_t< TileWindow >::BottomTensorIndex &step) const
CK_TILE_HOST_DEVICE bool is_last_block (index_t block_index) const
template<typename TileWindow>
CK_TILE_HOST_DEVICE bool is_cross_block (index_t block_index, const TileWindow &tile_window) const
template<typename TileWindow>
CK_TILE_HOST_DEVICE void move_to_block (index_t block_index, TileWindow &tile_window, index_t new_block_index) const
CK_TILE_HOST_DEVICE WindowOrigin to_local_window_origin (const WindowOrigin &global_window_origin) const
CK_TILE_HOST_DEVICE WindowOrigin to_global_window_origin (index_t block_index, const WindowOrigin &local_window_origin) const

Member Typedef Documentation

◆ DataType

template<typename DataType_, index_t VirtualDim, typename TensorView>
using ck_tile::PageBlockNavigator< DataType_, VirtualDim, TensorView >::DataType = DataType_

◆ WindowOrigin

template<typename DataType_, index_t VirtualDim, typename TensorView>
using ck_tile::PageBlockNavigator< DataType_, VirtualDim, TensorView >::WindowOrigin = multi_index<2>

Constructor & Destructor Documentation

◆ PageBlockNavigator()

template<typename DataType_, index_t VirtualDim, typename TensorView>
CK_TILE_HOST_DEVICE constexpr ck_tile::PageBlockNavigator< DataType_, VirtualDim, TensorView >::PageBlockNavigator ( copy_const_t< DataType, void > * physical_blocks_,
long_index_t block_stride_,
long_index_t fixed_offset_,
const int32_t * physical_block_indices_,
index_t num_blocks_,
index_t page_block_size_,
const TensorView & complete_view_,
const TensorView & last_view_ )
inlineconstexpr

Member Function Documentation

◆ is_cross_block()

template<typename DataType_, index_t VirtualDim, typename TensorView>
template<typename TileWindow>
CK_TILE_HOST_DEVICE bool ck_tile::PageBlockNavigator< DataType_, VirtualDim, TensorView >::is_cross_block ( index_t block_index,
const TileWindow & tile_window ) const
inline

◆ is_last_block()

template<typename DataType_, index_t VirtualDim, typename TensorView>
CK_TILE_HOST_DEVICE bool ck_tile::PageBlockNavigator< DataType_, VirtualDim, TensorView >::is_last_block ( index_t block_index) const
inline

◆ make_tile_window() [1/2]

template<typename DataType_, index_t VirtualDim, typename TensorView>
template<typename WindowLengths>
CK_TILE_HOST_DEVICE auto ck_tile::PageBlockNavigator< DataType_, VirtualDim, TensorView >::make_tile_window ( const WindowLengths & window_lengths,
const WindowOrigin & window_origin ) const
inline

◆ make_tile_window() [2/2]

template<typename DataType_, index_t VirtualDim, typename TensorView>
template<typename WindowLengths, typename TileDistribution>
CK_TILE_HOST_DEVICE auto ck_tile::PageBlockNavigator< DataType_, VirtualDim, TensorView >::make_tile_window ( const WindowLengths & window_lengths,
const WindowOrigin & window_origin,
const TileDistribution & tile_distribution ) const
inline

◆ move_tile_window() [1/2]

template<typename DataType_, index_t VirtualDim, typename TensorView>
template<typename TileWindow>
CK_TILE_HOST_DEVICE index_t ck_tile::PageBlockNavigator< DataType_, VirtualDim, TensorView >::move_tile_window ( index_t block_index,
TileWindow & tile_window,
const typename remove_cvref_t< TileWindow >::BottomTensorIndex & step ) const
inline

TODO: only update necessary attributes

◆ move_tile_window() [2/2]

template<typename DataType_, index_t VirtualDim, typename TensorView>
template<typename TileWindow>
CK_TILE_HOST_DEVICE index_t ck_tile::PageBlockNavigator< DataType_, VirtualDim, TensorView >::move_tile_window ( index_t block_index,
TileWindow & tile_window,
const typename remove_cvref_t< TileWindow >::BottomTensorIndex & step,
index_t id ) const
inline

TODO: only update necessary attributes

◆ move_to_block()

template<typename DataType_, index_t VirtualDim, typename TensorView>
template<typename TileWindow>
CK_TILE_HOST_DEVICE void ck_tile::PageBlockNavigator< DataType_, VirtualDim, TensorView >::move_to_block ( index_t block_index,
TileWindow & tile_window,
index_t new_block_index ) const
inline

TODO: only update necessary attributes

◆ prefetch_table_id()

template<typename DataType_, index_t VirtualDim, typename TensorView>
template<typename TileWindow>
CK_TILE_HOST_DEVICE index_t ck_tile::PageBlockNavigator< DataType_, VirtualDim, TensorView >::prefetch_table_id ( index_t block_index,
TileWindow & tile_window,
const typename remove_cvref_t< TileWindow >::BottomTensorIndex & step ) const
inline

◆ to_global_window_origin()

template<typename DataType_, index_t VirtualDim, typename TensorView>
CK_TILE_HOST_DEVICE WindowOrigin ck_tile::PageBlockNavigator< DataType_, VirtualDim, TensorView >::to_global_window_origin ( index_t block_index,
const WindowOrigin & local_window_origin ) const
inline

◆ to_local_window_origin()

template<typename DataType_, index_t VirtualDim, typename TensorView>
CK_TILE_HOST_DEVICE WindowOrigin ck_tile::PageBlockNavigator< DataType_, VirtualDim, TensorView >::to_local_window_origin ( const WindowOrigin & global_window_origin) const
inline

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