From ca1af572a757c18809b7ffe1e97128ed40c196c5 Mon Sep 17 00:00:00 2001 From: Caspar van Leeuwen Date: Thu, 30 Oct 2025 14:09:55 +0100 Subject: [PATCH 1/8] Add host-injections CUDA build list --- ...essi-2025.06-eb-5.1.2-CUDA-host-injections.yml | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 scripts/gpu_support/nvidia/easystacks/2025.06/eessi-2025.06-eb-5.1.2-CUDA-host-injections.yml diff --git a/scripts/gpu_support/nvidia/easystacks/2025.06/eessi-2025.06-eb-5.1.2-CUDA-host-injections.yml b/scripts/gpu_support/nvidia/easystacks/2025.06/eessi-2025.06-eb-5.1.2-CUDA-host-injections.yml new file mode 100644 index 00000000..88acc6dd --- /dev/null +++ b/scripts/gpu_support/nvidia/easystacks/2025.06/eessi-2025.06-eb-5.1.2-CUDA-host-injections.yml @@ -0,0 +1,15 @@ +# This EasyStack provides a list of all the EasyConfigs that should be installed in host_injections +# for nvidia GPU support, because they cannot (fully) be shipped as part of EESSI due to license constraints +easyconfigs: + - CUDA-12.6.0.eb + options: + accept-eula-for: CUDA + - CUDA-12.8.0.eb + options: + accept-eula-for: CUDA + - cuDNN-9.5.0.50-CUDA-12.6.0.eb + options: + accept-eula-for: cuDNN + - cuDNN-9.10.1.4-CUDA-12.8.0.eb + options: + accept-eula-for: cuDNN From 380808a7ebf203493f38da40ad3bca6b1b0e5329 Mon Sep 17 00:00:00 2001 From: Caspar van Leeuwen Date: Thu, 30 Oct 2025 14:13:10 +0100 Subject: [PATCH 2/8] Fix indent --- ...ssi-2025.06-eb-5.1.2-CUDA-host-injections.yml | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/scripts/gpu_support/nvidia/easystacks/2025.06/eessi-2025.06-eb-5.1.2-CUDA-host-injections.yml b/scripts/gpu_support/nvidia/easystacks/2025.06/eessi-2025.06-eb-5.1.2-CUDA-host-injections.yml index 88acc6dd..b728c732 100644 --- a/scripts/gpu_support/nvidia/easystacks/2025.06/eessi-2025.06-eb-5.1.2-CUDA-host-injections.yml +++ b/scripts/gpu_support/nvidia/easystacks/2025.06/eessi-2025.06-eb-5.1.2-CUDA-host-injections.yml @@ -2,14 +2,14 @@ # for nvidia GPU support, because they cannot (fully) be shipped as part of EESSI due to license constraints easyconfigs: - CUDA-12.6.0.eb - options: - accept-eula-for: CUDA + options: + accept-eula-for: CUDA - CUDA-12.8.0.eb - options: - accept-eula-for: CUDA + options: + accept-eula-for: CUDA - cuDNN-9.5.0.50-CUDA-12.6.0.eb - options: - accept-eula-for: cuDNN + options: + accept-eula-for: cuDNN - cuDNN-9.10.1.4-CUDA-12.8.0.eb - options: - accept-eula-for: cuDNN + options: + accept-eula-for: cuDNN From 70b3da3af97bd9b39e88c7101250fd5bac2ce927 Mon Sep 17 00:00:00 2001 From: Caspar van Leeuwen Date: Thu, 30 Oct 2025 14:19:00 +0100 Subject: [PATCH 3/8] Fix colons --- .../eessi-2025.06-eb-5.1.2-CUDA-host-injections.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/scripts/gpu_support/nvidia/easystacks/2025.06/eessi-2025.06-eb-5.1.2-CUDA-host-injections.yml b/scripts/gpu_support/nvidia/easystacks/2025.06/eessi-2025.06-eb-5.1.2-CUDA-host-injections.yml index b728c732..7e0c7540 100644 --- a/scripts/gpu_support/nvidia/easystacks/2025.06/eessi-2025.06-eb-5.1.2-CUDA-host-injections.yml +++ b/scripts/gpu_support/nvidia/easystacks/2025.06/eessi-2025.06-eb-5.1.2-CUDA-host-injections.yml @@ -1,15 +1,15 @@ # This EasyStack provides a list of all the EasyConfigs that should be installed in host_injections # for nvidia GPU support, because they cannot (fully) be shipped as part of EESSI due to license constraints easyconfigs: - - CUDA-12.6.0.eb + - CUDA-12.6.0.eb: options: accept-eula-for: CUDA - - CUDA-12.8.0.eb + - CUDA-12.8.0.eb: options: accept-eula-for: CUDA - - cuDNN-9.5.0.50-CUDA-12.6.0.eb + - cuDNN-9.5.0.50-CUDA-12.6.0.eb: options: accept-eula-for: cuDNN - - cuDNN-9.10.1.4-CUDA-12.8.0.eb + - cuDNN-9.10.1.4-CUDA-12.8.0.eb: options: accept-eula-for: cuDNN From e75dac5e26591779db1b9a2371ee926c8e6da595 Mon Sep 17 00:00:00 2001 From: Caspar van Leeuwen Date: Thu, 30 Oct 2025 14:55:20 +0100 Subject: [PATCH 4/8] cuDNN does not contain PTX code, making the sanity check fail. Allow the missing PTX --- .../2025.06/eessi-2025.06-eb-5.1.2-CUDA-host-injections.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/scripts/gpu_support/nvidia/easystacks/2025.06/eessi-2025.06-eb-5.1.2-CUDA-host-injections.yml b/scripts/gpu_support/nvidia/easystacks/2025.06/eessi-2025.06-eb-5.1.2-CUDA-host-injections.yml index 7e0c7540..8cdeaf1d 100644 --- a/scripts/gpu_support/nvidia/easystacks/2025.06/eessi-2025.06-eb-5.1.2-CUDA-host-injections.yml +++ b/scripts/gpu_support/nvidia/easystacks/2025.06/eessi-2025.06-eb-5.1.2-CUDA-host-injections.yml @@ -10,6 +10,8 @@ easyconfigs: - cuDNN-9.5.0.50-CUDA-12.6.0.eb: options: accept-eula-for: cuDNN + cuda-sanity-check-accept-missing-ptx - cuDNN-9.10.1.4-CUDA-12.8.0.eb: options: accept-eula-for: cuDNN + cuda-sanity-check-accept-missing-ptx From e25b62519548da85e9399083ab5e365fa5520deb Mon Sep 17 00:00:00 2001 From: Caspar van Leeuwen Date: Thu, 30 Oct 2025 15:04:12 +0100 Subject: [PATCH 5/8] Set the cuda-sanity-check-accept-missing-ptx value --- .../2025.06/eessi-2025.06-eb-5.1.2-CUDA-host-injections.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/gpu_support/nvidia/easystacks/2025.06/eessi-2025.06-eb-5.1.2-CUDA-host-injections.yml b/scripts/gpu_support/nvidia/easystacks/2025.06/eessi-2025.06-eb-5.1.2-CUDA-host-injections.yml index 8cdeaf1d..39c89b89 100644 --- a/scripts/gpu_support/nvidia/easystacks/2025.06/eessi-2025.06-eb-5.1.2-CUDA-host-injections.yml +++ b/scripts/gpu_support/nvidia/easystacks/2025.06/eessi-2025.06-eb-5.1.2-CUDA-host-injections.yml @@ -10,8 +10,8 @@ easyconfigs: - cuDNN-9.5.0.50-CUDA-12.6.0.eb: options: accept-eula-for: cuDNN - cuda-sanity-check-accept-missing-ptx + cuda-sanity-check-accept-missing-ptx: True - cuDNN-9.10.1.4-CUDA-12.8.0.eb: options: accept-eula-for: cuDNN - cuda-sanity-check-accept-missing-ptx + cuda-sanity-check-accept-missing-ptx: True From 54bd9ad2ab3d6af7acb2a6e7a5e8c1773209dbb5 Mon Sep 17 00:00:00 2001 From: Caspar van Leeuwen Date: Thu, 30 Oct 2025 15:25:41 +0100 Subject: [PATCH 6/8] Make mkdir verbose, so that we see if the directory gets created --- 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 7e4fa3a9..34fa185e 100755 --- a/EESSI-install-software.sh +++ b/EESSI-install-software.sh @@ -149,7 +149,7 @@ else # make sure the the software and modules directory exist # (since it's expected by init/eessi_environment_variables when using archdetect and by the EESSI module) - mkdir -p ${EESSI_PREFIX}/software/${EESSI_OS_TYPE}/${EESSI_SOFTWARE_SUBDIR_OVERRIDE}/{modules,software} + mkdir -p -v ${EESSI_PREFIX}/software/${EESSI_OS_TYPE}/${EESSI_SOFTWARE_SUBDIR_OVERRIDE}/{modules,software} # If EESSI_ACCELERATOR_TARGET_OVERRIDE is defined, we are building for an accelerator target # In that case, make sure the modulepath for the accelerator subdir exists, otherwise the EESSI module will not @@ -160,7 +160,7 @@ else # Note that ${EESSI_PREFIX}/software/${EESSI_OS_TYPE}/${EESSI_SOFTWARE_SUBDIR_OVERRIDE}/${EESSI_ACCELERATOR_TARGET_OVERRIDE}/modules/all # is only the correct path if EESSI_ACCEL_SOFTWARE_SUBDIR_OVERRIDE is not set if [ -z $EESSI_ACCEL_SOFTWARE_SUBDIR_OVERRIDE ]; then - mkdir -p ${EESSI_PREFIX}/software/${EESSI_OS_TYPE}/${EESSI_SOFTWARE_SUBDIR_OVERRIDE}/${EESSI_ACCELERATOR_TARGET_OVERRIDE}/modules/all + mkdir -p -v ${EESSI_PREFIX}/software/${EESSI_OS_TYPE}/${EESSI_SOFTWARE_SUBDIR_OVERRIDE}/${EESSI_ACCELERATOR_TARGET_OVERRIDE}/modules/all else # At runtime, one might want to use a different CPU subdir for a given accelerator. E.g. one could use # a zen2 CPU subdir on a zen4 node if the required GPU software isn't available in the zen4 tree. From 7294adbad83bc7a6dbff648cbdd343ba5100bf81 Mon Sep 17 00:00:00 2001 From: Caspar van Leeuwen Date: Thu, 30 Oct 2025 21:59:17 +0100 Subject: [PATCH 7/8] Exclude easystacks in scripts/gpu_support from being included in the changed_easystacks. Needed to avoid missing 'No missing installations' in the build log. --- EESSI-install-software.sh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/EESSI-install-software.sh b/EESSI-install-software.sh index 34fa185e..64a78700 100755 --- a/EESSI-install-software.sh +++ b/EESSI-install-software.sh @@ -368,7 +368,9 @@ else fi # use PR patch file to determine in which easystack files stuff was added -changed_easystacks=$(cat ${pr_diff} | grep '^+++' | cut -f2 -d' ' | sed 's@^[a-z]/@@g' | grep 'easystacks/.*yml$' | egrep -v 'known-issues|missing') +# Note that we exclude the scripts/gpu_support/ dir, since those are not meant to be built in the +# software-layer, but they are helper easystacks for installing e.g. CUDA in host_injections +changed_easystacks=$(cat ${pr_diff} | grep '^+++' | cut -f2 -d' ' | sed 's@^[a-z]/@@g' | grep 'easystacks/.*yml$' | egrep -v 'known-issues|missing' | grep -v "scripts/gpu_support/") if [ -z "${changed_easystacks}" ]; then echo "No missing installations, party time!" # Ensure the bot report success, as there was nothing to be build here else From 96494f5ec22757d0dbba7d82c2ef2500571a73d2 Mon Sep 17 00:00:00 2001 From: Caspar van Leeuwen Date: Thu, 30 Oct 2025 22:03:33 +0100 Subject: [PATCH 8/8] Make sure the grep command always returns success --- EESSI-install-software.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/EESSI-install-software.sh b/EESSI-install-software.sh index 64a78700..69690b43 100755 --- a/EESSI-install-software.sh +++ b/EESSI-install-software.sh @@ -370,7 +370,7 @@ fi # use PR patch file to determine in which easystack files stuff was added # Note that we exclude the scripts/gpu_support/ dir, since those are not meant to be built in the # software-layer, but they are helper easystacks for installing e.g. CUDA in host_injections -changed_easystacks=$(cat ${pr_diff} | grep '^+++' | cut -f2 -d' ' | sed 's@^[a-z]/@@g' | grep 'easystacks/.*yml$' | egrep -v 'known-issues|missing' | grep -v "scripts/gpu_support/") +changed_easystacks=$(cat ${pr_diff} | grep '^+++' | cut -f2 -d' ' | sed 's@^[a-z]/@@g' | grep 'easystacks/.*yml$' | egrep -v 'known-issues|missing' | (grep -v "scripts/gpu_support/" || true)) if [ -z "${changed_easystacks}" ]; then echo "No missing installations, party time!" # Ensure the bot report success, as there was nothing to be build here else