From 3c3c12b6b9f0b75c1d6746389004e5ad9c8047d3 Mon Sep 17 00:00:00 2001 From: ptaylor Date: Fri, 13 Feb 2026 17:01:34 -0800 Subject: [PATCH 1/4] try to activate the nvhpc-hpcx-cuda module first --- features/src/nvhpc/.bashrc | 4 ++++ features/src/nvhpc/devcontainer-feature.json | 2 +- features/src/nvhpc/etc/profile.d/nvhpc.sh | 5 ++++- features/src/nvhpc/install.sh | 10 ++++++++++ 4 files changed, 19 insertions(+), 2 deletions(-) diff --git a/features/src/nvhpc/.bashrc b/features/src/nvhpc/.bashrc index 0bfffd56..ba517f48 100644 --- a/features/src/nvhpc/.bashrc +++ b/features/src/nvhpc/.bashrc @@ -1,3 +1,7 @@ +export CUDA_VERSION="${CUDA_VERSION}"; +export CUDA_VERSION_MAJOR="${CUDA_VERSION_MAJOR}"; +export CUDA_VERSION_MINOR="${CUDA_VERSION_MINOR}"; +export CUDA_VERSION_PATCH="${CUDA_VERSION_PATCH}"; export NVHPC="${NVHPC}"; export NVHPC_VERSION="${NVHPC_VERSION}"; export NVHPC_VERSION_MAJOR="${NVHPC_VERSION_MAJOR}"; diff --git a/features/src/nvhpc/devcontainer-feature.json b/features/src/nvhpc/devcontainer-feature.json index b35ae53d..9fc79b56 100644 --- a/features/src/nvhpc/devcontainer-feature.json +++ b/features/src/nvhpc/devcontainer-feature.json @@ -1,7 +1,7 @@ { "name": "NVHPC SDK", "id": "nvhpc", - "version": "26.4.1", + "version": "26.4.2", "description": "A feature to install the NVHPC SDK", "options": { "version": { diff --git a/features/src/nvhpc/etc/profile.d/nvhpc.sh b/features/src/nvhpc/etc/profile.d/nvhpc.sh index 3edabc80..bc8f2f19 100755 --- a/features/src/nvhpc/etc/profile.d/nvhpc.sh +++ b/features/src/nvhpc/etc/profile.d/nvhpc.sh @@ -9,7 +9,10 @@ if [ -n "${PATH##*"${NVHPC_ROOT}/compilers/bin"*}" ]; then fi done unset NVHPC_MODULEFILES_DIR; - for NVHPC_MODULE_NAME in "nvhpc-hpcx/${NVHPC_VERSION}"; do + for NVHPC_MODULE_NAME in "nvhpc-hpcx-cuda${CUDA_VERSION_MAJOR}/${NVHPC_VERSION}" \ + "nvhpc-hpcx-cuda${CUDA_VERSION_MAJOR}" \ + "nvhpc-hpcx/${NVHPC_VERSION}" \ + "nvhpc-hpcx"; do if ! module list "${NVHPC_MODULE_NAME}" 2>&1 | grep -q 'None found.'; then if ! module list 2>&1 | grep -q "${NVHPC_MODULE_NAME}"; then module try-load "${NVHPC_MODULE_NAME}" >/dev/null 2>&1; diff --git a/features/src/nvhpc/install.sh b/features/src/nvhpc/install.sh index be96cb78..5712aefb 100644 --- a/features/src/nvhpc/install.sh +++ b/features/src/nvhpc/install.sh @@ -68,6 +68,12 @@ if ! test -L /usr/local/cuda; then ln -s "${NVHPC_CUDA_HOME}" /usr/local/cuda; fi +cuda_ver=$(grep "#define CUDA_VERSION" "${NVHPC_CUDA_HOME}/include/cuda.h" | cut -d' ' -f3); +export CUDA_VERSION_MAJOR="$((cuda_ver / 1000))"; +export CUDA_VERSION_MINOR="$((cuda_ver / 10 % 100))"; +export CUDA_VERSION_PATCH="$((cuda_ver % 10))"; +export CUDA_VERSION="$CUDA_VERSION_MAJOR.$CUDA_VERSION_MINOR.$CUDA_VERSION_PATCH"; + bash "${NVHPC_ROOT}/compilers/bin/makelocalrc" \ -x "${NVHPC_ROOT}/compilers/bin" \ -gcc "$(which gcc)" \ @@ -76,6 +82,10 @@ bash "${NVHPC_ROOT}/compilers/bin/makelocalrc" \ vars_=(); vars_+=('$NVHPC'); +vars_+=('$CUDA_VERSION'); +vars_+=('$CUDA_VERSION_MAJOR'); +vars_+=('$CUDA_VERSION_MINOR'); +vars_+=('$CUDA_VERSION_PATCH'); vars_+=('$NVHPC_VERSION'); vars_+=('$NVHPC_VERSION_MAJOR'); vars_+=('$NVHPC_VERSION_MINOR'); From 8a492846dbd3322dbe6585e76515caf94583c4b5 Mon Sep 17 00:00:00 2001 From: ptaylor Date: Fri, 13 Feb 2026 17:14:58 -0800 Subject: [PATCH 2/4] break after first successful load --- features/src/nvhpc/etc/profile.d/nvhpc.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/features/src/nvhpc/etc/profile.d/nvhpc.sh b/features/src/nvhpc/etc/profile.d/nvhpc.sh index bc8f2f19..fe429fd3 100755 --- a/features/src/nvhpc/etc/profile.d/nvhpc.sh +++ b/features/src/nvhpc/etc/profile.d/nvhpc.sh @@ -16,6 +16,9 @@ if [ -n "${PATH##*"${NVHPC_ROOT}/compilers/bin"*}" ]; then if ! module list "${NVHPC_MODULE_NAME}" 2>&1 | grep -q 'None found.'; then if ! module list 2>&1 | grep -q "${NVHPC_MODULE_NAME}"; then module try-load "${NVHPC_MODULE_NAME}" >/dev/null 2>&1; + if module list 2>&1 | grep -q "${NVHPC_MODULE_NAME}"; then + break; + fi fi fi done From b2025e517e4e35e7da05728710e760d918f54b02 Mon Sep 17 00:00:00 2001 From: ptaylor Date: Fri, 13 Feb 2026 17:57:21 -0800 Subject: [PATCH 3/4] activate cuda module then regular module --- features/src/nvhpc/etc/profile.d/nvhpc.sh | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/features/src/nvhpc/etc/profile.d/nvhpc.sh b/features/src/nvhpc/etc/profile.d/nvhpc.sh index fe429fd3..f820da8e 100755 --- a/features/src/nvhpc/etc/profile.d/nvhpc.sh +++ b/features/src/nvhpc/etc/profile.d/nvhpc.sh @@ -10,15 +10,10 @@ if [ -n "${PATH##*"${NVHPC_ROOT}/compilers/bin"*}" ]; then done unset NVHPC_MODULEFILES_DIR; for NVHPC_MODULE_NAME in "nvhpc-hpcx-cuda${CUDA_VERSION_MAJOR}/${NVHPC_VERSION}" \ - "nvhpc-hpcx-cuda${CUDA_VERSION_MAJOR}" \ - "nvhpc-hpcx/${NVHPC_VERSION}" \ - "nvhpc-hpcx"; do + "nvhpc-hpcx/${NVHPC_VERSION}"; do if ! module list "${NVHPC_MODULE_NAME}" 2>&1 | grep -q 'None found.'; then if ! module list 2>&1 | grep -q "${NVHPC_MODULE_NAME}"; then module try-load "${NVHPC_MODULE_NAME}" >/dev/null 2>&1; - if module list 2>&1 | grep -q "${NVHPC_MODULE_NAME}"; then - break; - fi fi fi done From c591492277913400e6540a2b5863fa88f7bc1924 Mon Sep 17 00:00:00 2001 From: ptaylor Date: Fri, 13 Feb 2026 18:00:10 -0800 Subject: [PATCH 4/4] use NVHPC_CUDA_VERSION instead --- features/src/nvhpc/.bashrc | 8 ++++---- features/src/nvhpc/etc/profile.d/nvhpc.sh | 2 +- features/src/nvhpc/install.sh | 16 ++++++++-------- 3 files changed, 13 insertions(+), 13 deletions(-) diff --git a/features/src/nvhpc/.bashrc b/features/src/nvhpc/.bashrc index ba517f48..75e78075 100644 --- a/features/src/nvhpc/.bashrc +++ b/features/src/nvhpc/.bashrc @@ -1,7 +1,7 @@ -export CUDA_VERSION="${CUDA_VERSION}"; -export CUDA_VERSION_MAJOR="${CUDA_VERSION_MAJOR}"; -export CUDA_VERSION_MINOR="${CUDA_VERSION_MINOR}"; -export CUDA_VERSION_PATCH="${CUDA_VERSION_PATCH}"; +export NVHPC_CUDA_VERSION="${NVHPC_CUDA_VERSION}"; +export NVHPC_CUDA_VERSION_MAJOR="${NVHPC_CUDA_VERSION_MAJOR}"; +export NVHPC_CUDA_VERSION_MINOR="${NVHPC_CUDA_VERSION_MINOR}"; +export NVHPC_CUDA_VERSION_PATCH="${NVHPC_CUDA_VERSION_PATCH}"; export NVHPC="${NVHPC}"; export NVHPC_VERSION="${NVHPC_VERSION}"; export NVHPC_VERSION_MAJOR="${NVHPC_VERSION_MAJOR}"; diff --git a/features/src/nvhpc/etc/profile.d/nvhpc.sh b/features/src/nvhpc/etc/profile.d/nvhpc.sh index f820da8e..7d7da673 100755 --- a/features/src/nvhpc/etc/profile.d/nvhpc.sh +++ b/features/src/nvhpc/etc/profile.d/nvhpc.sh @@ -9,7 +9,7 @@ if [ -n "${PATH##*"${NVHPC_ROOT}/compilers/bin"*}" ]; then fi done unset NVHPC_MODULEFILES_DIR; - for NVHPC_MODULE_NAME in "nvhpc-hpcx-cuda${CUDA_VERSION_MAJOR}/${NVHPC_VERSION}" \ + for NVHPC_MODULE_NAME in "nvhpc-hpcx-cuda${NVHPC_CUDA_VERSION_MAJOR}/${NVHPC_VERSION}" \ "nvhpc-hpcx/${NVHPC_VERSION}"; do if ! module list "${NVHPC_MODULE_NAME}" 2>&1 | grep -q 'None found.'; then if ! module list 2>&1 | grep -q "${NVHPC_MODULE_NAME}"; then diff --git a/features/src/nvhpc/install.sh b/features/src/nvhpc/install.sh index 5712aefb..2349d0dc 100644 --- a/features/src/nvhpc/install.sh +++ b/features/src/nvhpc/install.sh @@ -69,10 +69,10 @@ if ! test -L /usr/local/cuda; then fi cuda_ver=$(grep "#define CUDA_VERSION" "${NVHPC_CUDA_HOME}/include/cuda.h" | cut -d' ' -f3); -export CUDA_VERSION_MAJOR="$((cuda_ver / 1000))"; -export CUDA_VERSION_MINOR="$((cuda_ver / 10 % 100))"; -export CUDA_VERSION_PATCH="$((cuda_ver % 10))"; -export CUDA_VERSION="$CUDA_VERSION_MAJOR.$CUDA_VERSION_MINOR.$CUDA_VERSION_PATCH"; +export NVHPC_CUDA_VERSION_MAJOR="$((cuda_ver / 1000))"; +export NVHPC_CUDA_VERSION_MINOR="$((cuda_ver / 10 % 100))"; +export NVHPC_CUDA_VERSION_PATCH="$((cuda_ver % 10))"; +export NVHPC_CUDA_VERSION="$NVHPC_CUDA_VERSION_MAJOR.$NVHPC_CUDA_VERSION_MINOR.$NVHPC_CUDA_VERSION_PATCH"; bash "${NVHPC_ROOT}/compilers/bin/makelocalrc" \ -x "${NVHPC_ROOT}/compilers/bin" \ @@ -82,10 +82,10 @@ bash "${NVHPC_ROOT}/compilers/bin/makelocalrc" \ vars_=(); vars_+=('$NVHPC'); -vars_+=('$CUDA_VERSION'); -vars_+=('$CUDA_VERSION_MAJOR'); -vars_+=('$CUDA_VERSION_MINOR'); -vars_+=('$CUDA_VERSION_PATCH'); +vars_+=('$NVHPC_CUDA_VERSION'); +vars_+=('$NVHPC_CUDA_VERSION_MAJOR'); +vars_+=('$NVHPC_CUDA_VERSION_MINOR'); +vars_+=('$NVHPC_CUDA_VERSION_PATCH'); vars_+=('$NVHPC_VERSION'); vars_+=('$NVHPC_VERSION_MAJOR'); vars_+=('$NVHPC_VERSION_MINOR');