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

/home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-composable-kernel/checkouts/3643/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/3643/include/ck_tile/ops/gemm/warp/warp_gemm.hpp Source File
warp_gemm.hpp
Go to the documentation of this file.
1 // Copyright (c) Advanced Micro Devices, Inc., or its affiliates.
2 // SPDX-License-Identifier: MIT
3 
4 #pragma once
5 
6 #include "ck_tile/core.hpp"
9 
12 
13 namespace ck_tile {
14 
15 // fp32
16 
19 
20 template <WGAttrNumAccessEnum AttrNumAccess = WGAttrNumAccessEnum::Single>
23  4,
24  AttrNumAccess>>;
25 
26 template <WGAttrNumAccessEnum AttrNumAccess = WGAttrNumAccessEnum::Single>
29  2,
30  AttrNumAccess>>;
31 
32 template <WGAttrNumAccessEnum AttrNumAccess = WGAttrNumAccessEnum::Single>
35  4,
36  AttrNumAccess>>;
37 
38 template <WGAttrNumAccessEnum AttrNumAccess = WGAttrNumAccessEnum::Single>
42  4,
43  AttrNumAccess>>;
44 
45 // fp16
46 
49 
52 
53 #if defined(__gfx950__)
54 template <WGAttrNumAccessEnum AttrNumAccess = WGAttrNumAccessEnum::Single>
57  AttrNumAccess>>;
58 #else
59 template <WGAttrNumAccessEnum AttrNumAccess = WGAttrNumAccessEnum::Single>
62  2,
63  AttrNumAccess>>;
64 #endif
65 
66 #if defined(__gfx950__)
67 template <WGAttrNumAccessEnum AttrNumAccess = WGAttrNumAccessEnum::Single>
70  AttrNumAccess>>;
71 #else
72 template <WGAttrNumAccessEnum AttrNumAccess = WGAttrNumAccessEnum::Single>
75  2,
76  AttrNumAccess>>;
77 #endif
78 
81  1>>;
82 
85  2>>;
86 
90 
94 
95 #if defined(__gfx950__)
96 template <WGAttrNumAccessEnum AttrNumAccess = WGAttrNumAccessEnum::Single>
100  AttrNumAccess>>;
101 #else
102 template <WGAttrNumAccessEnum AttrNumAccess = WGAttrNumAccessEnum::Single>
106  2,
107  AttrNumAccess>>;
108 #endif
109 
110 #if defined(__gfx950__)
111 template <WGAttrNumAccessEnum AttrNumAccess = WGAttrNumAccessEnum::Single>
115  AttrNumAccess>>;
116 #else
117 template <WGAttrNumAccessEnum AttrNumAccess = WGAttrNumAccessEnum::Single>
121  2,
122  AttrNumAccess>>;
123 #endif
124 
125 #if defined(__gfx950__)
126 using WarpGemmMfmaF16F16F32M16N16K32SwizzleBTransposedCDistribution =
129  1>>;
130 
131 using WarpGemmMfmaBf16Bf16F32M16N16K32SwizzleBTransposedCDistribution =
134  1>>;
135 #endif
136 
140 
141 #if defined(__gfx950__)
145 #else
149  2>>;
150 #endif
151 
154  4>>;
155 
158  4>>;
159 
160 // fp16 2:4 structured sparsity
163 
166 
167 // bf16
170 
173 
174 #if defined(__gfx950__)
175 template <WGAttrNumAccessEnum AttrNumAccess = WGAttrNumAccessEnum::Single>
178  AttrNumAccess>>;
179 #else
180 template <WGAttrNumAccessEnum AttrNumAccess = WGAttrNumAccessEnum::Single>
183  2,
184  AttrNumAccess>>;
185 #endif
186 
187 #if defined(__gfx950__)
188 template <WGAttrNumAccessEnum AttrNumAccess = WGAttrNumAccessEnum::Single>
191  AttrNumAccess>>;
192 #else
193 template <WGAttrNumAccessEnum AttrNumAccess = WGAttrNumAccessEnum::Single>
196  2,
197  AttrNumAccess>>;
198 #endif
199 
202  1>>;
203 
207  2>>;
208 
212 
216 
217 #if defined(__gfx950__)
218 template <WGAttrNumAccessEnum AttrNumAccess = WGAttrNumAccessEnum::Single>
222  AttrNumAccess>>;
223 #else
224 template <WGAttrNumAccessEnum AttrNumAccess = WGAttrNumAccessEnum::Single>
228  2,
229  AttrNumAccess>>;
230 #endif
231 
232 #if defined(__gfx950__)
233 template <WGAttrNumAccessEnum AttrNumAccess = WGAttrNumAccessEnum::Single>
237  AttrNumAccess>>;
238 #else
239 template <WGAttrNumAccessEnum AttrNumAccess = WGAttrNumAccessEnum::Single>
243  2,
244  AttrNumAccess>>;
245 #endif
246 
250 
251 #if defined(__gfx950__)
255 #else
259  2>>;
260 #endif
261 
264  4>>;
265 
268  4>>;
269 
270 // fp8
271 
274 
277 
280 
283 
286 
289  2>>;
290 
293  2>>;
294 
297  2>>;
298 
301 
305 
308 
312 
315  2>>;
316 
319  2>>;
320 
324  2>>;
325 
329  2>>;
330 
331 template <typename A, typename B, WGAttrNumAccessEnum AttrNumAccess = WGAttrNumAccessEnum::Single>
334 
335 template <WGAttrNumAccessEnum AttrNumAccess = WGAttrNumAccessEnum::Single>
339  AttrNumAccess>>;
340 
341 template <WGAttrNumAccessEnum AttrNumAccess = WGAttrNumAccessEnum::Single>
345  AttrNumAccess>>;
346 
347 template <WGAttrNumAccessEnum AttrNumAccess = WGAttrNumAccessEnum::Single>
351  AttrNumAccess>>;
352 
353 template <WGAttrNumAccessEnum AttrNumAccess = WGAttrNumAccessEnum::Single>
357  AttrNumAccess>>;
358 
359 template <WGAttrNumAccessEnum AttrNumAccess = WGAttrNumAccessEnum::Single>
362  AttrNumAccess>>;
363 
364 template <WGAttrNumAccessEnum AttrNumAccess = WGAttrNumAccessEnum::Single>
367  AttrNumAccess>>;
368 
369 template <WGAttrNumAccessEnum AttrNumAccess = WGAttrNumAccessEnum::Single>
372  AttrNumAccess>>;
373 
374 template <WGAttrNumAccessEnum AttrNumAccess = WGAttrNumAccessEnum::Single>
377  AttrNumAccess>>;
378 
382 
386 
390 
394 
395 template <index_t swizzle_factor = 2>
399  2,
400  swizzle_factor>>;
401 
402 // int8
405 
409 
412 
416 
417 } // namespace ck_tile
Definition: cluster_descriptor.hpp:13
Definition: warp_gemm_attribute_mfma.hpp:23
Definition: warp_gemm_attribute_mfma_impl.hpp:1531
Definition: warp_gemm_attribute_mfma_impl.hpp:1164
Definition: warp_gemm_attribute_mfma_impl.hpp:1323
Definition: warp_gemm_attribute_mfma_impl.hpp:1808
Definition: warp_gemm_attribute_mfma_impl.hpp:1738
Definition: warp_gemm_attribute_mfma_impl.hpp:666
Definition: warp_gemm_attribute_mfma_impl.hpp:196
Definition: warp_gemm_attribute_mfma_impl.hpp:1049
Definition: warp_gemm_attribute_mfma_impl.hpp:577
Definition: warp_gemm_attribute_mfma_impl.hpp:754
Definition: warp_gemm_attribute_mfma_impl.hpp:844
Definition: warp_gemm_attribute_mfma_impl.hpp:322
Definition: warp_gemm_attribute_mfma_impl.hpp:385
Definition: warp_gemm_attribute_mfma_impl.hpp:935
Definition: warp_gemm_attribute_mfma_impl.hpp:259
Definition: warp_gemm_attribute_mfma_impl.hpp:448
Definition: warp_gemm_attribute_mfma_impl.hpp:512
Definition: warp_gemm_attribute_mfma_impl.hpp:67
Definition: warp_gemm_attribute_mfma_impl.hpp:131
Definition: warp_gemm_attribute_mfma.hpp:708
Definition: warp_gemm_attribute_mfma.hpp:461
Definition: warp_gemm_attribute_mfma.hpp:126
Definition: warp_gemm_attribute_mfma.hpp:365
Definition: warp_gemm_attribute_mfma.hpp:306
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