Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -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
25 changes: 24 additions & 1 deletion scripts/gpu_support/nvidia/install_cuda_and_libraries.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand All @@ -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}"
17 changes: 16 additions & 1 deletion scripts/gpu_support/nvidia/link_nvidia_host_libraries.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand All @@ -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"
Expand Down Expand Up @@ -820,4 +836,3 @@ fi

# If everything went OK, show success message
echo_green "Host NVIDIA GPU drivers linked successfully for EESSI"

Loading