#include <gemm_pipeline_problem.hpp>
◆ ADataType
template<typename AsDataType_, typename BsDataType_, typename EDataType_, typename BlockGemmShape_, typename Traits_,
GemmPipelineScheduler Scheduler_ = GemmPipelineScheduler::Intrawave, bool HasHotLoop_ = true,
TailNumber TailNum_ = TailNumber::Full, typename AElementWise_ = ck_tile::element_wise::PassThrough, typename BElementWise_ = ck_tile::element_wise::PassThrough, typename ComputeDataType_ = AsDataType_, bool FixedVectorSize_ = false,
index_t VectorSizeA_ = 1,
index_t VectorSizeB_ = 1>
| using ck_tile::UniversalGemmPipelineProblem< AsDataType_, BsDataType_, EDataType_, BlockGemmShape_, Traits_, Scheduler_, HasHotLoop_, TailNum_, AElementWise_, BElementWise_, ComputeDataType_, FixedVectorSize_, VectorSizeA_, VectorSizeB_ >::ADataType = remove_cvref_t<std::tuple_element_t<number<0>{}, AsDataTypeTuple>> |
◆ AElementWise
template<typename AsDataType_, typename BsDataType_, typename EDataType_, typename BlockGemmShape_, typename Traits_,
GemmPipelineScheduler Scheduler_ = GemmPipelineScheduler::Intrawave, bool HasHotLoop_ = true,
TailNumber TailNum_ = TailNumber::Full, typename AElementWise_ = ck_tile::element_wise::PassThrough, typename BElementWise_ = ck_tile::element_wise::PassThrough, typename ComputeDataType_ = AsDataType_, bool FixedVectorSize_ = false,
index_t VectorSizeA_ = 1,
index_t VectorSizeB_ = 1>
| using ck_tile::UniversalGemmPipelineProblem< AsDataType_, BsDataType_, EDataType_, BlockGemmShape_, Traits_, Scheduler_, HasHotLoop_, TailNum_, AElementWise_, BElementWise_, ComputeDataType_, FixedVectorSize_, VectorSizeA_, VectorSizeB_ >::AElementWise = remove_cvref_t<AElementWise_> |
◆ ALayout
template<typename AsDataType_, typename BsDataType_, typename EDataType_, typename BlockGemmShape_, typename Traits_,
GemmPipelineScheduler Scheduler_ = GemmPipelineScheduler::Intrawave, bool HasHotLoop_ = true,
TailNumber TailNum_ = TailNumber::Full, typename AElementWise_ = ck_tile::element_wise::PassThrough, typename BElementWise_ = ck_tile::element_wise::PassThrough, typename ComputeDataType_ = AsDataType_, bool FixedVectorSize_ = false,
index_t VectorSizeA_ = 1,
index_t VectorSizeB_ = 1>
| using ck_tile::UniversalGemmPipelineProblem< AsDataType_, BsDataType_, EDataType_, BlockGemmShape_, Traits_, Scheduler_, HasHotLoop_, TailNum_, AElementWise_, BElementWise_, ComputeDataType_, FixedVectorSize_, VectorSizeA_, VectorSizeB_ >::ALayout = remove_cvref_t<std::tuple_element_t<number<0>{}, AsLayoutTuple>> |
◆ AsDataType
template<typename AsDataType_, typename BsDataType_, typename EDataType_, typename BlockGemmShape_, typename Traits_,
GemmPipelineScheduler Scheduler_ = GemmPipelineScheduler::Intrawave, bool HasHotLoop_ = true,
TailNumber TailNum_ = TailNumber::Full, typename AElementWise_ = ck_tile::element_wise::PassThrough, typename BElementWise_ = ck_tile::element_wise::PassThrough, typename ComputeDataType_ = AsDataType_, bool FixedVectorSize_ = false,
index_t VectorSizeA_ = 1,
index_t VectorSizeB_ = 1>
| using ck_tile::UniversalGemmPipelineProblem< AsDataType_, BsDataType_, EDataType_, BlockGemmShape_, Traits_, Scheduler_, HasHotLoop_, TailNum_, AElementWise_, BElementWise_, ComputeDataType_, FixedVectorSize_, VectorSizeA_, VectorSizeB_ >::AsDataType = remove_cvref_t<AsDataType_> |
◆ AsDataTypeTuple
template<typename AsDataType_, typename BsDataType_, typename EDataType_, typename BlockGemmShape_, typename Traits_,
GemmPipelineScheduler Scheduler_ = GemmPipelineScheduler::Intrawave, bool HasHotLoop_ = true,
TailNumber TailNum_ = TailNumber::Full, typename AElementWise_ = ck_tile::element_wise::PassThrough, typename BElementWise_ = ck_tile::element_wise::PassThrough, typename ComputeDataType_ = AsDataType_, bool FixedVectorSize_ = false,
index_t VectorSizeA_ = 1,
index_t VectorSizeB_ = 1>
| using ck_tile::UniversalGemmPipelineProblem< AsDataType_, BsDataType_, EDataType_, BlockGemmShape_, Traits_, Scheduler_, HasHotLoop_, TailNum_, AElementWise_, BElementWise_, ComputeDataType_, FixedVectorSize_, VectorSizeA_, VectorSizeB_ >::AsDataTypeTuple |
Initial value:
remove_cv_t< std::remove_reference_t< T > > remove_cvref_t
Definition type_traits.hpp:21
static constexpr bool ADataTypeIsTuple
Definition cshuffle_epilogue.hpp:81
◆ AsLayout
template<typename AsDataType_, typename BsDataType_, typename EDataType_, typename BlockGemmShape_, typename Traits_,
GemmPipelineScheduler Scheduler_ = GemmPipelineScheduler::Intrawave, bool HasHotLoop_ = true,
TailNumber TailNum_ = TailNumber::Full, typename AElementWise_ = ck_tile::element_wise::PassThrough, typename BElementWise_ = ck_tile::element_wise::PassThrough, typename ComputeDataType_ = AsDataType_, bool FixedVectorSize_ = false,
index_t VectorSizeA_ = 1,
index_t VectorSizeB_ = 1>
| using ck_tile::UniversalGemmPipelineProblem< AsDataType_, BsDataType_, EDataType_, BlockGemmShape_, Traits_, Scheduler_, HasHotLoop_, TailNum_, AElementWise_, BElementWise_, ComputeDataType_, FixedVectorSize_, VectorSizeA_, VectorSizeB_ >::AsLayout = remove_cvref_t<typename Traits::AsLayout> |
◆ AsLayoutTuple
template<typename AsDataType_, typename BsDataType_, typename EDataType_, typename BlockGemmShape_, typename Traits_,
GemmPipelineScheduler Scheduler_ = GemmPipelineScheduler::Intrawave, bool HasHotLoop_ = true,
TailNumber TailNum_ = TailNumber::Full, typename AElementWise_ = ck_tile::element_wise::PassThrough, typename BElementWise_ = ck_tile::element_wise::PassThrough, typename ComputeDataType_ = AsDataType_, bool FixedVectorSize_ = false,
index_t VectorSizeA_ = 1,
index_t VectorSizeB_ = 1>
| using ck_tile::UniversalGemmPipelineProblem< AsDataType_, BsDataType_, EDataType_, BlockGemmShape_, Traits_, Scheduler_, HasHotLoop_, TailNum_, AElementWise_, BElementWise_, ComputeDataType_, FixedVectorSize_, VectorSizeA_, VectorSizeB_ >::AsLayoutTuple |
◆ BDataType
template<typename AsDataType_, typename BsDataType_, typename EDataType_, typename BlockGemmShape_, typename Traits_,
GemmPipelineScheduler Scheduler_ = GemmPipelineScheduler::Intrawave, bool HasHotLoop_ = true,
TailNumber TailNum_ = TailNumber::Full, typename AElementWise_ = ck_tile::element_wise::PassThrough, typename BElementWise_ = ck_tile::element_wise::PassThrough, typename ComputeDataType_ = AsDataType_, bool FixedVectorSize_ = false,
index_t VectorSizeA_ = 1,
index_t VectorSizeB_ = 1>
| using ck_tile::UniversalGemmPipelineProblem< AsDataType_, BsDataType_, EDataType_, BlockGemmShape_, Traits_, Scheduler_, HasHotLoop_, TailNum_, AElementWise_, BElementWise_, ComputeDataType_, FixedVectorSize_, VectorSizeA_, VectorSizeB_ >::BDataType = remove_cvref_t<std::tuple_element_t<number<0>{}, BsDataTypeTuple>> |
◆ BElementWise
template<typename AsDataType_, typename BsDataType_, typename EDataType_, typename BlockGemmShape_, typename Traits_,
GemmPipelineScheduler Scheduler_ = GemmPipelineScheduler::Intrawave, bool HasHotLoop_ = true,
TailNumber TailNum_ = TailNumber::Full, typename AElementWise_ = ck_tile::element_wise::PassThrough, typename BElementWise_ = ck_tile::element_wise::PassThrough, typename ComputeDataType_ = AsDataType_, bool FixedVectorSize_ = false,
index_t VectorSizeA_ = 1,
index_t VectorSizeB_ = 1>
| using ck_tile::UniversalGemmPipelineProblem< AsDataType_, BsDataType_, EDataType_, BlockGemmShape_, Traits_, Scheduler_, HasHotLoop_, TailNum_, AElementWise_, BElementWise_, ComputeDataType_, FixedVectorSize_, VectorSizeA_, VectorSizeB_ >::BElementWise = remove_cvref_t<BElementWise_> |
◆ BLayout
template<typename AsDataType_, typename BsDataType_, typename EDataType_, typename BlockGemmShape_, typename Traits_,
GemmPipelineScheduler Scheduler_ = GemmPipelineScheduler::Intrawave, bool HasHotLoop_ = true,
TailNumber TailNum_ = TailNumber::Full, typename AElementWise_ = ck_tile::element_wise::PassThrough, typename BElementWise_ = ck_tile::element_wise::PassThrough, typename ComputeDataType_ = AsDataType_, bool FixedVectorSize_ = false,
index_t VectorSizeA_ = 1,
index_t VectorSizeB_ = 1>
| using ck_tile::UniversalGemmPipelineProblem< AsDataType_, BsDataType_, EDataType_, BlockGemmShape_, Traits_, Scheduler_, HasHotLoop_, TailNum_, AElementWise_, BElementWise_, ComputeDataType_, FixedVectorSize_, VectorSizeA_, VectorSizeB_ >::BLayout = remove_cvref_t<std::tuple_element_t<number<0>{}, BsLayoutTuple>> |
◆ BlockGemmShape
template<typename AsDataType_, typename BsDataType_, typename EDataType_, typename BlockGemmShape_, typename Traits_,
GemmPipelineScheduler Scheduler_ = GemmPipelineScheduler::Intrawave, bool HasHotLoop_ = true,
TailNumber TailNum_ = TailNumber::Full, typename AElementWise_ = ck_tile::element_wise::PassThrough, typename BElementWise_ = ck_tile::element_wise::PassThrough, typename ComputeDataType_ = AsDataType_, bool FixedVectorSize_ = false,
index_t VectorSizeA_ = 1,
index_t VectorSizeB_ = 1>
| using ck_tile::UniversalGemmPipelineProblem< AsDataType_, BsDataType_, EDataType_, BlockGemmShape_, Traits_, Scheduler_, HasHotLoop_, TailNum_, AElementWise_, BElementWise_, ComputeDataType_, FixedVectorSize_, VectorSizeA_, VectorSizeB_ >::BlockGemmShape = remove_cvref_t<BlockGemmShape_> |
◆ BsDataType
template<typename AsDataType_, typename BsDataType_, typename EDataType_, typename BlockGemmShape_, typename Traits_,
GemmPipelineScheduler Scheduler_ = GemmPipelineScheduler::Intrawave, bool HasHotLoop_ = true,
TailNumber TailNum_ = TailNumber::Full, typename AElementWise_ = ck_tile::element_wise::PassThrough, typename BElementWise_ = ck_tile::element_wise::PassThrough, typename ComputeDataType_ = AsDataType_, bool FixedVectorSize_ = false,
index_t VectorSizeA_ = 1,
index_t VectorSizeB_ = 1>
| using ck_tile::UniversalGemmPipelineProblem< AsDataType_, BsDataType_, EDataType_, BlockGemmShape_, Traits_, Scheduler_, HasHotLoop_, TailNum_, AElementWise_, BElementWise_, ComputeDataType_, FixedVectorSize_, VectorSizeA_, VectorSizeB_ >::BsDataType = remove_cvref_t<BsDataType_> |
◆ BsDataTypeTuple
template<typename AsDataType_, typename BsDataType_, typename EDataType_, typename BlockGemmShape_, typename Traits_,
GemmPipelineScheduler Scheduler_ = GemmPipelineScheduler::Intrawave, bool HasHotLoop_ = true,
TailNumber TailNum_ = TailNumber::Full, typename AElementWise_ = ck_tile::element_wise::PassThrough, typename BElementWise_ = ck_tile::element_wise::PassThrough, typename ComputeDataType_ = AsDataType_, bool FixedVectorSize_ = false,
index_t VectorSizeA_ = 1,
index_t VectorSizeB_ = 1>
| using ck_tile::UniversalGemmPipelineProblem< AsDataType_, BsDataType_, EDataType_, BlockGemmShape_, Traits_, Scheduler_, HasHotLoop_, TailNum_, AElementWise_, BElementWise_, ComputeDataType_, FixedVectorSize_, VectorSizeA_, VectorSizeB_ >::BsDataTypeTuple |
Initial value:
static constexpr bool BDataTypeIsTuple
Definition cshuffle_epilogue.hpp:82
◆ BsLayout
template<typename AsDataType_, typename BsDataType_, typename EDataType_, typename BlockGemmShape_, typename Traits_,
GemmPipelineScheduler Scheduler_ = GemmPipelineScheduler::Intrawave, bool HasHotLoop_ = true,
TailNumber TailNum_ = TailNumber::Full, typename AElementWise_ = ck_tile::element_wise::PassThrough, typename BElementWise_ = ck_tile::element_wise::PassThrough, typename ComputeDataType_ = AsDataType_, bool FixedVectorSize_ = false,
index_t VectorSizeA_ = 1,
index_t VectorSizeB_ = 1>
| using ck_tile::UniversalGemmPipelineProblem< AsDataType_, BsDataType_, EDataType_, BlockGemmShape_, Traits_, Scheduler_, HasHotLoop_, TailNum_, AElementWise_, BElementWise_, ComputeDataType_, FixedVectorSize_, VectorSizeA_, VectorSizeB_ >::BsLayout = remove_cvref_t<typename Traits::BsLayout> |
◆ BsLayoutTuple
template<typename AsDataType_, typename BsDataType_, typename EDataType_, typename BlockGemmShape_, typename Traits_,
GemmPipelineScheduler Scheduler_ = GemmPipelineScheduler::Intrawave, bool HasHotLoop_ = true,
TailNumber TailNum_ = TailNumber::Full, typename AElementWise_ = ck_tile::element_wise::PassThrough, typename BElementWise_ = ck_tile::element_wise::PassThrough, typename ComputeDataType_ = AsDataType_, bool FixedVectorSize_ = false,
index_t VectorSizeA_ = 1,
index_t VectorSizeB_ = 1>
| using ck_tile::UniversalGemmPipelineProblem< AsDataType_, BsDataType_, EDataType_, BlockGemmShape_, Traits_, Scheduler_, HasHotLoop_, TailNum_, AElementWise_, BElementWise_, ComputeDataType_, FixedVectorSize_, VectorSizeA_, VectorSizeB_ >::BsLayoutTuple |
◆ CDataType
template<typename AsDataType_, typename BsDataType_, typename EDataType_, typename BlockGemmShape_, typename Traits_,
GemmPipelineScheduler Scheduler_ = GemmPipelineScheduler::Intrawave, bool HasHotLoop_ = true,
TailNumber TailNum_ = TailNumber::Full, typename AElementWise_ = ck_tile::element_wise::PassThrough, typename BElementWise_ = ck_tile::element_wise::PassThrough, typename ComputeDataType_ = AsDataType_, bool FixedVectorSize_ = false,
index_t VectorSizeA_ = 1,
index_t VectorSizeB_ = 1>
| using ck_tile::UniversalGemmPipelineProblem< AsDataType_, BsDataType_, EDataType_, BlockGemmShape_, Traits_, Scheduler_, HasHotLoop_, TailNum_, AElementWise_, BElementWise_, ComputeDataType_, FixedVectorSize_, VectorSizeA_, VectorSizeB_ >::CDataType = remove_cvref_t<EDataType_> |
◆ CLayout
template<typename AsDataType_, typename BsDataType_, typename EDataType_, typename BlockGemmShape_, typename Traits_,
GemmPipelineScheduler Scheduler_ = GemmPipelineScheduler::Intrawave, bool HasHotLoop_ = true,
TailNumber TailNum_ = TailNumber::Full, typename AElementWise_ = ck_tile::element_wise::PassThrough, typename BElementWise_ = ck_tile::element_wise::PassThrough, typename ComputeDataType_ = AsDataType_, bool FixedVectorSize_ = false,
index_t VectorSizeA_ = 1,
index_t VectorSizeB_ = 1>
| using ck_tile::UniversalGemmPipelineProblem< AsDataType_, BsDataType_, EDataType_, BlockGemmShape_, Traits_, Scheduler_, HasHotLoop_, TailNum_, AElementWise_, BElementWise_, ComputeDataType_, FixedVectorSize_, VectorSizeA_, VectorSizeB_ >::CLayout = remove_cvref_t<typename Traits::CLayout> |
◆ ComputeDataType
template<typename AsDataType_, typename BsDataType_, typename EDataType_, typename BlockGemmShape_, typename Traits_,
GemmPipelineScheduler Scheduler_ = GemmPipelineScheduler::Intrawave, bool HasHotLoop_ = true,
TailNumber TailNum_ = TailNumber::Full, typename AElementWise_ = ck_tile::element_wise::PassThrough, typename BElementWise_ = ck_tile::element_wise::PassThrough, typename ComputeDataType_ = AsDataType_, bool FixedVectorSize_ = false,
index_t VectorSizeA_ = 1,
index_t VectorSizeB_ = 1>
| using ck_tile::UniversalGemmPipelineProblem< AsDataType_, BsDataType_, EDataType_, BlockGemmShape_, Traits_, Scheduler_, HasHotLoop_, TailNum_, AElementWise_, BElementWise_, ComputeDataType_, FixedVectorSize_, VectorSizeA_, VectorSizeB_ >::ComputeDataType = remove_cvref_t<std::tuple_element_t<number<0>{}, ComputeDataTypeTuple>> |
◆ ComputeDataTypeTuple
template<typename AsDataType_, typename BsDataType_, typename EDataType_, typename BlockGemmShape_, typename Traits_,
GemmPipelineScheduler Scheduler_ = GemmPipelineScheduler::Intrawave, bool HasHotLoop_ = true,
TailNumber TailNum_ = TailNumber::Full, typename AElementWise_ = ck_tile::element_wise::PassThrough, typename BElementWise_ = ck_tile::element_wise::PassThrough, typename ComputeDataType_ = AsDataType_, bool FixedVectorSize_ = false,
index_t VectorSizeA_ = 1,
index_t VectorSizeB_ = 1>
| using ck_tile::UniversalGemmPipelineProblem< AsDataType_, BsDataType_, EDataType_, BlockGemmShape_, Traits_, Scheduler_, HasHotLoop_, TailNum_, AElementWise_, BElementWise_, ComputeDataType_, FixedVectorSize_, VectorSizeA_, VectorSizeB_ >::ComputeDataTypeTuple |
Initial value:
static constexpr bool ComputeDataTypeIsTuple
Definition gemm_pipeline_problem.hpp:43
◆ Traits
template<typename AsDataType_, typename BsDataType_, typename EDataType_, typename BlockGemmShape_, typename Traits_,
GemmPipelineScheduler Scheduler_ = GemmPipelineScheduler::Intrawave, bool HasHotLoop_ = true,
TailNumber TailNum_ = TailNumber::Full, typename AElementWise_ = ck_tile::element_wise::PassThrough, typename BElementWise_ = ck_tile::element_wise::PassThrough, typename ComputeDataType_ = AsDataType_, bool FixedVectorSize_ = false,
index_t VectorSizeA_ = 1,
index_t VectorSizeB_ = 1>
| using ck_tile::UniversalGemmPipelineProblem< AsDataType_, BsDataType_, EDataType_, BlockGemmShape_, Traits_, Scheduler_, HasHotLoop_, TailNum_, AElementWise_, BElementWise_, ComputeDataType_, FixedVectorSize_, VectorSizeA_, VectorSizeB_ >::Traits = remove_cvref_t<Traits_> |
◆ GetName()
template<typename AsDataType_, typename BsDataType_, typename EDataType_, typename BlockGemmShape_, typename Traits_,
GemmPipelineScheduler Scheduler_ = GemmPipelineScheduler::Intrawave, bool HasHotLoop_ = true,
TailNumber TailNum_ = TailNumber::Full, typename AElementWise_ = ck_tile::element_wise::PassThrough, typename BElementWise_ = ck_tile::element_wise::PassThrough, typename ComputeDataType_ = AsDataType_, bool FixedVectorSize_ = false,
index_t VectorSizeA_ = 1,
index_t VectorSizeB_ = 1>
| CK_TILE_HOST const std::string ck_tile::UniversalGemmPipelineProblem< AsDataType_, BsDataType_, EDataType_, BlockGemmShape_, Traits_, Scheduler_, HasHotLoop_, TailNum_, AElementWise_, BElementWise_, ComputeDataType_, FixedVectorSize_, VectorSizeA_, VectorSizeB_ >::GetName |
( |
| ) |
|
|
inlinestaticnodiscard |
◆ ADataTypeIsTuple
template<typename AsDataType_, typename BsDataType_, typename EDataType_, typename BlockGemmShape_, typename Traits_,
GemmPipelineScheduler Scheduler_ = GemmPipelineScheduler::Intrawave, bool HasHotLoop_ = true,
TailNumber TailNum_ = TailNumber::Full, typename AElementWise_ = ck_tile::element_wise::PassThrough, typename BElementWise_ = ck_tile::element_wise::PassThrough, typename ComputeDataType_ = AsDataType_, bool FixedVectorSize_ = false,
index_t VectorSizeA_ = 1,
index_t VectorSizeB_ = 1>
| bool ck_tile::UniversalGemmPipelineProblem< AsDataType_, BsDataType_, EDataType_, BlockGemmShape_, Traits_, Scheduler_, HasHotLoop_, TailNum_, AElementWise_, BElementWise_, ComputeDataType_, FixedVectorSize_, VectorSizeA_, VectorSizeB_ >::ADataTypeIsTuple = is_detected<is_tuple, AsDataType>::value |
|
staticconstexpr |
◆ ALayoutIsTuple
template<typename AsDataType_, typename BsDataType_, typename EDataType_, typename BlockGemmShape_, typename Traits_,
GemmPipelineScheduler Scheduler_ = GemmPipelineScheduler::Intrawave, bool HasHotLoop_ = true,
TailNumber TailNum_ = TailNumber::Full, typename AElementWise_ = ck_tile::element_wise::PassThrough, typename BElementWise_ = ck_tile::element_wise::PassThrough, typename ComputeDataType_ = AsDataType_, bool FixedVectorSize_ = false,
index_t VectorSizeA_ = 1,
index_t VectorSizeB_ = 1>
| bool ck_tile::UniversalGemmPipelineProblem< AsDataType_, BsDataType_, EDataType_, BlockGemmShape_, Traits_, Scheduler_, HasHotLoop_, TailNum_, AElementWise_, BElementWise_, ComputeDataType_, FixedVectorSize_, VectorSizeA_, VectorSizeB_ >::ALayoutIsTuple = is_detected<is_tuple, AsLayout>::value |
|
staticconstexpr |
◆ BDataTypeIsTuple
template<typename AsDataType_, typename BsDataType_, typename EDataType_, typename BlockGemmShape_, typename Traits_,
GemmPipelineScheduler Scheduler_ = GemmPipelineScheduler::Intrawave, bool HasHotLoop_ = true,
TailNumber TailNum_ = TailNumber::Full, typename AElementWise_ = ck_tile::element_wise::PassThrough, typename BElementWise_ = ck_tile::element_wise::PassThrough, typename ComputeDataType_ = AsDataType_, bool FixedVectorSize_ = false,
index_t VectorSizeA_ = 1,
index_t VectorSizeB_ = 1>
| bool ck_tile::UniversalGemmPipelineProblem< AsDataType_, BsDataType_, EDataType_, BlockGemmShape_, Traits_, Scheduler_, HasHotLoop_, TailNum_, AElementWise_, BElementWise_, ComputeDataType_, FixedVectorSize_, VectorSizeA_, VectorSizeB_ >::BDataTypeIsTuple = is_detected<is_tuple, BsDataType>::value |
|
staticconstexpr |
◆ BLayoutIsTuple
template<typename AsDataType_, typename BsDataType_, typename EDataType_, typename BlockGemmShape_, typename Traits_,
GemmPipelineScheduler Scheduler_ = GemmPipelineScheduler::Intrawave, bool HasHotLoop_ = true,
TailNumber TailNum_ = TailNumber::Full, typename AElementWise_ = ck_tile::element_wise::PassThrough, typename BElementWise_ = ck_tile::element_wise::PassThrough, typename ComputeDataType_ = AsDataType_, bool FixedVectorSize_ = false,
index_t VectorSizeA_ = 1,
index_t VectorSizeB_ = 1>
| bool ck_tile::UniversalGemmPipelineProblem< AsDataType_, BsDataType_, EDataType_, BlockGemmShape_, Traits_, Scheduler_, HasHotLoop_, TailNum_, AElementWise_, BElementWise_, ComputeDataType_, FixedVectorSize_, VectorSizeA_, VectorSizeB_ >::BLayoutIsTuple = is_detected<is_tuple, BsLayout>::value |
|
staticconstexpr |
◆ ComputeDataTypeIsTuple
template<typename AsDataType_, typename BsDataType_, typename EDataType_, typename BlockGemmShape_, typename Traits_,
GemmPipelineScheduler Scheduler_ = GemmPipelineScheduler::Intrawave, bool HasHotLoop_ = true,
TailNumber TailNum_ = TailNumber::Full, typename AElementWise_ = ck_tile::element_wise::PassThrough, typename BElementWise_ = ck_tile::element_wise::PassThrough, typename ComputeDataType_ = AsDataType_, bool FixedVectorSize_ = false,
index_t VectorSizeA_ = 1,
index_t VectorSizeB_ = 1>
| bool ck_tile::UniversalGemmPipelineProblem< AsDataType_, BsDataType_, EDataType_, BlockGemmShape_, Traits_, Scheduler_, HasHotLoop_, TailNum_, AElementWise_, BElementWise_, ComputeDataType_, FixedVectorSize_, VectorSizeA_, VectorSizeB_ >::ComputeDataTypeIsTuple = is_detected<is_tuple, ComputeDataType_>::value |
|
staticconstexpr |
◆ DoubleSmemBuffer
template<typename AsDataType_, typename BsDataType_, typename EDataType_, typename BlockGemmShape_, typename Traits_,
GemmPipelineScheduler Scheduler_ = GemmPipelineScheduler::Intrawave, bool HasHotLoop_ = true,
TailNumber TailNum_ = TailNumber::Full, typename AElementWise_ = ck_tile::element_wise::PassThrough, typename BElementWise_ = ck_tile::element_wise::PassThrough, typename ComputeDataType_ = AsDataType_, bool FixedVectorSize_ = false,
index_t VectorSizeA_ = 1,
index_t VectorSizeB_ = 1>
| bool ck_tile::UniversalGemmPipelineProblem< AsDataType_, BsDataType_, EDataType_, BlockGemmShape_, Traits_, Scheduler_, HasHotLoop_, TailNum_, AElementWise_, BElementWise_, ComputeDataType_, FixedVectorSize_, VectorSizeA_, VectorSizeB_ >::DoubleSmemBuffer = Traits::DoubleSmemBuffer |
|
staticconstexpr |
◆ FixedVectorSize
template<typename AsDataType_, typename BsDataType_, typename EDataType_, typename BlockGemmShape_, typename Traits_,
GemmPipelineScheduler Scheduler_ = GemmPipelineScheduler::Intrawave, bool HasHotLoop_ = true,
TailNumber TailNum_ = TailNumber::Full, typename AElementWise_ = ck_tile::element_wise::PassThrough, typename BElementWise_ = ck_tile::element_wise::PassThrough, typename ComputeDataType_ = AsDataType_, bool FixedVectorSize_ = false,
index_t VectorSizeA_ = 1,
index_t VectorSizeB_ = 1>
| bool ck_tile::UniversalGemmPipelineProblem< AsDataType_, BsDataType_, EDataType_, BlockGemmShape_, Traits_, Scheduler_, HasHotLoop_, TailNum_, AElementWise_, BElementWise_, ComputeDataType_, FixedVectorSize_, VectorSizeA_, VectorSizeB_ >::FixedVectorSize = FixedVectorSize_ |
|
staticconstexpr |
◆ HasHotLoop
template<typename AsDataType_, typename BsDataType_, typename EDataType_, typename BlockGemmShape_, typename Traits_,
GemmPipelineScheduler Scheduler_ = GemmPipelineScheduler::Intrawave, bool HasHotLoop_ = true,
TailNumber TailNum_ = TailNumber::Full, typename AElementWise_ = ck_tile::element_wise::PassThrough, typename BElementWise_ = ck_tile::element_wise::PassThrough, typename ComputeDataType_ = AsDataType_, bool FixedVectorSize_ = false,
index_t VectorSizeA_ = 1,
index_t VectorSizeB_ = 1>
| auto ck_tile::UniversalGemmPipelineProblem< AsDataType_, BsDataType_, EDataType_, BlockGemmShape_, Traits_, Scheduler_, HasHotLoop_, TailNum_, AElementWise_, BElementWise_, ComputeDataType_, FixedVectorSize_, VectorSizeA_, VectorSizeB_ >::HasHotLoop = HasHotLoop_ |
|
staticconstexpr |
◆ kBlockSize
template<typename AsDataType_, typename BsDataType_, typename EDataType_, typename BlockGemmShape_, typename Traits_,
GemmPipelineScheduler Scheduler_ = GemmPipelineScheduler::Intrawave, bool HasHotLoop_ = true,
TailNumber TailNum_ = TailNumber::Full, typename AElementWise_ = ck_tile::element_wise::PassThrough, typename BElementWise_ = ck_tile::element_wise::PassThrough, typename ComputeDataType_ = AsDataType_, bool FixedVectorSize_ = false,
index_t VectorSizeA_ = 1,
index_t VectorSizeB_ = 1>
| index_t ck_tile::UniversalGemmPipelineProblem< AsDataType_, BsDataType_, EDataType_, BlockGemmShape_, Traits_, Scheduler_, HasHotLoop_, TailNum_, AElementWise_, BElementWise_, ComputeDataType_, FixedVectorSize_, VectorSizeA_, VectorSizeB_ >::kBlockSize = BlockGemmShape::NumWarps * get_warp_size() |
|
staticconstexpr |
◆ kPadK
template<typename AsDataType_, typename BsDataType_, typename EDataType_, typename BlockGemmShape_, typename Traits_,
GemmPipelineScheduler Scheduler_ = GemmPipelineScheduler::Intrawave, bool HasHotLoop_ = true,
TailNumber TailNum_ = TailNumber::Full, typename AElementWise_ = ck_tile::element_wise::PassThrough, typename BElementWise_ = ck_tile::element_wise::PassThrough, typename ComputeDataType_ = AsDataType_, bool FixedVectorSize_ = false,
index_t VectorSizeA_ = 1,
index_t VectorSizeB_ = 1>
| bool ck_tile::UniversalGemmPipelineProblem< AsDataType_, BsDataType_, EDataType_, BlockGemmShape_, Traits_, Scheduler_, HasHotLoop_, TailNum_, AElementWise_, BElementWise_, ComputeDataType_, FixedVectorSize_, VectorSizeA_, VectorSizeB_ >::kPadK = Traits::kPadK |
|
staticconstexpr |
◆ kPadM
template<typename AsDataType_, typename BsDataType_, typename EDataType_, typename BlockGemmShape_, typename Traits_,
GemmPipelineScheduler Scheduler_ = GemmPipelineScheduler::Intrawave, bool HasHotLoop_ = true,
TailNumber TailNum_ = TailNumber::Full, typename AElementWise_ = ck_tile::element_wise::PassThrough, typename BElementWise_ = ck_tile::element_wise::PassThrough, typename ComputeDataType_ = AsDataType_, bool FixedVectorSize_ = false,
index_t VectorSizeA_ = 1,
index_t VectorSizeB_ = 1>
| bool ck_tile::UniversalGemmPipelineProblem< AsDataType_, BsDataType_, EDataType_, BlockGemmShape_, Traits_, Scheduler_, HasHotLoop_, TailNum_, AElementWise_, BElementWise_, ComputeDataType_, FixedVectorSize_, VectorSizeA_, VectorSizeB_ >::kPadM = Traits::kPadM |
|
staticconstexpr |
◆ kPadN
template<typename AsDataType_, typename BsDataType_, typename EDataType_, typename BlockGemmShape_, typename Traits_,
GemmPipelineScheduler Scheduler_ = GemmPipelineScheduler::Intrawave, bool HasHotLoop_ = true,
TailNumber TailNum_ = TailNumber::Full, typename AElementWise_ = ck_tile::element_wise::PassThrough, typename BElementWise_ = ck_tile::element_wise::PassThrough, typename ComputeDataType_ = AsDataType_, bool FixedVectorSize_ = false,
index_t VectorSizeA_ = 1,
index_t VectorSizeB_ = 1>
| bool ck_tile::UniversalGemmPipelineProblem< AsDataType_, BsDataType_, EDataType_, BlockGemmShape_, Traits_, Scheduler_, HasHotLoop_, TailNum_, AElementWise_, BElementWise_, ComputeDataType_, FixedVectorSize_, VectorSizeA_, VectorSizeB_ >::kPadN = Traits::kPadN |
|
staticconstexpr |
◆ NumWaveGroups
template<typename AsDataType_, typename BsDataType_, typename EDataType_, typename BlockGemmShape_, typename Traits_,
GemmPipelineScheduler Scheduler_ = GemmPipelineScheduler::Intrawave, bool HasHotLoop_ = true,
TailNumber TailNum_ = TailNumber::Full, typename AElementWise_ = ck_tile::element_wise::PassThrough, typename BElementWise_ = ck_tile::element_wise::PassThrough, typename ComputeDataType_ = AsDataType_, bool FixedVectorSize_ = false,
index_t VectorSizeA_ = 1,
index_t VectorSizeB_ = 1>
| index_t ck_tile::UniversalGemmPipelineProblem< AsDataType_, BsDataType_, EDataType_, BlockGemmShape_, Traits_, Scheduler_, HasHotLoop_, TailNum_, AElementWise_, BElementWise_, ComputeDataType_, FixedVectorSize_, VectorSizeA_, VectorSizeB_ >::NumWaveGroups = Traits::NumWaveGroups |
|
staticconstexpr |
◆ Preshuffle
template<typename AsDataType_, typename BsDataType_, typename EDataType_, typename BlockGemmShape_, typename Traits_,
GemmPipelineScheduler Scheduler_ = GemmPipelineScheduler::Intrawave, bool HasHotLoop_ = true,
TailNumber TailNum_ = TailNumber::Full, typename AElementWise_ = ck_tile::element_wise::PassThrough, typename BElementWise_ = ck_tile::element_wise::PassThrough, typename ComputeDataType_ = AsDataType_, bool FixedVectorSize_ = false,
index_t VectorSizeA_ = 1,
index_t VectorSizeB_ = 1>
| bool ck_tile::UniversalGemmPipelineProblem< AsDataType_, BsDataType_, EDataType_, BlockGemmShape_, Traits_, Scheduler_, HasHotLoop_, TailNum_, AElementWise_, BElementWise_, ComputeDataType_, FixedVectorSize_, VectorSizeA_, VectorSizeB_ >::Preshuffle = Traits::Preshuffle |
|
staticconstexpr |
◆ Scheduler
template<typename AsDataType_, typename BsDataType_, typename EDataType_, typename BlockGemmShape_, typename Traits_,
GemmPipelineScheduler Scheduler_ = GemmPipelineScheduler::Intrawave, bool HasHotLoop_ = true,
TailNumber TailNum_ = TailNumber::Full, typename AElementWise_ = ck_tile::element_wise::PassThrough, typename BElementWise_ = ck_tile::element_wise::PassThrough, typename ComputeDataType_ = AsDataType_, bool FixedVectorSize_ = false,
index_t VectorSizeA_ = 1,
index_t VectorSizeB_ = 1>
| auto ck_tile::UniversalGemmPipelineProblem< AsDataType_, BsDataType_, EDataType_, BlockGemmShape_, Traits_, Scheduler_, HasHotLoop_, TailNum_, AElementWise_, BElementWise_, ComputeDataType_, FixedVectorSize_, VectorSizeA_, VectorSizeB_ >::Scheduler = Scheduler_ |
|
staticconstexpr |
◆ TailNum
template<typename AsDataType_, typename BsDataType_, typename EDataType_, typename BlockGemmShape_, typename Traits_,
GemmPipelineScheduler Scheduler_ = GemmPipelineScheduler::Intrawave, bool HasHotLoop_ = true,
TailNumber TailNum_ = TailNumber::Full, typename AElementWise_ = ck_tile::element_wise::PassThrough, typename BElementWise_ = ck_tile::element_wise::PassThrough, typename ComputeDataType_ = AsDataType_, bool FixedVectorSize_ = false,
index_t VectorSizeA_ = 1,
index_t VectorSizeB_ = 1>
| auto ck_tile::UniversalGemmPipelineProblem< AsDataType_, BsDataType_, EDataType_, BlockGemmShape_, Traits_, Scheduler_, HasHotLoop_, TailNum_, AElementWise_, BElementWise_, ComputeDataType_, FixedVectorSize_, VectorSizeA_, VectorSizeB_ >::TailNum = TailNum_ |
|
staticconstexpr |
◆ TransposeC
template<typename AsDataType_, typename BsDataType_, typename EDataType_, typename BlockGemmShape_, typename Traits_,
GemmPipelineScheduler Scheduler_ = GemmPipelineScheduler::Intrawave, bool HasHotLoop_ = true,
TailNumber TailNum_ = TailNumber::Full, typename AElementWise_ = ck_tile::element_wise::PassThrough, typename BElementWise_ = ck_tile::element_wise::PassThrough, typename ComputeDataType_ = AsDataType_, bool FixedVectorSize_ = false,
index_t VectorSizeA_ = 1,
index_t VectorSizeB_ = 1>
| bool ck_tile::UniversalGemmPipelineProblem< AsDataType_, BsDataType_, EDataType_, BlockGemmShape_, Traits_, Scheduler_, HasHotLoop_, TailNum_, AElementWise_, BElementWise_, ComputeDataType_, FixedVectorSize_, VectorSizeA_, VectorSizeB_ >::TransposeC = Traits::TransposeC |
|
staticconstexpr |
◆ UseStructuredSparsity
template<typename AsDataType_, typename BsDataType_, typename EDataType_, typename BlockGemmShape_, typename Traits_,
GemmPipelineScheduler Scheduler_ = GemmPipelineScheduler::Intrawave, bool HasHotLoop_ = true,
TailNumber TailNum_ = TailNumber::Full, typename AElementWise_ = ck_tile::element_wise::PassThrough, typename BElementWise_ = ck_tile::element_wise::PassThrough, typename ComputeDataType_ = AsDataType_, bool FixedVectorSize_ = false,
index_t VectorSizeA_ = 1,
index_t VectorSizeB_ = 1>
| bool ck_tile::UniversalGemmPipelineProblem< AsDataType_, BsDataType_, EDataType_, BlockGemmShape_, Traits_, Scheduler_, HasHotLoop_, TailNum_, AElementWise_, BElementWise_, ComputeDataType_, FixedVectorSize_, VectorSizeA_, VectorSizeB_ >::UseStructuredSparsity = Traits::UseStructuredSparsity |
|
staticconstexpr |
◆ VectorLoadSize
template<typename AsDataType_, typename BsDataType_, typename EDataType_, typename BlockGemmShape_, typename Traits_,
GemmPipelineScheduler Scheduler_ = GemmPipelineScheduler::Intrawave, bool HasHotLoop_ = true,
TailNumber TailNum_ = TailNumber::Full, typename AElementWise_ = ck_tile::element_wise::PassThrough, typename BElementWise_ = ck_tile::element_wise::PassThrough, typename ComputeDataType_ = AsDataType_, bool FixedVectorSize_ = false,
index_t VectorSizeA_ = 1,
index_t VectorSizeB_ = 1>
| index_t ck_tile::UniversalGemmPipelineProblem< AsDataType_, BsDataType_, EDataType_, BlockGemmShape_, Traits_, Scheduler_, HasHotLoop_, TailNum_, AElementWise_, BElementWise_, ComputeDataType_, FixedVectorSize_, VectorSizeA_, VectorSizeB_ >::VectorLoadSize = Traits::_VectorSize |
|
staticconstexpr |
◆ VectorSizeA
template<typename AsDataType_, typename BsDataType_, typename EDataType_, typename BlockGemmShape_, typename Traits_,
GemmPipelineScheduler Scheduler_ = GemmPipelineScheduler::Intrawave, bool HasHotLoop_ = true,
TailNumber TailNum_ = TailNumber::Full, typename AElementWise_ = ck_tile::element_wise::PassThrough, typename BElementWise_ = ck_tile::element_wise::PassThrough, typename ComputeDataType_ = AsDataType_, bool FixedVectorSize_ = false,
index_t VectorSizeA_ = 1,
index_t VectorSizeB_ = 1>
| index_t ck_tile::UniversalGemmPipelineProblem< AsDataType_, BsDataType_, EDataType_, BlockGemmShape_, Traits_, Scheduler_, HasHotLoop_, TailNum_, AElementWise_, BElementWise_, ComputeDataType_, FixedVectorSize_, VectorSizeA_, VectorSizeB_ >::VectorSizeA = VectorSizeA_ |
|
staticconstexpr |
◆ VectorSizeB
template<typename AsDataType_, typename BsDataType_, typename EDataType_, typename BlockGemmShape_, typename Traits_,
GemmPipelineScheduler Scheduler_ = GemmPipelineScheduler::Intrawave, bool HasHotLoop_ = true,
TailNumber TailNum_ = TailNumber::Full, typename AElementWise_ = ck_tile::element_wise::PassThrough, typename BElementWise_ = ck_tile::element_wise::PassThrough, typename ComputeDataType_ = AsDataType_, bool FixedVectorSize_ = false,
index_t VectorSizeA_ = 1,
index_t VectorSizeB_ = 1>
| index_t ck_tile::UniversalGemmPipelineProblem< AsDataType_, BsDataType_, EDataType_, BlockGemmShape_, Traits_, Scheduler_, HasHotLoop_, TailNum_, AElementWise_, BElementWise_, ComputeDataType_, FixedVectorSize_, VectorSizeA_, VectorSizeB_ >::VectorSizeB = VectorSizeB_ |
|
staticconstexpr |
The documentation for this struct was generated from the following file: