GemmTile1DPartitioner< BlockGemmShape_ > Struct Template Reference

GemmTile1DPartitioner&lt; BlockGemmShape_ &gt; Struct Template Reference#

Composable Kernel: ck_tile::GemmTile1DPartitioner< BlockGemmShape_ > Struct Template Reference
ck_tile::GemmTile1DPartitioner< BlockGemmShape_ > Struct Template Reference

Class providing 1D WGP index mapping into 2D output C-tile space. More...

#include <gemm_tile_partitioner.hpp>

Public Types

using BlockGemmShape = remove_cvref_t<BlockGemmShape_>

Public Member Functions

CK_TILE_HOST_DEVICE GemmTile1DPartitioner () noexcept=delete
CK_TILE_HOST_DEVICE GemmTile1DPartitioner (index_t M, index_t N) noexcept
 Construct a new GemmTile1DPartitioner object.

Static Public Member Functions

static CK_TILE_HOST_DEVICE auto GridSize (index_t M, index_t N) noexcept(noexcept(MPerBlock !=0 &&NPerBlock !=0)) -> index_t
 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) noexcept -> const tuple< index_t, index_t >
 Calculate workgroup 1D index mapping into 2D output C-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 BlockGemmShape_>
struct ck_tile::GemmTile1DPartitioner< BlockGemmShape_ >

Class providing 1D WGP index mapping into 2D output C-tile space.

Template Parameters
BlockGemmShape_A class providing basic GEMM parameters. TileGemmShape

Member Typedef Documentation

◆ BlockGemmShape

template<typename BlockGemmShape_>
using ck_tile::GemmTile1DPartitioner< BlockGemmShape_ >::BlockGemmShape = remove_cvref_t<BlockGemmShape_>

Constructor & Destructor Documentation

◆ GemmTile1DPartitioner() [1/2]

template<typename BlockGemmShape_>
CK_TILE_HOST_DEVICE ck_tile::GemmTile1DPartitioner< BlockGemmShape_ >::GemmTile1DPartitioner ( )
deletenoexcept

◆ GemmTile1DPartitioner() [2/2]

template<typename BlockGemmShape_>
CK_TILE_HOST_DEVICE ck_tile::GemmTile1DPartitioner< BlockGemmShape_ >::GemmTile1DPartitioner ( index_t M,
index_t N )
inlinenoexcept

Construct a new GemmTile1DPartitioner object.

Parameters
MGEMM's M dimension.
NGEMM's N dimension.

Member Function Documentation

◆ GetLoopNum()

template<typename BlockGemmShape_>
CK_TILE_HOST_DEVICE auto ck_tile::GemmTile1DPartitioner< BlockGemmShape_ >::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 BlockGemmShape_>
CK_TILE_DEVICE auto ck_tile::GemmTile1DPartitioner< BlockGemmShape_ >::GetOutputTileIndex ( index_t blockIdx) ->consttuple< index_t, index_t >
inlinestaticnoexcept

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

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

◆ GridSize()

template<typename BlockGemmShape_>
CK_TILE_HOST_DEVICE auto ck_tile::GemmTile1DPartitioner< BlockGemmShape_ >::GridSize ( index_t M,
index_t N )->index_t
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 BlockGemmShape_>
index_t ck_tile::GemmTile1DPartitioner< BlockGemmShape_ >::KPerBlock = BlockGemmShape::kK
staticconstexpr

◆ MPerBlock

template<typename BlockGemmShape_>
index_t ck_tile::GemmTile1DPartitioner< BlockGemmShape_ >::MPerBlock = BlockGemmShape::kM
staticconstexpr

◆ NPerBlock

template<typename BlockGemmShape_>
index_t ck_tile::GemmTile1DPartitioner< BlockGemmShape_ >::NPerBlock = BlockGemmShape::kN
staticconstexpr

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