#include <gemm_quant_kernel.hpp>
|
| static CK_TILE_HOST const std::string | GetName () |
| |
| static constexpr CK_TILE_HOST auto | GridSize (index_t M, index_t N, index_t KBatch) |
| |
| static CK_TILE_HOST auto | BlockSize () |
| |
| static constexpr CK_TILE_HOST QuantGemmKernelArgs | MakeKernelArgs (const QuantGemmHostArgs &hostArgs) |
| |
| static constexpr CK_TILE_HOST_DEVICE index_t | GetSmemSize () |
| |
| static CK_TILE_DEVICE auto | MakeABlockWindow (const ADataType *a_ptr, const QuantGemmKernelArgs &kargs, const index_t k_size, const index_t i_m) |
| |
| static CK_TILE_DEVICE auto | MakeAQBlockWindow (const AQDataType *aq_ptr, const QuantGemmKernelArgs &kargs, const index_t i_m, const index_t i_n) |
| |
| static CK_TILE_DEVICE auto | MakeBBlockWindow (const BDataType *b_ptr, const QuantGemmKernelArgs &kargs, const index_t k_size, const index_t i_n) |
| |
| static CK_TILE_DEVICE auto | MakeBQBlockWindow (const BQDataType *bq_ptr, const QuantGemmKernelArgs &kargs, const index_t i_m, const index_t i_n) |
| |
| template<memory_operation_enum DstInMemOp = memory_operation_enum::set> |
| static CK_TILE_DEVICE auto | MakeCBlockWindow (CDataType *c_ptr, const QuantGemmKernelArgs &kargs, const index_t i_m, const index_t i_n) |
| |
| static CK_TILE_HOST bool | IsSupportedArgument (const QuantGemmKernelArgs &kargs) |
| |
| static CK_TILE_DEVICE void | RunGemm (const ADataType *a_ptr, const BDataType *b_ptr, const AQDataType *aq_ptr, const BQDataType *bq_ptr, CDataType *c_ptr, void *smem_ptr, const QuantGemmKernelArgs &kargs, const SplitKBatchOffset &splitk_batch_offset, const index_t block_idx_m, const index_t block_idx_n) |
| | Runs single GEMM problem cooperatively by whole workgroup. More...
|
| |
◆ AccDataType
template<typename TilePartitioner_ , typename GemmPipeline_ , typename EpiloguePipeline_ , QuantType QuantType_>
◆ ADataType
template<typename TilePartitioner_ , typename GemmPipeline_ , typename EpiloguePipeline_ , QuantType QuantType_>
◆ ALayout
template<typename TilePartitioner_ , typename GemmPipeline_ , typename EpiloguePipeline_ , QuantType QuantType_>
◆ AQDataType
template<typename TilePartitioner_ , typename GemmPipeline_ , typename EpiloguePipeline_ , QuantType QuantType_>
◆ AQLayout
template<typename TilePartitioner_ , typename GemmPipeline_ , typename EpiloguePipeline_ , QuantType QuantType_>
◆ BDataType
template<typename TilePartitioner_ , typename GemmPipeline_ , typename EpiloguePipeline_ , QuantType QuantType_>
◆ BLayout
template<typename TilePartitioner_ , typename GemmPipeline_ , typename EpiloguePipeline_ , QuantType QuantType_>
◆ BQDataType
template<typename TilePartitioner_ , typename GemmPipeline_ , typename EpiloguePipeline_ , QuantType QuantType_>
◆ BQLayout
template<typename TilePartitioner_ , typename GemmPipeline_ , typename EpiloguePipeline_ , QuantType QuantType_>
◆ CDataType
template<typename TilePartitioner_ , typename GemmPipeline_ , typename EpiloguePipeline_ , QuantType QuantType_>
◆ CLayout
template<typename TilePartitioner_ , typename GemmPipeline_ , typename EpiloguePipeline_ , QuantType QuantType_>
◆ EpiloguePipeline
template<typename TilePartitioner_ , typename GemmPipeline_ , typename EpiloguePipeline_ , QuantType QuantType_>
◆ GemmPipeline
template<typename TilePartitioner_ , typename GemmPipeline_ , typename EpiloguePipeline_ , QuantType QuantType_>
◆ TilePartitioner
template<typename TilePartitioner_ , typename GemmPipeline_ , typename EpiloguePipeline_ , QuantType QuantType_>
◆ BlockSize()
template<typename TilePartitioner_ , typename GemmPipeline_ , typename EpiloguePipeline_ , QuantType QuantType_>
◆ GetName()
template<typename TilePartitioner_ , typename GemmPipeline_ , typename EpiloguePipeline_ , QuantType QuantType_>
◆ GetSmemSize()
template<typename TilePartitioner_ , typename GemmPipeline_ , typename EpiloguePipeline_ , QuantType QuantType_>
◆ GridSize()
template<typename TilePartitioner_ , typename GemmPipeline_ , typename EpiloguePipeline_ , QuantType QuantType_>
◆ IsSupportedArgument()
template<typename TilePartitioner_ , typename GemmPipeline_ , typename EpiloguePipeline_ , QuantType QuantType_>
◆ MakeABlockWindow()
template<typename TilePartitioner_ , typename GemmPipeline_ , typename EpiloguePipeline_ , QuantType QuantType_>
◆ MakeAQBlockWindow()
template<typename TilePartitioner_ , typename GemmPipeline_ , typename EpiloguePipeline_ , QuantType QuantType_>
◆ MakeBBlockWindow()
template<typename TilePartitioner_ , typename GemmPipeline_ , typename EpiloguePipeline_ , QuantType QuantType_>
◆ MakeBQBlockWindow()
template<typename TilePartitioner_ , typename GemmPipeline_ , typename EpiloguePipeline_ , QuantType QuantType_>
◆ MakeCBlockWindow()
template<typename TilePartitioner_ , typename GemmPipeline_ , typename EpiloguePipeline_ , QuantType QuantType_>
template<memory_operation_enum DstInMemOp = memory_operation_enum::set>
◆ MakeKernelArgs()
template<typename TilePartitioner_ , typename GemmPipeline_ , typename EpiloguePipeline_ , QuantType QuantType_>
◆ operator()()
template<typename TilePartitioner_ , typename GemmPipeline_ , typename EpiloguePipeline_ , QuantType QuantType_>
◆ RunGemm()
template<typename TilePartitioner_ , typename GemmPipeline_ , typename EpiloguePipeline_ , QuantType QuantType_>
| static CK_TILE_DEVICE void ck_tile::QuantGemmKernel< TilePartitioner_, GemmPipeline_, EpiloguePipeline_, QuantType_ >::RunGemm |
( |
const ADataType * |
a_ptr, |
|
|
const BDataType * |
b_ptr, |
|
|
const AQDataType * |
aq_ptr, |
|
|
const BQDataType * |
bq_ptr, |
|
|
CDataType * |
c_ptr, |
|
|
void * |
smem_ptr, |
|
|
const QuantGemmKernelArgs & |
kargs, |
|
|
const SplitKBatchOffset & |
splitk_batch_offset, |
|
|
const index_t |
block_idx_m, |
|
|
const index_t |
block_idx_n |
|
) |
| |
|
inlinestatic |
Runs single GEMM problem cooperatively by whole workgroup.
- Parameters
-
| a_ptr | input A pointer |
| b_ptr | input B pointer |
| aq_ptr | input AQ pointer |
| bq_ptr | input BQ pointer |
| c_ptr | output C pointer |
| smem_ptr | The start memory pointer of the shared memory block. |
| kargs | GEMM kernel arguments |
| splitk_batch_offset | splitk_batch_offset Utility structure used to calculate k batch. |
| block_idx_m | The GEMM's output M dimension tile index processed by this workgroup. |
| block_idx_n | The GEMM's output N dimension tile index processed by this workgroup. |
◆ I0
template<typename TilePartitioner_ , typename GemmPipeline_ , typename EpiloguePipeline_ , QuantType QuantType_>
◆ I1
template<typename TilePartitioner_ , typename GemmPipeline_ , typename EpiloguePipeline_ , QuantType QuantType_>
◆ I2
template<typename TilePartitioner_ , typename GemmPipeline_ , typename EpiloguePipeline_ , QuantType QuantType_>
◆ I3
template<typename TilePartitioner_ , typename GemmPipeline_ , typename EpiloguePipeline_ , QuantType QuantType_>
◆ I4
template<typename TilePartitioner_ , typename GemmPipeline_ , typename EpiloguePipeline_ , QuantType QuantType_>
◆ kBlockSize
template<typename TilePartitioner_ , typename GemmPipeline_ , typename EpiloguePipeline_ , QuantType QuantType_>
◆ kQuantType
template<typename TilePartitioner_ , typename GemmPipeline_ , typename EpiloguePipeline_ , QuantType QuantType_>
| constexpr auto ck_tile::QuantGemmKernel< TilePartitioner_, GemmPipeline_, EpiloguePipeline_, QuantType_ >::kQuantType = QuantType_ |
|
staticconstexpr |
◆ PreshuffleB
template<typename TilePartitioner_ , typename GemmPipeline_ , typename EpiloguePipeline_ , QuantType QuantType_>
◆ PreshuffleQuant
template<typename TilePartitioner_ , typename GemmPipeline_ , typename EpiloguePipeline_ , QuantType QuantType_>
| constexpr bool ck_tile::QuantGemmKernel< TilePartitioner_, GemmPipeline_, EpiloguePipeline_, QuantType_ >::PreshuffleQuant |
|
staticconstexpr |
Initial value:=
static constexpr bool value
Definition: gemm_quant_kernel.hpp:72
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_quant/kernel/gemm_quant_kernel.hpp