gridwise_gemm_xdlops_splitk_lds_direct_load.hpp Source File#
gridwise_gemm_xdlops_splitk_lds_direct_load.hpp
Go to the documentation of this file.
#define IS_VALID_COMPILATION_PARAMETER_IMPL(CDataType_)
Definition device_base.hpp:178
__host__ __device__ constexpr auto integer_least_multiple(X x, Y y)
Definition utility/math.hpp:78
__host__ __device__ constexpr auto integer_divide_ceil(X x, Y y)
Definition utility/math.hpp:72
GemmSpecialization
Definition gemm_specialization.hpp:11
@ MKPadding
Definition gemm_specialization.hpp:18
@ KPadding
Definition gemm_specialization.hpp:16
@ NPadding
Definition gemm_specialization.hpp:15
@ MPadding
Definition gemm_specialization.hpp:14
@ MNKPadding
Definition gemm_specialization.hpp:20
@ MNPadding
Definition gemm_specialization.hpp:17
@ NKPadding
Definition gemm_specialization.hpp:19
Definition ck.hpp:268
__host__ __device__ constexpr auto make_multi_index(Xs &&... xs)
Definition array_multi_index.hpp:15
constexpr auto BlockwiseGemmXdlops_k0mk1_k0nk1_m0n0m1n1m2m3m4n2_Selector()
Definition blockwise_gemm_xdlops.hpp:620
__host__ __device__ constexpr auto make_pass_through_transform(const LowLength &low_length)
Definition multi_index_transform_helper.hpp:12
constexpr auto GridwiseGemmPipeline_Selector()
Definition gridwise_gemm_pipeline_selector.hpp:31
__host__ __device__ constexpr auto make_naive_tensor_descriptor(const Tuple< Lengths... > &lengths, const Tuple< Strides... > &strides)
Definition tensor_descriptor_helper.hpp:49
__host__ __device__ constexpr auto make_single_stage_tensor_adaptor(const Transforms &transforms, LowerDimensionOldTopIdss, UpperDimensionNewTopIdss)
Definition tensor_description/tensor_adaptor.hpp:425
__host__ __device__ constexpr auto make_freeze_transform(const LowerIndex &low_idx)
Definition multi_index_transform_helper.hpp:151
__host__ __device__ constexpr auto make_right_pad_transform(const LowLength &low_length, const RightPadLength &right_pad, integral_constant< bool, SkipIsValidCheck >=integral_constant< bool, false >{})
Definition multi_index_transform_helper.hpp:37
__host__ __device__ constexpr auto make_merge_transform(const LowLengths &low_lengths)
Definition multi_index_transform_helper.hpp:55
__host__ __device__ constexpr auto make_naive_tensor_descriptor_aligned(const Tuple< Lengths... > &lengths, Align align)
Definition tensor_descriptor_helper.hpp:132
__host__ __device__ constexpr auto make_naive_tensor_descriptor_packed(const Tuple< Lengths... > &lengths)
Definition tensor_descriptor_helper.hpp:101
__host__ __device__ constexpr auto make_tuple(Xs &&... xs)
Definition utility/tuple.hpp:211
__global__ void kernel_gemm_xdlops_splitk_lds_direct_load(typename GridwiseGemm::Argument karg, const Block2CTileMap &b2c_map, const AElementwiseOperation a_element_op, const BElementwiseOperation b_element_op, const CElementwiseOperation c_element_op)
Definition gridwise_gemm_xdlops_splitk_lds_direct_load.hpp:35
__host__ __device__ constexpr auto transform_tensor_descriptor(const OldTensorDescriptor &old_tensor_desc, const NewTransforms &new_transforms, NewLowerDimensionOldVisibleIdss, NewUpperDimensionNewVisibleIdss)
Definition tensor_description/tensor_descriptor.hpp:319
__host__ __device__ constexpr auto make_unmerge_transform(const UpLengths &up_lengths, integral_constant< bool, Use24BitIntegerCalculation >=integral_constant< bool, false >{})
Definition multi_index_transform_helper.hpp:90
__host__ __device__ constexpr auto make_dynamic_buffer(T *p, ElementSpaceSize element_space_size)
Definition dynamic_buffer.hpp:472
constexpr LoopScheduler make_default_loop_scheduler()
Definition loop_scheduler.hpp:20
Simple tile mapping which creates 3D grid of block of threads.
Definition block_to_ctile_map.hpp:977
Argument(const FloatA *p_a_grid_, const FloatB *p_b_grid_, FloatC *p_c_grid_, index_t M_, index_t N_, index_t K_, index_t StrideA_, index_t StrideB_, index_t StrideC_, index_t MPadded_, index_t NPadded_, index_t KPadded_, index_t K0Padded_, index_t k_batch_)
Definition gridwise_gemm_xdlops_splitk_lds_direct_load.hpp:141
index_t K
Definition gridwise_gemm_xdlops_splitk_lds_direct_load.hpp:131
index_t k_batch
Definition gridwise_gemm_xdlops_splitk_lds_direct_load.hpp:139
index_t StrideA
Definition gridwise_gemm_xdlops_splitk_lds_direct_load.hpp:132
const FloatA * p_a_grid
Definition gridwise_gemm_xdlops_splitk_lds_direct_load.hpp:126
void Print() const
Definition gridwise_gemm_xdlops_splitk_lds_direct_load.hpp:172
index_t StrideC
Definition gridwise_gemm_xdlops_splitk_lds_direct_load.hpp:134
index_t M
Definition gridwise_gemm_xdlops_splitk_lds_direct_load.hpp:129
FloatC * p_c_grid
Definition gridwise_gemm_xdlops_splitk_lds_direct_load.hpp:128
index_t MPadded
Definition gridwise_gemm_xdlops_splitk_lds_direct_load.hpp:135
index_t StrideB
Definition gridwise_gemm_xdlops_splitk_lds_direct_load.hpp:133
index_t NPadded
Definition gridwise_gemm_xdlops_splitk_lds_direct_load.hpp:136
const FloatB * p_b_grid
Definition gridwise_gemm_xdlops_splitk_lds_direct_load.hpp:127
index_t N
Definition gridwise_gemm_xdlops_splitk_lds_direct_load.hpp:130
index_t K0Padded
Definition gridwise_gemm_xdlops_splitk_lds_direct_load.hpp:138
index_t KPadded
Definition gridwise_gemm_xdlops_splitk_lds_direct_load.hpp:137
Definition gridwise_gemm_xdlops_splitk_lds_direct_load.hpp:99
__host__ static __device__ auto MakeBGridDescriptor_KBatch_K0_N_K1(index_t K, index_t NPad, index_t N, index_t StrideB, index_t KBatch, index_t K0Padded, index_t KPad)
Definition gridwise_gemm_xdlops_splitk_lds_direct_load.hpp:274
static constexpr index_t NXdlPerWave
Definition gridwise_gemm_xdlops_splitk_lds_direct_load.hpp:401
__host__ static __device__ constexpr auto MakeDefaultBlock2CTileMap()
Definition gridwise_gemm_xdlops_splitk_lds_direct_load.hpp:541
__host__ static __device__ auto CalculateMPadded(index_t M)
Definition gridwise_gemm_xdlops_splitk_lds_direct_load.hpp:190
__host__ static __device__ auto GetKPad(index_t K, index_t KBatch)
Definition gridwise_gemm_xdlops_splitk_lds_direct_load.hpp:495
remove_cvref_t< decltype(GridwiseGemmPipeline_Selector< PipelineVer, NumGemmKPrefetchStage, LoopSched >())> GridwiseGemmPipe
Definition gridwise_gemm_xdlops_splitk_lds_direct_load.hpp:121
static __device__ void Run(const Argument &karg, void *__restrict__ p_shared_block, const Block2CTileMap &block_2_ctile_map, const AElementwiseOperation a_element_op=AElementwiseOperation{}, const BElementwiseOperation b_element_op=BElementwiseOperation{}, const CElementwiseOperation c_element_op=CElementwiseOperation{})
Definition gridwise_gemm_xdlops_splitk_lds_direct_load.hpp:552
__host__ static __device__ auto CalculateKPadded(index_t K, index_t K_Batch=1)
Definition gridwise_gemm_xdlops_splitk_lds_direct_load.hpp:207
__host__ static __device__ auto MakeCGridDescriptor_M_N(index_t M, index_t N, index_t StrideC)
Definition gridwise_gemm_xdlops_splitk_lds_direct_load.hpp:335
__host__ static __device__ constexpr index_t GetSharedMemoryNumberOfByte()
Definition gridwise_gemm_xdlops_splitk_lds_direct_load.hpp:351
__host__ static __device__ constexpr auto GetCBlockDescriptor_MBlock_MPerBlock_NBlock_NPerBlock()
Definition gridwise_gemm_xdlops_splitk_lds_direct_load.hpp:528
remove_cvref_t< decltype(MakeCGridDescriptor_M_N(1, 1, 1))> CGridDesc_M_N
Definition gridwise_gemm_xdlops_splitk_lds_direct_load.hpp:546
__host__ static __device__ auto MakeAGridDescriptor_KBatch_K0_M_K1(index_t M, index_t MPad, index_t K, index_t StrideA, index_t KBatch, index_t K0Padded, index_t KPad)
Definition gridwise_gemm_xdlops_splitk_lds_direct_load.hpp:213
__host__ static __device__ constexpr auto MakeCGridDesc_MBlock_MPerBlock_NBlock_NPerBlock(const CGridDesc &c_m_n_grid_desc)
Definition gridwise_gemm_xdlops_splitk_lds_direct_load.hpp:511
__host__ static __device__ constexpr bool CheckValidity(const Argument &karg)
Definition gridwise_gemm_xdlops_splitk_lds_direct_load.hpp:404
remove_cvref_t< decltype(MakeDefaultBlock2CTileMap())> DefaultBlock2CTileMap
Definition gridwise_gemm_xdlops_splitk_lds_direct_load.hpp:547
__host__ static __device__ auto CalculateK0Padded(index_t K, index_t K_Batch=1)
Definition gridwise_gemm_xdlops_splitk_lds_direct_load.hpp:200
__host__ static __device__ constexpr bool CalculateHasMainK0BlockLoop(index_t K0Padded)
Definition gridwise_gemm_xdlops_splitk_lds_direct_load.hpp:503
__host__ static __device__ auto CalculateGridSize(const Argument &karg)
Definition gridwise_gemm_xdlops_splitk_lds_direct_load.hpp:182
ThisThreadBlock< BlockSize > ThisThreadBlock
Definition gridwise_gemm_xdlops_splitk_lds_direct_load.hpp:119
static constexpr index_t MXdlPerWave
Definition gridwise_gemm_xdlops_splitk_lds_direct_load.hpp:400
__host__ static __device__ auto CalculateNPadded(index_t N)
Definition gridwise_gemm_xdlops_splitk_lds_direct_load.hpp:195
Definition utility/sequence.hpp:43
Definition device_base.hpp:197
Definition matrix_padder.hpp:134