/home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-composable-kernel/checkouts/develop/include/ck/tensor_operation/gpu/device/gemm_specialization.hpp Source File

/home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-composable-kernel/checkouts/develop/include/ck/tensor_operation/gpu/device/gemm_specialization.hpp Source File#

Composable Kernel: /home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-composable-kernel/checkouts/develop/include/ck/tensor_operation/gpu/device/gemm_specialization.hpp Source File
gemm_specialization.hpp
Go to the documentation of this file.
1 // SPDX-License-Identifier: MIT
2 // Copyright (c) 2018-2025, Advanced Micro Devices, Inc. All rights reserved.
3 
4 #pragma once
5 
6 namespace ck {
7 namespace tensor_operation {
8 namespace device {
9 
10 enum struct GemmSpecialization
11 {
12  // Gemm
13  Default,
14  MPadding,
15  NPadding,
16  KPadding,
17  MNPadding,
18  MKPadding,
19  NKPadding,
20  MNKPadding,
21  // Gemm + Gemm
22  OPadding,
23  MOPadding,
24  NOPadding,
25  KOPadding,
26  MNOPadding,
27  MKOPadding,
28  NKOPadding,
30 };
31 #if !defined(__HIPCC_RTC__) || !defined(CK_CODE_GEN_RTC)
32 inline std::string getGemmSpecializationString(const GemmSpecialization& s)
33 {
34  switch(s)
35  {
36  case GemmSpecialization::Default: return "Default";
37  case GemmSpecialization::MPadding: return "MPadding";
38  case GemmSpecialization::NPadding: return "NPadding";
39  case GemmSpecialization::KPadding: return "KPadding";
40  case GemmSpecialization::MNPadding: return "MNPadding";
41  case GemmSpecialization::MKPadding: return "MKPadding";
42  case GemmSpecialization::NKPadding: return "NKPadding";
43  case GemmSpecialization::MNKPadding: return "MNKPadding";
44  case GemmSpecialization::OPadding: return "OPadding";
45  case GemmSpecialization::MOPadding: return "MOPadding";
46  case GemmSpecialization::NOPadding: return "NOPadding";
47  case GemmSpecialization::KOPadding: return "KOPadding";
48  case GemmSpecialization::MNOPadding: return "MNOPadding";
49  case GemmSpecialization::MKOPadding: return "MKOPadding";
50  case GemmSpecialization::NKOPadding: return "NKOPadding";
51  case GemmSpecialization::MNKOPadding: return "MNKOPadding";
52  default: return "Unrecognized specialization!";
53  }
54 }
55 #endif
56 
57 } // namespace device
58 } // namespace tensor_operation
59 } // namespace ck
std::string getGemmSpecializationString(const GemmSpecialization &s)
Definition: gemm_specialization.hpp:32
GemmSpecialization
Definition: gemm_specialization.hpp:11
Definition: ck.hpp:266