name = 'NVHPC' version = '24.9' versionsuffix = '-CUDA-%(cudaver)s' homepage = 'https://developer.nvidia.com/hpc-sdk/' description = """C, C++ and Fortran compilers included with the NVIDIA HPC SDK (previously: PGI)""" toolchain = SYSTEM local_tarball_tmpl = 'nvhpc_2024_%%(version_major)s%%(version_minor)s_Linux_%s_cuda_multi.tar.gz' # By downloading, you accept the HPC SDK Software License Agreement # https://docs.nvidia.com/hpc-sdk/eula/index.html # accept_eula = True source_urls = ['https://developer.download.nvidia.com/hpc-sdk/%(version)s/'] sources = [local_tarball_tmpl % '%(arch)s'] checksums = [ { local_tarball_tmpl % 'aarch64': '8d900f798ef806c64993fd4fedf2c2c812dd1ccdbac2a0d33fabcd0cd36f19cf', local_tarball_tmpl % 'x86_64': '30c493350cf67481e84cea60a3a869e01fa0bcb71df8e898266273fbdf0a7f26', } ] local_gccver = '13.3.0' dependencies = [ ('GCCcore', local_gccver), ('binutils', '2.42', '', ('GCCcore', local_gccver)), # This is necessary to avoid cases where just libnuma.so.1 is present in the system and -lnuma fails ('numactl', '2.0.18', '', ('GCCcore', local_gccver)), ('CUDA', '12.6.0', '', SYSTEM), ] module_add_cuda = False # specify default CUDA version that should be used by NVHPC # should match one of the CUDA versions that are included with this NVHPC version # (see install_components/Linux_x86_64/$version/cuda/) where $version is the NVHPC version # this version can be tweaked from the EasyBuild command line with # --try-amend=default_cuda_version="11.0" (for example) default_cuda_version = '%(cudaver)s' # NVHPC EasyBlock supports some features, which can be set via CLI or this easyconfig. # The following list gives examples for the easyconfig # # NVHPC needs CUDA to work. Two options are available: 1) Use NVHPC-bundled CUDA, 2) use system CUDA # 1) Bundled CUDA # If no easybuild dependency to CUDA is present, the bundled CUDA is taken. A version needs to be specified with # default_cuda_version = "11.0" # in this easyconfig file; alternatively, it can be specified through the command line during installation with # --try-amend=default_cuda_version="10.2" # 2) CUDA provided via EasyBuild # Use CUDA as a dependency, for example # dependencies = [('CUDA', '11.5.0')] # The parameter default_cuda_version still can be set as above. # If not set, it will be deduced from the CUDA module (via $EBVERSIONCUDA) # # Define a NVHPC-default Compute Capability # cuda_compute_capabilities = "8.0" # Can also be specified on the EasyBuild command line via --cuda-compute-capabilities=8.0 # Only single values supported, not lists of values! # # Options to add/remove things to/from environment module (defaults shown) # module_byo_compilers = False # Remove compilers from PATH (Bring-your-own compilers) # module_nvhpc_own_mpi = False # Add NVHPC's own pre-compiled OpenMPI # module_add_math_libs = False # Add NVHPC's math libraries (which should be there from CUDA anyway) # module_add_profilers = False # Add NVHPC's NVIDIA Profilers # module_add_nccl = False # Add NVHPC's NCCL library # module_add_nvshmem = False # Add NVHPC's NVSHMEM library # module_add_cuda = False # Add NVHPC's bundled CUDA # this bundle serves as a compiler-only toolchain, so it should be marked as compiler (important for HMNS) moduleclass = 'compiler'