Skip to content

Commit 91c50e3

Browse files
gonnetxnnpack-bot
authored andcommitted
Internal change only.
PiperOrigin-RevId: 745037841
1 parent 1358d4e commit 91c50e3

File tree

3 files changed

+47
-33
lines changed

3 files changed

+47
-33
lines changed

build_params.bzl

+28-28
Original file line numberDiff line numberDiff line change
@@ -36,115 +36,115 @@ def xnnpack_select_if(cond = None, val_true = [], val_false = []):
3636

3737
def xnnpack_configurable_defines():
3838
return xnnpack_select_if(
39-
":cpuinfo_enabled",
39+
"//:cpuinfo_enabled",
4040
["XNN_ENABLE_CPUINFO=1"],
4141
["XNN_ENABLE_CPUINFO=0"],
4242
) + xnnpack_select_if(
43-
":memopt_enabled",
43+
"//:memopt_enabled",
4444
["XNN_ENABLE_MEMOPT=1"],
4545
["XNN_ENABLE_MEMOPT=1"],
4646
) + xnnpack_select_if(
47-
":sparse_enabled",
47+
"//:sparse_enabled",
4848
["XNN_ENABLE_SPARSE=1"],
4949
["XNN_ENABLE_SPARSE=0"],
5050
) + xnnpack_select_if(
51-
":assembly_enabled",
51+
"//:assembly_enabled",
5252
["XNN_ENABLE_ASSEMBLY=1"],
5353
["XNN_ENABLE_ASSEMBLY=0"],
5454
) + xnnpack_select_if(
55-
":arm_fp16_scalar_enabled",
55+
"//:arm_fp16_scalar_enabled",
5656
["XNN_ENABLE_ARM_FP16_SCALAR=1"],
5757
["XNN_ENABLE_ARM_FP16_SCALAR=0"],
5858
) + xnnpack_select_if(
59-
":arm_fp16_vector_enabled",
59+
"//:arm_fp16_vector_enabled",
6060
["XNN_ENABLE_ARM_FP16_VECTOR=1"],
6161
["XNN_ENABLE_ARM_FP16_VECTOR=0"],
6262
) + xnnpack_select_if(
63-
":arm_bf16_enabled",
63+
"//:arm_bf16_enabled",
6464
["XNN_ENABLE_ARM_BF16=1"],
6565
["XNN_ENABLE_ARM_BF16=0"],
6666
) + xnnpack_select_if(
67-
":arm_dotprod_enabled",
67+
"//:arm_dotprod_enabled",
6868
["XNN_ENABLE_ARM_DOTPROD=1"],
6969
["XNN_ENABLE_ARM_DOTPROD=0"],
7070
) + xnnpack_select_if(
71-
":arm_i8mm_enabled",
71+
"//:arm_i8mm_enabled",
7272
["XNN_ENABLE_ARM_I8MM=1"],
7373
["XNN_ENABLE_ARM_I8MM=0"],
7474
) + xnnpack_select_if(
75-
":riscv_fp16_vector_enabled",
75+
"//:riscv_fp16_vector_enabled",
7676
["XNN_ENABLE_RISCV_FP16_VECTOR=1"],
7777
["XNN_ENABLE_RISCV_FP16_VECTOR=0"],
7878
) + xnnpack_select_if(
79-
":avx512amx_enabled",
79+
"//:avx512amx_enabled",
8080
["XNN_ENABLE_AVX512AMX=1"],
8181
["XNN_ENABLE_AVX512AMX=0"],
8282
) + xnnpack_select_if(
83-
":avx512fp16_enabled",
83+
"//:avx512fp16_enabled",
8484
["XNN_ENABLE_AVX512FP16=1"],
8585
["XNN_ENABLE_AVX512FP16=0"],
8686
) + xnnpack_select_if(
87-
":avx512bf16_enabled",
87+
"//:avx512bf16_enabled",
8888
["XNN_ENABLE_AVX512BF16=1"],
8989
["XNN_ENABLE_AVX512BF16=0"],
9090
) + xnnpack_select_if(
91-
":avxvnni_enabled",
91+
"//:avxvnni_enabled",
9292
["XNN_ENABLE_AVXVNNI=1"],
9393
["XNN_ENABLE_AVXVNNI=0"],
9494
) + xnnpack_select_if(
95-
":avxvnniint8_enabled",
95+
"//:avxvnniint8_enabled",
9696
["XNN_ENABLE_AVXVNNIINT8=1"],
9797
["XNN_ENABLE_AVXVNNIINT8=0"],
9898
) + xnnpack_select_if(
99-
":avx512f_enabled",
99+
"//:avx512f_enabled",
100100
["XNN_ENABLE_AVX512F=1"],
101101
["XNN_ENABLE_AVX512F=0"],
102102
) + xnnpack_select_if(
103-
":avx256skx_enabled",
103+
"//:avx256skx_enabled",
104104
["XNN_ENABLE_AVX256SKX=1"],
105105
["XNN_ENABLE_AVX256SKX=0"],
106106
) + xnnpack_select_if(
107-
":avx256vnni_enabled",
107+
"//:avx256vnni_enabled",
108108
["XNN_ENABLE_AVX256VNNI=1"],
109109
["XNN_ENABLE_AVX256VNNI=0"],
110110
) + xnnpack_select_if(
111-
":avx256vnnigfni_enabled",
111+
"//:avx256vnnigfni_enabled",
112112
["XNN_ENABLE_AVX256VNNIGFNI=1"],
113113
["XNN_ENABLE_AVX256VNNIGFNI=0"],
114114
) + xnnpack_select_if(
115-
":avx512skx_enabled",
115+
"//:avx512skx_enabled",
116116
["XNN_ENABLE_AVX512SKX=1"],
117117
["XNN_ENABLE_AVX512SKX=0"],
118118
) + xnnpack_select_if(
119-
":avx512vbmi_enabled",
119+
"//:avx512vbmi_enabled",
120120
["XNN_ENABLE_AVX512VBMI=1"],
121121
["XNN_ENABLE_AVX512VBMI=0"],
122122
) + xnnpack_select_if(
123-
":avx512vnni_enabled",
123+
"//:avx512vnni_enabled",
124124
["XNN_ENABLE_AVX512VNNI=1"],
125125
["XNN_ENABLE_AVX512VNNI=0"],
126126
) + xnnpack_select_if(
127-
":avx512vnnigfni_enabled",
127+
"//:avx512vnnigfni_enabled",
128128
["XNN_ENABLE_AVX512VNNIGFNI=1"],
129129
["XNN_ENABLE_AVX512VNNIGFNI=0"],
130130
) + xnnpack_select_if(
131-
":hvx_enabled",
131+
"//:hvx_enabled",
132132
["XNN_ENABLE_HVX=1"],
133133
["XNN_ENABLE_HVX=0"],
134134
) + xnnpack_select_if(
135-
":kleidiai_enabled",
135+
"//:kleidiai_enabled",
136136
["XNN_ENABLE_KLEIDIAI=1"],
137137
["XNN_ENABLE_KLEIDIAI=0"],
138138
) + xnnpack_select_if(
139-
":arm_sme_enabled",
139+
"//:arm_sme_enabled",
140140
["XNN_ENABLE_ARM_SME=1"],
141141
["XNN_ENABLE_SRM_SME=0"],
142142
) + xnnpack_select_if(
143-
":arm_sme2_enabled",
143+
"//:arm_sme2_enabled",
144144
["XNN_ENABLE_ARM_SME2=1"],
145145
["XNN_ENABLE_ARM_SME2=0"],
146146
) + xnnpack_select_if(
147-
":wasm_revectorize_enabled",
147+
"//:wasm_revectorize_enabled",
148148
["XNN_ENABLE_WASM_REVECTORIZE=1"],
149149
["XNN_ENABLE_WASM_REVECTORIZE=0"],
150150
) + xnnpack_slinky_defines()

src/configs/hardware-config.c

+15-4
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
// This source code is licensed under the BSD-style license found in the
44
// LICENSE file in the root directory of this source tree.
55

6+
#include <assert.h>
67
#include <stddef.h>
78

89
#if XNN_ENABLE_CPUINFO
@@ -68,8 +69,17 @@ static struct xnn_hardware_config hardware_config = {0};
6869

6970
XNN_INIT_ONCE_GUARD(hardware);
7071

72+
// TODO(b/409244409): Remove before end of 2025/Q2.
73+
#if XNN_ARCH_ARM64
74+
bool xnn_enable_arm_sme2_default = (bool)XNN_ENABLE_ARM_SME2;
75+
#endif // XNN_ARCH_ARM64
76+
7177
static void init_hardware_config(void) {
72-
#if XNN_ARCH_ARM64 || XNN_ARCH_ARM
78+
static bool already_called = false;
79+
assert(!already_called);
80+
already_called = true;
81+
82+
#if XNN_ARCH_ARM64 || XNN_ARCH_ARM
7383
#if XNN_PLATFORM_WINDOWS
7484
SYSTEM_INFO system_info;
7585
GetSystemInfo(&system_info);
@@ -110,10 +120,11 @@ static void init_hardware_config(void) {
110120
hardware_config.use_arm_sve = cpuinfo_has_arm_sve();
111121
hardware_config.use_arm_sve2 = cpuinfo_has_arm_sve2();
112122
hardware_config.use_arm_sme = cpuinfo_has_arm_sme();
113-
hardware_config.use_arm_sme2 = cpuinfo_has_arm_sme2();
114-
#endif
123+
hardware_config.use_arm_sme2 =
124+
xnn_enable_arm_sme2_default && cpuinfo_has_arm_sme2();
125+
#endif
115126

116-
#if XNN_ARCH_X86 || XNN_ARCH_X86_64
127+
#if XNN_ARCH_X86 || XNN_ARCH_X86_64
117128
hardware_config.use_x86_ssse3 = cpuinfo_has_x86_ssse3();
118129
hardware_config.use_x86_sse4_1 = cpuinfo_has_x86_sse4_1();
119130
hardware_config.use_x86_avx = cpuinfo_has_x86_avx();

src/xnnpack/hardware-config.h

+4-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,8 @@
33
// This source code is licensed under the BSD-style license found in the
44
// LICENSE file in the root directory of this source tree.
55

6-
#pragma once
6+
#ifndef THIRD_PARTY_XNNPACK_SRC_XNNPACK_HARDWARE_CONFIG_H_
7+
#define THIRD_PARTY_XNNPACK_SRC_XNNPACK_HARDWARE_CONFIG_H_
78

89
#include <stdbool.h>
910
#include <stddef.h>
@@ -221,3 +222,5 @@ static inline bool xnn_is_f16_supported_natively(
221222
#ifdef __cplusplus
222223
} // extern "C"
223224
#endif
225+
226+
#endif // THIRD_PARTY_XNNPACK_SRC_XNNPACK_HARDWARE_CONFIG_H_

0 commit comments

Comments
 (0)