Commit 0eff71a4 authored by Adam Osewski's avatar Adam Osewski
Browse files

Helper structures for padding decision.

parent 1faeddae
......@@ -125,22 +125,40 @@ struct GemmGemmPadder
OPerTileType OPerTile_;
};
// M/N/KPerTileType could be index_t or Number<>
template <GemmSpecialization GemmSpec,
typename MPerTileType,
typename NPerTileType,
typename KPerTileType>
struct GemmPadder
template <GemmSpecialization GemmSpec>
struct GemmPadM
{
static constexpr bool PadM =
(GemmSpec == GemmSpecialization::MPadding || GemmSpec == GemmSpecialization::MNPadding ||
GemmSpec == GemmSpecialization::MKPadding || GemmSpec == GemmSpecialization::MNKPadding);
};
template <GemmSpecialization GemmSpec>
struct GemmPadN
{
static constexpr bool PadN =
(GemmSpec == GemmSpecialization::NPadding || GemmSpec == GemmSpecialization::MNPadding ||
GemmSpec == GemmSpecialization::NKPadding || GemmSpec == GemmSpecialization::MNKPadding);
};
template <GemmSpecialization GemmSpec>
struct GemmPadK
{
static constexpr bool PadK =
(GemmSpec == GemmSpecialization::KPadding || GemmSpec == GemmSpecialization::MKPadding ||
GemmSpec == GemmSpecialization::NKPadding || GemmSpec == GemmSpecialization::MNKPadding);
};
// M/N/KPerTileType could be index_t or Number<>
template <GemmSpecialization GemmSpec,
typename MPerTileType,
typename NPerTileType,
typename KPerTileType>
struct GemmPadder
{
static constexpr bool PadM = GemmPadM<GemmSpec>::PadM;
static constexpr bool PadN = GemmPadN<GemmSpec>::PadN;
static constexpr bool PadK = GemmPadK<GemmSpec>::PadK;
template <typename ADesc_MRaw_KRaw>
__host__ __device__ constexpr auto
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment