# Copyright 2023 Google LLC # # This source code is licensed under the BSD-style license found in the # LICENSE file in the root directory of this source tree. # AVX512AMX - name: xnn_qd8_f16_qc8w_gemm_minmax_ukernel_1x64c4__avx512amx init: xnn_init_f16_minmax_scalar_params pack: xnn_pack_qs8_gemm_goi_w k-block: 64 - name: xnn_qd8_f16_qc8w_gemm_minmax_ukernel_7x64c4__avx512amx init: xnn_init_f16_minmax_scalar_params pack: xnn_pack_qs8_gemm_goi_w k-block: 64 - name: xnn_qd8_f16_qc8w_gemm_minmax_ukernel_16x64c4__avx512amx init: xnn_init_f16_minmax_scalar_params pack: xnn_pack_qs8_gemm_goi_w k-block: 64 - name: xnn_qd8_f16_qc8w_gemm_minmax_ukernel_16x64c4__avx512amx_prfm init: xnn_init_f16_minmax_scalar_params pack: xnn_pack_qs8_gemm_goi_w k-block: 64 # ARM NEONI8MM - name: xnn_qd8_f16_qc8w_gemm_minmax_ukernel_1x8c8__neoni8mm init: xnn_init_f16_minmax_scalar_params pack: xnn_pack_qs8_gemm_goi_w k-block: 16 - name: xnn_qd8_f16_qc8w_gemm_minmax_ukernel_1x16c8__neoni8mm init: xnn_init_f16_minmax_scalar_params pack: xnn_pack_qs8_gemm_goi_w k-block: 16 - name: xnn_qd8_f16_qc8w_gemm_minmax_ukernel_1x32c8__neoni8mm init: xnn_init_f16_minmax_scalar_params pack: xnn_pack_qs8_gemm_goi_w k-block: 16 - name: xnn_qd8_f16_qc8w_gemm_minmax_ukernel_2x8c8__neoni8mm init: xnn_init_f16_minmax_scalar_params pack: xnn_pack_qs8_gemm_goi_w k-block: 16 - name: xnn_qd8_f16_qc8w_gemm_minmax_ukernel_2x16c8__neoni8mm init: xnn_init_f16_minmax_scalar_params pack: xnn_pack_qs8_gemm_goi_w k-block: 16 - name: xnn_qd8_f16_qc8w_gemm_minmax_ukernel_2x32c8__neoni8mm init: xnn_init_f16_minmax_scalar_params pack: xnn_pack_qs8_gemm_goi_w k-block: 16 - name: xnn_qd8_f16_qc8w_gemm_minmax_ukernel_3x8c8__neoni8mm init: xnn_init_f16_minmax_scalar_params pack: xnn_pack_qs8_gemm_goi_w k-block: 16 - name: xnn_qd8_f16_qc8w_gemm_minmax_ukernel_3x16c8__neoni8mm init: xnn_init_f16_minmax_scalar_params pack: xnn_pack_qs8_gemm_goi_w k-block: 16 - name: xnn_qd8_f16_qc8w_gemm_minmax_ukernel_3x32c8__neoni8mm init: xnn_init_f16_minmax_scalar_params pack: xnn_pack_qs8_gemm_goi_w k-block: 16 - name: xnn_qd8_f16_qc8w_gemm_minmax_ukernel_4x8c8__neoni8mm init: xnn_init_f16_minmax_scalar_params pack: xnn_pack_qs8_gemm_goi_w k-block: 16 - name: xnn_qd8_f16_qc8w_gemm_minmax_ukernel_4x16c8__neoni8mm init: xnn_init_f16_minmax_scalar_params pack: xnn_pack_qs8_gemm_goi_w k-block: 16 - name: xnn_qd8_f16_qc8w_gemm_minmax_ukernel_4x32c8__neoni8mm init: xnn_init_f16_minmax_scalar_params pack: xnn_pack_qs8_gemm_goi_w k-block: 16 - name: xnn_qd8_f16_qc8w_gemm_minmax_ukernel_5x8c8__neoni8mm init: xnn_init_f16_minmax_scalar_params pack: xnn_pack_qs8_gemm_goi_w k-block: 16 - name: xnn_qd8_f16_qc8w_gemm_minmax_ukernel_5x16c8__neoni8mm init: xnn_init_f16_minmax_scalar_params pack: xnn_pack_qs8_gemm_goi_w k-block: 16 - name: xnn_qd8_f16_qc8w_gemm_minmax_ukernel_5x32c8__neoni8mm init: xnn_init_f16_minmax_scalar_params pack: xnn_pack_qs8_gemm_goi_w k-block: 16 - name: xnn_qd8_f16_qc8w_gemm_minmax_ukernel_6x8c8__neoni8mm init: xnn_init_f16_minmax_scalar_params pack: xnn_pack_qs8_gemm_goi_w k-block: 16 - name: xnn_qd8_f16_qc8w_gemm_minmax_ukernel_6x16c8__neoni8mm init: xnn_init_f16_minmax_scalar_params pack: xnn_pack_qs8_gemm_goi_w k-block: 16 - name: xnn_qd8_f16_qc8w_gemm_minmax_ukernel_6x32c8__neoni8mm init: xnn_init_f16_minmax_scalar_params pack: xnn_pack_qs8_gemm_goi_w k-block: 16 - name: xnn_qd8_f16_qc8w_gemm_minmax_ukernel_7x8c8__neoni8mm init: xnn_init_f16_minmax_scalar_params pack: xnn_pack_qs8_gemm_goi_w k-block: 16 - name: xnn_qd8_f16_qc8w_gemm_minmax_ukernel_7x16c8__neoni8mm init: xnn_init_f16_minmax_scalar_params pack: xnn_pack_qs8_gemm_goi_w k-block: 16 - name: xnn_qd8_f16_qc8w_gemm_minmax_ukernel_7x32c8__neoni8mm init: xnn_init_f16_minmax_scalar_params pack: xnn_pack_qs8_gemm_goi_w k-block: 16 - name: xnn_qd8_f16_qc8w_gemm_minmax_ukernel_8x8c8__neoni8mm init: xnn_init_f16_minmax_scalar_params pack: xnn_pack_qs8_gemm_goi_w k-block: 16 - name: xnn_qd8_f16_qc8w_gemm_minmax_ukernel_8x16c8__neoni8mm init: xnn_init_f16_minmax_scalar_params pack: xnn_pack_qs8_gemm_goi_w k-block: 16 - name: xnn_qd8_f16_qc8w_gemm_minmax_ukernel_8x32c8__neoni8mm init: xnn_init_f16_minmax_scalar_params pack: xnn_pack_qs8_gemm_goi_w k-block: 16 # ARM NEONDOT - name: xnn_qd8_f16_qc8w_gemm_minmax_ukernel_1x8c4__neondotfp16arith init: xnn_init_f16_minmax_scalar_params pack: xnn_pack_qs8_gemm_goi_w k-block: 4 - name: xnn_qd8_f16_qc8w_gemm_minmax_ukernel_1x16c4__neondotfp16arith init: xnn_init_f16_minmax_scalar_params pack: xnn_pack_qs8_gemm_goi_w k-block: 4 - name: xnn_qd8_f16_qc8w_gemm_minmax_ukernel_2x8c4__neondotfp16arith init: xnn_init_f16_minmax_scalar_params pack: xnn_pack_qs8_gemm_goi_w k-block: 4 - name: xnn_qd8_f16_qc8w_gemm_minmax_ukernel_2x16c4__neondotfp16arith init: xnn_init_f16_minmax_scalar_params pack: xnn_pack_qs8_gemm_goi_w k-block: 4 - name: xnn_qd8_f16_qc8w_gemm_minmax_ukernel_3x8c4__neondotfp16arith init: xnn_init_f16_minmax_scalar_params pack: xnn_pack_qs8_gemm_goi_w k-block: 4 - name: xnn_qd8_f16_qc8w_gemm_minmax_ukernel_3x16c4__neondotfp16arith init: xnn_init_f16_minmax_scalar_params pack: xnn_pack_qs8_gemm_goi_w k-block: 4 - name: xnn_qd8_f16_qc8w_gemm_minmax_ukernel_4x8c4__neondotfp16arith init: xnn_init_f16_minmax_scalar_params pack: xnn_pack_qs8_gemm_goi_w k-block: 4 - name: xnn_qd8_f16_qc8w_gemm_minmax_ukernel_4x16c4__asm_aarch64_neondotfp16arith_cortex_a55 init: xnn_init_f16_minmax_scalar_params pack: xnn_pack_qs8_gemm_goi_w k-block: 16 - name: xnn_qd8_f16_qc8w_gemm_minmax_ukernel_4x16c4__asm_aarch64_neondotfp16arith_ld128 init: xnn_init_f16_minmax_scalar_params pack: xnn_pack_qs8_gemm_goi_w k-block: 16 - name: xnn_qd8_f16_qc8w_gemm_minmax_ukernel_4x16c4__neondotfp16arith init: xnn_init_f16_minmax_scalar_params pack: xnn_pack_qs8_gemm_goi_w k-block: 4 - name: xnn_qd8_f16_qc8w_gemm_minmax_ukernel_5x8c4__neondotfp16arith init: xnn_init_f16_minmax_scalar_params pack: xnn_pack_qs8_gemm_goi_w k-block: 4 - name: xnn_qd8_f16_qc8w_gemm_minmax_ukernel_5x16c4__neondotfp16arith init: xnn_init_f16_minmax_scalar_params pack: xnn_pack_qs8_gemm_goi_w k-block: 4 - name: xnn_qd8_f16_qc8w_gemm_minmax_ukernel_6x8c4__neondotfp16arith init: xnn_init_f16_minmax_scalar_params pack: xnn_pack_qs8_gemm_goi_w k-block: 4 - name: xnn_qd8_f16_qc8w_gemm_minmax_ukernel_6x16c4__neondotfp16arith init: xnn_init_f16_minmax_scalar_params pack: xnn_pack_qs8_gemm_goi_w k-block: 4 # ARM NEON - name: xnn_qd8_f16_qc8w_gemm_minmax_ukernel_1x8c2s4__neonfp16arith init: xnn_init_f16_minmax_scalar_params pack: xnn_pack_qs8_gemm_goi_w k-block: 16 - name: xnn_qd8_f16_qc8w_gemm_minmax_ukernel_2x8c2s4__neonfp16arith init: xnn_init_f16_minmax_scalar_params pack: xnn_pack_qs8_gemm_goi_w k-block: 16 # AArch32 assembly - name: xnn_qd8_f16_qc8w_gemm_minmax_ukernel_4x8c4__asm_aarch32_neondotfp16arith_cortex_a55 init: xnn_init_f16_minmax_scalar_params pack: xnn_pack_qs8_gemm_goi_w k-block: 8 # x86 AVX256 VNNI - name: xnn_qd8_f16_qc8w_gemm_minmax_ukernel_1x8c8__avx256vnni init: xnn_init_f16_minmax_scalar_params pack: xnn_pack_qs8_gemm_goi_w k-block: 16 unsigned-inputs: True - name: xnn_qd8_f16_qc8w_gemm_minmax_ukernel_5x8c8__avx256vnni init: xnn_init_f16_minmax_scalar_params pack: xnn_pack_qs8_gemm_goi_w k-block: 16 unsigned-inputs: True - name: xnn_qd8_f16_qc8w_gemm_minmax_ukernel_7x8c8__avx256vnni init: xnn_init_f16_minmax_scalar_params pack: xnn_pack_qs8_gemm_goi_w k-block: 16 unsigned-inputs: True - name: xnn_qd8_f16_qc8w_gemm_minmax_ukernel_8x8c8__avx256vnni init: xnn_init_f16_minmax_scalar_params pack: xnn_pack_qs8_gemm_goi_w k-block: 16 unsigned-inputs: True - name: xnn_qd8_f16_qc8w_gemm_minmax_ukernel_9x8c8__avx256vnni init: xnn_init_f16_minmax_scalar_params pack: xnn_pack_qs8_gemm_goi_w k-block: 16 unsigned-inputs: True - name: xnn_qd8_f16_qc8w_gemm_minmax_ukernel_10x8c8__avx256vnni init: xnn_init_f16_minmax_scalar_params pack: xnn_pack_qs8_gemm_goi_w k-block: 16 unsigned-inputs: True - name: xnn_qd8_f16_qc8w_gemm_minmax_ukernel_12x8c8__avx256vnni init: xnn_init_f16_minmax_scalar_params pack: xnn_pack_qs8_gemm_goi_w k-block: 16 unsigned-inputs: True - name: xnn_qd8_f16_qc8w_gemm_minmax_ukernel_14x8c8__avx256vnni init: xnn_init_f16_minmax_scalar_params pack: xnn_pack_qs8_gemm_goi_w k-block: 16 unsigned-inputs: True - name: xnn_qd8_f16_qc8w_gemm_minmax_ukernel_1x8c8__avx256vnni_prfm init: xnn_init_f16_minmax_scalar_params pack: xnn_pack_qs8_gemm_goi_w k-block: 16 unsigned-inputs: True - name: xnn_qd8_f16_qc8w_gemm_minmax_ukernel_5x8c8__avx256vnni_prfm init: xnn_init_f16_minmax_scalar_params pack: xnn_pack_qs8_gemm_goi_w k-block: 16 unsigned-inputs: True - name: xnn_qd8_f16_qc8w_gemm_minmax_ukernel_7x8c8__avx256vnni_prfm init: xnn_init_f16_minmax_scalar_params pack: xnn_pack_qs8_gemm_goi_w k-block: 16 unsigned-inputs: True - name: xnn_qd8_f16_qc8w_gemm_minmax_ukernel_8x8c8__avx256vnni_prfm init: xnn_init_f16_minmax_scalar_params pack: xnn_pack_qs8_gemm_goi_w k-block: 16 unsigned-inputs: True - name: xnn_qd8_f16_qc8w_gemm_minmax_ukernel_9x8c8__avx256vnni_prfm init: xnn_init_f16_minmax_scalar_params pack: xnn_pack_qs8_gemm_goi_w k-block: 16 unsigned-inputs: True - name: xnn_qd8_f16_qc8w_gemm_minmax_ukernel_10x8c8__avx256vnni_prfm init: xnn_init_f16_minmax_scalar_params pack: xnn_pack_qs8_gemm_goi_w k-block: 16 unsigned-inputs: True - name: xnn_qd8_f16_qc8w_gemm_minmax_ukernel_12x8c8__avx256vnni_prfm init: xnn_init_f16_minmax_scalar_params pack: xnn_pack_qs8_gemm_goi_w k-block: 16 unsigned-inputs: True - name: xnn_qd8_f16_qc8w_gemm_minmax_ukernel_14x8c8__avx256vnni_prfm init: xnn_init_f16_minmax_scalar_params pack: xnn_pack_qs8_gemm_goi_w k-block: 16 unsigned-inputs: True # AVXVNNI - name: xnn_qd8_f16_qc8w_gemm_minmax_ukernel_1x8c8__avxvnni init: xnn_init_f16_minmax_scalar_params pack: xnn_pack_qs8_gemm_goi_w k-block: 16 unsigned-inputs: True - name: xnn_qd8_f16_qc8w_gemm_minmax_ukernel_2x8c8__avxvnni init: xnn_init_f16_minmax_scalar_params pack: xnn_pack_qs8_gemm_goi_w k-block: 16 unsigned-inputs: True - name: xnn_qd8_f16_qc8w_gemm_minmax_ukernel_3x8c8__avxvnni init: xnn_init_f16_minmax_scalar_params pack: xnn_pack_qs8_gemm_goi_w k-block: 16 unsigned-inputs: True - name: xnn_qd8_f16_qc8w_gemm_minmax_ukernel_4x8c8__avxvnni init: xnn_init_f16_minmax_scalar_params pack: xnn_pack_qs8_gemm_goi_w k-block: 16 unsigned-inputs: True - name: xnn_qd8_f16_qc8w_gemm_minmax_ukernel_5x8c8__avxvnni init: xnn_init_f16_minmax_scalar_params pack: xnn_pack_qs8_gemm_goi_w k-block: 16 unsigned-inputs: True - name: xnn_qd8_f16_qc8w_gemm_minmax_ukernel_6x8c8__avxvnni init: xnn_init_f16_minmax_scalar_params pack: xnn_pack_qs8_gemm_goi_w k-block: 16 unsigned-inputs: True - name: xnn_qd8_f16_qc8w_gemm_minmax_ukernel_7x8c8__avxvnni init: xnn_init_f16_minmax_scalar_params pack: xnn_pack_qs8_gemm_goi_w k-block: 16 unsigned-inputs: True - name: xnn_qd8_f16_qc8w_gemm_minmax_ukernel_8x8c8__avxvnni init: xnn_init_f16_minmax_scalar_params pack: xnn_pack_qs8_gemm_goi_w k-block: 16 unsigned-inputs: True - name: xnn_qd8_f16_qc8w_gemm_minmax_ukernel_1x8c8__avxvnni_prfm init: xnn_init_f16_minmax_scalar_params pack: xnn_pack_qs8_gemm_goi_w k-block: 16 unsigned-inputs: True - name: xnn_qd8_f16_qc8w_gemm_minmax_ukernel_2x8c8__avxvnni_prfm init: xnn_init_f16_minmax_scalar_params pack: xnn_pack_qs8_gemm_goi_w k-block: 16 unsigned-inputs: True - name: xnn_qd8_f16_qc8w_gemm_minmax_ukernel_3x8c8__avxvnni_prfm init: xnn_init_f16_minmax_scalar_params pack: xnn_pack_qs8_gemm_goi_w k-block: 16 unsigned-inputs: True - name: xnn_qd8_f16_qc8w_gemm_minmax_ukernel_4x8c8__avxvnni_prfm init: xnn_init_f16_minmax_scalar_params pack: xnn_pack_qs8_gemm_goi_w k-block: 16 unsigned-inputs: True - name: xnn_qd8_f16_qc8w_gemm_minmax_ukernel_5x8c8__avxvnni_prfm init: xnn_init_f16_minmax_scalar_params pack: xnn_pack_qs8_gemm_goi_w k-block: 16 unsigned-inputs: True - name: xnn_qd8_f16_qc8w_gemm_minmax_ukernel_6x8c8__avxvnni_prfm init: xnn_init_f16_minmax_scalar_params pack: xnn_pack_qs8_gemm_goi_w k-block: 16 unsigned-inputs: True - name: xnn_qd8_f16_qc8w_gemm_minmax_ukernel_7x8c8__avxvnni_prfm init: xnn_init_f16_minmax_scalar_params pack: xnn_pack_qs8_gemm_goi_w k-block: 16 unsigned-inputs: True - name: xnn_qd8_f16_qc8w_gemm_minmax_ukernel_8x8c8__avxvnni_prfm init: xnn_init_f16_minmax_scalar_params pack: xnn_pack_qs8_gemm_goi_w k-block: 16 # x86 AVX2 - name: xnn_qd8_f16_qc8w_gemm_minmax_ukernel_1x8c8__avx2 init: xnn_init_f16_minmax_scalar_params pack: xnn_pack_qs8_gemm_goi_w k-block: 8 - name: xnn_qd8_f16_qc8w_gemm_minmax_ukernel_2x8c8__avx2 init: xnn_init_f16_minmax_scalar_params pack: xnn_pack_qs8_gemm_goi_w k-block: 8 - name: xnn_qd8_f16_qc8w_gemm_minmax_ukernel_3x8c8__avx2 init: xnn_init_f16_minmax_scalar_params pack: xnn_pack_qs8_gemm_goi_w k-block: 8 - name: xnn_qd8_f16_qc8w_gemm_minmax_ukernel_4x8c8__avx2 init: xnn_init_f16_minmax_scalar_params pack: xnn_pack_qs8_gemm_goi_w k-block: 8 # x86 AVX256SKX - name: xnn_qd8_f16_qc8w_gemm_minmax_ukernel_1x8c8__avx256skx init: xnn_init_f16_minmax_scalar_params pack: xnn_pack_qs8_gemm_goi_w k-block: 8 - name: xnn_qd8_f16_qc8w_gemm_minmax_ukernel_5x8c8__avx256skx init: xnn_init_f16_minmax_scalar_params pack: xnn_pack_qs8_gemm_goi_w k-block: 8 - name: xnn_qd8_f16_qc8w_gemm_minmax_ukernel_7x8c8__avx256skx init: xnn_init_f16_minmax_scalar_params pack: xnn_pack_qs8_gemm_goi_w k-block: 8 - name: xnn_qd8_f16_qc8w_gemm_minmax_ukernel_8x8c8__avx256skx init: xnn_init_f16_minmax_scalar_params pack: xnn_pack_qs8_gemm_goi_w k-block: 8