/home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-composable-kernel/checkouts/develop/include/ck_tile/ops/gemm/warp/warp_gemm.hpp Source File

/home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-composable-kernel/checkouts/develop/include/ck_tile/ops/gemm/warp/warp_gemm.hpp Source File#

Composable Kernel: /home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-composable-kernel/checkouts/develop/include/ck_tile/ops/gemm/warp/warp_gemm.hpp Source File
warp_gemm.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 #include "ck_tile/core.hpp"
9 
12 
13 namespace ck_tile {
14 
15 // fp16
16 
19 
22 
23 #if defined(__gfx950__)
24 template <WGAttrNumAccessEnum AttrNumAccess = WGAttrNumAccessEnum::Single>
27  AttrNumAccess>>;
28 #else
29 template <WGAttrNumAccessEnum AttrNumAccess = WGAttrNumAccessEnum::Single>
32  2,
33  AttrNumAccess>>;
34 #endif
35 
36 #if defined(__gfx950__)
37 template <WGAttrNumAccessEnum AttrNumAccess = WGAttrNumAccessEnum::Single>
40  AttrNumAccess>>;
41 #else
42 template <WGAttrNumAccessEnum AttrNumAccess = WGAttrNumAccessEnum::Single>
45  2,
46  AttrNumAccess>>;
47 #endif
48 
51  1>>;
52 
55  2>>;
56 
60 
64 
65 #if defined(__gfx950__)
66 template <WGAttrNumAccessEnum AttrNumAccess = WGAttrNumAccessEnum::Single>
70  AttrNumAccess>>;
71 #else
72 template <WGAttrNumAccessEnum AttrNumAccess = WGAttrNumAccessEnum::Single>
76  2,
77  AttrNumAccess>>;
78 #endif
79 
80 #if defined(__gfx950__)
81 template <WGAttrNumAccessEnum AttrNumAccess = WGAttrNumAccessEnum::Single>
85  AttrNumAccess>>;
86 #else
87 template <WGAttrNumAccessEnum AttrNumAccess = WGAttrNumAccessEnum::Single>
91  2,
92  AttrNumAccess>>;
93 #endif
94 
95 #if defined(__gfx950__)
96 using WarpGemmMfmaF16F16F32M16N16K32SwizzleBTransposedCDistribution =
99  1>>;
100 
101 using WarpGemmMfmaBf16Bf16F32M16N16K32SwizzleBTransposedCDistribution =
104  1>>;
105 #endif
106 
110 
111 #if defined(__gfx950__)
115 #else
119  2>>;
120 #endif
121 
124  4>>;
125 
128  4>>;
129 
130 // fp16 2:4 structured sparsity
133 
136 
137 // bf16
140 
143 
144 #if defined(__gfx950__)
145 template <WGAttrNumAccessEnum AttrNumAccess = WGAttrNumAccessEnum::Single>
148  AttrNumAccess>>;
149 #else
150 template <WGAttrNumAccessEnum AttrNumAccess = WGAttrNumAccessEnum::Single>
153  2,
154  AttrNumAccess>>;
155 #endif
156 
157 #if defined(__gfx950__)
158 template <WGAttrNumAccessEnum AttrNumAccess = WGAttrNumAccessEnum::Single>
161  AttrNumAccess>>;
162 #else
163 template <WGAttrNumAccessEnum AttrNumAccess = WGAttrNumAccessEnum::Single>
166  2,
167  AttrNumAccess>>;
168 #endif
169 
172  1>>;
173 
177  2>>;
178 
182 
186 
187 #if defined(__gfx950__)
188 template <WGAttrNumAccessEnum AttrNumAccess = WGAttrNumAccessEnum::Single>
192  AttrNumAccess>>;
193 #else
194 template <WGAttrNumAccessEnum AttrNumAccess = WGAttrNumAccessEnum::Single>
198  2,
199  AttrNumAccess>>;
200 #endif
201 
202 #if defined(__gfx950__)
203 template <WGAttrNumAccessEnum AttrNumAccess = WGAttrNumAccessEnum::Single>
207  AttrNumAccess>>;
208 #else
209 template <WGAttrNumAccessEnum AttrNumAccess = WGAttrNumAccessEnum::Single>
213  2,
214  AttrNumAccess>>;
215 #endif
216 
220 
221 #if defined(__gfx950__)
225 #else
229  2>>;
230 #endif
231 
234  4>>;
235 
238  4>>;
239 
240 // fp8
241 
244 
247 
250 
253 
256  2>>;
257 
260  2>>;
261 
264 
268 
271 
275 
278  2>>;
279 
282  2>>;
283 
284 template <WGAttrNumAccessEnum AttrNumAccess = WGAttrNumAccessEnum::Single>
287  AttrNumAccess>>;
288 
289 template <WGAttrNumAccessEnum AttrNumAccess = WGAttrNumAccessEnum::Single>
292  AttrNumAccess>>;
293 
294 template <WGAttrNumAccessEnum AttrNumAccess = WGAttrNumAccessEnum::Single>
297  AttrNumAccess>>;
298 
299 template <WGAttrNumAccessEnum AttrNumAccess = WGAttrNumAccessEnum::Single>
302  AttrNumAccess>>;
303 
304 template <WGAttrNumAccessEnum AttrNumAccess = WGAttrNumAccessEnum::Single>
308  AttrNumAccess>>;
309 
310 template <WGAttrNumAccessEnum AttrNumAccess = WGAttrNumAccessEnum::Single>
314  AttrNumAccess>>;
315 
316 template <WGAttrNumAccessEnum AttrNumAccess = WGAttrNumAccessEnum::Single>
320  AttrNumAccess>>;
321 
322 template <WGAttrNumAccessEnum AttrNumAccess = WGAttrNumAccessEnum::Single>
326  AttrNumAccess>>;
327 
328 template <WGAttrNumAccessEnum AttrNumAccess = WGAttrNumAccessEnum::Single>
331  AttrNumAccess>>;
332 
333 template <WGAttrNumAccessEnum AttrNumAccess = WGAttrNumAccessEnum::Single>
336  AttrNumAccess>>;
337 
338 template <WGAttrNumAccessEnum AttrNumAccess = WGAttrNumAccessEnum::Single>
341  AttrNumAccess>>;
342 
343 template <WGAttrNumAccessEnum AttrNumAccess = WGAttrNumAccessEnum::Single>
346  AttrNumAccess>>;
347 
351 
355 
359 
363 
364 template <index_t swizzle_factor = 2>
368  2,
369  swizzle_factor>>;
370 
371 // int8
374 
378 
381 
385 
386 } // namespace ck_tile
Definition: cluster_descriptor.hpp:13
Definition: warp_gemm_attribute_mfma.hpp:23
Definition: warp_gemm_attribute_mfma_impl.hpp:1399
Definition: warp_gemm_attribute_mfma_impl.hpp:1035
Definition: warp_gemm_attribute_mfma_impl.hpp:1194
Definition: warp_gemm_attribute_mfma_impl.hpp:1666
Definition: warp_gemm_attribute_mfma_impl.hpp:1596
Definition: warp_gemm_attribute_mfma_impl.hpp:537
Definition: warp_gemm_attribute_mfma_impl.hpp:67
Definition: warp_gemm_attribute_mfma_impl.hpp:920
Definition: warp_gemm_attribute_mfma_impl.hpp:448
Definition: warp_gemm_attribute_mfma_impl.hpp:625
Definition: warp_gemm_attribute_mfma_impl.hpp:715
Definition: warp_gemm_attribute_mfma_impl.hpp:193
Definition: warp_gemm_attribute_mfma_impl.hpp:256
Definition: warp_gemm_attribute_mfma_impl.hpp:806
Definition: warp_gemm_attribute_mfma_impl.hpp:130
Definition: warp_gemm_attribute_mfma_impl.hpp:319
Definition: warp_gemm_attribute_mfma_impl.hpp:383
Definition: warp_gemm_attribute_mfma.hpp:845
Definition: warp_gemm_attribute_mfma.hpp:551
Definition: warp_gemm_attribute_mfma.hpp:107
Definition: warp_gemm_attribute_mfma.hpp:455
Definition: warp_gemm_attribute_mfma.hpp:371
Class describing structured sparsity mfma instructions.
Definition: warp_gemm_attribute_smfmac.hpp:26
Definition: warp_gemm_attribute_smfmac_impl.hpp:65
Definition: warp_gemm_attribute_smfmac_impl.hpp:14
Definition: warp_gemm_impl.hpp:11
Definition: warp_gemm_smfmac_impl.hpp:11