From 2468ccee586026ab075f3b5ae60a0d1d64221b96 Mon Sep 17 00:00:00 2001 From: Massimiliano Culpo Date: Tue, 24 Sep 2019 06:54:13 +0200 Subject: AMD: fix architecture hierarchy (zen) (#12913) * microarchitectures: zen starts from x86_64, not from excavator * Unit tests: fixed a test that is wrong with the new modeling * microarchitectures: fixed features and inheritance for 15h family bulldozer doesn't inherit from barcelona (10h) + added xop, lwp and tbm instruction sets to the 15h family (it distinguish the family from 17h) --- lib/spack/llnl/util/cpu/microarchitectures.json | 30 ++++++++++------------ .../spack/test/data/targets/linux-rhel6-piledriver | 29 +++++++++++++++++++++ lib/spack/spack/test/llnl/util/cpu.py | 3 ++- 3 files changed, 45 insertions(+), 17 deletions(-) create mode 100644 lib/spack/spack/test/data/targets/linux-rhel6-piledriver (limited to 'lib') diff --git a/lib/spack/llnl/util/cpu/microarchitectures.json b/lib/spack/llnl/util/cpu/microarchitectures.json index d540d11194..1ee782b408 100644 --- a/lib/spack/llnl/util/cpu/microarchitectures.json +++ b/lib/spack/llnl/util/cpu/microarchitectures.json @@ -514,19 +514,8 @@ } } }, - "barcelona": { - "from": "x86_64", - "vendor": "AuthenticAMD", - "features": [ - "mmx", - "sse", - "sse2", - "sse4a", - "abm" - ] - }, "bulldozer": { - "from": "barcelona", + "from": "x86_64", "vendor": "AuthenticAMD", "features": [ "mmx", @@ -562,6 +551,8 @@ "sse4a", "abm", "avx", + "xop", + "lwp", "aes", "pclmulqdq", "cx16", @@ -570,7 +561,8 @@ "sse4_2", "bmi1", "f16c", - "fma" + "fma", + "tbm" ], "compilers": { "gcc": { @@ -590,6 +582,8 @@ "sse4a", "abm", "avx", + "xop", + "lwp", "aes", "pclmulqdq", "cx16", @@ -599,7 +593,8 @@ "bmi1", "f16c", "fma", - "fsgsbase" + "fsgsbase", + "tbm" ], "compilers": { "gcc": { @@ -619,6 +614,8 @@ "sse4a", "abm", "avx", + "xop", + "lwp", "aes", "pclmulqdq", "cx16", @@ -631,7 +628,8 @@ "fsgsbase", "bmi2", "avx2", - "movbe" + "movbe", + "tbm" ], "compilers": { "gcc": { @@ -642,7 +640,7 @@ } }, "zen": { - "from": "excavator", + "from": "x86_64", "vendor": "AuthenticAMD", "features": [ "bmi1", diff --git a/lib/spack/spack/test/data/targets/linux-rhel6-piledriver b/lib/spack/spack/test/data/targets/linux-rhel6-piledriver new file mode 100644 index 0000000000..599d0c6fe7 --- /dev/null +++ b/lib/spack/spack/test/data/targets/linux-rhel6-piledriver @@ -0,0 +1,29 @@ +processor : 0 +vendor_id : AuthenticAMD +cpu family : 21 +model : 2 +model name : AMD FX(tm)-8350 Eight-Core Processor +stepping : 0 +microcode : 0x6000832 +cpu MHz : 4013.832 +cache size : 2048 KB +physical id : 0 +siblings : 8 +core id : 0 +cpu cores : 4 +apicid : 16 +initial apicid : 0 +fpu : yes +fpu_exception : yes +cpuid level : 13 +wp : yes +flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good nopl nonstop_tsc extd_apicid aperfmperf pni pclmulqdq monitor ssse3 fma cx16 sse4_1 sse4_2 popcnt aes xsave avx f16c lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs xop skinit wdt lwp fma4 tce nodeid_msr tbm topoext perfctr_core perfctr_nb arat cpb hw_pstate npt lbrv svm_lock nrip_save tsc_scale vmcb_clean flushbyasid decodeassists pausefilter pfthreshold vmmcall bmi1 +bugs : fxsave_leak sysret_ss_attrs +bogomips : 8030.15 +TLB size : 1536 4K pages +clflush size : 64 +cache_alignment : 64 +address sizes : 48 bits physical, 48 bits virtual +power management: ts ttp tm 100mhzsteps hwpstate cpb eff_freq_ro + +# /proc/cpuinfo taken from https://www.redhat.com/archives/vfio-users/2015-August/msg00111.html \ No newline at end of file diff --git a/lib/spack/spack/test/llnl/util/cpu.py b/lib/spack/spack/test/llnl/util/cpu.py index 6f6b9fec4d..836514cc3c 100644 --- a/lib/spack/spack/test/llnl/util/cpu.py +++ b/lib/spack/spack/test/llnl/util/cpu.py @@ -26,6 +26,7 @@ from llnl.util.cpu import Microarchitecture # noqa 'linux-rhel7-ivybridge', 'linux-rhel7-haswell', 'linux-rhel7-zen', + 'linux-rhel6-piledriver', 'linux-centos7-power8le', 'darwin-mojave-ivybridge', 'darwin-mojave-broadwell', @@ -112,7 +113,7 @@ def test_equality(supported_target): # Test microarchitectures that are ordered with respect to each other ('x86_64 < skylake', True), ('icelake > skylake', True), - ('piledriver <= zen', True), + ('piledriver <= steamroller', True), ('zen2 >= zen', True), ('zen >= zen', True), # Test unrelated microarchitectures -- cgit v1.2.3-60-g2f50