From 3302b176fd60c4a8e09726f70667af1f3172d5b7 Mon Sep 17 00:00:00 2001 From: Massimiliano Culpo Date: Mon, 11 Sep 2023 19:03:35 +0200 Subject: Update archspec to latest commit (#39920) - [x] Intel flags for old architectures - [x] Support for Sapphire Rapids - [x] Cache the "ancestors" computation --- lib/spack/external/__init__.py | 2 +- lib/spack/external/archspec/__init__.py | 2 +- .../external/archspec/cpu/microarchitecture.py | 12 ++- .../archspec/json/cpu/microarchitectures.json | 113 ++++++++++++++++++++- 4 files changed, 119 insertions(+), 10 deletions(-) diff --git a/lib/spack/external/__init__.py b/lib/spack/external/__init__.py index 7abfaa4a03..23cd44e604 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.1 (commit 9e1117bd8a2f0581bced161f2a2e8d6294d0300b) +* Version: 0.2.1 (commit df43a1834460bf94516136951c4729a3100603ec) astunparse ---------------- diff --git a/lib/spack/external/archspec/__init__.py b/lib/spack/external/archspec/__init__.py index fbbab9f78a..dfad9f3743 100644 --- a/lib/spack/external/archspec/__init__.py +++ b/lib/spack/external/archspec/__init__.py @@ -1,2 +1,2 @@ """Init file to avoid namespace packages""" -__version__ = "0.2.0" +__version__ = "0.2.1" diff --git a/lib/spack/external/archspec/cpu/microarchitecture.py b/lib/spack/external/archspec/cpu/microarchitecture.py index fdc7707fda..954242736b 100644 --- a/lib/spack/external/archspec/cpu/microarchitecture.py +++ b/lib/spack/external/archspec/cpu/microarchitecture.py @@ -79,14 +79,18 @@ class Microarchitecture: self.features = features self.compilers = compilers self.generation = generation + # Cache the ancestor computation + self._ancestors = None @property def ancestors(self): """All the ancestors of this microarchitecture.""" - value = self.parents[:] - for parent in self.parents: - value.extend(a for a in parent.ancestors if a not in value) - return value + if self._ancestors is None: + value = self.parents[:] + for parent in self.parents: + value.extend(a for a in parent.ancestors if a not in value) + self._ancestors = value + return self._ancestors def _to_set(self): """Returns a set of the nodes in this microarchitecture DAG.""" diff --git a/lib/spack/external/archspec/json/cpu/microarchitectures.json b/lib/spack/external/archspec/json/cpu/microarchitectures.json index a7e8e5d1ca..2ddad29345 100644 --- a/lib/spack/external/archspec/json/cpu/microarchitectures.json +++ b/lib/spack/external/archspec/json/cpu/microarchitectures.json @@ -145,6 +145,13 @@ "flags": "-march={name} -mtune=generic -mcx16 -msahf -mpopcnt -msse3 -msse4.1 -msse4.2 -mssse3" } ], + "intel": [ + { + "versions": "16.0:", + "name": "corei7", + "flags": "-march={name} -mtune=generic -mpopcnt" + } + ], "oneapi": [ { "versions": "2021.2.0:", @@ -217,6 +224,13 @@ "flags": "-march={name} -mtune=generic -mcx16 -msahf -mpopcnt -msse3 -msse4.1 -msse4.2 -mssse3 -mavx -mavx2 -mbmi -mbmi2 -mf16c -mfma -mlzcnt -mmovbe -mxsave" } ], + "intel": [ + { + "versions": "16.0:", + "name": "core-avx2", + "flags": "-march={name} -mtune={name} -fma -mf16c" + } + ], "oneapi": [ { "versions": "2021.2.0:", @@ -300,6 +314,13 @@ "flags": "-march={name} -mtune=generic -mcx16 -msahf -mpopcnt -msse3 -msse4.1 -msse4.2 -mssse3 -mavx -mavx2 -mbmi -mbmi2 -mf16c -mfma -mlzcnt -mmovbe -mxsave -mavx512f -mavx512bw -mavx512cd -mavx512dq -mavx512vl" } ], + "intel": [ + { + "versions": "16.0:", + "name": "skylake-avx512", + "flags": "-march={name} -mtune={name}" + } + ], "oneapi": [ { "versions": "2021.2.0:", @@ -1412,6 +1433,92 @@ ] } }, + "sapphirerapids": { + "from": [ + "icelake" + ], + "vendor": "GenuineIntel", + "features": [ + "mmx", + "sse", + "sse2", + "ssse3", + "sse4_1", + "sse4_2", + "popcnt", + "aes", + "pclmulqdq", + "avx", + "rdrand", + "f16c", + "movbe", + "fma", + "avx2", + "bmi1", + "bmi2", + "rdseed", + "adx", + "clflushopt", + "xsavec", + "xsaveopt", + "avx512f", + "avx512vl", + "avx512bw", + "avx512dq", + "avx512cd", + "avx512vbmi", + "avx512ifma", + "sha_ni", + "clwb", + "rdpid", + "gfni", + "avx512_vbmi2", + "avx512_vpopcntdq", + "avx512_bitalg", + "avx512_vnni", + "vpclmulqdq", + "vaes", + "avx512_bf16", + "cldemote", + "movdir64b", + "movdiri", + "pdcm", + "serialize", + "waitpkg" + ], + "compilers": { + "gcc": [ + { + "versions": "11.0:", + "flags": "-march={name} -mtune={name}" + } + ], + "clang": [ + { + "versions": "12.0:", + "flags": "-march={name} -mtune={name}" + } + ], + "intel": [ + { + "versions": "2021.2:", + "flags": "-march={name} -mtune={name}" + } + ], + "oneapi": [ + { + "versions": "2021.2:", + "flags": "-march={name} -mtune={name}" + } + ], + "dpcpp": [ + { + "versions": "2021.2:", + "flags": "-march={name} -mtune={name}" + } + ] + } + }, "k10": { "from": ["x86_64"], "vendor": "AuthenticAMD", @@ -2065,8 +2172,6 @@ "pku", "gfni", "flush_l1d", - "erms", - "avic", "avx512f", "avx512dq", "avx512ifma", @@ -2083,12 +2188,12 @@ "compilers": { "gcc": [ { - "versions": "10.3:13.0", + "versions": "10.3:12.2", "name": "znver3", "flags": "-march={name} -mtune={name} -mavx512f -mavx512dq -mavx512ifma -mavx512cd -mavx512bw -mavx512vl -mavx512vbmi -mavx512vbmi2 -mavx512vnni -mavx512bitalg" }, { - "versions": "13.1:", + "versions": "12.3:", "name": "znver4", "flags": "-march={name} -mtune={name}" } -- cgit v1.2.3-60-g2f50