summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMassimiliano Culpo <massimiliano.culpo@gmail.com>2024-10-14 19:09:17 +0200
committerGitHub <noreply@github.com>2024-10-14 19:09:17 +0200
commit66a3c7bc4266f650a5aeb814489cf3143c7da517 (patch)
treebfe7554deb161ddf99b31d8dfd19ff1c0905e00b
parent8b3d3ac2de3809479f1594e4afec7587abfe8e55 (diff)
downloadspack-66a3c7bc4266f650a5aeb814489cf3143c7da517.tar.gz
spack-66a3c7bc4266f650a5aeb814489cf3143c7da517.tar.bz2
spack-66a3c7bc4266f650a5aeb814489cf3143c7da517.tar.xz
spack-66a3c7bc4266f650a5aeb814489cf3143c7da517.zip
archspec: update to v0.2.5 (#46958)
Signed-off-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>
-rw-r--r--lib/spack/external/__init__.py2
-rw-r--r--lib/spack/external/archspec/cpu/microarchitecture.py25
-rw-r--r--lib/spack/external/archspec/json/cpu/microarchitectures.json79
3 files changed, 96 insertions, 10 deletions
diff --git a/lib/spack/external/__init__.py b/lib/spack/external/__init__.py
index 603cb412c8..672bf17f80 100644
--- a/lib/spack/external/__init__.py
+++ b/lib/spack/external/__init__.py
@@ -18,7 +18,7 @@ archspec
* Homepage: https://pypi.python.org/pypi/archspec
* Usage: Labeling, comparison and detection of microarchitectures
-* Version: 0.2.5-dev (commit bceb39528ac49dd0c876b2e9bf3e7482e9c2be4a)
+* Version: 0.2.5 (commit 38ce485258ffc4fc6dd6688f8dc90cb269478c47)
astunparse
----------------
diff --git a/lib/spack/external/archspec/cpu/microarchitecture.py b/lib/spack/external/archspec/cpu/microarchitecture.py
index 3f4e30fab5..bb85b9f37c 100644
--- a/lib/spack/external/archspec/cpu/microarchitecture.py
+++ b/lib/spack/external/archspec/cpu/microarchitecture.py
@@ -81,8 +81,13 @@ class Microarchitecture:
self.generation = generation
# Only relevant for AArch64
self.cpu_part = cpu_part
- # Cache the ancestor computation
+
+ # Cache the "ancestor" computation
self._ancestors = None
+ # Cache the "generic" computation
+ self._generic = None
+ # Cache the "family" computation
+ self._family = None
@property
def ancestors(self):
@@ -174,18 +179,22 @@ class Microarchitecture:
@property
def family(self):
"""Returns the architecture family a given target belongs to"""
- roots = [x for x in [self] + self.ancestors if not x.ancestors]
- msg = "a target is expected to belong to just one architecture family"
- msg += f"[found {', '.join(str(x) for x in roots)}]"
- assert len(roots) == 1, msg
+ if self._family is None:
+ roots = [x for x in [self] + self.ancestors if not x.ancestors]
+ msg = "a target is expected to belong to just one architecture family"
+ msg += f"[found {', '.join(str(x) for x in roots)}]"
+ assert len(roots) == 1, msg
+ self._family = roots.pop()
- return roots.pop()
+ return self._family
@property
def generic(self):
"""Returns the best generic architecture that is compatible with self"""
- generics = [x for x in [self] + self.ancestors if x.vendor == "generic"]
- return max(generics, key=lambda x: len(x.ancestors))
+ if self._generic is None:
+ generics = [x for x in [self] + self.ancestors if x.vendor == "generic"]
+ self._generic = max(generics, key=lambda x: len(x.ancestors))
+ return self._generic
def to_dict(self):
"""Returns a dictionary representation of this object."""
diff --git a/lib/spack/external/archspec/json/cpu/microarchitectures.json b/lib/spack/external/archspec/json/cpu/microarchitectures.json
index bb73dd0195..9275422ef4 100644
--- a/lib/spack/external/archspec/json/cpu/microarchitectures.json
+++ b/lib/spack/external/archspec/json/cpu/microarchitectures.json
@@ -1482,7 +1482,6 @@
"cldemote",
"movdir64b",
"movdiri",
- "pdcm",
"serialize",
"waitpkg"
],
@@ -2237,6 +2236,84 @@
]
}
},
+ "zen5": {
+ "from": ["zen4"],
+ "vendor": "AuthenticAMD",
+ "features": [
+ "abm",
+ "aes",
+ "avx",
+ "avx2",
+ "avx512_bf16",
+ "avx512_bitalg",
+ "avx512bw",
+ "avx512cd",
+ "avx512dq",
+ "avx512f",
+ "avx512ifma",
+ "avx512vbmi",
+ "avx512_vbmi2",
+ "avx512vl",
+ "avx512_vnni",
+ "avx512_vp2intersect",
+ "avx512_vpopcntdq",
+ "avx_vnni",
+ "bmi1",
+ "bmi2",
+ "clflushopt",
+ "clwb",
+ "clzero",
+ "cppc",
+ "cx16",
+ "f16c",
+ "flush_l1d",
+ "fma",
+ "fsgsbase",
+ "gfni",
+ "ibrs_enhanced",
+ "mmx",
+ "movbe",
+ "movdir64b",
+ "movdiri",
+ "pclmulqdq",
+ "popcnt",
+ "rdseed",
+ "sse",
+ "sse2",
+ "sse4_1",
+ "sse4_2",
+ "sse4a",
+ "ssse3",
+ "tsc_adjust",
+ "vaes",
+ "vpclmulqdq",
+ "xsavec",
+ "xsaveopt"
+ ],
+ "compilers": {
+ "gcc": [
+ {
+ "versions": "14.1:",
+ "name": "znver5",
+ "flags": "-march={name} -mtune={name}"
+ }
+ ],
+ "aocc": [
+ {
+ "versions": "5.0:",
+ "name": "znver5",
+ "flags": "-march={name} -mtune={name}"
+ }
+ ],
+ "clang": [
+ {
+ "versions": "19.1:",
+ "name": "znver5",
+ "flags": "-march={name} -mtune={name}"
+ }
+ ]
+ }
+ },
"ppc64": {
"from": [],
"vendor": "generic",