diff --git a/scripts/gpu_support/nvidia/easystacks/2023.06/eessi-2023.06-eb-5.3.0-2023a-CUDA-host-injections.yml b/scripts/gpu_support/nvidia/easystacks/2023.06/eessi-2023.06-eb-5.3.0-2023a-CUDA-host-injections.yml index 83e68077..a618877c 100644 --- a/scripts/gpu_support/nvidia/easystacks/2023.06/eessi-2023.06-eb-5.3.0-2023a-CUDA-host-injections.yml +++ b/scripts/gpu_support/nvidia/easystacks/2023.06/eessi-2023.06-eb-5.3.0-2023a-CUDA-host-injections.yml @@ -7,3 +7,5 @@ easyconfigs: # needed to enforce acceptance of EULA in cuDNN easyblock, # see https://github.com/easybuilders/easybuild-easyblocks/pull/3473 include-easyblocks-from-commit: 11afb88ec55e0ca431cbe823696aa43e2a9bfca8 + # Don't fail for missing PTX + cuda-sanity-check-accept-missing-ptx: True diff --git a/scripts/gpu_support/nvidia/install_cuda_and_libraries.sh b/scripts/gpu_support/nvidia/install_cuda_and_libraries.sh index b11bd2c0..9cb4d9f0 100755 --- a/scripts/gpu_support/nvidia/install_cuda_and_libraries.sh +++ b/scripts/gpu_support/nvidia/install_cuda_and_libraries.sh @@ -92,7 +92,18 @@ echo "Created temporary directory '${tmpdir}'" # Store MODULEPATH so it can be restored at the end of each loop iteration SAVE_MODULEPATH=${MODULEPATH} -for EASYSTACK_FILE in ${TOPDIR}/easystacks/eessi-*CUDA*.yml; do +# Check if NVIDIA_EASYSTACKS_DIRECTORY is already set and not empty +if [ -n "${NVIDIA_EASYSTACKS_DIRECTORY}" ]; then + echo_yellow "Using environment override NVIDIA_EASYSTACKS_DIRECTORY: ${NVIDIA_EASYSTACKS_DIRECTORY}" +else + NVIDIA_EASYSTACKS_DIRECTORY="${TOPDIR}/easystacks" + echo_green "NVIDIA_EASYSTACKS_DIRECTORY environment variable override is not set, using default ${NVIDIA_EASYSTACKS_DIRECTORY}" +fi +# Initialize an empty array to store the processed easystack paths +PROCESSED_EASYSTACK_FILES=() +for EASYSTACK_FILE in ${NVIDIA_EASYSTACKS_DIRECTORY}/eessi-*CUDA*.yml; do + # The file must exist + [ -e "${EASYSTACK_FILE}" ] || continue echo -e "Processing easystack file ${EASYSTACK_FILE}...\n\n" # determine version of EasyBuild module to load based on EasyBuild version included in name of easystack file @@ -267,6 +278,7 @@ for EASYSTACK_FILE in ${TOPDIR}/easystacks/eessi-*CUDA*.yml; do fatal_error "some installation failed, please check EasyBuild logs ${PWD}/$(basename ${eb_last_log})..." else echo_green "all installations at ${EASYBUILD_INSTALLPATH}/software/... succeeded!" + PROCESSED_EASYSTACK_FILES+=("${EASYSTACK_FILE}") fi # clean up tmpdir content @@ -275,5 +287,16 @@ for EASYSTACK_FILE in ${TOPDIR}/easystacks/eessi-*CUDA*.yml; do # Restore MODULEPATH for next loop iteration MODULEPATH=${SAVE_MODULEPATH} done + +# Check that we processed at least one easystack file +if [ ${#PROCESSED_EASYSTACK_FILES[@]} -gt 0 ]; then + echo_green "${#PROCESSED_EASYSTACK_FILES[@]} easystack files processed:" + for EASYSTACK_FILE in "${PROCESSED_EASYSTACK_FILES[@]}"; do + echo_green "- ${EASYSTACK_FILE}" + done +else + fatal_error "Error: No matching CUDA easystack files were successfully found/processed in ${NVIDIA_EASYSTACKS_DIRECTORY}!" +fi + # Remove the temporary directory rm -rf "${tmpdir}" diff --git a/scripts/gpu_support/nvidia/link_nvidia_host_libraries.sh b/scripts/gpu_support/nvidia/link_nvidia_host_libraries.sh index 9c87cf9d..69a520cb 100755 --- a/scripts/gpu_support/nvidia/link_nvidia_host_libraries.sh +++ b/scripts/gpu_support/nvidia/link_nvidia_host_libraries.sh @@ -130,6 +130,9 @@ get_nvlib_list() { "libglx.so" "libGLX.so" "libnvcuvid.so" + "libnvcucompat.so" + "libnvcudla.so" + "libnvcuextend.so" "libnvidia-cbl.so" "libnvidia-cfg.so" "libnvidia-compiler.so" @@ -150,10 +153,23 @@ get_nvlib_list() { "libnvidia-opencl.so" "libnvidia-opticalflow.so" "libnvidia-ptxjitcompiler.so" + "libnvidia-rmapi-tegra.so" "libnvidia-rtcore.so" "libnvidia-tls.so" "libnvidia-wfb.so" "libnvoptix.so" + "libnvos.so" + "libnvosd.so" + "libnvrm_chip.so" + "libnvrm_gpu.so" + "libnvrm_host1x.so" + "libnvrm_mem.so" + "libnvrm_stream.so" + "libnvrm_surface.so" + "libnvrm_sync.so" + "libnvsciipc.so" + "libnvsocsys.so" + "libnvtegrahv.so" "libOpenCL.so" "libOpenGL.so" "libvdpau_nvidia.so" @@ -820,4 +836,3 @@ fi # If everything went OK, show success message echo_green "Host NVIDIA GPU drivers linked successfully for EESSI" -