Skip to content

Commit 93f2348

Browse files
authored
Merge pull request #100 from bedroge/scipybundle_202302_a64fx
Hooks for failing SciPy-Bundle 2023.02 tests on A64FX
2 parents 81d2779 + 944f631 commit 93f2348

File tree

1 file changed

+13
-8
lines changed

1 file changed

+13
-8
lines changed

eb_hooks.py

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1138,7 +1138,7 @@ def pre_test_hook_ignore_failing_tests_SciPybundle(self, *args, **kwargs):
11381138
FAILED scipy/spatial/tests/test_distance.py::TestPdist::test_pdist_correlation_iris
11391139
FAILED scipy/spatial/tests/test_distance.py::TestPdist::test_pdist_correlation_iris_float32
11401140
= 2 failed, 54409 passed, 3016 skipped, 223 xfailed, 13 xpassed, 10917 warnings in 892.04s (0:14:52) =
1141-
In version 2023.07 on a64fx, 4 failing tests in scipy 1.11.1:
1141+
In version 2023.02 + 2023.07 on a64fx, 4 failing tests in scipy (version 1.10.1, 1.11.1):
11421142
FAILED scipy/optimize/tests/test_linprog.py::TestLinprogIPSparse::test_bug_6139
11431143
FAILED scipy/optimize/tests/test_linprog.py::TestLinprogIPSparsePresolve::test_bug_6139
11441144
FAILED scipy/spatial/tests/test_distance.py::TestPdist::test_pdist_correlation_iris
@@ -1200,7 +1200,7 @@ def pre_test_hook_ignore_failing_tests_SciPybundle(self, *args, **kwargs):
12001200
"""
12011201
cpu_target = get_eessi_envvar('EESSI_SOFTWARE_SUBDIR')
12021202
scipy_bundle_versions_nv1 = ('2021.10', '2023.02', '2023.07', '2023.11')
1203-
scipy_bundle_versions_a64fx = ('2023.07', '2023.11')
1203+
scipy_bundle_versions_a64fx = ('2023.02', '2023.07', '2023.11')
12041204
scipy_bundle_versions_nvidia_grace = ('2023.02', '2023.07', '2023.11')
12051205
if self.name == 'SciPy-bundle':
12061206
if cpu_target == CPU_TARGET_NEOVERSE_V1 and self.version in scipy_bundle_versions_nv1:
@@ -1262,24 +1262,29 @@ def pre_single_extension_isoband(ext, *args, **kwargs):
12621262

12631263
def pre_single_extension_numpy(ext, *args, **kwargs):
12641264
"""
1265-
Pre-extension hook for numpy, to change -march=native to -march=armv8.4-a for numpy 1.24.2
1266-
when building for aarch64/neoverse_v1 CPU target.
1265+
Pre-extension hook for numpy:
1266+
- change -march=native to -march=armv8.4-a for numpy 1.24.2 when building for aarch64/neoverse_v1 CPU target
1267+
- change -march=native to -march=armv8.2-a for numpy 1.24.2 when building for aarch64/a64fx CPU target
12671268
"""
12681269
cpu_target = get_eessi_envvar('EESSI_SOFTWARE_SUBDIR')
1269-
if ext.name == 'numpy' and ext.version == '1.24.2' and cpu_target == CPU_TARGET_NEOVERSE_V1:
1270+
if ext.name == 'numpy' and ext.version == '1.24.2':
12701271
# note: this hook is called before build environment is set up (by calling toolchain.prepare()),
12711272
# so environment variables like $CFLAGS are not defined yet
12721273
# unsure which of these actually matter for numpy, so changing all of them
1273-
ext.orig_optarch = build_option('optarch')
1274-
update_build_option('optarch', 'march=armv8.4-a')
1274+
if cpu_target == CPU_TARGET_NEOVERSE_V1:
1275+
ext.orig_optarch = build_option('optarch')
1276+
update_build_option('optarch', 'march=armv8.4-a')
1277+
if cpu_target == CPU_TARGET_A64FX:
1278+
ext.orig_optarch = build_option('optarch')
1279+
update_build_option('optarch', 'march=armv8.2-a')
12751280

12761281

12771282
def post_single_extension_numpy(ext, *args, **kwargs):
12781283
"""
12791284
Post-extension hook for numpy, to reset 'optarch' build option.
12801285
"""
12811286
cpu_target = get_eessi_envvar('EESSI_SOFTWARE_SUBDIR')
1282-
if ext.name == 'numpy' and ext.version == '1.24.2' and cpu_target == CPU_TARGET_NEOVERSE_V1:
1287+
if ext.name == 'numpy' and ext.version == '1.24.2' and cpu_target in [CPU_TARGET_A64FX, CPU_TARGET_NEOVERSE_V1]:
12831288
update_build_option('optarch', ext.orig_optarch)
12841289

12851290

0 commit comments

Comments
 (0)