1# 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. 5- name: xnn_qs8_gemm_minmax_ukernel_2x8c8__aarch64_neon_mlal_padal 6 k-block: 16 7- name: xnn_qs8_gemm_minmax_ukernel_2x8c8__aarch64_neon_mull_padal 8 k-block: 8 9- name: xnn_qs8_gemm_minmax_ukernel_1x8__neon_mlal_lane 10 k-block: 8 11- name: xnn_qs8_gemm_minmax_ukernel_2x8__neon_mlal_lane 12 k-block: 8 13- name: xnn_qs8_gemm_minmax_ukernel_4x8__neon_mlal_lane 14 k-block: 8 15- name: xnn_qs8_gemm_minmax_ukernel_3x8__neon_mlal_lane 16 k-block: 8 17- 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 21- name: xnn_qs8_gemm_minmax_ukernel_3x16__neon_mlal_lane 22 k-block: 8 23- name: xnn_qs8_gemm_minmax_ukernel_4x16__neon_mlal_lane 24 k-block: 8 25- 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 29- name: xnn_qs8_gemm_minmax_ukernel_3x8__neon_mull_addw_dup 30 k-block: 8 31- 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 37- name: xnn_qs8_gemm_minmax_ukernel_3x16__neon_mull_addw_dup 38 k-block: 8 39- name: xnn_qs8_gemm_minmax_ukernel_4x16__neon_mull_addw_dup 40 k-block: 8 41- 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 57- 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 73- name: xnn_qs8_gemm_minmax_ukernel_1x8c8__neon_mull_padal 74 k-block: 8 75- name: xnn_qs8_gemm_minmax_ukernel_2x8c8__neon_mull_padal 76 k-block: 8 77- name: xnn_qs8_gemm_minmax_ukernel_3x8c8__neon_mull_padal 78 k-block: 8 79- name: xnn_qs8_gemm_minmax_ukernel_4x8c8__neon_mull_padal 80 k-block: 8 81- name: xnn_qs8_gemm_minmax_ukernel_1x16c8__neon_mull_padal 82 k-block: 8 83- name: xnn_qs8_gemm_minmax_ukernel_2x16c8__neon_mull_padal 84 k-block: 8 85- name: xnn_qs8_gemm_minmax_ukernel_3x16c8__neon_mull_padal 86 k-block: 8 87- name: xnn_qs8_gemm_minmax_ukernel_4x16c8__neon_mull_padal 88 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 104 k-block: 16 105- 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 121- name: xnn_qs8_gemm_minmax_ukernel_1x8c4__neondot 122 k-block: 8 123- 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 127- name: xnn_qs8_gemm_minmax_ukernel_8x8c4__neondot 128 k-block: 8 129- 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 133- name: xnn_qs8_gemm_minmax_ukernel_6x16c4__neondot 134 k-block: 8 135- name: xnn_qs8_gemm_minmax_ukernel_8x16c4__neondot 136 k-block: 8 137- name: xnn_qs8_gemm_minmax_ukernel_2x8c16__aarch64_neon_mlal_padal 138 k-block: 16 139- name: xnn_qs8_gemm_minmax_ukernel_1x16c4__aarch64_neondot_ld32 140 k-block: 4 141- name: xnn_qs8_gemm_minmax_ukernel_1x16c4__aarch64_neondot_ld64 142 k-block: 8 143- name: xnn_qs8_gemm_minmax_ukernel_4x16c4__aarch64_neondot_ld32 144 k-block: 4 145- name: xnn_qs8_gemm_minmax_ukernel_4x16c4__aarch64_neondot_ld64 146 k-block: 8 147- name: xnn_qs8_gemm_minmax_ukernel_4x16c4__aarch64_neondot_cortex_a55 148 k-block: 16 149- name: xnn_qs8_gemm_minmax_ukernel_1x4c2__sse2_ld64 150 k-block: 8 151- name: xnn_qs8_gemm_minmax_ukernel_4x4c2__sse2_ld64 152 k-block: 8 153- name: xnn_qs8_gemm_minmax_ukernel_1x4c2__ssse3_ld64 154 k-block: 8 155- name: xnn_qs8_gemm_minmax_ukernel_4x4c2__ssse3_ld64 156 k-block: 8 157- name: xnn_qs8_gemm_minmax_ukernel_1x4c2__sse41_ld64 158 k-block: 8 159- name: xnn_qs8_gemm_minmax_ukernel_4x4c2__sse41_ld64 160 k-block: 8 161- 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 165- 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 177- 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 181- 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 197- name: xnn_qs8_gemm_minmax_ukernel_1x4c8__sse2_ld64 198 k-block: 8 199- name: xnn_qs8_gemm_minmax_ukernel_2x4c8__sse2_ld64 200 k-block: 8 201- name: xnn_qs8_gemm_minmax_ukernel_3x4c8__sse2_ld64 202 k-block: 8 203- name: xnn_qs8_gemm_minmax_ukernel_1x4c8__ssse3_ld64 204 k-block: 8 205- name: xnn_qs8_gemm_minmax_ukernel_2x4c8__ssse3_ld64 206 k-block: 8 207- name: xnn_qs8_gemm_minmax_ukernel_3x4c8__ssse3_ld64 208 k-block: 8 209- name: xnn_qs8_gemm_minmax_ukernel_1x4c8__sse41_ld64 210 k-block: 8 211- name: xnn_qs8_gemm_minmax_ukernel_2x4c8__sse41_ld64 212 k-block: 8 213- name: xnn_qs8_gemm_minmax_ukernel_3x4c8__sse41_ld64 214 k-block: 8 215- 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 219- name: xnn_qs8_gemm_minmax_ukernel_3x4c8__xop_ld64 220 k-block: 8 221- 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 225- name: xnn_qs8_gemm_minmax_ukernel_3x4c8__sse2_ld128 226 k-block: 8 227- 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 231- name: xnn_qs8_gemm_minmax_ukernel_3x4c8__ssse3_ld128 232 k-block: 8 233- 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 237- name: xnn_qs8_gemm_minmax_ukernel_3x4c8__sse41_ld128 238 k-block: 8 239- 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 243- name: xnn_qs8_gemm_minmax_ukernel_3x4c8__xop_ld128 244 k-block: 8 245- 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 269- 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 275- 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 281- 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 289- 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 307