BlockToCTileMap_N00_M0_N01Adapt< MPerBlock, NPerBlock, void > Struct Template Reference

BlockToCTileMap_N00_M0_N01Adapt&lt; MPerBlock, NPerBlock, void &gt; Struct Template Reference#

Composable Kernel: ck::BlockToCTileMap_N00_M0_N01Adapt< MPerBlock, NPerBlock, void > Struct Template Reference
ck::BlockToCTileMap_N00_M0_N01Adapt< MPerBlock, NPerBlock, void > Struct Template Reference

#include <block_to_ctile_map.hpp>

Public Member Functions

__host__ __device__ BlockToCTileMap_N00_M0_N01Adapt ()=default
__host__ __device__ BlockToCTileMap_N00_M0_N01Adapt (const BlockToCTileMap_N00_M0_N01Adapt &)=default
__host__ __device__ BlockToCTileMap_N00_M0_N01Adapt (BlockToCTileMap_N00_M0_N01Adapt &&)=default
__host__ __device__ BlockToCTileMap_N00_M0_N01Adaptoperator= (const BlockToCTileMap_N00_M0_N01Adapt &)=default
__host__ __device__ BlockToCTileMap_N00_M0_N01Adaptoperator= (BlockToCTileMap_N00_M0_N01Adapt &&)=default
__host__ __device__ BlockToCTileMap_N00_M0_N01Adapt (index_t M, index_t N, index_t N01=8)
template<typename CGridDesc_M_N>
__host__ __device__ BlockToCTileMap_N00_M0_N01Adapt (const CGridDesc_M_N &c_grid_desc_m_n, index_t N01=8)
template<typename CGridDesc_M_N>
__host__ bool CheckValidity (const CGridDesc_M_N &) const
template<typename TopIdx>
__host__ __device__ constexpr auto CalculateBottomIndex (const TopIdx &idx_top) const
template<typename CTileIdx, typename CTileDim>
__host__ __device__ bool ValidCTileIndex (const CTileIdx &, const CTileDim &) const

Static Public Member Functions

__host__ static __device__ constexpr index_t CalculateGridSize (index_t M, index_t N)
template<typename CGridDesc_M_N>
static __host__ constexpr index_t CalculateGridSize (const CGridDesc_M_N &c_grid_desc_m_n)

Static Public Attributes

static constexpr auto I0 = Number<0>{}
static constexpr auto I1 = Number<1>{}

Constructor & Destructor Documentation

◆ BlockToCTileMap_N00_M0_N01Adapt() [1/5]

template<index_t MPerBlock, index_t NPerBlock>
__host__ __device__ ck::BlockToCTileMap_N00_M0_N01Adapt< MPerBlock, NPerBlock, void >::BlockToCTileMap_N00_M0_N01Adapt ( )
default

◆ BlockToCTileMap_N00_M0_N01Adapt() [2/5]

template<index_t MPerBlock, index_t NPerBlock>
__host__ __device__ ck::BlockToCTileMap_N00_M0_N01Adapt< MPerBlock, NPerBlock, void >::BlockToCTileMap_N00_M0_N01Adapt ( const BlockToCTileMap_N00_M0_N01Adapt< MPerBlock, NPerBlock, void > & )
default

◆ BlockToCTileMap_N00_M0_N01Adapt() [3/5]

template<index_t MPerBlock, index_t NPerBlock>
__host__ __device__ ck::BlockToCTileMap_N00_M0_N01Adapt< MPerBlock, NPerBlock, void >::BlockToCTileMap_N00_M0_N01Adapt ( BlockToCTileMap_N00_M0_N01Adapt< MPerBlock, NPerBlock, void > && )
default

◆ BlockToCTileMap_N00_M0_N01Adapt() [4/5]

template<index_t MPerBlock, index_t NPerBlock>
__host__ __device__ ck::BlockToCTileMap_N00_M0_N01Adapt< MPerBlock, NPerBlock, void >::BlockToCTileMap_N00_M0_N01Adapt ( index_t M,
index_t N,
index_t N01 = 8 )
inline

◆ BlockToCTileMap_N00_M0_N01Adapt() [5/5]

template<index_t MPerBlock, index_t NPerBlock>
template<typename CGridDesc_M_N>
__host__ __device__ ck::BlockToCTileMap_N00_M0_N01Adapt< MPerBlock, NPerBlock, void >::BlockToCTileMap_N00_M0_N01Adapt ( const CGridDesc_M_N & c_grid_desc_m_n,
index_t N01 = 8 )
inline

Member Function Documentation

◆ CalculateBottomIndex()

template<index_t MPerBlock, index_t NPerBlock>
template<typename TopIdx>
__host__ __device__ constexpr auto ck::BlockToCTileMap_N00_M0_N01Adapt< MPerBlock, NPerBlock, void >::CalculateBottomIndex ( const TopIdx & idx_top) const
inlineconstexpr
                   idxN0

      |<               mtx   N                 >|

            |<---N01--->|
  -   |-----------|-----------|-----------|-----|-----|-
  ^   |     0 ---------->  1  |           |     |     |
      |           |   /       |           |     |     |  M_0  MPerBlock
      |           /           |           |     |     |
      |------/----------------|-----------|-----|-----|-
      |     |     |           |           |     |     |

idxM0 | V | | | | | M_1 MPerBlock | 2 ----------> 3 | | | | |--------—|--------—|--------—|--—|--—|- mtx M | | blockid | | | | | | 5 | | | | M_2 MPerBlock | | | | | | |--------—|--------—|--------—|--—|--—|- | | | | | | | | | | | | M_3 MPerBlock | | | | | | |--------—|--------—|--------—|--—|--—|- V | | | | | |

  • |--------—|--------—|--------—|--—|--—|- M_4 MPerBlock | | | | | | |--------—|--------—|--------—|--—|--—|- NPerBlock NPerBlock NPerBlock NPerBlock N_0 N_1 N_2 N_3 Example: assume: N0 = 5 M0 = 4 block_1d_id = 5 N01 = 2

idx_M0 = 1 idx_N0 = 1 N01_adapt = 2 idx_N00 = 0 idx_N01 = 1 idx_M0_N01_local = 5 output {2, 1}

◆ CalculateGridSize() [1/2]

template<index_t MPerBlock, index_t NPerBlock>
template<typename CGridDesc_M_N>
__host__ constexpr index_t ck::BlockToCTileMap_N00_M0_N01Adapt< MPerBlock, NPerBlock, void >::CalculateGridSize ( const CGridDesc_M_N & c_grid_desc_m_n)
inlinestaticconstexpr

◆ CalculateGridSize() [2/2]

template<index_t MPerBlock, index_t NPerBlock>
__host__ static __device__ constexpr index_t ck::BlockToCTileMap_N00_M0_N01Adapt< MPerBlock, NPerBlock, void >::CalculateGridSize ( index_t M,
index_t N )
inlinestaticconstexpr

◆ CheckValidity()

template<index_t MPerBlock, index_t NPerBlock>
template<typename CGridDesc_M_N>
__host__ bool ck::BlockToCTileMap_N00_M0_N01Adapt< MPerBlock, NPerBlock, void >::CheckValidity ( const CGridDesc_M_N & ) const
inline

◆ operator=() [1/2]

template<index_t MPerBlock, index_t NPerBlock>
__host__ __device__ BlockToCTileMap_N00_M0_N01Adapt & ck::BlockToCTileMap_N00_M0_N01Adapt< MPerBlock, NPerBlock, void >::operator= ( BlockToCTileMap_N00_M0_N01Adapt< MPerBlock, NPerBlock, void > && )
default

◆ operator=() [2/2]

template<index_t MPerBlock, index_t NPerBlock>
__host__ __device__ BlockToCTileMap_N00_M0_N01Adapt & ck::BlockToCTileMap_N00_M0_N01Adapt< MPerBlock, NPerBlock, void >::operator= ( const BlockToCTileMap_N00_M0_N01Adapt< MPerBlock, NPerBlock, void > & )
default

◆ ValidCTileIndex()

template<index_t MPerBlock, index_t NPerBlock>
template<typename CTileIdx, typename CTileDim>
__host__ __device__ bool ck::BlockToCTileMap_N00_M0_N01Adapt< MPerBlock, NPerBlock, void >::ValidCTileIndex ( const CTileIdx & ,
const CTileDim &  ) const
inline

Member Data Documentation

◆ I0

template<index_t MPerBlock, index_t NPerBlock>
auto ck::BlockToCTileMap_N00_M0_N01Adapt< MPerBlock, NPerBlock, void >::I0 = Number<0>{}
staticconstexpr

◆ I1

template<index_t MPerBlock, index_t NPerBlock>
auto ck::BlockToCTileMap_N00_M0_N01Adapt< MPerBlock, NPerBlock, void >::I1 = Number<1>{}
staticconstexpr

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