BlockGemmWeightPreshuffleBQuantARegBRegCReg< Problem_, BlockPolicy_ > Struct Template Reference#
Public Types |
Public Member Functions |
Static Public Member Functions |
Static Public Attributes |
List of all members
ck_tile::BlockGemmWeightPreshuffleBQuantARegBRegCReg< Problem_, BlockPolicy_ > Struct Template Reference
#include <block_universal_gemm_ar_flatbr_bquant_cr.hpp>
Public Types | |
| using | Problem = remove_cvref_t<Problem_> |
| using | BlockPolicy = remove_cvref_t<BlockPolicy_> |
| using | ADataType = remove_cvref_t<typename Problem::ADataType> |
| using | BDataType = remove_cvref_t<typename Problem::BDataType> |
| using | BQDataType = remove_cvref_t<typename Problem::BQDataType> |
| using | CDataType = remove_cvref_t<typename Problem::CDataType> |
| using | ComputeDataType = remove_cvref_t<typename Problem::ComputeDataType> |
| using | BlockGemmShape = remove_cvref_t<typename Problem::BlockGemmShape> |
| using | QuantGroupSize = remove_cvref_t<typename Problem::QuantGroupSize> |
| using | BlockTile = remove_cvref_t<typename BlockGemmShape::BlockTile> |
| using | BlockWarps = remove_cvref_t<typename BlockGemmShape::BlockWarps> |
| using | WarpTile = remove_cvref_t<typename BlockGemmShape::WarpTile> |
| using | WG = remove_cvref_t<decltype(config.template at<0>())> |
Public Member Functions | |
| template<typename CBlockTensor, typename ABlockTensor, typename BFlatBlockTensor, typename BQBlockTensor, typename ABlockWindow> | |
| CK_TILE_DEVICE void | operator() (CBlockTensor &c_block_tensor, ABlockTensor &a_warp_tensor, BFlatBlockTensor &b_warp_tensor, BQBlockTensor &bq_block_tensor, ABlockWindow &a_warp_windows) const |
Static Public Member Functions | |
| template<typename T> | |
| static CK_TILE_DEVICE float | cvt_scale_to_fp32 (T &scale) |
| static CK_TILE_DEVICE constexpr auto | MakeCBlockTile () |
Static Public Attributes | |
| static constexpr auto | I0 = number<0>() |
| static constexpr auto | I1 = number<1>() |
| static constexpr auto | I2 = number<2>() |
| static constexpr auto | idxM = I0 |
| static constexpr auto | idxN = I1 |
| static constexpr auto | idxK = I2 |
| static constexpr auto | config = BlockPolicy::template GetWarpGemmMWarpNWarp<Problem>() |
| static constexpr auto | warp_size = get_warp_size() |
| static constexpr index_t | MWarp = config.template at<1>() |
| static constexpr index_t | NWarp = config.template at<2>() |
| static constexpr index_t | MPerBlock = BlockGemmShape::kM |
| static constexpr index_t | KPerBlock = BlockGemmShape::kK |
| static constexpr index_t | kBlockSize = Problem::kBlockSize |
| static constexpr index_t | MIterPerWarp = MPerBlock / (MWarp * WG::kM) |
| static constexpr index_t | NIterPerWarp |
| static constexpr index_t | KIterPerWarp = KPerBlock / WG::kK |
| static constexpr auto | MIter_2nd_last |
| static constexpr index_t | KPerBlockBQ = KPerBlock / QuantGroupSize::kK |
| static constexpr index_t | QScalesPerBlockRow |
| static constexpr index_t | QScalesPerWarpGemmRow |
| static constexpr index_t | KIterPerQScale = KIterPerWarp / QScalesPerBlockRow |
| static constexpr index_t | DsReadPreload = 2 |
| static constexpr index_t | m_preload |
Member Typedef Documentation
◆ ADataType
template<typename Problem_, typename BlockPolicy_>
| using ck_tile::BlockGemmWeightPreshuffleBQuantARegBRegCReg< Problem_, BlockPolicy_ >::ADataType = remove_cvref_t<typename Problem::ADataType> |
◆ BDataType
template<typename Problem_, typename BlockPolicy_>
| using ck_tile::BlockGemmWeightPreshuffleBQuantARegBRegCReg< Problem_, BlockPolicy_ >::BDataType = remove_cvref_t<typename Problem::BDataType> |
◆ BlockGemmShape
template<typename Problem_, typename BlockPolicy_>
| using ck_tile::BlockGemmWeightPreshuffleBQuantARegBRegCReg< Problem_, BlockPolicy_ >::BlockGemmShape = remove_cvref_t<typename Problem::BlockGemmShape> |
◆ BlockPolicy
template<typename Problem_, typename BlockPolicy_>
| using ck_tile::BlockGemmWeightPreshuffleBQuantARegBRegCReg< Problem_, BlockPolicy_ >::BlockPolicy = remove_cvref_t<BlockPolicy_> |
◆ BlockTile
template<typename Problem_, typename BlockPolicy_>
| using ck_tile::BlockGemmWeightPreshuffleBQuantARegBRegCReg< Problem_, BlockPolicy_ >::BlockTile = remove_cvref_t<typename BlockGemmShape::BlockTile> |
◆ BlockWarps
template<typename Problem_, typename BlockPolicy_>
| using ck_tile::BlockGemmWeightPreshuffleBQuantARegBRegCReg< Problem_, BlockPolicy_ >::BlockWarps = remove_cvref_t<typename BlockGemmShape::BlockWarps> |
◆ BQDataType
template<typename Problem_, typename BlockPolicy_>
| using ck_tile::BlockGemmWeightPreshuffleBQuantARegBRegCReg< Problem_, BlockPolicy_ >::BQDataType = remove_cvref_t<typename Problem::BQDataType> |
◆ CDataType
template<typename Problem_, typename BlockPolicy_>
| using ck_tile::BlockGemmWeightPreshuffleBQuantARegBRegCReg< Problem_, BlockPolicy_ >::CDataType = remove_cvref_t<typename Problem::CDataType> |
◆ ComputeDataType
template<typename Problem_, typename BlockPolicy_>
| using ck_tile::BlockGemmWeightPreshuffleBQuantARegBRegCReg< Problem_, BlockPolicy_ >::ComputeDataType = remove_cvref_t<typename Problem::ComputeDataType> |
◆ Problem
template<typename Problem_, typename BlockPolicy_>
| using ck_tile::BlockGemmWeightPreshuffleBQuantARegBRegCReg< Problem_, BlockPolicy_ >::Problem = remove_cvref_t<Problem_> |
◆ QuantGroupSize
template<typename Problem_, typename BlockPolicy_>
| using ck_tile::BlockGemmWeightPreshuffleBQuantARegBRegCReg< Problem_, BlockPolicy_ >::QuantGroupSize = remove_cvref_t<typename Problem::QuantGroupSize> |
◆ WarpTile
template<typename Problem_, typename BlockPolicy_>
| using ck_tile::BlockGemmWeightPreshuffleBQuantARegBRegCReg< Problem_, BlockPolicy_ >::WarpTile = remove_cvref_t<typename BlockGemmShape::WarpTile> |
◆ WG
template<typename Problem_, typename BlockPolicy_>
| using ck_tile::BlockGemmWeightPreshuffleBQuantARegBRegCReg< Problem_, BlockPolicy_ >::WG = remove_cvref_t<decltype(config.template at<0>())> |
Member Function Documentation
◆ cvt_scale_to_fp32()
template<typename Problem_, typename BlockPolicy_>
template<typename T>
|
inlinestatic |
◆ MakeCBlockTile()
template<typename Problem_, typename BlockPolicy_>
|
inlinestaticconstexpr |
◆ operator()()
template<typename Problem_, typename BlockPolicy_>
template<typename CBlockTensor, typename ABlockTensor, typename BFlatBlockTensor, typename BQBlockTensor, typename ABlockWindow>
|
inline |
Member Data Documentation
◆ config
template<typename Problem_, typename BlockPolicy_>
|
staticconstexpr |
◆ DsReadPreload
template<typename Problem_, typename BlockPolicy_>
|
staticconstexpr |
◆ I0
template<typename Problem_, typename BlockPolicy_>
|
staticconstexpr |
◆ I1
template<typename Problem_, typename BlockPolicy_>
|
staticconstexpr |
◆ I2
template<typename Problem_, typename BlockPolicy_>
|
staticconstexpr |
◆ idxK
template<typename Problem_, typename BlockPolicy_>
|
staticconstexpr |
◆ idxM
template<typename Problem_, typename BlockPolicy_>
|
staticconstexpr |
◆ idxN
template<typename Problem_, typename BlockPolicy_>
|
staticconstexpr |
◆ kBlockSize
template<typename Problem_, typename BlockPolicy_>
|
staticconstexpr |
◆ KIterPerQScale
template<typename Problem_, typename BlockPolicy_>
|
staticconstexpr |
◆ KIterPerWarp
template<typename Problem_, typename BlockPolicy_>
|
staticconstexpr |
◆ KPerBlock
template<typename Problem_, typename BlockPolicy_>
|
staticconstexpr |
◆ KPerBlockBQ
template<typename Problem_, typename BlockPolicy_>
|
staticconstexpr |
◆ m_preload
template<typename Problem_, typename BlockPolicy_>
|
staticconstexpr |
Initial value:
static constexpr index_t MIterPerWarp
Definition flatmm_pipeline_agmem_bgmem_creg_v1.hpp:103
static constexpr index_t KIterPerWarp
Definition flatmm_pipeline_agmem_bgmem_creg_v1.hpp:105
static constexpr index_t DsReadPreload
Definition flatmm_pipeline_agmem_bgmem_creg_v1.hpp:66
◆ MIter_2nd_last
template<typename Problem_, typename BlockPolicy_>
|
staticconstexpr |
Initial value:
=
static constexpr index_t MIterPerWarp
Definition block_universal_gemm_ar_flatbr_bquant_cr.hpp:56
◆ MIterPerWarp
template<typename Problem_, typename BlockPolicy_>
|
staticconstexpr |
◆ MPerBlock
template<typename Problem_, typename BlockPolicy_>
|
staticconstexpr |
◆ MWarp
template<typename Problem_, typename BlockPolicy_>
|
staticconstexpr |
◆ NIterPerWarp
template<typename Problem_, typename BlockPolicy_>
|
staticconstexpr |
Initial value:
=
static constexpr auto idxN
Definition block_universal_gemm_ar_flatbr_bquant_cr.hpp:36
◆ NWarp
template<typename Problem_, typename BlockPolicy_>
|
staticconstexpr |
◆ QScalesPerBlockRow
template<typename Problem_, typename BlockPolicy_>
|
staticconstexpr |
Initial value:
=
integer_divide_ceil(KPerBlock, QuantGroupSize::kK)
CK_TILE_HOST_DEVICE constexpr auto integer_divide_ceil(X x, Y y)
Definition tile/core/numeric/math.hpp:149
static constexpr index_t KPerBlock
Definition block_universal_gemm_ar_flatbr_bquant_cr.hpp:52
◆ QScalesPerWarpGemmRow
template<typename Problem_, typename BlockPolicy_>
|
staticconstexpr |
Initial value:
=
integer_divide_ceil(WG::kK, QuantGroupSize::kK)
◆ warp_size
template<typename Problem_, typename BlockPolicy_>
|
staticconstexpr |
The documentation for this struct was generated from the following file: