From 908358a02a684479ab3e72caa0207b4cd591b069 Mon Sep 17 00:00:00 2001 From: Caspar van Leeuwen Date: Wed, 22 Apr 2026 19:05:16 +0200 Subject: [PATCH 1/5] Add easystack to test with --- .../2025.06/accel/amd/eessi-2025.06-eb-5.3.0-2025a.yml | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 easystacks/software.eessi.io/2025.06/accel/amd/eessi-2025.06-eb-5.3.0-2025a.yml diff --git a/easystacks/software.eessi.io/2025.06/accel/amd/eessi-2025.06-eb-5.3.0-2025a.yml b/easystacks/software.eessi.io/2025.06/accel/amd/eessi-2025.06-eb-5.3.0-2025a.yml new file mode 100644 index 00000000..ec4a270a --- /dev/null +++ b/easystacks/software.eessi.io/2025.06/accel/amd/eessi-2025.06-eb-5.3.0-2025a.yml @@ -0,0 +1,2 @@ +easyconfigs: + - ROCm-LLVM-19.0.0-GCCcore-14.2.0-ROCm-6.4.1.eb From 8461663b9ff357b15eeef100d8f4d54b4388b399 Mon Sep 17 00:00:00 2001 From: Caspar van Leeuwen Date: Wed, 22 Apr 2026 19:08:03 +0200 Subject: [PATCH 2/5] Add debugging output --- EESSI-install-software.sh | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/EESSI-install-software.sh b/EESSI-install-software.sh index 2c674ae8..445fed7a 100755 --- a/EESSI-install-software.sh +++ b/EESSI-install-software.sh @@ -314,9 +314,17 @@ elif [[ -n "$EESSI_ACCELERATOR_TARGET_OVERRIDE" ]]; then export EESSI_ACCELERATOR_INSTALL=1 fi +echo "EESSI environment before loading EESSI-extend:" +env | grep EESSI + echo "DEBUG: before loading EESSI-extend // EASYBUILD_INSTALLPATH='${EASYBUILD_INSTALLPATH}'" +export LMOD_DEBUG=1 source $TOPDIR/load_eessi_extend_module.sh ${EESSI_VERSION} +unset LMOD_DEBUG echo "DEBUG: after loading EESSI-extend // EASYBUILD_INSTALLPATH='${EASYBUILD_INSTALLPATH}'" +echo "EESSI environment after loading EESSI-extend:" +env | grep EESSI + # Install full CUDA SDK and cu* libraries in host_injections # (This is done *before* configuring EasyBuild as it may rely on an older EB version) From 45febacf7186297f1972b75e7a58450ffc532cdd Mon Sep 17 00:00:00 2001 From: Caspar van Leeuwen Date: Wed, 22 Apr 2026 19:24:21 +0200 Subject: [PATCH 3/5] Set EESSI init debugging instead --- EESSI-install-software.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/EESSI-install-software.sh b/EESSI-install-software.sh index 445fed7a..97ed6001 100755 --- a/EESSI-install-software.sh +++ b/EESSI-install-software.sh @@ -221,6 +221,7 @@ module --force purge module unuse $MODULEPATH # Initialize the EESSI environment +export EESSI_DEBUG_INIT=1 module use $TOPDIR/init/modules module load EESSI/$EESSI_VERSION @@ -318,9 +319,8 @@ echo "EESSI environment before loading EESSI-extend:" env | grep EESSI echo "DEBUG: before loading EESSI-extend // EASYBUILD_INSTALLPATH='${EASYBUILD_INSTALLPATH}'" -export LMOD_DEBUG=1 source $TOPDIR/load_eessi_extend_module.sh ${EESSI_VERSION} -unset LMOD_DEBUG +unset EESSI_DEBUG_INIT echo "DEBUG: after loading EESSI-extend // EASYBUILD_INSTALLPATH='${EASYBUILD_INSTALLPATH}'" echo "EESSI environment after loading EESSI-extend:" env | grep EESSI From 0923a881d4e4f61fd396eceb8d47b1366f2d15e1 Mon Sep 17 00:00:00 2001 From: Caspar van Leeuwen Date: Wed, 22 Apr 2026 19:39:53 +0200 Subject: [PATCH 4/5] Make sure the accelerator installpath also gets set if amd capabilities are defined --- EESSI-extend-easybuild.eb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/EESSI-extend-easybuild.eb b/EESSI-extend-easybuild.eb index 977dbe0a..4658d2a8 100644 --- a/EESSI-extend-easybuild.eb +++ b/EESSI-extend-easybuild.eb @@ -134,7 +134,7 @@ if eessi_cvmfs_install then end easybuild_installpath = os.getenv("EESSI_SOFTWARE_PATH") -- enforce accelerator subdirectory usage for CVMFS installs (only if an accelerator install is requested) - if (eessi_accelerator_target ~= nil) and (cuda_compute_capability ~= nil) and (os.getenv("EESSI_ACCELERATOR_INSTALL") ~= nil) then + if (eessi_accelerator_target ~= nil) and (cuda_compute_capability ~= nil or amd_compute_capability ~= nil) and (os.getenv("EESSI_ACCELERATOR_INSTALL") ~= nil) then easybuild_installpath = pathJoin(easybuild_installpath, eessi_accelerator_target) end elseif eessi_site_install then From e73b57ea9c5f9c8ce8a691ed917a6ff6e7e58cd7 Mon Sep 17 00:00:00 2001 From: Caspar van Leeuwen Date: Thu, 23 Apr 2026 00:10:14 +0200 Subject: [PATCH 5/5] Make sure hooks know that ROCm software is NOT CPU-only --- eb_hooks.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/eb_hooks.py b/eb_hooks.py index 60c5b74f..9c7b835c 100644 --- a/eb_hooks.py +++ b/eb_hooks.py @@ -717,13 +717,18 @@ def pre_fetch_hook(self, *args, **kwargs): def pre_fetch_hook_check_installation_path(self, *args, **kwargs): # When we know the CUDA status, we will need to verify the installation path # if we are doing an EESSI or host_injections installation - accelerator_deps = ['CUDA'] + accelerator_deps = ['CUDA', 'ROCm-LLVM'] + accelerator_toolchains = ['rocm-compilers', 'rompi', 'rfbf', 'rfoss'] strict_eessi_installation = ( bool(re.search(EESSI_INSTALLATION_REGEX, self.installdir)) or self.installdir.startswith(HOST_INJECTIONS_LOCATION)) if strict_eessi_installation and not os.getenv("EESSI_OVERRIDE_STRICT_INSTALLPATH_CHECK"): dependency_names = self.cfg.dependency_names() - if self.cfg.name in accelerator_deps or any(dep in dependency_names for dep in accelerator_deps): + if ( + self.cfg.name in accelerator_deps + or any(dep in dependency_names for dep in accelerator_deps) + or self.toolchain.name in accelerator_toolchains + ): # Make sure the path is an accelerator location if "/accel/" not in self.installdir: raise EasyBuildError(