blob: e85ca934cf1e00363a77633a6422d4366b8acc46 [file] [log] [blame]
Marat Dukhan595e1702020-07-31 10:12:52 -07001# Copyright 2020 Google LLC
2#
3# This source code is licensed under the BSD-style license found in the
4# LICENSE file in the root directory of this source tree.
Frank Barchard2f061502021-03-11 02:18:15 -08005- name: xnn_qs8_gemm_minmax_ukernel_2x8c8__aarch64_neon_mlal_padal
6 k-block: 16
Frank Barchard1dc9fef2021-03-10 23:50:19 -08007- name: xnn_qs8_gemm_minmax_ukernel_2x8c8__aarch64_neon_mull_padal
8 k-block: 8
Marat Dukhan40bbafe2020-08-04 02:04:22 -07009- name: xnn_qs8_gemm_minmax_ukernel_1x8__neon_mlal_lane
10 k-block: 8
Frank Barchard146e9992020-10-13 13:38:54 -070011- name: xnn_qs8_gemm_minmax_ukernel_2x8__neon_mlal_lane
Marat Dukhan40bbafe2020-08-04 02:04:22 -070012 k-block: 8
Frank Barchardcfbc8492021-01-12 15:43:19 -080013- name: xnn_qs8_gemm_minmax_ukernel_4x8__neon_mlal_lane
14 k-block: 8
Frank Barchardec0bf142021-01-15 10:14:05 -080015- name: xnn_qs8_gemm_minmax_ukernel_3x8__neon_mlal_lane
16 k-block: 8
Marat Dukhan40bbafe2020-08-04 02:04:22 -070017- name: xnn_qs8_gemm_minmax_ukernel_1x16__neon_mlal_lane
18 k-block: 8
19- name: xnn_qs8_gemm_minmax_ukernel_2x16__neon_mlal_lane
20 k-block: 8
Frank Barchardec0bf142021-01-15 10:14:05 -080021- name: xnn_qs8_gemm_minmax_ukernel_3x16__neon_mlal_lane
22 k-block: 8
Frank Barchardcfbc8492021-01-12 15:43:19 -080023- name: xnn_qs8_gemm_minmax_ukernel_4x16__neon_mlal_lane
24 k-block: 8
Frank Barchard4ecae2e2021-01-14 15:52:45 -080025- name: xnn_qs8_gemm_minmax_ukernel_1x8__neon_mull_addw_dup
26 k-block: 8
27- name: xnn_qs8_gemm_minmax_ukernel_2x8__neon_mull_addw_dup
28 k-block: 8
Frank Barchardec0bf142021-01-15 10:14:05 -080029- name: xnn_qs8_gemm_minmax_ukernel_3x8__neon_mull_addw_dup
30 k-block: 8
Frank Barchard4ecae2e2021-01-14 15:52:45 -080031- name: xnn_qs8_gemm_minmax_ukernel_4x8__neon_mull_addw_dup
32 k-block: 8
33- name: xnn_qs8_gemm_minmax_ukernel_1x16__neon_mull_addw_dup
34 k-block: 8
35- name: xnn_qs8_gemm_minmax_ukernel_2x16__neon_mull_addw_dup
36 k-block: 8
Frank Barchardec0bf142021-01-15 10:14:05 -080037- name: xnn_qs8_gemm_minmax_ukernel_3x16__neon_mull_addw_dup
38 k-block: 8
Frank Barchard4ecae2e2021-01-14 15:52:45 -080039- name: xnn_qs8_gemm_minmax_ukernel_4x16__neon_mull_addw_dup
40 k-block: 8
Frank Barchard2302ffd2021-01-22 14:08:02 -080041- name: xnn_qs8_gemm_minmax_ukernel_1x8c2__neon_mull_padal_dup
42 k-block: 8
43- name: xnn_qs8_gemm_minmax_ukernel_2x8c2__neon_mull_padal_dup
44 k-block: 8
45- name: xnn_qs8_gemm_minmax_ukernel_3x8c2__neon_mull_padal_dup
46 k-block: 8
47- name: xnn_qs8_gemm_minmax_ukernel_4x8c2__neon_mull_padal_dup
48 k-block: 8
49- name: xnn_qs8_gemm_minmax_ukernel_1x16c2__neon_mull_padal_dup
50 k-block: 8
51- name: xnn_qs8_gemm_minmax_ukernel_2x16c2__neon_mull_padal_dup
52 k-block: 8
53- name: xnn_qs8_gemm_minmax_ukernel_3x16c2__neon_mull_padal_dup
54 k-block: 8
55- name: xnn_qs8_gemm_minmax_ukernel_4x16c2__neon_mull_padal_dup
56 k-block: 8
Frank Barchard8247e212021-02-03 18:12:33 -080057- name: xnn_qs8_gemm_minmax_ukernel_1x8c2__neon_mlal_padal_dup
58 k-block: 16
59- name: xnn_qs8_gemm_minmax_ukernel_2x8c2__neon_mlal_padal_dup
60 k-block: 16
61- name: xnn_qs8_gemm_minmax_ukernel_3x8c2__neon_mlal_padal_dup
62 k-block: 16
63- name: xnn_qs8_gemm_minmax_ukernel_4x8c2__neon_mlal_padal_dup
64 k-block: 16
65- name: xnn_qs8_gemm_minmax_ukernel_1x16c2__neon_mlal_padal_dup
66 k-block: 16
67- name: xnn_qs8_gemm_minmax_ukernel_2x16c2__neon_mlal_padal_dup
68 k-block: 16
69- name: xnn_qs8_gemm_minmax_ukernel_3x16c2__neon_mlal_padal_dup
70 k-block: 16
71- name: xnn_qs8_gemm_minmax_ukernel_4x16c2__neon_mlal_padal_dup
72 k-block: 16
Frank Barchard58990122021-01-29 16:09:56 -080073- name: xnn_qs8_gemm_minmax_ukernel_1x8c8__neon_mull_padal
Frank Barchardda78da12021-03-02 14:28:00 -080074 k-block: 8
Frank Barchard58990122021-01-29 16:09:56 -080075- name: xnn_qs8_gemm_minmax_ukernel_2x8c8__neon_mull_padal
Frank Barchardda78da12021-03-02 14:28:00 -080076 k-block: 8
Frank Barchard58990122021-01-29 16:09:56 -080077- name: xnn_qs8_gemm_minmax_ukernel_3x8c8__neon_mull_padal
Frank Barchardda78da12021-03-02 14:28:00 -080078 k-block: 8
Frank Barchard58990122021-01-29 16:09:56 -080079- name: xnn_qs8_gemm_minmax_ukernel_4x8c8__neon_mull_padal
Frank Barchardda78da12021-03-02 14:28:00 -080080 k-block: 8
Frank Barchard58990122021-01-29 16:09:56 -080081- name: xnn_qs8_gemm_minmax_ukernel_1x16c8__neon_mull_padal
Frank Barchardda78da12021-03-02 14:28:00 -080082 k-block: 8
Frank Barchard58990122021-01-29 16:09:56 -080083- name: xnn_qs8_gemm_minmax_ukernel_2x16c8__neon_mull_padal
Frank Barchardda78da12021-03-02 14:28:00 -080084 k-block: 8
Frank Barchard58990122021-01-29 16:09:56 -080085- name: xnn_qs8_gemm_minmax_ukernel_3x16c8__neon_mull_padal
Frank Barchardda78da12021-03-02 14:28:00 -080086 k-block: 8
Frank Barchard58990122021-01-29 16:09:56 -080087- name: xnn_qs8_gemm_minmax_ukernel_4x16c8__neon_mull_padal
Frank Barchardda78da12021-03-02 14:28:00 -080088 k-block: 8
89- name: xnn_qs8_gemm_minmax_ukernel_1x8c8__neon_mlal_padal
90 k-block: 16
91- name: xnn_qs8_gemm_minmax_ukernel_2x8c8__neon_mlal_padal
92 k-block: 16
93- name: xnn_qs8_gemm_minmax_ukernel_3x8c8__neon_mlal_padal
94 k-block: 16
95- name: xnn_qs8_gemm_minmax_ukernel_4x8c8__neon_mlal_padal
96 k-block: 16
97- name: xnn_qs8_gemm_minmax_ukernel_1x16c8__neon_mlal_padal
98 k-block: 16
99- name: xnn_qs8_gemm_minmax_ukernel_2x16c8__neon_mlal_padal
100 k-block: 16
101- name: xnn_qs8_gemm_minmax_ukernel_3x16c8__neon_mlal_padal
102 k-block: 16
103- name: xnn_qs8_gemm_minmax_ukernel_4x16c8__neon_mlal_padal
Frank Barchardc8532ae2021-02-10 20:01:39 -0800104 k-block: 16
Frank Barchard71c4d1a2021-02-19 10:07:23 -0800105- name: xnn_qs8_gemm_minmax_ukernel_1x8c16__neon_mlal_padal
106 k-block: 16
107- name: xnn_qs8_gemm_minmax_ukernel_2x8c16__neon_mlal_padal
108 k-block: 16
109- name: xnn_qs8_gemm_minmax_ukernel_3x8c16__neon_mlal_padal
110 k-block: 16
111- name: xnn_qs8_gemm_minmax_ukernel_4x8c16__neon_mlal_padal
112 k-block: 16
113- name: xnn_qs8_gemm_minmax_ukernel_1x16c16__neon_mlal_padal
114 k-block: 16
115- name: xnn_qs8_gemm_minmax_ukernel_2x16c16__neon_mlal_padal
116 k-block: 16
117- name: xnn_qs8_gemm_minmax_ukernel_3x16c16__neon_mlal_padal
118 k-block: 16
119- name: xnn_qs8_gemm_minmax_ukernel_4x16c16__neon_mlal_padal
120 k-block: 16
Marat Dukhand4c83032020-09-09 23:20:12 -0700121- name: xnn_qs8_gemm_minmax_ukernel_1x8c4__neondot
122 k-block: 8
Frank Barcharda48848f2020-09-24 00:59:24 -0700123- name: xnn_qs8_gemm_minmax_ukernel_4x8c4__neondot
124 k-block: 8
125- name: xnn_qs8_gemm_minmax_ukernel_6x8c4__neondot
126 k-block: 8
Marat Dukhand4c83032020-09-09 23:20:12 -0700127- name: xnn_qs8_gemm_minmax_ukernel_8x8c4__neondot
128 k-block: 8
Marat Dukhand4c83032020-09-09 23:20:12 -0700129- name: xnn_qs8_gemm_minmax_ukernel_1x16c4__neondot
130 k-block: 8
131- name: xnn_qs8_gemm_minmax_ukernel_4x16c4__neondot
132 k-block: 8
Frank Barchard2fa17452020-09-22 09:51:46 -0700133- name: xnn_qs8_gemm_minmax_ukernel_6x16c4__neondot
134 k-block: 8
Frank Barcharda48848f2020-09-24 00:59:24 -0700135- name: xnn_qs8_gemm_minmax_ukernel_8x16c4__neondot
136 k-block: 8
Frank Barchard5655cb72021-03-09 20:57:14 -0800137- name: xnn_qs8_gemm_minmax_ukernel_2x8c16__aarch64_neon_mlal_padal
138 k-block: 16
Frank Barchard4a4be4e2021-03-01 15:00:28 -0800139- name: xnn_qs8_gemm_minmax_ukernel_1x16c4__aarch64_neondot_ld32
140 k-block: 4
Frank Barchard0797eb12020-10-10 18:23:05 -0700141- name: xnn_qs8_gemm_minmax_ukernel_1x16c4__aarch64_neondot_ld64
Frank Barchardf1fd89e2020-10-06 23:27:11 -0700142 k-block: 8
Frank Barcharda5e242c2021-02-25 18:33:21 -0800143- name: xnn_qs8_gemm_minmax_ukernel_4x16c4__aarch64_neondot_ld32
144 k-block: 4
Frank Barchard4a4be4e2021-03-01 15:00:28 -0800145- name: xnn_qs8_gemm_minmax_ukernel_4x16c4__aarch64_neondot_ld64
146 k-block: 8
Frank Barchardf2742c42020-10-12 21:16:46 -0700147- name: xnn_qs8_gemm_minmax_ukernel_4x16c4__aarch64_neondot_cortex_a55
148 k-block: 16
Marat Dukhan14d3ce82020-07-31 16:19:15 -0700149- name: xnn_qs8_gemm_minmax_ukernel_1x4c2__sse2_ld64
Marat Dukhan595e1702020-07-31 10:12:52 -0700150 k-block: 8
Marat Dukhan14d3ce82020-07-31 16:19:15 -0700151- name: xnn_qs8_gemm_minmax_ukernel_4x4c2__sse2_ld64
Marat Dukhan595e1702020-07-31 10:12:52 -0700152 k-block: 8
Marat Dukhan14d3ce82020-07-31 16:19:15 -0700153- name: xnn_qs8_gemm_minmax_ukernel_1x4c2__ssse3_ld64
Marat Dukhan595e1702020-07-31 10:12:52 -0700154 k-block: 8
Marat Dukhan14d3ce82020-07-31 16:19:15 -0700155- name: xnn_qs8_gemm_minmax_ukernel_4x4c2__ssse3_ld64
Marat Dukhan595e1702020-07-31 10:12:52 -0700156 k-block: 8
Marat Dukhan14d3ce82020-07-31 16:19:15 -0700157- name: xnn_qs8_gemm_minmax_ukernel_1x4c2__sse41_ld64
Marat Dukhan595e1702020-07-31 10:12:52 -0700158 k-block: 8
Marat Dukhan14d3ce82020-07-31 16:19:15 -0700159- name: xnn_qs8_gemm_minmax_ukernel_4x4c2__sse41_ld64
Marat Dukhan595e1702020-07-31 10:12:52 -0700160 k-block: 8
Marat Dukhan1566fee2020-08-02 21:55:41 -0700161- name: xnn_qs8_gemm_minmax_ukernel_1x4c2__xop_ld64
162 k-block: 8
163- name: xnn_qs8_gemm_minmax_ukernel_4x4c2__xop_ld64
164 k-block: 8
Marat Dukhandee732b2020-07-31 17:32:04 -0700165- name: xnn_qs8_gemm_minmax_ukernel_1x4c2__sse2_ld128
166 k-block: 8
167- name: xnn_qs8_gemm_minmax_ukernel_4x4c2__sse2_ld128
168 k-block: 8
169- name: xnn_qs8_gemm_minmax_ukernel_1x4c2__ssse3_ld128
170 k-block: 8
171- name: xnn_qs8_gemm_minmax_ukernel_4x4c2__ssse3_ld128
172 k-block: 8
173- name: xnn_qs8_gemm_minmax_ukernel_1x4c2__sse41_ld128
174 k-block: 8
175- name: xnn_qs8_gemm_minmax_ukernel_4x4c2__sse41_ld128
176 k-block: 8
Marat Dukhan1566fee2020-08-02 21:55:41 -0700177- name: xnn_qs8_gemm_minmax_ukernel_1x4c2__xop_ld128
178 k-block: 8
179- name: xnn_qs8_gemm_minmax_ukernel_4x4c2__xop_ld128
180 k-block: 8
Marat Dukhan683fab32020-08-03 19:42:52 -0700181- name: xnn_qs8_gemm_xw_minmax_ukernel_1x4c2__sse2
182 k-block: 8
183- name: xnn_qs8_gemm_xw_minmax_ukernel_4x4c2__sse2
184 k-block: 8
185- name: xnn_qs8_gemm_xw_minmax_ukernel_1x4c2__ssse3
186 k-block: 8
187- name: xnn_qs8_gemm_xw_minmax_ukernel_4x4c2__ssse3
188 k-block: 8
189- name: xnn_qs8_gemm_xw_minmax_ukernel_1x4c2__sse41
190 k-block: 8
191- name: xnn_qs8_gemm_xw_minmax_ukernel_4x4c2__sse41
192 k-block: 8
193- name: xnn_qs8_gemm_xw_minmax_ukernel_1x4c2__xop
194 k-block: 8
195- name: xnn_qs8_gemm_xw_minmax_ukernel_4x4c2__xop
196 k-block: 8
Marat Dukhan14d3ce82020-07-31 16:19:15 -0700197- name: xnn_qs8_gemm_minmax_ukernel_1x4c8__sse2_ld64
Marat Dukhan733d0be2020-07-31 15:55:36 -0700198 k-block: 8
Marat Dukhan14d3ce82020-07-31 16:19:15 -0700199- name: xnn_qs8_gemm_minmax_ukernel_2x4c8__sse2_ld64
Marat Dukhan733d0be2020-07-31 15:55:36 -0700200 k-block: 8
Marat Dukhane7edc802020-08-03 16:43:57 -0700201- name: xnn_qs8_gemm_minmax_ukernel_3x4c8__sse2_ld64
202 k-block: 8
Marat Dukhan14d3ce82020-07-31 16:19:15 -0700203- name: xnn_qs8_gemm_minmax_ukernel_1x4c8__ssse3_ld64
Marat Dukhan733d0be2020-07-31 15:55:36 -0700204 k-block: 8
Marat Dukhan14d3ce82020-07-31 16:19:15 -0700205- name: xnn_qs8_gemm_minmax_ukernel_2x4c8__ssse3_ld64
Marat Dukhan733d0be2020-07-31 15:55:36 -0700206 k-block: 8
Marat Dukhane7edc802020-08-03 16:43:57 -0700207- name: xnn_qs8_gemm_minmax_ukernel_3x4c8__ssse3_ld64
208 k-block: 8
Marat Dukhan14d3ce82020-07-31 16:19:15 -0700209- name: xnn_qs8_gemm_minmax_ukernel_1x4c8__sse41_ld64
Marat Dukhan733d0be2020-07-31 15:55:36 -0700210 k-block: 8
Marat Dukhan14d3ce82020-07-31 16:19:15 -0700211- name: xnn_qs8_gemm_minmax_ukernel_2x4c8__sse41_ld64
Marat Dukhan733d0be2020-07-31 15:55:36 -0700212 k-block: 8
Marat Dukhane7edc802020-08-03 16:43:57 -0700213- name: xnn_qs8_gemm_minmax_ukernel_3x4c8__sse41_ld64
214 k-block: 8
Marat Dukhan1566fee2020-08-02 21:55:41 -0700215- name: xnn_qs8_gemm_minmax_ukernel_1x4c8__xop_ld64
216 k-block: 8
217- name: xnn_qs8_gemm_minmax_ukernel_2x4c8__xop_ld64
218 k-block: 8
Marat Dukhane7edc802020-08-03 16:43:57 -0700219- name: xnn_qs8_gemm_minmax_ukernel_3x4c8__xop_ld64
220 k-block: 8
Marat Dukhandee732b2020-07-31 17:32:04 -0700221- name: xnn_qs8_gemm_minmax_ukernel_1x4c8__sse2_ld128
222 k-block: 8
223- name: xnn_qs8_gemm_minmax_ukernel_2x4c8__sse2_ld128
224 k-block: 8
Marat Dukhane7edc802020-08-03 16:43:57 -0700225- name: xnn_qs8_gemm_minmax_ukernel_3x4c8__sse2_ld128
226 k-block: 8
Marat Dukhandee732b2020-07-31 17:32:04 -0700227- name: xnn_qs8_gemm_minmax_ukernel_1x4c8__ssse3_ld128
228 k-block: 8
229- name: xnn_qs8_gemm_minmax_ukernel_2x4c8__ssse3_ld128
230 k-block: 8
Marat Dukhane7edc802020-08-03 16:43:57 -0700231- name: xnn_qs8_gemm_minmax_ukernel_3x4c8__ssse3_ld128
232 k-block: 8
Marat Dukhandee732b2020-07-31 17:32:04 -0700233- name: xnn_qs8_gemm_minmax_ukernel_1x4c8__sse41_ld128
234 k-block: 8
235- name: xnn_qs8_gemm_minmax_ukernel_2x4c8__sse41_ld128
236 k-block: 8
Marat Dukhane7edc802020-08-03 16:43:57 -0700237- name: xnn_qs8_gemm_minmax_ukernel_3x4c8__sse41_ld128
238 k-block: 8
Marat Dukhan1566fee2020-08-02 21:55:41 -0700239- name: xnn_qs8_gemm_minmax_ukernel_1x4c8__xop_ld128
240 k-block: 8
241- name: xnn_qs8_gemm_minmax_ukernel_2x4c8__xop_ld128
242 k-block: 8
Marat Dukhane7edc802020-08-03 16:43:57 -0700243- name: xnn_qs8_gemm_minmax_ukernel_3x4c8__xop_ld128
244 k-block: 8
Marat Dukhan683fab32020-08-03 19:42:52 -0700245- name: xnn_qs8_gemm_xw_minmax_ukernel_1x4c8__sse2
246 k-block: 8
247- name: xnn_qs8_gemm_xw_minmax_ukernel_2x4c8__sse2
248 k-block: 8
249- name: xnn_qs8_gemm_xw_minmax_ukernel_3x4c8__sse2
250 k-block: 8
251- name: xnn_qs8_gemm_xw_minmax_ukernel_1x4c8__ssse3
252 k-block: 8
253- name: xnn_qs8_gemm_xw_minmax_ukernel_2x4c8__ssse3
254 k-block: 8
255- name: xnn_qs8_gemm_xw_minmax_ukernel_3x4c8__ssse3
256 k-block: 8
257- name: xnn_qs8_gemm_xw_minmax_ukernel_1x4c8__sse41
258 k-block: 8
259- name: xnn_qs8_gemm_xw_minmax_ukernel_2x4c8__sse41
260 k-block: 8
261- name: xnn_qs8_gemm_xw_minmax_ukernel_3x4c8__sse41
262 k-block: 8
263- name: xnn_qs8_gemm_xw_minmax_ukernel_1x4c8__xop
264 k-block: 8
265- name: xnn_qs8_gemm_xw_minmax_ukernel_2x4c8__xop
266 k-block: 8
267- name: xnn_qs8_gemm_xw_minmax_ukernel_3x4c8__xop
268 k-block: 8
Marat Dukhan12809522020-08-02 22:23:51 -0700269- name: xnn_qs8_gemm_minmax_ukernel_1x8c8__avx2
270 k-block: 8
271- name: xnn_qs8_gemm_minmax_ukernel_2x8c8__avx2
272 k-block: 8
273- name: xnn_qs8_gemm_minmax_ukernel_3x8c8__avx2
274 k-block: 8
Marat Dukhan683fab32020-08-03 19:42:52 -0700275- name: xnn_qs8_gemm_xw_minmax_ukernel_1x8c8__avx2
276 k-block: 8
277- name: xnn_qs8_gemm_xw_minmax_ukernel_2x8c8__avx2
278 k-block: 8
279- name: xnn_qs8_gemm_xw_minmax_ukernel_3x8c8__avx2
280 k-block: 8
Marat Dukhanbb00b1d2020-08-10 11:37:23 -0700281- name: xnn_qs8_gemm_minmax_ukernel_1x16c8__avx512skx
282 k-block: 8
283- name: xnn_qs8_gemm_minmax_ukernel_2x16c8__avx512skx
284 k-block: 8
285- name: xnn_qs8_gemm_minmax_ukernel_3x16c8__avx512skx
286 k-block: 8
287- name: xnn_qs8_gemm_minmax_ukernel_4x16c8__avx512skx
288 k-block: 8
Marat Dukhan27203da2020-08-05 15:19:03 -0700289- name: xnn_qs8_gemm_minmax_ukernel_1x4c8__wasmsimd_ld64
290 k-block: 8
291- name: xnn_qs8_gemm_minmax_ukernel_2x4c8__wasmsimd_ld64
292 k-block: 8
293- name: xnn_qs8_gemm_minmax_ukernel_3x4c8__wasmsimd_ld64
294 k-block: 8
295- name: xnn_qs8_gemm_minmax_ukernel_1x4c8__wasmsimd_ld128
296 k-block: 8
297- name: xnn_qs8_gemm_minmax_ukernel_2x4c8__wasmsimd_ld128
298 k-block: 8
299- name: xnn_qs8_gemm_minmax_ukernel_3x4c8__wasmsimd_ld128
300 k-block: 8
301- name: xnn_qs8_gemm_xw_minmax_ukernel_1x4c8__wasmsimd
302 k-block: 8
303- name: xnn_qs8_gemm_xw_minmax_ukernel_2x4c8__wasmsimd
304 k-block: 8
305- name: xnn_qs8_gemm_xw_minmax_ukernel_3x4c8__wasmsimd
306 k-block: 8