Skip to content

Commit

Permalink
Re-enable AMX IGEMM kernels after fixing them.
Browse files Browse the repository at this point in the history
PiperOrigin-RevId: 716385364
  • Loading branch information
dsharletg authored and xnnpack-bot committed Jan 16, 2025
1 parent f909205 commit 5ff4949
Show file tree
Hide file tree
Showing 9 changed files with 178 additions and 35 deletions.
14 changes: 7 additions & 7 deletions src/xnnpack/igemm.h
Original file line number Diff line number Diff line change
Expand Up @@ -870,7 +870,7 @@ DECLARE_QD8_F16_QC8W_IGEMM_MINMAX_UKERNEL_FUNCTION(xnn_qd8_f16_qc8w_igemm_minmax
DECLARE_QD8_F16_QC8W_IGEMM_MINMAX_UKERNEL_FUNCTION(xnn_qd8_f16_qc8w_igemm_minmax_ukernel_1x64c4__avx512amx)
DECLARE_QD8_F16_QC8W_IGEMM_MINMAX_UKERNEL_FUNCTION(xnn_qd8_f16_qc8w_igemm_minmax_ukernel_7x64c4__avx512amx)
DECLARE_QD8_F16_QC8W_IGEMM_MINMAX_UKERNEL_FUNCTION(xnn_qd8_f16_qc8w_igemm_minmax_ukernel_16x64c4__avx512amx)
//DECLARE_QD8_F16_QC8W_IGEMM_MINMAX_UKERNEL_FUNCTION(xnn_qd8_f16_qc8w_igemm_minmax_ukernel_16x64c4__avx512amx_prfm)
DECLARE_QD8_F16_QC8W_IGEMM_MINMAX_UKERNEL_FUNCTION(xnn_qd8_f16_qc8w_igemm_minmax_ukernel_16x64c4__avx512amx_prfm)

#define DECLARE_QD8_F32_QC8W_IGEMM_MINMAX_UKERNEL_FUNCTION(fn_name) \
XNN_INTERNAL void fn_name( \
Expand Down Expand Up @@ -1072,17 +1072,17 @@ DECLARE_QD8_F32_QC8W_IGEMM_MINMAX_UKERNEL_FUNCTION(xnn_qd8_f32_qc8w_igemm_minmax
DECLARE_QD8_F32_QC8W_IGEMM_MINMAX_UKERNEL_FUNCTION(xnn_qd8_f32_qc8w_igemm_minmax_ukernel_1x16c4__avx512amx)
DECLARE_QD8_F32_QC8W_IGEMM_MINMAX_UKERNEL_FUNCTION(xnn_qd8_f32_qc8w_igemm_minmax_ukernel_7x16c4__avx512amx)
DECLARE_QD8_F32_QC8W_IGEMM_MINMAX_UKERNEL_FUNCTION(xnn_qd8_f32_qc8w_igemm_minmax_ukernel_16x16c4__avx512amx)
//DECLARE_QD8_F32_QC8W_IGEMM_MINMAX_UKERNEL_FUNCTION(xnn_qd8_f32_qc8w_igemm_minmax_ukernel_16x16c4__avx512amx_prfm)
DECLARE_QD8_F32_QC8W_IGEMM_MINMAX_UKERNEL_FUNCTION(xnn_qd8_f32_qc8w_igemm_minmax_ukernel_16x16c4__avx512amx_prfm)

DECLARE_QD8_F32_QC8W_IGEMM_MINMAX_UKERNEL_FUNCTION(xnn_qd8_f32_qc8w_igemm_minmax_ukernel_1x32c4__avx512amx)
DECLARE_QD8_F32_QC8W_IGEMM_MINMAX_UKERNEL_FUNCTION(xnn_qd8_f32_qc8w_igemm_minmax_ukernel_7x32c4__avx512amx)
DECLARE_QD8_F32_QC8W_IGEMM_MINMAX_UKERNEL_FUNCTION(xnn_qd8_f32_qc8w_igemm_minmax_ukernel_16x32c4__avx512amx)
//DECLARE_QD8_F32_QC8W_IGEMM_MINMAX_UKERNEL_FUNCTION(xnn_qd8_f32_qc8w_igemm_minmax_ukernel_16x32c4__avx512amx_prfm)
DECLARE_QD8_F32_QC8W_IGEMM_MINMAX_UKERNEL_FUNCTION(xnn_qd8_f32_qc8w_igemm_minmax_ukernel_16x32c4__avx512amx_prfm)

DECLARE_QD8_F32_QC8W_IGEMM_MINMAX_UKERNEL_FUNCTION(xnn_qd8_f32_qc8w_igemm_minmax_ukernel_1x64c4__avx512amx)
DECLARE_QD8_F32_QC8W_IGEMM_MINMAX_UKERNEL_FUNCTION(xnn_qd8_f32_qc8w_igemm_minmax_ukernel_7x64c4__avx512amx)
DECLARE_QD8_F32_QC8W_IGEMM_MINMAX_UKERNEL_FUNCTION(xnn_qd8_f32_qc8w_igemm_minmax_ukernel_16x64c4__avx512amx)
//DECLARE_QD8_F32_QC8W_IGEMM_MINMAX_UKERNEL_FUNCTION(xnn_qd8_f32_qc8w_igemm_minmax_ukernel_16x64c4__avx512amx_prfm)
DECLARE_QD8_F32_QC8W_IGEMM_MINMAX_UKERNEL_FUNCTION(xnn_qd8_f32_qc8w_igemm_minmax_ukernel_16x64c4__avx512amx_prfm)

DECLARE_QD8_F32_QC8W_IGEMM_MINMAX_UKERNEL_FUNCTION(xnn_qd8_f32_qc8w_igemm_minmax_ukernel_1x16c4__avx512vnni)
DECLARE_QD8_F32_QC8W_IGEMM_MINMAX_UKERNEL_FUNCTION(xnn_qd8_f32_qc8w_igemm_minmax_ukernel_4x16c4__avx512vnni)
Expand Down Expand Up @@ -1588,17 +1588,17 @@ DECLARE_QS8_QC8W_IGEMM_MINMAX_UKERNEL_FUNCTION(xnn_qs8_qc8w_igemm_minmax_fp32_uk
DECLARE_QS8_QC8W_IGEMM_MINMAX_UKERNEL_FUNCTION(xnn_qs8_qc8w_igemm_minmax_fp32_ukernel_1x16c4__avx512amx)
DECLARE_QS8_QC8W_IGEMM_MINMAX_UKERNEL_FUNCTION(xnn_qs8_qc8w_igemm_minmax_fp32_ukernel_7x16c4__avx512amx)
DECLARE_QS8_QC8W_IGEMM_MINMAX_UKERNEL_FUNCTION(xnn_qs8_qc8w_igemm_minmax_fp32_ukernel_16x16c4__avx512amx)
//DECLARE_QS8_QC8W_IGEMM_MINMAX_UKERNEL_FUNCTION(xnn_qs8_qc8w_igemm_minmax_fp32_ukernel_16x16c4__avx512amx_prfm)
DECLARE_QS8_QC8W_IGEMM_MINMAX_UKERNEL_FUNCTION(xnn_qs8_qc8w_igemm_minmax_fp32_ukernel_16x16c4__avx512amx_prfm)

DECLARE_QS8_QC8W_IGEMM_MINMAX_UKERNEL_FUNCTION(xnn_qs8_qc8w_igemm_minmax_fp32_ukernel_1x32c4__avx512amx)
DECLARE_QS8_QC8W_IGEMM_MINMAX_UKERNEL_FUNCTION(xnn_qs8_qc8w_igemm_minmax_fp32_ukernel_7x32c4__avx512amx)
DECLARE_QS8_QC8W_IGEMM_MINMAX_UKERNEL_FUNCTION(xnn_qs8_qc8w_igemm_minmax_fp32_ukernel_16x32c4__avx512amx)
//DECLARE_QS8_QC8W_IGEMM_MINMAX_UKERNEL_FUNCTION(xnn_qs8_qc8w_igemm_minmax_fp32_ukernel_16x32c4__avx512amx_prfm)
DECLARE_QS8_QC8W_IGEMM_MINMAX_UKERNEL_FUNCTION(xnn_qs8_qc8w_igemm_minmax_fp32_ukernel_16x32c4__avx512amx_prfm)

DECLARE_QS8_QC8W_IGEMM_MINMAX_UKERNEL_FUNCTION(xnn_qs8_qc8w_igemm_minmax_fp32_ukernel_1x64c4__avx512amx)
DECLARE_QS8_QC8W_IGEMM_MINMAX_UKERNEL_FUNCTION(xnn_qs8_qc8w_igemm_minmax_fp32_ukernel_7x64c4__avx512amx)
DECLARE_QS8_QC8W_IGEMM_MINMAX_UKERNEL_FUNCTION(xnn_qs8_qc8w_igemm_minmax_fp32_ukernel_16x64c4__avx512amx)
//DECLARE_QS8_QC8W_IGEMM_MINMAX_UKERNEL_FUNCTION(xnn_qs8_qc8w_igemm_minmax_fp32_ukernel_16x64c4__avx512amx_prfm)
DECLARE_QS8_QC8W_IGEMM_MINMAX_UKERNEL_FUNCTION(xnn_qs8_qc8w_igemm_minmax_fp32_ukernel_16x64c4__avx512amx_prfm)

DECLARE_QS8_QC8W_IGEMM_MINMAX_UKERNEL_FUNCTION(xnn_qs8_qc8w_igemm_minmax_fp32_ukernel_1x16c4__avx512vnni)
DECLARE_QS8_QC8W_IGEMM_MINMAX_UKERNEL_FUNCTION(xnn_qs8_qc8w_igemm_minmax_fp32_ukernel_4x16c4__avx512vnni)
Expand Down
20 changes: 20 additions & 0 deletions test/qd8-f16-qc8w-igemm-minmax-3.cc
Original file line number Diff line number Diff line change
Expand Up @@ -318,6 +318,26 @@ std::vector<GemmTestParams> CreateTests1(
[](const testing::TestParamInfo<GemmTest::ParamType>& info) {
return info.param.test_name;
});

INSTANTIATE_TEST_SUITE_P(
QD8_F16_QC8W_IGEMM_MINMAX_16X64C4__AVX512AMX_PRFM, GemmTest,
testing::ValuesIn(CreateTests1(
/*k_block=*/64,
/*adj_k_block=*/64,
/*mr=*/16, /*nr=*/64, /*kr=*/4, /*sr=*/1,
/*is_igemm=*/true,
/*unsigned_inputs=*/false,
[](GemmMicrokernelTester& tester) {
tester.Test(xnn_qd8_f16_qc8w_igemm_minmax_ukernel_16x64c4__avx512amx_prfm,
xnn_init_f16_minmax_scalar_params,
xnn_pack_qs8_conv_goki_w);
},
[]() {
TEST_REQUIRES_X86_AVX512AMX;
})),
[](const testing::TestParamInfo<GemmTest::ParamType>& info) {
return info.param.test_name;
});
#endif // XNN_ENABLE_AVX512AMX && (XNN_ARCH_X86 || XNN_ARCH_X86_64)


Expand Down
8 changes: 4 additions & 4 deletions test/qd8-f16-qc8w-igemm-minmax.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,10 @@
init: xnn_init_f16_minmax_scalar_params
pack: xnn_pack_qs8_conv_goki_w
k-block: 64
#- name: xnn_qd8_f16_qc8w_igemm_minmax_ukernel_16x64c4__avx512amx_prfm
# init: xnn_init_f16_minmax_scalar_params
# pack: xnn_pack_qs8_conv_goki_w
# k-block: 64
- name: xnn_qd8_f16_qc8w_igemm_minmax_ukernel_16x64c4__avx512amx_prfm
init: xnn_init_f16_minmax_scalar_params
pack: xnn_pack_qs8_conv_goki_w
k-block: 64

# ARM NEONI8MM
- name: xnn_qd8_f16_qc8w_igemm_minmax_ukernel_1x8c8__neoni8mm
Expand Down
40 changes: 40 additions & 0 deletions test/qd8-f32-qc8w-igemm-minmax-2.cc
Original file line number Diff line number Diff line change
Expand Up @@ -279,6 +279,26 @@ std::vector<GemmTestParams> CreateTests1(


#if XNN_ENABLE_AVX512AMX && (XNN_ARCH_X86 || XNN_ARCH_X86_64)
INSTANTIATE_TEST_SUITE_P(
QD8_F32_QC8W_IGEMM_MINMAX_16X16C4__AVX512AMX_PRFM, GemmTest,
testing::ValuesIn(CreateTests1(
/*k_block=*/64,
/*adj_k_block=*/64,
/*mr=*/16, /*nr=*/16, /*kr=*/4, /*sr=*/1,
/*is_igemm=*/true,
/*unsigned_inputs=*/false,
[](GemmMicrokernelTester& tester) {
tester.Test(xnn_qd8_f32_qc8w_igemm_minmax_ukernel_16x16c4__avx512amx_prfm,
xnn_init_f32_minmax_scalar_params,
xnn_pack_qs8_conv_goki_w);
},
[]() {
TEST_REQUIRES_X86_AVX512AMX;
})),
[](const testing::TestParamInfo<GemmTest::ParamType>& info) {
return info.param.test_name;
});

INSTANTIATE_TEST_SUITE_P(
QD8_F32_QC8W_IGEMM_MINMAX_7X32C4__AVX512AMX, GemmTest,
testing::ValuesIn(CreateTests1(
Expand Down Expand Up @@ -318,6 +338,26 @@ std::vector<GemmTestParams> CreateTests1(
[](const testing::TestParamInfo<GemmTest::ParamType>& info) {
return info.param.test_name;
});

INSTANTIATE_TEST_SUITE_P(
QD8_F32_QC8W_IGEMM_MINMAX_16X64C4__AVX512AMX_PRFM, GemmTest,
testing::ValuesIn(CreateTests1(
/*k_block=*/64,
/*adj_k_block=*/64,
/*mr=*/16, /*nr=*/64, /*kr=*/4, /*sr=*/1,
/*is_igemm=*/true,
/*unsigned_inputs=*/false,
[](GemmMicrokernelTester& tester) {
tester.Test(xnn_qd8_f32_qc8w_igemm_minmax_ukernel_16x64c4__avx512amx_prfm,
xnn_init_f32_minmax_scalar_params,
xnn_pack_qs8_conv_goki_w);
},
[]() {
TEST_REQUIRES_X86_AVX512AMX;
})),
[](const testing::TestParamInfo<GemmTest::ParamType>& info) {
return info.param.test_name;
});
#endif // XNN_ENABLE_AVX512AMX && (XNN_ARCH_X86 || XNN_ARCH_X86_64)


Expand Down
20 changes: 20 additions & 0 deletions test/qd8-f32-qc8w-igemm-minmax-3.cc
Original file line number Diff line number Diff line change
Expand Up @@ -319,6 +319,26 @@ std::vector<GemmTestParams> CreateTests1(
return info.param.test_name;
});

INSTANTIATE_TEST_SUITE_P(
QD8_F32_QC8W_IGEMM_MINMAX_16X32C4__AVX512AMX_PRFM, GemmTest,
testing::ValuesIn(CreateTests1(
/*k_block=*/64,
/*adj_k_block=*/64,
/*mr=*/16, /*nr=*/32, /*kr=*/4, /*sr=*/1,
/*is_igemm=*/true,
/*unsigned_inputs=*/false,
[](GemmMicrokernelTester& tester) {
tester.Test(xnn_qd8_f32_qc8w_igemm_minmax_ukernel_16x32c4__avx512amx_prfm,
xnn_init_f32_minmax_scalar_params,
xnn_pack_qs8_conv_goki_w);
},
[]() {
TEST_REQUIRES_X86_AVX512AMX;
})),
[](const testing::TestParamInfo<GemmTest::ParamType>& info) {
return info.param.test_name;
});

INSTANTIATE_TEST_SUITE_P(
QD8_F32_QC8W_IGEMM_MINMAX_1X64C4__AVX512AMX, GemmTest,
testing::ValuesIn(CreateTests1(
Expand Down
24 changes: 12 additions & 12 deletions test/qd8-f32-qc8w-igemm-minmax.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,10 @@
init: xnn_init_f32_minmax_scalar_params
pack: xnn_pack_qs8_conv_goki_w
k-block: 64
#- name: xnn_qd8_f32_qc8w_igemm_minmax_ukernel_16x16c4__avx512amx_prfm
# init: xnn_init_f32_minmax_scalar_params
# pack: xnn_pack_qs8_conv_goki_w
# k-block: 64
- name: xnn_qd8_f32_qc8w_igemm_minmax_ukernel_16x16c4__avx512amx_prfm
init: xnn_init_f32_minmax_scalar_params
pack: xnn_pack_qs8_conv_goki_w
k-block: 64

- name: xnn_qd8_f32_qc8w_igemm_minmax_ukernel_1x32c4__avx512amx
init: xnn_init_f32_minmax_scalar_params
Expand All @@ -33,10 +33,10 @@
init: xnn_init_f32_minmax_scalar_params
pack: xnn_pack_qs8_conv_goki_w
k-block: 64
#- name: xnn_qd8_f32_qc8w_igemm_minmax_ukernel_16x32c4__avx512amx_prfm
# init: xnn_init_f32_minmax_scalar_params
# pack: xnn_pack_qs8_conv_goki_w
# k-block: 64
- name: xnn_qd8_f32_qc8w_igemm_minmax_ukernel_16x32c4__avx512amx_prfm
init: xnn_init_f32_minmax_scalar_params
pack: xnn_pack_qs8_conv_goki_w
k-block: 64

- name: xnn_qd8_f32_qc8w_igemm_minmax_ukernel_1x64c4__avx512amx
init: xnn_init_f32_minmax_scalar_params
Expand All @@ -50,10 +50,10 @@
init: xnn_init_f32_minmax_scalar_params
pack: xnn_pack_qs8_conv_goki_w
k-block: 64
#- name: xnn_qd8_f32_qc8w_igemm_minmax_ukernel_16x64c4__avx512amx_prfm
# init: xnn_init_f32_minmax_scalar_params
# pack: xnn_pack_qs8_conv_goki_w
# k-block: 64
- name: xnn_qd8_f32_qc8w_igemm_minmax_ukernel_16x64c4__avx512amx_prfm
init: xnn_init_f32_minmax_scalar_params
pack: xnn_pack_qs8_conv_goki_w
k-block: 64

# Scalar
- name: xnn_qd8_f32_qc8w_igemm_minmax_ukernel_1x2__scalar
Expand Down
42 changes: 42 additions & 0 deletions test/qs8-qc8w-igemm-minmax-fp32-2.cc
Original file line number Diff line number Diff line change
Expand Up @@ -289,6 +289,48 @@ std::vector<GemmTestParams> CreateTests1(
[](const testing::TestParamInfo<GemmTest::ParamType>& info) {
return info.param.test_name;
});

INSTANTIATE_TEST_SUITE_P(
QS8_QC8W_IGEMM_MINMAX_FP32_16X16C4__AVX512AMX_PRFM, GemmTest,
testing::ValuesIn(CreateTests1(
/*k_block=*/64,
/*adj_k_block=*/64,
/*mr=*/16, /*nr=*/16, /*kr=*/4, /*sr=*/1,
/*is_igemm=*/false,
/*unsigned_inputs=*/false,
[](GemmMicrokernelTester& tester) {
tester.Test(xnn_qs8_qc8w_igemm_minmax_fp32_ukernel_16x16c4__avx512amx_prfm,
xnn_init_qs8_qc8w_conv_minmax_fp32_scalar_params,
xnn_pack_qs8_conv_goki_w,
xnn_qs8_requantize_fp32);
},
[]() {
TEST_REQUIRES_X86_AVX512AMX;
})),
[](const testing::TestParamInfo<GemmTest::ParamType>& info) {
return info.param.test_name;
});

INSTANTIATE_TEST_SUITE_P(
QS8_QC8W_IGEMM_MINMAX_FP32_16X64C4__AVX512AMX_PRFM, GemmTest,
testing::ValuesIn(CreateTests1(
/*k_block=*/64,
/*adj_k_block=*/64,
/*mr=*/16, /*nr=*/64, /*kr=*/4, /*sr=*/1,
/*is_igemm=*/false,
/*unsigned_inputs=*/false,
[](GemmMicrokernelTester& tester) {
tester.Test(xnn_qs8_qc8w_igemm_minmax_fp32_ukernel_16x64c4__avx512amx_prfm,
xnn_init_qs8_qc8w_conv_minmax_fp32_scalar_params,
xnn_pack_qs8_conv_goki_w,
xnn_qs8_requantize_fp32);
},
[]() {
TEST_REQUIRES_X86_AVX512AMX;
})),
[](const testing::TestParamInfo<GemmTest::ParamType>& info) {
return info.param.test_name;
});
#endif // XNN_ENABLE_AVX512AMX && (XNN_ARCH_X86 || XNN_ARCH_X86_64)


Expand Down
21 changes: 21 additions & 0 deletions test/qs8-qc8w-igemm-minmax-fp32.cc
Original file line number Diff line number Diff line change
Expand Up @@ -332,6 +332,27 @@ std::vector<GemmTestParams> CreateTests1(
return info.param.test_name;
});

INSTANTIATE_TEST_SUITE_P(
QS8_QC8W_IGEMM_MINMAX_FP32_16X32C4__AVX512AMX_PRFM, GemmTest,
testing::ValuesIn(CreateTests1(
/*k_block=*/64,
/*adj_k_block=*/64,
/*mr=*/16, /*nr=*/32, /*kr=*/4, /*sr=*/1,
/*is_igemm=*/false,
/*unsigned_inputs=*/false,
[](GemmMicrokernelTester& tester) {
tester.Test(xnn_qs8_qc8w_igemm_minmax_fp32_ukernel_16x32c4__avx512amx_prfm,
xnn_init_qs8_qc8w_conv_minmax_fp32_scalar_params,
xnn_pack_qs8_conv_goki_w,
xnn_qs8_requantize_fp32);
},
[]() {
TEST_REQUIRES_X86_AVX512AMX;
})),
[](const testing::TestParamInfo<GemmTest::ParamType>& info) {
return info.param.test_name;
});

INSTANTIATE_TEST_SUITE_P(
QS8_QC8W_IGEMM_MINMAX_FP32_1X64C4__AVX512AMX, GemmTest,
testing::ValuesIn(CreateTests1(
Expand Down
24 changes: 12 additions & 12 deletions test/qs8-qc8w-igemm-minmax-fp32.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,10 @@
init: xnn_init_qs8_qc8w_conv_minmax_fp32_scalar_params
pack: xnn_pack_qs8_conv_goki_w
k-block: 64
#- name: xnn_qs8_qc8w_igemm_minmax_fp32_ukernel_16x16c4__avx512amx_prfm
# init: xnn_init_qs8_qc8w_conv_minmax_fp32_scalar_params
# pack: xnn_pack_qs8_conv_goki_w
# k-block: 64
- name: xnn_qs8_qc8w_igemm_minmax_fp32_ukernel_16x16c4__avx512amx_prfm
init: xnn_init_qs8_qc8w_conv_minmax_fp32_scalar_params
pack: xnn_pack_qs8_conv_goki_w
k-block: 64

- name: xnn_qs8_qc8w_igemm_minmax_fp32_ukernel_1x32c4__avx512amx
init: xnn_init_qs8_qc8w_conv_minmax_fp32_scalar_params
Expand All @@ -33,10 +33,10 @@
init: xnn_init_qs8_qc8w_conv_minmax_fp32_scalar_params
pack: xnn_pack_qs8_conv_goki_w
k-block: 64
#- name: xnn_qs8_qc8w_igemm_minmax_fp32_ukernel_16x32c4__avx512amx_prfm
# init: xnn_init_qs8_qc8w_conv_minmax_fp32_scalar_params
# pack: xnn_pack_qs8_conv_goki_w
# k-block: 64
- name: xnn_qs8_qc8w_igemm_minmax_fp32_ukernel_16x32c4__avx512amx_prfm
init: xnn_init_qs8_qc8w_conv_minmax_fp32_scalar_params
pack: xnn_pack_qs8_conv_goki_w
k-block: 64

- name: xnn_qs8_qc8w_igemm_minmax_fp32_ukernel_1x64c4__avx512amx
init: xnn_init_qs8_qc8w_conv_minmax_fp32_scalar_params
Expand All @@ -50,10 +50,10 @@
init: xnn_init_qs8_qc8w_conv_minmax_fp32_scalar_params
pack: xnn_pack_qs8_conv_goki_w
k-block: 64
#- name: xnn_qs8_qc8w_igemm_minmax_fp32_ukernel_16x64c4__avx512amx_prfm
# init: xnn_init_qs8_qc8w_conv_minmax_fp32_scalar_params
# pack: xnn_pack_qs8_conv_goki_w
# k-block: 64
- name: xnn_qs8_qc8w_igemm_minmax_fp32_ukernel_16x64c4__avx512amx_prfm
init: xnn_init_qs8_qc8w_conv_minmax_fp32_scalar_params
pack: xnn_pack_qs8_conv_goki_w
k-block: 64

# AArch32 assembly
- name: xnn_qs8_qc8w_igemm_minmax_fp32_ukernel_1x8__asm_aarch32_neon_mlal_lane_cortex_a7
Expand Down

0 comments on commit 5ff4949

Please sign in to comment.