Building LAMMPS-2Aug2023_update2-foss-2023a-kokkos.eb
may fail for --optarch=GENERIC
#545
Labels
2023.06-software.eessi.io
2023.06 version of software.eessi.io
aarch64
related to Arm 64-bit targets (aarch64)
bug
Something isn't working
In NorESSI#323 building failed for
aarch64/generic
. The build job was run on a compute node withThunderX2
CPU.kokkos_arch
was not explicitly set.If
kokkos_arch
is not explicitly, the LAMMPS easyblock tries to determine the CPU architecture of the host. See https://github.com/easybuilders/easybuild-easyblocks/blob/develop/easybuild/easyblocks/l/lammps.py#L577-L595It runs
get_cpu_arch()
which usesarchspec
witharchspec
returnedthundex2
in the PR for NESSI. When running this for EESSI it would returnneoverse_n1
at the moment (compute node used to build foraarch64/generic
on AWS has aneoverse_n1
CPU). The CPU architecture is then mapped viato an architecture identifier used in Kokkos. This works for EESSI, because https://github.com/easybuilders/easybuild-easyblocks/pull/3036/files#diff-bdb538abf869738e5431974debc2503a1b160370b86938bfc02729de69d5689b dynamically adds a mapping for
neoverse_n1
. Forthunderx2
such a mapping is missing.However, in case we would map to the correct value for
thunderx2
(probablyARMV81
) the built software may not function correctly on anaarch64/generic
CPU, for example, a Raspberry Pi 3/4.In NorESSI#323, we therefore opted to extend an existing
parse_hook
to setkokkos_arch
toARMV80
when we build foraarch64
and the build optionoptarch
is set toGENERIC
.Possibly this explicit setting of
kokkos_arch
may need to be done too when building forx86_64/generic
.The text was updated successfully, but these errors were encountered: