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

/home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-composable-kernel/checkouts/docs-7.1.0/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/docs-7.1.0/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 
107 #if defined(__gfx950__)
111 #else
115  2>>;
116 #endif
117 
120  4>>;
121 
124  4>>;
125 
126 // fp16 2:4 structured sparsity
129 
132 
133 // bf16
136 
139 
140 #if defined(__gfx950__)
141 template <WGAttrNumAccessEnum AttrNumAccess = WGAttrNumAccessEnum::Single>
144  AttrNumAccess>>;
145 #else
146 template <WGAttrNumAccessEnum AttrNumAccess = WGAttrNumAccessEnum::Single>
149  2,
150  AttrNumAccess>>;
151 #endif
152 
153 #if defined(__gfx950__)
154 template <WGAttrNumAccessEnum AttrNumAccess = WGAttrNumAccessEnum::Single>
157  AttrNumAccess>>;
158 #else
159 template <WGAttrNumAccessEnum AttrNumAccess = WGAttrNumAccessEnum::Single>
162  2,
163  AttrNumAccess>>;
164 #endif
165 
168  1>>;
169 
173  2>>;
174 
178 
182 
183 #if defined(__gfx950__)
184 template <WGAttrNumAccessEnum AttrNumAccess = WGAttrNumAccessEnum::Single>
188  AttrNumAccess>>;
189 #else
190 template <WGAttrNumAccessEnum AttrNumAccess = WGAttrNumAccessEnum::Single>
194  2,
195  AttrNumAccess>>;
196 #endif
197 
198 #if defined(__gfx950__)
199 template <WGAttrNumAccessEnum AttrNumAccess = WGAttrNumAccessEnum::Single>
203  AttrNumAccess>>;
204 #else
205 template <WGAttrNumAccessEnum AttrNumAccess = WGAttrNumAccessEnum::Single>
209  2,
210  AttrNumAccess>>;
211 #endif
212 
213 #if defined(__gfx950__)
217 #else
221  2>>;
222 #endif
223 
226  4>>;
227 
230  4>>;
231 
232 // fp8
233 
236 
239 
242 
245 
248  2>>;
249 
252  2>>;
253 
256 
259 
262  2>>;
263 
266  2>>;
267 
268 template <WGAttrNumAccessEnum AttrNumAccess = WGAttrNumAccessEnum::Single>
271  AttrNumAccess>>;
272 
273 template <WGAttrNumAccessEnum AttrNumAccess = WGAttrNumAccessEnum::Single>
276  AttrNumAccess>>;
277 
278 template <WGAttrNumAccessEnum AttrNumAccess = WGAttrNumAccessEnum::Single>
281  AttrNumAccess>>;
282 
283 template <WGAttrNumAccessEnum AttrNumAccess = WGAttrNumAccessEnum::Single>
286  AttrNumAccess>>;
287 
288 template <WGAttrNumAccessEnum AttrNumAccess = WGAttrNumAccessEnum::Single>
291  AttrNumAccess>>;
292 
293 template <WGAttrNumAccessEnum AttrNumAccess = WGAttrNumAccessEnum::Single>
296  AttrNumAccess>>;
297 
298 template <WGAttrNumAccessEnum AttrNumAccess = WGAttrNumAccessEnum::Single>
301  AttrNumAccess>>;
302 
303 template <WGAttrNumAccessEnum AttrNumAccess = WGAttrNumAccessEnum::Single>
306  AttrNumAccess>>;
307 
311 
315 
319 
323 
324 template <index_t swizzle_factor = 2>
328  2,
329  swizzle_factor>>;
330 
331 // int8
334 
338 
341 
345 
346 } // namespace ck_tile
Definition: cluster_descriptor.hpp:13
Definition: warp_gemm_attribute_mfma.hpp:23
Definition: warp_gemm_attribute_mfma.hpp:844
Definition: warp_gemm_attribute_mfma.hpp:550
Definition: warp_gemm_attribute_mfma.hpp:107
Definition: warp_gemm_attribute_mfma.hpp:454
Definition: warp_gemm_attribute_mfma.hpp:371
Definition: warp_gemm_attribute_mfma_impl.hpp:983
Definition: warp_gemm_attribute_mfma_impl.hpp:1142
Definition: warp_gemm_attribute_mfma_impl.hpp:1614
Definition: warp_gemm_attribute_mfma_impl.hpp:1544
Definition: warp_gemm_attribute_mfma_impl.hpp:537
Definition: warp_gemm_attribute_mfma_impl.hpp:67
Definition: warp_gemm_attribute_mfma_impl.hpp:868
Definition: warp_gemm_attribute_mfma_impl.hpp:448
Definition: warp_gemm_attribute_mfma_impl.hpp:625
Definition: warp_gemm_attribute_mfma_impl.hpp:689
Definition: warp_gemm_attribute_mfma_impl.hpp:193
Definition: warp_gemm_attribute_mfma_impl.hpp:256
Definition: warp_gemm_attribute_mfma_impl.hpp:754
Definition: warp_gemm_attribute_mfma_impl.hpp:130
Definition: warp_gemm_attribute_mfma_impl.hpp:319
Definition: warp_gemm_attribute_mfma_impl.hpp:383
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