Generic2dBlockShape< BlockTile_, ThreadPerBlock_, Vector_ > Struct Template Reference

Generic2dBlockShape&lt; BlockTile_, ThreadPerBlock_, Vector_ &gt; Struct Template Reference#

Composable Kernel: ck_tile::Generic2dBlockShape< BlockTile_, ThreadPerBlock_, Vector_ > Struct Template Reference
ck_tile::Generic2dBlockShape< BlockTile_, ThreadPerBlock_, Vector_ > Struct Template Reference

#include <generic_2d_block_shape.hpp>

Static Public Member Functions

template<bool isHostWave32>
static constexpr index_t GetWarpPerBlock_M ()
template<bool isHostWave32>
static constexpr index_t GetWarpPerBlock_N ()
template<bool isHostWave32>
static constexpr index_t GetBlockSize ()

Static Public Attributes

static constexpr index_t Block_M = BlockTile_::at(number<0>{})
static constexpr index_t Block_N = BlockTile_::at(number<1>{})
static constexpr index_t ThreadPerBlock_M = ThreadPerBlock_::at(number<0>{})
static constexpr index_t ThreadPerBlock_N = ThreadPerBlock_::at(number<1>{})
static constexpr index_t Vector_M = Vector_::at(number<0>{})
static constexpr index_t Vector_N = Vector_::at(number<1>{})
static constexpr index_t WarpPerBlock_M = GetWarpPerBlock_M<false>()
static constexpr index_t WarpPerBlock_N = GetWarpPerBlock_N<false>()
static constexpr index_t BlockSize = WarpPerBlock_M * WarpPerBlock_N * get_warp_size()
static constexpr index_t Warp_M = ThreadPerBlock_M / WarpPerBlock_M * Vector_M
static constexpr index_t Warp_N = ThreadPerBlock_N / WarpPerBlock_N * Vector_N
static constexpr index_t Repeat_M = Block_M / (WarpPerBlock_M * Warp_M)
static constexpr index_t Repeat_N = Block_N / (WarpPerBlock_N * Warp_N)
static constexpr index_t ThreadPerWarp_M = Warp_M / Vector_M
static constexpr index_t ThreadPerWarp_N = Warp_N / Vector_N

Member Function Documentation

◆ GetBlockSize()

template<typename BlockTile_, typename ThreadPerBlock_, typename Vector_>
template<bool isHostWave32>
constexpr index_t ck_tile::Generic2dBlockShape< BlockTile_, ThreadPerBlock_, Vector_ >::GetBlockSize ( )
inlinestaticconstexpr

◆ GetWarpPerBlock_M()

template<typename BlockTile_, typename ThreadPerBlock_, typename Vector_>
template<bool isHostWave32>
constexpr index_t ck_tile::Generic2dBlockShape< BlockTile_, ThreadPerBlock_, Vector_ >::GetWarpPerBlock_M ( )
inlinestaticconstexpr

◆ GetWarpPerBlock_N()

template<typename BlockTile_, typename ThreadPerBlock_, typename Vector_>
template<bool isHostWave32>
constexpr index_t ck_tile::Generic2dBlockShape< BlockTile_, ThreadPerBlock_, Vector_ >::GetWarpPerBlock_N ( )
inlinestaticconstexpr

Member Data Documentation

◆ Block_M

template<typename BlockTile_, typename ThreadPerBlock_, typename Vector_>
index_t ck_tile::Generic2dBlockShape< BlockTile_, ThreadPerBlock_, Vector_ >::Block_M = BlockTile_::at(number<0>{})
staticconstexpr

◆ Block_N

template<typename BlockTile_, typename ThreadPerBlock_, typename Vector_>
index_t ck_tile::Generic2dBlockShape< BlockTile_, ThreadPerBlock_, Vector_ >::Block_N = BlockTile_::at(number<1>{})
staticconstexpr

◆ BlockSize

template<typename BlockTile_, typename ThreadPerBlock_, typename Vector_>
index_t ck_tile::Generic2dBlockShape< BlockTile_, ThreadPerBlock_, Vector_ >::BlockSize = WarpPerBlock_M * WarpPerBlock_N * get_warp_size()
staticconstexpr

◆ Repeat_M

template<typename BlockTile_, typename ThreadPerBlock_, typename Vector_>
index_t ck_tile::Generic2dBlockShape< BlockTile_, ThreadPerBlock_, Vector_ >::Repeat_M = Block_M / (WarpPerBlock_M * Warp_M)
staticconstexpr

◆ Repeat_N

template<typename BlockTile_, typename ThreadPerBlock_, typename Vector_>
index_t ck_tile::Generic2dBlockShape< BlockTile_, ThreadPerBlock_, Vector_ >::Repeat_N = Block_N / (WarpPerBlock_N * Warp_N)
staticconstexpr

◆ ThreadPerBlock_M

template<typename BlockTile_, typename ThreadPerBlock_, typename Vector_>
index_t ck_tile::Generic2dBlockShape< BlockTile_, ThreadPerBlock_, Vector_ >::ThreadPerBlock_M = ThreadPerBlock_::at(number<0>{})
staticconstexpr

◆ ThreadPerBlock_N

template<typename BlockTile_, typename ThreadPerBlock_, typename Vector_>
index_t ck_tile::Generic2dBlockShape< BlockTile_, ThreadPerBlock_, Vector_ >::ThreadPerBlock_N = ThreadPerBlock_::at(number<1>{})
staticconstexpr

◆ ThreadPerWarp_M

template<typename BlockTile_, typename ThreadPerBlock_, typename Vector_>
index_t ck_tile::Generic2dBlockShape< BlockTile_, ThreadPerBlock_, Vector_ >::ThreadPerWarp_M = Warp_M / Vector_M
staticconstexpr

◆ ThreadPerWarp_N

template<typename BlockTile_, typename ThreadPerBlock_, typename Vector_>
index_t ck_tile::Generic2dBlockShape< BlockTile_, ThreadPerBlock_, Vector_ >::ThreadPerWarp_N = Warp_N / Vector_N
staticconstexpr

◆ Vector_M

template<typename BlockTile_, typename ThreadPerBlock_, typename Vector_>
index_t ck_tile::Generic2dBlockShape< BlockTile_, ThreadPerBlock_, Vector_ >::Vector_M = Vector_::at(number<0>{})
staticconstexpr

◆ Vector_N

template<typename BlockTile_, typename ThreadPerBlock_, typename Vector_>
index_t ck_tile::Generic2dBlockShape< BlockTile_, ThreadPerBlock_, Vector_ >::Vector_N = Vector_::at(number<1>{})
staticconstexpr

◆ Warp_M

template<typename BlockTile_, typename ThreadPerBlock_, typename Vector_>
index_t ck_tile::Generic2dBlockShape< BlockTile_, ThreadPerBlock_, Vector_ >::Warp_M = ThreadPerBlock_M / WarpPerBlock_M * Vector_M
staticconstexpr

◆ Warp_N

template<typename BlockTile_, typename ThreadPerBlock_, typename Vector_>
index_t ck_tile::Generic2dBlockShape< BlockTile_, ThreadPerBlock_, Vector_ >::Warp_N = ThreadPerBlock_N / WarpPerBlock_N * Vector_N
staticconstexpr

◆ WarpPerBlock_M

template<typename BlockTile_, typename ThreadPerBlock_, typename Vector_>
index_t ck_tile::Generic2dBlockShape< BlockTile_, ThreadPerBlock_, Vector_ >::WarpPerBlock_M = GetWarpPerBlock_M<false>()
staticconstexpr

◆ WarpPerBlock_N

template<typename BlockTile_, typename ThreadPerBlock_, typename Vector_>
index_t ck_tile::Generic2dBlockShape< BlockTile_, ThreadPerBlock_, Vector_ >::WarpPerBlock_N = GetWarpPerBlock_N<false>()
staticconstexpr

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