BlockToCTileMap_Grouped_M00_N0_M01Adapt< GroupNum, MPerBlock, NPerBlock > Struct Template Reference

BlockToCTileMap_Grouped_M00_N0_M01Adapt&lt; GroupNum, MPerBlock, NPerBlock &gt; Struct Template Reference#

Composable Kernel: ck::BlockToCTileMap_Grouped_M00_N0_M01Adapt< GroupNum, MPerBlock, NPerBlock > Struct Template Reference
ck::BlockToCTileMap_Grouped_M00_N0_M01Adapt< GroupNum, MPerBlock, NPerBlock > Struct Template Reference

#include <block_to_ctile_map.hpp>

Public Member Functions

__host__ __device__ BlockToCTileMap_Grouped_M00_N0_M01Adapt ()=default
__host__ __device__ BlockToCTileMap_Grouped_M00_N0_M01Adapt (index_t M, index_t N, index_t M01=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)

Static Public Attributes

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

Constructor & Destructor Documentation

◆ BlockToCTileMap_Grouped_M00_N0_M01Adapt() [1/2]

template<index_t GroupNum, index_t MPerBlock, index_t NPerBlock>
__host__ __device__ ck::BlockToCTileMap_Grouped_M00_N0_M01Adapt< GroupNum, MPerBlock, NPerBlock >::BlockToCTileMap_Grouped_M00_N0_M01Adapt ( )
default

◆ BlockToCTileMap_Grouped_M00_N0_M01Adapt() [2/2]

template<index_t GroupNum, index_t MPerBlock, index_t NPerBlock>
__host__ __device__ ck::BlockToCTileMap_Grouped_M00_N0_M01Adapt< GroupNum, MPerBlock, NPerBlock >::BlockToCTileMap_Grouped_M00_N0_M01Adapt ( index_t M,
index_t N,
index_t M01 = 8 )
inline

Member Function Documentation

◆ CalculateBottomIndex()

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

      |<               mtx   N                 >|

        NPerBlock   NPerBlock   NPerBlock   NPerBlock
           N_0         N_1        N_2         N_3
  -   |-----------|-----------|-----------|-----|-----|-
  ^   | -   -  0  |/---->  2  |           |     |     |
      | |   |     /     |     |           |     |     |  M_0  MPerBlock
      | M   |    /|     |     |           |     |     |
      |-0---|---/-|-----|-----|-----------|-----|-----|-
      | 1   |  /  |     |     |  blockid  |     |     |

idxM0 | | | / | V | 5 | | | M_1 MPerBlock | - V 1 | - 3 | | | | |--------—|--------—|--------—|--—|--—|- mtx M | | | | | | | | | | | | M_2 MPerBlock | | | | | | |--------—|--------—|--------—|--—|--—|- | | | | | | | | | | | | M_3 MPerBlock | | | | | | |--------—|--------—|--------—|--—|--—|- V | | | | | |

  • |--------—|--------—|--------—|--—|--—|- M_4 MPerBlock | | | | | | |--------—|--------—|--------—|--—|--—|- Example: assume: M0 = 5 N0 = 4 block_1d_id = 5 M01 = 2

idx_N0 = 1 idx_M0 = 1 M01_adapt = 2 idx_M00 = 0 idx_M01 = 1 idx_N0_M01_local = 5 output {1, 2}

◆ CalculateGridSize()

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

◆ CheckValidity()

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

◆ ValidCTileIndex()

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

Member Data Documentation

◆ I0

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

◆ I1

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

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