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

/home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-composable-kernel/checkouts/docs-6.4.3/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/docs-6.4.3/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 
32 #ifndef CK_CODE_GEN_RTC
33 inline std::string getGemmSpecializationString(const GemmSpecialization& s)
34 {
35  switch(s)
36  {
37  case GemmSpecialization::Default: return "Default";
38  case GemmSpecialization::MPadding: return "MPadding";
39  case GemmSpecialization::NPadding: return "NPadding";
40  case GemmSpecialization::KPadding: return "KPadding";
41  case GemmSpecialization::MNPadding: return "MNPadding";
42  case GemmSpecialization::MKPadding: return "MKPadding";
43  case GemmSpecialization::NKPadding: return "NKPadding";
44  case GemmSpecialization::MNKPadding: return "MNKPadding";
45  case GemmSpecialization::OPadding: return "OPadding";
46  case GemmSpecialization::MOPadding: return "MOPadding";
47  case GemmSpecialization::NOPadding: return "NOPadding";
48  case GemmSpecialization::KOPadding: return "KOPadding";
49  case GemmSpecialization::MNOPadding: return "MNOPadding";
50  case GemmSpecialization::MKOPadding: return "MKOPadding";
51  case GemmSpecialization::NKOPadding: return "NKOPadding";
52  case GemmSpecialization::MNKOPadding: return "MNKOPadding";
53  default: return "Unrecognized specialization!";
54  }
55 }
56 #endif
57 
58 } // namespace device
59 } // namespace tensor_operation
60 } // namespace ck
std::string getGemmSpecializationString(const GemmSpecialization &s)
Definition: gemm_specialization.hpp:33
GemmSpecialization
Definition: gemm_specialization.hpp:11
Definition: ck.hpp:264