Skip to content

Commit 2a75e54

Browse files
fbarchardxnnpack-bot
authored andcommitted
Use immutabledict for global constants in python scripts
PiperOrigin-RevId: 914562268
1 parent 3ca1b08 commit 2a75e54

4 files changed

Lines changed: 26 additions & 20 deletions

File tree

tools/generate-vbinary-test.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
import re
1212
import sys
1313
import yaml
14+
from immutabledict import immutabledict
1415

1516
sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))
1617
import xngen
@@ -44,7 +45,7 @@
4445
)
4546
parser.set_defaults(defines=list())
4647

47-
OP_TYPES = {
48+
OP_TYPES = immutabledict({
4849
"vadd": "Add",
4950
"vaddc": "Add",
5051
"vcopysign": "CopySign",
@@ -71,7 +72,7 @@
7172
"vprelu": "Prelu",
7273
"vpreluc": "Prelu",
7374
"vrpreluc": "RPrelu",
74-
}
75+
})
7576

7677
BINOP_TEST_TEMPLATE = """
7778
#define XNN_UKERNEL(arch_flags, ukernel, batch_tile, vector_tile, datatype, params_type, init_params)

tools/generate-vunary-test.py

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,10 @@
88
import math
99
import os
1010
import sys
11-
import types
1211
from typing import NamedTuple
1312

13+
from immutabledict import immutabledict
14+
1415
sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))
1516
import xngen
1617
import xnncommon
@@ -41,7 +42,7 @@ class SpecialValues(NamedTuple):
4142
expected_outputs: str
4243
tolerance_ulp: int
4344

44-
OP_TYPES = {
45+
OP_TYPES = immutabledict({
4546
"vabs": "Abs",
4647
"vapproxgelu": "ApproxGELU",
4748
"vclamp": "Clamp",
@@ -63,11 +64,11 @@ class SpecialValues(NamedTuple):
6364
"vsqr": "Square",
6465
"vsqrt": "SquareRoot",
6566
"vtanh": "TanH",
66-
}
67+
})
6768

6869
PARAMS_TYPES = ["Clamp", "ELU", "LeakyReLU"]
6970

70-
SPECIAL_VALUES_BY_OP_TYPE_F32 = types.MappingProxyType({
71+
SPECIAL_VALUES_BY_OP_TYPE_F32 = immutabledict({
7172
"SquareRoot": SpecialValues(
7273
num_elements=4,
7374
inputs="{0.0f, -0.0f, 1.0f, -1.0f}",
@@ -127,7 +128,7 @@ class SpecialValues(NamedTuple):
127128
})
128129

129130

130-
SPECIAL_VALUES_BY_OP_TYPE_F16 = types.MappingProxyType({
131+
SPECIAL_VALUES_BY_OP_TYPE_F16 = immutabledict({
131132
"Log": SpecialValues(
132133
num_elements=4,
133134
inputs="{1.0f, -1.0f, 0.0f, -0.0f}",

tools/update-microkernels.py

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@
1010
import os
1111
import re
1212
import sys
13+
from immutabledict import immutabledict
14+
1315

1416
parser = argparse.ArgumentParser(
1517
description='Utility for re-generating microkernel lists'
@@ -81,12 +83,12 @@
8183
'wasmsimd',
8284
})
8385

84-
_ISA_MAP = {
86+
_ISA_MAP = immutabledict({
8587
'wasmblendvps': 'wasmrelaxedsimd',
8688
'wasmpshufb': 'wasmrelaxedsimd',
8789
'wasmsdot': 'wasmrelaxedsimd',
8890
'wasmusdot': 'wasmrelaxedsimd',
89-
}
91+
})
9092

9193
_ARCH_LIST = frozenset({
9294
'aarch32',
@@ -101,12 +103,12 @@
101103
r'\bxnn_(?:[a-z0-9]+(?:_[a-z0-9]+)*)_ukernel(?:_[a-z0-9]+)*__(?:[a-z0-9]+(?:_[a-z0-9]+)*)\b'
102104
)
103105

104-
_VERIFICATION_IGNORE_SUBDIRS = {
106+
_VERIFICATION_IGNORE_SUBDIRS = frozenset({
105107
os.path.join('src', 'qs8-requantization'),
106108
os.path.join('src', 'qu8-requantization'),
107109
os.path.join('src', 'reference'),
108110
os.path.join('src', 'xnnpack', 'simd'),
109-
}
111+
})
110112

111113

112114
def overwrite_if_changed(filepath, content):

tools/xnncommon.py

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@
66

77
import codecs
88
import os
9+
from immutabledict import immutabledict
10+
911

1012

1113
def _indent(text):
@@ -23,7 +25,7 @@ def _remove_duplicate_newlines(text):
2325
return "\n".join(filtered_lines)
2426

2527

26-
_ARCH_TO_MACRO_MAP = {
28+
_ARCH_TO_MACRO_MAP = immutabledict({
2729
"aarch32": "XNN_ARCH_ARM",
2830
"aarch64": "XNN_ARCH_ARM64",
2931
"x86-32": "XNN_ARCH_X86",
@@ -38,11 +40,11 @@ def _remove_duplicate_newlines(text):
3840
"wasmsimd32": "XNN_ARCH_WASMSIMD",
3941
"wasmrelaxedsimd32": "XNN_ARCH_WASMRELAXEDSIMD",
4042
"wasmrelaxedsimdfp16": "XNN_ARCH_WASMRELAXEDSIMDFP16",
41-
}
43+
})
4244

4345
# Mapping from ISA extension to macro guarding build-time enabled/disabled
4446
# status for the ISA. Only ISAs that can be enabled/disabled have an entry.
45-
_ISA_TO_MACRO_MAP = {
47+
_ISA_TO_MACRO_MAP = immutabledict({
4648
"fp16arith": "XNN_ENABLE_ARM_FP16_SCALAR",
4749
"neonfp16arith": "XNN_ENABLE_ARM_FP16_VECTOR",
4850
"neonbf16": "XNN_ENABLE_ARM_BF16",
@@ -75,9 +77,9 @@ def _remove_duplicate_newlines(text):
7577
"avx512fp16": "XNN_ENABLE_AVX512FP16",
7678
"avx512bf16": "XNN_ENABLE_AVX512BF16",
7779
"hvx": "XNN_ENABLE_HVX",
78-
}
80+
})
7981

80-
_ISA_TO_ARCH_MAP = {
82+
_ISA_TO_ARCH_MAP = immutabledict({
8183
"armsimd32": ["aarch32"],
8284
"fp16arith": ["aarch32", "aarch64"],
8385
"neon": ["aarch32", "aarch64"],
@@ -124,9 +126,9 @@ def _remove_duplicate_newlines(text):
124126
"wasmsdot": ["wasmrelaxedsimd"],
125127
"wasmusdot": ["wasmrelaxedsimd"],
126128
"wasmblendvps": ["wasmrelaxedsimd"],
127-
}
129+
})
128130

129-
_ISA_TO_ARCH_FLAGS_MAP = {
131+
_ISA_TO_ARCH_FLAGS_MAP = immutabledict({
130132
"armsimd32": "xnn_arch_arm_v6",
131133
"fp16arith": "xnn_arch_arm_fp16_arith",
132134
"neon": "xnn_arch_arm_neon",
@@ -168,7 +170,7 @@ def _remove_duplicate_newlines(text):
168170
"wasmsdot": "xnn_arch_wasm_sdot",
169171
"wasmusdot": "xnn_arch_wasm_usdot",
170172
"wasmblendvps": "xnn_arch_wasm_blendvps",
171-
}
173+
})
172174

173175

174176
def isa_hierarchy_map():
@@ -268,7 +270,7 @@ def postprocess_test_case(test_case, arch, isa, assembly=False):
268270
"hvx",
269271
]
270272

271-
_ISA_HIERARCHY_MAP = {isa: v for v, isa in enumerate(_ISA_HIERARCHY)}
273+
_ISA_HIERARCHY_MAP = immutabledict({isa: v for v, isa in enumerate(_ISA_HIERARCHY)})
272274

273275

274276
def overwrite_if_changed(filepath, content):

0 commit comments

Comments
 (0)