TileGemmShape< BlockTile_, BlockWarps_, WarpTile_, PermuteA_, PermuteB_ > Struct Template Reference

TileGemmShape&lt; BlockTile_, BlockWarps_, WarpTile_, PermuteA_, PermuteB_ &gt; Struct Template Reference#

Composable Kernel: ck_tile::TileGemmShape< BlockTile_, BlockWarps_, WarpTile_, PermuteA_, PermuteB_ > Struct Template Reference
ck_tile::TileGemmShape< BlockTile_, BlockWarps_, WarpTile_, PermuteA_, PermuteB_ > Struct Template Reference

#include <tile_gemm_shape.hpp>

Public Types

using BlockTile = remove_cvref_t< BlockTile_ >
 
using BlockWarps = remove_cvref_t< BlockWarps_ >
 
using WarpTile = remove_cvref_t< WarpTile_ >
 

Static Public Member Functions

static CK_TILE_HOST std::string GetName ()
 

Static Public Attributes

static constexpr index_t NumWarps = reduce_on_sequence(BlockWarps{}, multiplies{}, number<1>{})
 
static constexpr index_t kM = BlockTile::at(number<0>{})
 
static constexpr index_t kN = BlockTile::at(number<1>{})
 
static constexpr index_t kK = BlockTile::at(number<2>{})
 
static constexpr bool PermuteA = PermuteA_
 
static constexpr bool PermuteB = PermuteB_
 
static constexpr index_t flatNPerWarp = BlockWarps::at(number<1>{})
 
static constexpr index_t flatKPerWarp = WarpTile::at(number<2>{}) * WarpTile::at(number<1>{})
 
static constexpr index_t flatKPerBlock = flatKPerWarp * kK / WarpTile::at(number<2>{})
 

Member Typedef Documentation

◆ BlockTile

template<typename BlockTile_ , typename BlockWarps_ , typename WarpTile_ , bool PermuteA_ = false, bool PermuteB_ = false>
using ck_tile::TileGemmShape< BlockTile_, BlockWarps_, WarpTile_, PermuteA_, PermuteB_ >::BlockTile = remove_cvref_t<BlockTile_>

◆ BlockWarps

template<typename BlockTile_ , typename BlockWarps_ , typename WarpTile_ , bool PermuteA_ = false, bool PermuteB_ = false>
using ck_tile::TileGemmShape< BlockTile_, BlockWarps_, WarpTile_, PermuteA_, PermuteB_ >::BlockWarps = remove_cvref_t<BlockWarps_>

◆ WarpTile

template<typename BlockTile_ , typename BlockWarps_ , typename WarpTile_ , bool PermuteA_ = false, bool PermuteB_ = false>
using ck_tile::TileGemmShape< BlockTile_, BlockWarps_, WarpTile_, PermuteA_, PermuteB_ >::WarpTile = remove_cvref_t<WarpTile_>

Member Function Documentation

◆ GetName()

template<typename BlockTile_ , typename BlockWarps_ , typename WarpTile_ , bool PermuteA_ = false, bool PermuteB_ = false>
static CK_TILE_HOST std::string ck_tile::TileGemmShape< BlockTile_, BlockWarps_, WarpTile_, PermuteA_, PermuteB_ >::GetName ( )
inlinestatic

Member Data Documentation

◆ flatKPerBlock

template<typename BlockTile_ , typename BlockWarps_ , typename WarpTile_ , bool PermuteA_ = false, bool PermuteB_ = false>
constexpr index_t ck_tile::TileGemmShape< BlockTile_, BlockWarps_, WarpTile_, PermuteA_, PermuteB_ >::flatKPerBlock = flatKPerWarp * kK / WarpTile::at(number<2>{})
staticconstexpr

◆ flatKPerWarp

template<typename BlockTile_ , typename BlockWarps_ , typename WarpTile_ , bool PermuteA_ = false, bool PermuteB_ = false>
constexpr index_t ck_tile::TileGemmShape< BlockTile_, BlockWarps_, WarpTile_, PermuteA_, PermuteB_ >::flatKPerWarp = WarpTile::at(number<2>{}) * WarpTile::at(number<1>{})
staticconstexpr

◆ flatNPerWarp

template<typename BlockTile_ , typename BlockWarps_ , typename WarpTile_ , bool PermuteA_ = false, bool PermuteB_ = false>
constexpr index_t ck_tile::TileGemmShape< BlockTile_, BlockWarps_, WarpTile_, PermuteA_, PermuteB_ >::flatNPerWarp = BlockWarps::at(number<1>{})
staticconstexpr

◆ kK

template<typename BlockTile_ , typename BlockWarps_ , typename WarpTile_ , bool PermuteA_ = false, bool PermuteB_ = false>
constexpr index_t ck_tile::TileGemmShape< BlockTile_, BlockWarps_, WarpTile_, PermuteA_, PermuteB_ >::kK = BlockTile::at(number<2>{})
staticconstexpr

◆ kM

template<typename BlockTile_ , typename BlockWarps_ , typename WarpTile_ , bool PermuteA_ = false, bool PermuteB_ = false>
constexpr index_t ck_tile::TileGemmShape< BlockTile_, BlockWarps_, WarpTile_, PermuteA_, PermuteB_ >::kM = BlockTile::at(number<0>{})
staticconstexpr

◆ kN

template<typename BlockTile_ , typename BlockWarps_ , typename WarpTile_ , bool PermuteA_ = false, bool PermuteB_ = false>
constexpr index_t ck_tile::TileGemmShape< BlockTile_, BlockWarps_, WarpTile_, PermuteA_, PermuteB_ >::kN = BlockTile::at(number<1>{})
staticconstexpr

◆ NumWarps

template<typename BlockTile_ , typename BlockWarps_ , typename WarpTile_ , bool PermuteA_ = false, bool PermuteB_ = false>
constexpr index_t ck_tile::TileGemmShape< BlockTile_, BlockWarps_, WarpTile_, PermuteA_, PermuteB_ >::NumWarps = reduce_on_sequence(BlockWarps{}, multiplies{}, number<1>{})
staticconstexpr

◆ PermuteA

template<typename BlockTile_ , typename BlockWarps_ , typename WarpTile_ , bool PermuteA_ = false, bool PermuteB_ = false>
constexpr bool ck_tile::TileGemmShape< BlockTile_, BlockWarps_, WarpTile_, PermuteA_, PermuteB_ >::PermuteA = PermuteA_
staticconstexpr

◆ PermuteB

template<typename BlockTile_ , typename BlockWarps_ , typename WarpTile_ , bool PermuteA_ = false, bool PermuteB_ = false>
constexpr bool ck_tile::TileGemmShape< BlockTile_, BlockWarps_, WarpTile_, PermuteA_, PermuteB_ >::PermuteB = PermuteB_
staticconstexpr

The documentation for this struct was generated from the following file:
  • /home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-composable-kernel/checkouts/develop/include/ck_tile/ops/gemm/pipeline/tile_gemm_shape.hpp