#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 constexpr 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_HOST bool | IsSupportedArgument (const QuantGemmKernelArgs &kargs) |
|
template<memory_operation_enum DstInMemOp = memory_operation_enum::set> |
static CK_TILE_DEVICE auto | MakeGemmTensorViews (const ADataType *a_ptr, const BDataType *b_ptr, const AQDataType *aq_ptr, const BQDataType *bq_ptr, CDataType *c_ptr, const QuantGemmKernelArgs &kargs, const SplitKBatchOffset &splitk_batch_offset) |
|
template<typename TensorView > |
static CK_TILE_DEVICE auto | MakeGemmPadViews (const TensorView &views) |
|
template<typename PadView > |
static CK_TILE_DEVICE auto | MakeGemmTileWindows (const PadView &views, const index_t i_m, const index_t i_n) |
|
template<memory_operation_enum DstInMemOp = memory_operation_enum::set> |
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_0, 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_>
◆ MakeGemmPadViews()
template<typename TilePartitioner_ , typename GemmPipeline_ , typename EpiloguePipeline_ , QuantType QuantType_>
template<typename TensorView >
◆ MakeGemmTensorViews()
template<typename TilePartitioner_ , typename GemmPipeline_ , typename EpiloguePipeline_ , QuantType QuantType_>
template<memory_operation_enum DstInMemOp = memory_operation_enum::set>
◆ MakeGemmTileWindows()
template<typename TilePartitioner_ , typename GemmPipeline_ , typename EpiloguePipeline_ , QuantType QuantType_>
template<typename PadView >
◆ 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_>
template<memory_operation_enum DstInMemOp = memory_operation_enum::set>
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_0, |
|
|
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 |
c_ptr | output C pointer |
smem_ptr_0 | 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. |
- Template Parameters
-
DstInMemOp | Destination memory operation (default: set). |
◆ 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 |
◆ PreshuffleQuant
template<typename TilePartitioner_ , typename GemmPipeline_ , typename EpiloguePipeline_ , QuantType QuantType_>
constexpr bool ck_tile::QuantGemmKernel< TilePartitioner_, GemmPipeline_, EpiloguePipeline_, QuantType_ >::PreshuffleQuant |
|
staticconstexpr |
Initial value:
remove_cv_t< std::remove_reference_t< T > > remove_cvref_t
Definition: type_traits.hpp:21
const GenericPointer< typename T::ValueType > T2 value
Definition: pointer.h:1350
Default type
Definition: gemm_quant_kernel.hpp:76
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_group_quant/kernel/gemm_quant_kernel.hpp