gemm_multi_abd_kernel.hpp Source File#
gemm_multi_abd_kernel.hpp
Go to the documentation of this file.
Definition tile/core/algorithm/cluster_descriptor.hpp:13
remove_cv_t< std::remove_reference_t< T > > remove_cvref_t
Definition type_traits.hpp:21
typename detail::detector< nonesuch, void, Op, Args... >::value_t is_detected
Definition type_traits.hpp:67
Definition gemm_multi_abd_kernel.hpp:86
CK_TILE_DEVICE auto operator()(typename UniversalGemmKernel::KernelArgs kargs) const -> void
Definition gemm_multi_abd_kernel.hpp:192
static CK_TILE_HOST constexpr auto MakeKernelArgs(const GemmMultiABDHostArgs< NumATensor, NumBTensor, NumDTensor > &hostArgs) -> typename UniversalGemmKernel::KernelArgs
Definition gemm_multi_abd_kernel.hpp:160
static CK_TILE_HOST constexpr auto BlockSize() -> dim3
Definition gemm_multi_abd_kernel.hpp:154
remove_cvref_t< typename GemmPipeline::AsLayout > AsLayout
Specify the layout configurations for A, B, E and D.
Definition gemm_multi_abd_kernel.hpp:98
remove_cvref_t< GemmPipeline_ > GemmPipeline
Definition gemm_multi_abd_kernel.hpp:94
remove_cvref_t< typename EpiloguePipeline::ODataType > EDataType
Definition gemm_multi_abd_kernel.hpp:106
remove_cvref_t< typename EpiloguePipeline::DsDataType > DsDataType
Definition gemm_multi_abd_kernel.hpp:107
remove_cvref_t< std::tuple_element_t< 0, DsDataType > > DDataType
Definition gemm_multi_abd_kernel.hpp:137
static constexpr index_t kBlockSize
Definition gemm_multi_abd_kernel.hpp:91
remove_cvref_t< typename EpiloguePipeline::DsLayout > DsLayout
Definition gemm_multi_abd_kernel.hpp:101
UniversalGemmKernel< TilePartitioner_, GemmPipeline_, EpiloguePipeline_ > UniversalGemmKernel
Inject the UniversalGemmKernel base class to support execution of all necessary functions.
Definition gemm_multi_abd_kernel.hpp:89
static constexpr index_t NumDTensor
Definition gemm_multi_abd_kernel.hpp:133
static CK_TILE_HOST constexpr auto GridSize(index_t M, index_t N, index_t KBatch) -> dim3
Definition gemm_multi_abd_kernel.hpp:144
remove_cvref_t< std::tuple_element_t< 0, AsDataType > > ADataType
Definition gemm_multi_abd_kernel.hpp:135
remove_cvref_t< typename GemmPipeline::CLayout > CLayout
Definition gemm_multi_abd_kernel.hpp:100
static constexpr index_t NumATensor
ALayout and ADataType are expected to be a tuple, not a scalar.
Definition gemm_multi_abd_kernel.hpp:131
remove_cvref_t< TilePartitioner_ > TilePartitioner
Definition gemm_multi_abd_kernel.hpp:93
remove_cvref_t< EpiloguePipeline_ > EpiloguePipeline
Definition gemm_multi_abd_kernel.hpp:95
static CK_TILE_HOST auto MaxOccupancyGridSize(const stream_config &s) -> dim3
Definition gemm_multi_abd_kernel.hpp:149
static CK_TILE_HOST auto IsSupportedArgument(const typename UniversalGemmKernel::KernelArgs &kargs) -> bool
Definition gemm_multi_abd_kernel.hpp:181
remove_cvref_t< typename GemmPipeline::AsDataType > AsDataType
Specify the data type configurations for A, B, E and D.
Definition gemm_multi_abd_kernel.hpp:104
static constexpr index_t NumBTensor
Definition gemm_multi_abd_kernel.hpp:132
remove_cvref_t< typename GemmPipeline::BsLayout > BsLayout
Definition gemm_multi_abd_kernel.hpp:99
static CK_TILE_HOST auto GetName() -> const std::string
Definition gemm_multi_abd_kernel.hpp:139
remove_cvref_t< typename GemmPipeline::BsDataType > BsDataType
Definition gemm_multi_abd_kernel.hpp:105
remove_cvref_t< std::tuple_element_t< 0, BsDataType > > BDataType
Definition gemm_multi_abd_kernel.hpp:136
The MultiABD GEMM kernel host arguments.
Definition gemm_multi_abd_kernel.hpp:33
const std::array< index_t, NumDTensor > stride_Ds
Definition gemm_multi_abd_kernel.hpp:74
const std::array< const void *, NumATensor > as_ptr
Definition gemm_multi_abd_kernel.hpp:61
const std::array< index_t, NumATensor > stride_As
Definition gemm_multi_abd_kernel.hpp:72
const std::array< const void *, NumDTensor > ds_ptr
Definition gemm_multi_abd_kernel.hpp:63
const std::array< const void *, NumBTensor > bs_ptr
Definition gemm_multi_abd_kernel.hpp:62
CK_TILE_HOST GemmMultiABDHostArgs(const std::array< const void *, NumATensor > &as_ptr_, const std::array< const void *, NumBTensor > &bs_ptr_, const std::array< const void *, NumDTensor > &ds_ptr_, void *e_ptr_, index_t k_batch_, index_t M_, index_t N_, index_t K_, const std::array< index_t, NumATensor > &stride_As_, const std::array< index_t, NumBTensor > &stride_Bs_, const std::array< index_t, NumDTensor > &stride_Ds_, index_t stride_E_)
Definition gemm_multi_abd_kernel.hpp:34
const std::array< index_t, NumBTensor > stride_Bs
Definition gemm_multi_abd_kernel.hpp:73
The Universal GEMM kernel host arguments.
Definition universal_gemm_kernel.hpp:32
static CK_TILE_HOST const std::string GetName()
Definition universal_gemm_kernel.hpp:260
static CK_TILE_HOST constexpr auto GridSize(index_t M, index_t N, index_t KBatch)
Definition universal_gemm_kernel.hpp:267
static CK_TILE_HOST auto BlockSize()
Definition universal_gemm_kernel.hpp:290
static CK_TILE_HOST auto MaxOccupancyGridSize(const stream_config &s) -> dim3
Get the maximum occupancy grid size for the persistent kernel on the current device.
Definition universal_gemm_kernel.hpp:278
static CK_TILE_HOST bool IsSupportedArgument(const KernelArgs &kargs)
Definition universal_gemm_kernel.hpp:373
static CK_TILE_HOST constexpr KernelArgs MakeKernelArgs(const UniversalGemmHostArgs< NumATensor, NumBTensor, NumDTensor > &hostArgs)
Definition universal_gemm_kernel.hpp:303
static constexpr index_t kBlockSize
Definition universal_gemm_kernel.hpp:202
UniversalGemmKernelArgs< AsLayout::size(), BsLayout::size(), DsLayout::size()> KernelArgs
Definition universal_gemm_kernel.hpp:257
Definition ck_tile/host/stream_config.hpp:30