Skip to content

Commit 478d3c4

Browse files
committed
Enable AVXVNNI microkernels for mobile platforms
AlderLake onwards x86 mobile platform supports avxvnni Signed-off-by: Ravi Kumar Soni <[email protected]>
1 parent 5a99118 commit 478d3c4

File tree

3 files changed

+8
-8
lines changed

3 files changed

+8
-8
lines changed

CMakeLists.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -146,7 +146,7 @@ ELSEIF(CMAKE_C_COMPILER_ID STREQUAL "Clang")
146146
ENDIF()
147147
ENDIF()
148148
OPTION(XNNPACK_ENABLE_AVXVNNIINT8 "Build XNNPACK with AVX-VNNI-INT8 micro-kernels" ON)
149-
IF(CMAKE_SYSTEM_NAME MATCHES "^(Android|Darwin|iOS)$")
149+
IF(CMAKE_SYSTEM_NAME MATCHES "^(Darwin|iOS)$")
150150
SET(XNNPACK_ENABLE_AVXVNNIINT8 OFF)
151151
ENDIF()
152152
IF(CMAKE_C_COMPILER_ID STREQUAL "GNU")

src/configs/gemm-config.c

+6-6
Original file line numberDiff line numberDiff line change
@@ -2865,7 +2865,7 @@ static void init_qdu8_f16_qc8w_gemm_config(void) {
28652865
} else
28662866
#endif
28672867
#if XNN_ENABLE_AVXVNNI
2868-
if (!XNN_PLATFORM_MOBILE && hardware_config->use_x86_avxvnni) {
2868+
if (!XNN_PLATFORM_IOS && hardware_config->use_x86_avxvnni) {
28692869
// AVX VNNI checked before AVX512SKX as it performs better with VNNI microkernels
28702870
qdu8_f16_qc8w_gemm_config.arch = xnn_arch_x86_avxvnni;
28712871
qdu8_f16_qc8w_gemm_config.minmax.dqgemm[XNN_MR_TO_INDEX(1)] = xnn_init_hmp_dqgemm_ukernel((xnn_dqgemm_ukernel_fn) xnn_qd8_f16_qc8w_gemm_minmax_ukernel_1x8c8__avxvnni_prfm);
@@ -3225,7 +3225,7 @@ static void init_qdu8_f32_qc8w_gemm_config(void) {
32253225
} else
32263226
#endif
32273227
#if XNN_ENABLE_AVXVNNI
3228-
if (!XNN_PLATFORM_MOBILE && hardware_config->use_x86_avxvnni) {
3228+
if (!XNN_PLATFORM_IOS && hardware_config->use_x86_avxvnni) {
32293229
qdu8_f32_qc8w_gemm_config.arch = xnn_arch_x86_avxvnni;
32303230
qdu8_f32_qc8w_gemm_config.minmax.dqgemm[XNN_MR_TO_INDEX(1)] = xnn_init_hmp_dqgemm_ukernel((xnn_dqgemm_ukernel_fn) xnn_qd8_f32_qc8w_gemm_minmax_ukernel_1x8c8__avxvnni_prfm);
32313231
qdu8_f32_qc8w_gemm_config.minmax.dqgemm[XNN_MR_TO_INDEX(5)] = xnn_init_hmp_dqgemm_ukernel((xnn_dqgemm_ukernel_fn) xnn_qd8_f32_qc8w_gemm_minmax_ukernel_5x8c8__avxvnni_prfm);
@@ -3281,7 +3281,7 @@ static void init_qdu8_f32_qc8w_igemm_config(void) {
32813281
} else
32823282
#endif
32833283
#if XNN_ENABLE_AVXVNNI
3284-
if (!XNN_PLATFORM_MOBILE && hardware_config->use_x86_avxvnni) {
3284+
if (!XNN_PLATFORM_IOS && hardware_config->use_x86_avxvnni) {
32853285
qdu8_f32_qc8w_igemm_config.arch = xnn_arch_x86_avxvnni;
32863286
qdu8_f32_qc8w_igemm_config.minmax.dqigemm[XNN_MR_TO_INDEX(1)] = xnn_init_hmp_dqigemm_ukernel((xnn_dqigemm_ukernel_fn) xnn_qd8_f32_qc8w_igemm_minmax_ukernel_1x8c8__avxvnni_prfm);
32873287
qdu8_f32_qc8w_igemm_config.minmax.dqigemm[XNN_MR_TO_INDEX(5)] = xnn_init_hmp_dqigemm_ukernel((xnn_dqigemm_ukernel_fn) xnn_qd8_f32_qc8w_igemm_minmax_ukernel_5x8c8__avxvnni_prfm);
@@ -3341,7 +3341,7 @@ static void init_qdu8_f32_qc4w_gemm_config(void) {
33413341
} else
33423342
#endif
33433343
#if XNN_ENABLE_AVXVNNI
3344-
if (!XNN_PLATFORM_MOBILE && hardware_config->use_x86_avxvnni) {
3344+
if (!XNN_PLATFORM_IOS && hardware_config->use_x86_avxvnni) {
33453345
qdu8_f32_qc4w_gemm_config.arch = xnn_arch_x86_avxvnni;
33463346
qdu8_f32_qc4w_gemm_config.minmax.dqgemm[XNN_MR_TO_INDEX(1)] = xnn_init_hmp_dqgemm_ukernel((xnn_dqgemm_ukernel_fn) xnn_qd8_f32_qc4w_gemm_minmax_ukernel_1x8c8__avxvnni_prfm);
33473347
qdu8_f32_qc4w_gemm_config.minmax.dqgemm[XNN_MR_TO_INDEX(5)] = xnn_init_hmp_dqgemm_ukernel((xnn_dqgemm_ukernel_fn) xnn_qd8_f32_qc4w_gemm_minmax_ukernel_5x8c8__avxvnni_prfm);
@@ -4484,7 +4484,7 @@ static void init_qs8_qc8w_gemm_config(void) {
44844484
} else
44854485
#endif
44864486
#if XNN_ENABLE_AVXVNNIINT8 && XNN_ENABLE_AVXVNNI
4487-
if (!XNN_PLATFORM_MOBILE && hardware_config->use_x86_avxvnniint8 && hardware_config->use_x86_avxvnni) {
4487+
if (!XNN_PLATFORM_IOS && hardware_config->use_x86_avxvnniint8 && hardware_config->use_x86_avxvnni) {
44884488
qs8_qc8w_gemm_config.minmax.gemm[XNN_MR_TO_INDEX(1)] = xnn_init_hmp_gemm_ukernel((xnn_gemm_ukernel_fn) xnn_qs8_qc8w_gemm_minmax_fp32_ukernel_1x8c8__avxvnniint8_prfm);
44894489
qs8_qc8w_gemm_config.minmax.gemm[XNN_MR_TO_INDEX(5)] = xnn_init_hmp_gemm_ukernel((xnn_gemm_ukernel_fn) xnn_qs8_qc8w_gemm_minmax_fp32_ukernel_5x8c8__avxvnniint8_prfm);
44904490
qs8_qc8w_gemm_config.minmax.igemm[XNN_MR_TO_INDEX(1)] = xnn_init_hmp_igemm_ukernel((xnn_igemm_ukernel_fn) xnn_qs8_qc8w_igemm_minmax_fp32_ukernel_1x8c8__avxvnniint8_prfm);
@@ -4503,7 +4503,7 @@ static void init_qs8_qc8w_gemm_config(void) {
45034503
} else
45044504
#endif
45054505
#if XNN_ENABLE_AVXVNNI
4506-
if (!XNN_PLATFORM_MOBILE && hardware_config->use_x86_avxvnni) {
4506+
if (!XNN_PLATFORM_IOS && hardware_config->use_x86_avxvnni) {
45074507
qs8_qc8w_gemm_config.minmax.gemm[XNN_MR_TO_INDEX(1)] = xnn_init_hmp_gemm_ukernel((xnn_gemm_ukernel_fn) xnn_qs8_qc8w_gemm_minmax_fp32_ukernel_1x8c8__avxvnni_prfm);
45084508
qs8_qc8w_gemm_config.minmax.gemm[XNN_MR_TO_INDEX(5)] = xnn_init_hmp_gemm_ukernel((xnn_gemm_ukernel_fn) xnn_qs8_qc8w_gemm_minmax_fp32_ukernel_5x8c8__avxvnni_prfm);
45094509
qs8_qc8w_gemm_config.minmax.igemm[XNN_MR_TO_INDEX(1)] = xnn_init_hmp_igemm_ukernel((xnn_igemm_ukernel_fn) xnn_qs8_qc8w_igemm_minmax_fp32_ukernel_1x8c8__avxvnni_prfm);

src/configs/reduce-config.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -524,7 +524,7 @@ static void init_qs8_rsum_config(void) {
524524
} else
525525
#endif
526526
#if XNN_ENABLE_AVXVNNI
527-
if (!XNN_PLATFORM_MOBILE && hardware_config->use_x86_avxvnni) {
527+
if (!XNN_PLATFORM_IOS && hardware_config->use_x86_avxvnni) {
528528
qs8_rsum_config = (struct xnn_reduce_config) {
529529
.ukernel = (xnn_reduce_ukernel_fn) xnn_qs8_rsum_ukernel__avxvnni_u128_acc2,
530530
};

0 commit comments

Comments
 (0)