From 542022c9e5a4e2109416c4476c621e1b7bb6ed82 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bob=20Dr=C3=B6ge?= Date: Wed, 3 Apr 2024 10:12:50 +0200 Subject: [PATCH 01/12] add hook that disables tests for Highway 1.0.4 on neoverse_v1 --- eb_hooks.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/eb_hooks.py b/eb_hooks.py index d93ee37067..94591ca91f 100644 --- a/eb_hooks.py +++ b/eb_hooks.py @@ -376,6 +376,18 @@ def pre_configure_hook_atspi2core_filter_ld_library_path(self, *args, **kwargs): raise EasyBuildError("at-spi2-core-specific hook triggered for non-at-spi2-core easyconfig?!") +def pre_configure_hook_highway_disable_tests((self, *args, **kwargs): + """ + pre-configure hook for Highway: disable tests on neoverse_v1 + cfr. https://github.com/EESSI/software-layer/issues/469 + """ + cpu_target = get_eessi_envvar('EESSI_SOFTWARE_SUBDIR') + if self.name == 'Highway ' and cpu_target == CPU_TARGET_NEOVERSE_V1: + self.cfg.update('configopts', '-DHWY_ENABLE_TESTS=OFF') + else: + raise EasyBuildError("Highway-specific hook triggered for non-Highway easyconfig?!") + + def pre_test_hook(self,*args, **kwargs): """Main pre-test hook: trigger custom functions based on software name.""" if self.name in PRE_TEST_HOOKS: @@ -625,6 +637,7 @@ def inject_gpu_property(ec): 'OpenBLAS': pre_configure_hook_openblas_optarch_generic, 'WRF': pre_configure_hook_wrf_aarch64, 'at-spi2-core': pre_configure_hook_atspi2core_filter_ld_library_path, + 'Highway': pre_configure_hook_highway_disable_tests, } PRE_TEST_HOOKS = { From a770536d7122c0bf9da89573082c180988798d93 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bob=20Dr=C3=B6ge?= Date: Wed, 3 Apr 2024 10:12:59 +0200 Subject: [PATCH 02/12] add Highway-1.0.4-GCCcore-12.3.0.eb --- .../software.eessi.io/2023.06/eessi-2023.06-eb-4.9.0-2023a.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/easystacks/software.eessi.io/2023.06/eessi-2023.06-eb-4.9.0-2023a.yml b/easystacks/software.eessi.io/2023.06/eessi-2023.06-eb-4.9.0-2023a.yml index 9b0de81b35..ac9c36fe82 100644 --- a/easystacks/software.eessi.io/2023.06/eessi-2023.06-eb-4.9.0-2023a.yml +++ b/easystacks/software.eessi.io/2023.06/eessi-2023.06-eb-4.9.0-2023a.yml @@ -54,3 +54,4 @@ easyconfigs: from-pr: 20126 - OpenJPEG-2.5.0-GCCcore-12.3.0.eb - OpenFOAM-10-foss-2023a.eb + - Highway-1.0.4-GCCcore-12.3.0.eb From 3cc125d7996b04cea0bcd71e1fff767113666310 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bob=20Dr=C3=B6ge?= Date: Wed, 3 Apr 2024 10:15:40 +0200 Subject: [PATCH 03/12] add known issue about Highway 1.0.4 on neoverse_v1 --- eessi-2023.06-known-issues.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/eessi-2023.06-known-issues.yml b/eessi-2023.06-known-issues.yml index 875757559e..d818c85952 100644 --- a/eessi-2023.06-known-issues.yml +++ b/eessi-2023.06-known-issues.yml @@ -19,6 +19,9 @@ - Highway-1.0.3-GCCcore-12.2.0.eb: - issue: https://github.com/EESSI/software-layer/issues/469 - info: "failing SVE test due to wrong expected value" + - Highway-1.0.4-GCCcore-12.3.0.eb: + - issue: https://github.com/EESSI/software-layer/issues/469 + - info: "failing to build the tests" - netCDF-4.9.2-gompi-2023a.eb: - issue: https://github.com/EESSI/software-layer/issues/425 - info: "netCDF intermittent test failures" From 098d5253901c4e32e2c5f9f4e331be29efcc04ea Mon Sep 17 00:00:00 2001 From: ocaisa Date: Wed, 3 Apr 2024 10:46:16 +0200 Subject: [PATCH 04/12] Update eb_hooks.py --- eb_hooks.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eb_hooks.py b/eb_hooks.py index 94591ca91f..4b29c84eb2 100644 --- a/eb_hooks.py +++ b/eb_hooks.py @@ -382,7 +382,7 @@ def pre_configure_hook_highway_disable_tests((self, *args, **kwargs): cfr. https://github.com/EESSI/software-layer/issues/469 """ cpu_target = get_eessi_envvar('EESSI_SOFTWARE_SUBDIR') - if self.name == 'Highway ' and cpu_target == CPU_TARGET_NEOVERSE_V1: + if self.name == 'Highway' and cpu_target == CPU_TARGET_NEOVERSE_V1: self.cfg.update('configopts', '-DHWY_ENABLE_TESTS=OFF') else: raise EasyBuildError("Highway-specific hook triggered for non-Highway easyconfig?!") From 10e1d00ebce2fe8753b2e638e12a8b0f01a33b5f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bob=20Dr=C3=B6ge?= Date: Wed, 3 Apr 2024 10:47:41 +0200 Subject: [PATCH 05/12] fix syntax, remove ( --- eb_hooks.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eb_hooks.py b/eb_hooks.py index 94591ca91f..78432c7a00 100644 --- a/eb_hooks.py +++ b/eb_hooks.py @@ -376,7 +376,7 @@ def pre_configure_hook_atspi2core_filter_ld_library_path(self, *args, **kwargs): raise EasyBuildError("at-spi2-core-specific hook triggered for non-at-spi2-core easyconfig?!") -def pre_configure_hook_highway_disable_tests((self, *args, **kwargs): +def pre_configure_hook_highway_disable_tests(self, *args, **kwargs): """ pre-configure hook for Highway: disable tests on neoverse_v1 cfr. https://github.com/EESSI/software-layer/issues/469 From abfe1bf536e91938b4fba50c33585962e8d07042 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bob=20Dr=C3=B6ge?= Date: Wed, 3 Apr 2024 12:04:33 +0200 Subject: [PATCH 06/12] add toolchain and version check to Highway hook that disables the tests --- eb_hooks.py | 31 +++++++++++++++++-------------- 1 file changed, 17 insertions(+), 14 deletions(-) diff --git a/eb_hooks.py b/eb_hooks.py index eee2a4dfde..9ccd984de4 100644 --- a/eb_hooks.py +++ b/eb_hooks.py @@ -289,6 +289,21 @@ def parse_hook_lammps_remove_deps_for_CI_aarch64(ec, *args, **kwargs): raise EasyBuildError("LAMMPS-specific hook triggered for non-LAMMPS easyconfig?!") +def parse_hook_highway_disable_tests(ec, eprefix):): + """ + pre-configure hook for Highway: disable tests on neoverse_v1 for Highway 1.0.4 and GCC 12.3.0 + cfr. https://github.com/EESSI/software-layer/issues/469 + """ + if ec.name == 'Highway': + tcname, tcversion = ec['toolchain']['name'], ec['toolchain']['version'] + cpu_target = get_eessi_envvar('EESSI_SOFTWARE_SUBDIR') + if ec.version in ['1.0.4'] and tcname == 'GCCcore' and tcversion == '12.3.0': + if cpu_target == CPU_TARGET_NEOVERSE_V1: + ec.update('configopts', '-DHWY_ENABLE_TESTS=OFF') + else: + raise EasyBuildError("Highway-specific hook triggered for non-Highway easyconfig?!") + + def pre_configure_hook(self, *args, **kwargs): """Main pre-configure hook: trigger custom functions based on software name.""" if self.name in PRE_CONFIGURE_HOOKS: @@ -376,18 +391,6 @@ def pre_configure_hook_atspi2core_filter_ld_library_path(self, *args, **kwargs): raise EasyBuildError("at-spi2-core-specific hook triggered for non-at-spi2-core easyconfig?!") -def pre_configure_hook_highway_disable_tests(self, *args, **kwargs): - """ - pre-configure hook for Highway: disable tests on neoverse_v1 - cfr. https://github.com/EESSI/software-layer/issues/469 - """ - cpu_target = get_eessi_envvar('EESSI_SOFTWARE_SUBDIR') - if self.name == 'Highway' and cpu_target == CPU_TARGET_NEOVERSE_V1: - self.cfg.update('configopts', '-DHWY_ENABLE_TESTS=OFF') - else: - raise EasyBuildError("Highway-specific hook triggered for non-Highway easyconfig?!") - - def pre_test_hook(self,*args, **kwargs): """Main pre-test hook: trigger custom functions based on software name.""" if self.name in PRE_TEST_HOOKS: @@ -620,11 +623,12 @@ def inject_gpu_property(ec): 'casacore': parse_hook_casacore_disable_vectorize, 'CGAL': parse_hook_cgal_toolchainopts_precise, 'fontconfig': parse_hook_fontconfig_add_fonts, + 'Highway': parse_hook_highway_disable_tests, + 'LAMMPS': parse_hook_lammps_remove_deps_for_CI_aarch64, 'OpenBLAS': parse_hook_openblas_relax_lapack_tests_num_errors, 'pybind11': parse_hook_pybind11_replace_catch2, 'Qt5': parse_hook_qt5_check_qtwebengine_disable, 'UCX': parse_hook_ucx_eprefix, - 'LAMMPS': parse_hook_lammps_remove_deps_for_CI_aarch64, } POST_PREPARE_HOOKS = { @@ -637,7 +641,6 @@ def inject_gpu_property(ec): 'OpenBLAS': pre_configure_hook_openblas_optarch_generic, 'WRF': pre_configure_hook_wrf_aarch64, 'at-spi2-core': pre_configure_hook_atspi2core_filter_ld_library_path, - 'Highway': pre_configure_hook_highway_disable_tests, } PRE_TEST_HOOKS = { From ae74707573fea4f1f210955e311c391f982c1f88 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bob=20Dr=C3=B6ge?= Date: Wed, 3 Apr 2024 12:15:49 +0200 Subject: [PATCH 07/12] syntax fix --- eb_hooks.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eb_hooks.py b/eb_hooks.py index 9ccd984de4..902a37a599 100644 --- a/eb_hooks.py +++ b/eb_hooks.py @@ -289,7 +289,7 @@ def parse_hook_lammps_remove_deps_for_CI_aarch64(ec, *args, **kwargs): raise EasyBuildError("LAMMPS-specific hook triggered for non-LAMMPS easyconfig?!") -def parse_hook_highway_disable_tests(ec, eprefix):): +def parse_hook_highway_disable_tests(ec, eprefix): """ pre-configure hook for Highway: disable tests on neoverse_v1 for Highway 1.0.4 and GCC 12.3.0 cfr. https://github.com/EESSI/software-layer/issues/469 From 92aad04bfa1810d313e476be5d89e13217cce9d3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bob=20Dr=C3=B6ge?= Date: Wed, 3 Apr 2024 13:02:33 +0200 Subject: [PATCH 08/12] also disable Highway 1.0.4 tests for neoverse_n1 --- eb_hooks.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/eb_hooks.py b/eb_hooks.py index 902a37a599..64671a5889 100644 --- a/eb_hooks.py +++ b/eb_hooks.py @@ -20,6 +20,7 @@ from distutils.version import LooseVersion +CPU_TARGET_NEOVERSE_N1 = 'aarch64/neoverse_n1' CPU_TARGET_NEOVERSE_V1 = 'aarch64/neoverse_v1' CPU_TARGET_AARCH64_GENERIC = 'aarch64/generic' @@ -173,7 +174,7 @@ def parse_hook_casacore_disable_vectorize(ec, eprefix): tcname == 'foss' and tcversion == '2023b' ): cpu_target = get_eessi_envvar('EESSI_SOFTWARE_SUBDIR') - if cpu_target == CPU_TARGET_NEOVERSE_V1: + if cpu_target in [CPU_TARGET_NEOVERSE_V1, CPU_TARGET_NEOVERSE_N1]: if not hasattr(ec, 'toolchainopts'): ec['toolchainopts'] = {} ec['toolchainopts']['vectorize'] = False From f2954ef909353b8c0a782b745324b523a612a1cb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bob=20Dr=C3=B6ge?= Date: Wed, 3 Apr 2024 13:26:11 +0200 Subject: [PATCH 09/12] oops, changed the wrong hook... fixed --- eb_hooks.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/eb_hooks.py b/eb_hooks.py index 64671a5889..7b1eb5cec2 100644 --- a/eb_hooks.py +++ b/eb_hooks.py @@ -174,7 +174,7 @@ def parse_hook_casacore_disable_vectorize(ec, eprefix): tcname == 'foss' and tcversion == '2023b' ): cpu_target = get_eessi_envvar('EESSI_SOFTWARE_SUBDIR') - if cpu_target in [CPU_TARGET_NEOVERSE_V1, CPU_TARGET_NEOVERSE_N1]: + if cpu_target == CPU_TARGET_NEOVERSE_V1: if not hasattr(ec, 'toolchainopts'): ec['toolchainopts'] = {} ec['toolchainopts']['vectorize'] = False @@ -299,7 +299,7 @@ def parse_hook_highway_disable_tests(ec, eprefix): tcname, tcversion = ec['toolchain']['name'], ec['toolchain']['version'] cpu_target = get_eessi_envvar('EESSI_SOFTWARE_SUBDIR') if ec.version in ['1.0.4'] and tcname == 'GCCcore' and tcversion == '12.3.0': - if cpu_target == CPU_TARGET_NEOVERSE_V1: + if cpu_target in [CPU_TARGET_NEOVERSE_V1, CPU_TARGET_NEOVERSE_N1]: ec.update('configopts', '-DHWY_ENABLE_TESTS=OFF') else: raise EasyBuildError("Highway-specific hook triggered for non-Highway easyconfig?!") From 11b7bc2a41d228079f238e361683f2c9da1b28fd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bob=20Dr=C3=B6ge?= Date: Wed, 3 Apr 2024 17:38:06 +0200 Subject: [PATCH 10/12] different actions for neoverse_n1 and _v1 in highway hook --- eb_hooks.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/eb_hooks.py b/eb_hooks.py index 7b1eb5cec2..8bf66427a9 100644 --- a/eb_hooks.py +++ b/eb_hooks.py @@ -290,17 +290,20 @@ def parse_hook_lammps_remove_deps_for_CI_aarch64(ec, *args, **kwargs): raise EasyBuildError("LAMMPS-specific hook triggered for non-LAMMPS easyconfig?!") -def parse_hook_highway_disable_tests(ec, eprefix): +def parse_hook_highway_handle_test_compilation_issues(ec, eprefix): """ - pre-configure hook for Highway: disable tests on neoverse_v1 for Highway 1.0.4 and GCC 12.3.0 + pre-configure hook for Highway that solves issue that arise during the compilation of the tests + on both neoverse_n1 and neoverse_v1 with Highway 1.0.4 and GCC 12.3.0 cfr. https://github.com/EESSI/software-layer/issues/469 """ if ec.name == 'Highway': tcname, tcversion = ec['toolchain']['name'], ec['toolchain']['version'] cpu_target = get_eessi_envvar('EESSI_SOFTWARE_SUBDIR') if ec.version in ['1.0.4'] and tcname == 'GCCcore' and tcversion == '12.3.0': - if cpu_target in [CPU_TARGET_NEOVERSE_V1, CPU_TARGET_NEOVERSE_N1]: + if cpu_target == CPU_TARGET_NEOVERSE_V1: ec.update('configopts', '-DHWY_ENABLE_TESTS=OFF') + if cpu_target == CPU_TARGET_NEOVERSE_N1: + update_build_option('optarch', OPTARCH_GENERIC) else: raise EasyBuildError("Highway-specific hook triggered for non-Highway easyconfig?!") @@ -624,7 +627,7 @@ def inject_gpu_property(ec): 'casacore': parse_hook_casacore_disable_vectorize, 'CGAL': parse_hook_cgal_toolchainopts_precise, 'fontconfig': parse_hook_fontconfig_add_fonts, - 'Highway': parse_hook_highway_disable_tests, + 'Highway': parse_hook_highway_handle_test_compilation_issues, 'LAMMPS': parse_hook_lammps_remove_deps_for_CI_aarch64, 'OpenBLAS': parse_hook_openblas_relax_lapack_tests_num_errors, 'pybind11': parse_hook_pybind11_replace_catch2, From 69d0e9d132dcb6123ca000ead3580fd8f59da8a7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bob=20Dr=C3=B6ge?= Date: Thu, 4 Apr 2024 13:51:08 +0200 Subject: [PATCH 11/12] update docstring of parse_hook_highway_handle_test_compilation_issues --- eb_hooks.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/eb_hooks.py b/eb_hooks.py index 8bf66427a9..0221e98b2a 100644 --- a/eb_hooks.py +++ b/eb_hooks.py @@ -292,8 +292,10 @@ def parse_hook_lammps_remove_deps_for_CI_aarch64(ec, *args, **kwargs): def parse_hook_highway_handle_test_compilation_issues(ec, eprefix): """ - pre-configure hook for Highway that solves issue that arise during the compilation of the tests - on both neoverse_n1 and neoverse_v1 with Highway 1.0.4 and GCC 12.3.0 + Solve issues with compiling or running the tests on both + neoverse_n1 and neoverse_v1 with Highway 1.0.4 and GCC 12.3.0: + - for neoverse_n1 we set optarch to GENERIC + - for neoverse_v1 we completely disable the tests cfr. https://github.com/EESSI/software-layer/issues/469 """ if ec.name == 'Highway': From 7dba052cfee0996a1bce79984e79c37d4caeac64 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bob=20Dr=C3=B6ge?= Date: Thu, 4 Apr 2024 13:52:06 +0200 Subject: [PATCH 12/12] add issue with Highway 1.0.4 on neoverse_n1 --- eessi-2023.06-known-issues.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/eessi-2023.06-known-issues.yml b/eessi-2023.06-known-issues.yml index d818c85952..011cb2dc08 100644 --- a/eessi-2023.06-known-issues.yml +++ b/eessi-2023.06-known-issues.yml @@ -3,6 +3,9 @@ - issue: https://github.com/EESSI/software-layer/issues/461 - info: "8 failing tests (out of 209539) on aarch64/*" - aarch64/neoverse_n1: + - Highway-1.0.4-GCCcore-12.3.0.eb: + - issue: https://github.com/EESSI/software-layer/issues/469 + - info: "failing to build the tests" - PyTorch-2.1.2-foss-2023a: - issue: https://github.com/EESSI/software-layer/issues/461 - info: "8 failing tests (out of 209539) on aarch64/*"