@@ -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
12631263def 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
12771282def 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