GemmTile2DPartitioner< BlockGemmShapeType > Struct Template Reference

GemmTile2DPartitioner&lt; BlockGemmShapeType &gt; Struct Template Reference#

Composable Kernel: ck_tile::GemmTile2DPartitioner< BlockGemmShapeType > Struct Template Reference
ck_tile::GemmTile2DPartitioner< BlockGemmShapeType > Struct Template Reference

Class providing 2D workgroup index mapping into 2D output GEMM C-tile space. More...

#include <gemm_tile_partitioner.hpp>

Public Types

using BlockGemmShape = remove_cvref_t<BlockGemmShapeType>

Public Member Functions

CK_TILE_HOST_DEVICE GemmTile2DPartitioner () noexcept=delete
CK_TILE_HOST_DEVICE GemmTile2DPartitioner (index_t M, index_t N) noexcept

Static Public Member Functions

static CK_TILE_HOST auto GridSize (index_t M, index_t N) noexcept(noexcept(MPerBlock !=0 &&NPerBlock !=0)) -> dim3
 Calculates GEMM kernel grid size.
static CK_TILE_HOST_DEVICE auto GetLoopNum (index_t K) noexcept -> index_t
 Calculate number of loop iterations over GEMM's K dimension.
static CK_TILE_DEVICE auto GetOutputTileIndex (index_t blockIdx, index_t blockIdy) noexcept -> const tuple< index_t, index_t >
 The function returns 2D output tile space.

Static Public Attributes

static constexpr index_t MPerBlock = BlockGemmShape::kM
static constexpr index_t NPerBlock = BlockGemmShape::kN
static constexpr index_t KPerBlock = BlockGemmShape::kK

Detailed Description

template<typename BlockGemmShapeType>
struct ck_tile::GemmTile2DPartitioner< BlockGemmShapeType >

Class providing 2D workgroup index mapping into 2D output GEMM C-tile space.

Member Typedef Documentation

◆ BlockGemmShape

template<typename BlockGemmShapeType>
using ck_tile::GemmTile2DPartitioner< BlockGemmShapeType >::BlockGemmShape = remove_cvref_t<BlockGemmShapeType>

Constructor & Destructor Documentation

◆ GemmTile2DPartitioner() [1/2]

template<typename BlockGemmShapeType>
CK_TILE_HOST_DEVICE ck_tile::GemmTile2DPartitioner< BlockGemmShapeType >::GemmTile2DPartitioner ( )
deletenoexcept

◆ GemmTile2DPartitioner() [2/2]

template<typename BlockGemmShapeType>
CK_TILE_HOST_DEVICE ck_tile::GemmTile2DPartitioner< BlockGemmShapeType >::GemmTile2DPartitioner ( index_t M,
index_t N )
noexcept

Member Function Documentation

◆ GetLoopNum()

template<typename BlockGemmShapeType>
CK_TILE_HOST_DEVICE auto ck_tile::GemmTile2DPartitioner< BlockGemmShapeType >::GetLoopNum ( index_t K) ->index_t
inlinestaticnoexcept

Calculate number of loop iterations over GEMM's K dimension.

Parameters
KGEMM's K dimension.
Returns
index_t The number of loop iterations over K dimension.

◆ GetOutputTileIndex()

template<typename BlockGemmShapeType>
CK_TILE_DEVICE auto ck_tile::GemmTile2DPartitioner< BlockGemmShapeType >::GetOutputTileIndex ( index_t blockIdx,
index_t blockIdy )->consttuple< index_t, index_t >
inlinestaticnoexcept

The function returns 2D output tile space.

Parameters
[in]blockIdxis blockIdx.x
[in]blockIdyis blockIdx.y
Returns
Returns the output tile indexes.

Calculate workgroup 2D index mapping into 2D output C-tile space.

Parameters
blockIdxWGP's X index.
blockIdyWGP's Y index.
Returns
const tuple<index_t, index_t> Tuple containing 2D output C-tile index.

◆ GridSize()

template<typename BlockGemmShapeType>
CK_TILE_HOST auto ck_tile::GemmTile2DPartitioner< BlockGemmShapeType >::GridSize ( index_t M,
index_t N )->dim3
inlinestaticnoexcept

Calculates GEMM kernel grid size.

Parameters
MGEMM's M dimension.
NGEMM's N dimension.
Returns
dim3 Structure holding grid's X,Y and Z dimensions.

Member Data Documentation

◆ KPerBlock

template<typename BlockGemmShapeType>
index_t ck_tile::GemmTile2DPartitioner< BlockGemmShapeType >::KPerBlock = BlockGemmShape::kK
staticconstexpr

◆ MPerBlock

template<typename BlockGemmShapeType>
index_t ck_tile::GemmTile2DPartitioner< BlockGemmShapeType >::MPerBlock = BlockGemmShape::kM
staticconstexpr

◆ NPerBlock

template<typename BlockGemmShapeType>
index_t ck_tile::GemmTile2DPartitioner< BlockGemmShapeType >::NPerBlock = BlockGemmShape::kN
staticconstexpr

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