From 20fe9c7b3a232e70148e38d6547d4d7f1d83b75f Mon Sep 17 00:00:00 2001 From: Sebastian Achilles <s.achilles@fz-juelich.de> Date: Fri, 27 Jan 2023 14:42:17 +0100 Subject: [PATCH] adding easyconfigs: NVSHMEM --- .../NVSHMEM-2.8.0-gompi-2022a-CUDA-11.7.eb | 71 +++++++++++++++++++ .../NVSHMEM-2.8.0-gpsmpi-2022a-CUDA-11.7.eb | 71 +++++++++++++++++++ .../NVSHMEM-2.8.0-npsmpic-2022a-CUDA-11.7.eb | 71 +++++++++++++++++++ .../NVSHMEM-2.8.0-nvompic-2022a-CUDA-11.7.eb | 71 +++++++++++++++++++ 4 files changed, 284 insertions(+) create mode 100644 Golden_Repo/n/NVSHMEM/NVSHMEM-2.8.0-gompi-2022a-CUDA-11.7.eb create mode 100644 Golden_Repo/n/NVSHMEM/NVSHMEM-2.8.0-gpsmpi-2022a-CUDA-11.7.eb create mode 100644 Golden_Repo/n/NVSHMEM/NVSHMEM-2.8.0-npsmpic-2022a-CUDA-11.7.eb create mode 100644 Golden_Repo/n/NVSHMEM/NVSHMEM-2.8.0-nvompic-2022a-CUDA-11.7.eb diff --git a/Golden_Repo/n/NVSHMEM/NVSHMEM-2.8.0-gompi-2022a-CUDA-11.7.eb b/Golden_Repo/n/NVSHMEM/NVSHMEM-2.8.0-gompi-2022a-CUDA-11.7.eb new file mode 100644 index 000000000..8782aa968 --- /dev/null +++ b/Golden_Repo/n/NVSHMEM/NVSHMEM-2.8.0-gompi-2022a-CUDA-11.7.eb @@ -0,0 +1,71 @@ +easyblock = 'ConfigureMake' + +name = 'NVSHMEM' +version = '2.8.0' +versionsuffix = '-CUDA-%(cudaver)s' + +local_cuda_version = '11.7' + +homepage = 'https://developer.nvidia.com/nvshmem' +description = """NVSHMEM is a parallel programming interface based on OpenSHMEM that provides +efficient and scalable communication for NVIDIA GPU clusters. NVSHMEM creates a +global address space for data that spans the memory of multiple GPUs and can be +accessed with fine-grained GPU-initiated operations, CPU-initiated operations, +and operations on CUDA streams. +""" + +toolchain = {'name': 'gompi', 'version': '2022a'} + +download_instructions = """The sources of NVSHMEM can be downloaded at NVIDIA's webpage when you have signed up for +their (free) developer program: +https://developer.nvidia.com/nvshmem-downloads""" + +sources = ['%(namelower)s_src_%(version)s-3.txz'] +checksums = ['7d4ef226630a94b587d18e02c27decc8b41d6f4ee52a26e25644b23cd18da81f'] + +builddependencies = [ + ('Autotools', '20220317'), + ('pkgconf', '1.8.0'), +] + +dependencies = [ + ('CUDA', local_cuda_version, '', SYSTEM), + ('NCCL', 'default', f'-CUDA-{local_cuda_version}'), +] + +skipsteps = ['configure'] + +prebuildopts = 'export %s &&' % ' '.join([ + 'NVSHMEM_USE_GDRCOPY=1', + 'GDRCOPY_HOME=${EBROOTGDRCOPY}', + + 'MPI_HOME=${EBROOTOPENMPI}', + 'NVSHMEM_MPI_SUPPORT=1', + 'NVSHMEMTEST_USE_MPI_LAUNCHER=1', + + 'NCCL_HOME=${EBROOTNCCL}', + 'NVSHMEM_USE_NCCL=1', + + 'NVSHMEM_BUILDDIR=%(builddir)s', + 'NVSHMEM_EXAMPLES_BUILDDIR=${NVSHMEM_BUILDDIR}/examples/obj', + 'NVSHMEM_OTHERTEST_BUILDDIR=${NVSHMEM_BUILDDIR}/othertest/obj', + 'NVSHMEM_TEST_BUILDDIR=${NVSHMEM_BUILDDIR}/test/obj', + 'NVSHMEM_PERFTEST_BUILDDIR=${NVSHMEM_BUILDDIR}/perftest/obj', + + 'NVSHMEM_PREFIX=%(installdir)s', + 'NVSHMEM_EXAMPLES_INSTALL=${NVSHMEM_PREFIX}/examples', + 'NVSHMEM_OTHERTEST_INSTALL=${NVSHMEM_PREFIX}/othertest', + 'NVSHMEM_PERFTEST_INSTALL=${NVSHMEM_PREFIX}/perftest', + 'NVSHMEM_TEST_INSTALL=${NVSHMEM_PREFIX}/test', +]) + +preinstallopts = prebuildopts + +sanity_check_paths = { + 'files': ['lib/libnvshmem.a', 'lib/nvshmem_bootstrap_mpi.%s' % SHLIB_EXT], + 'dirs': ['include'] +} + +modextravars = {'NVSHMEM_HOME': '%(installdir)s'} + +moduleclass = 'devel' diff --git a/Golden_Repo/n/NVSHMEM/NVSHMEM-2.8.0-gpsmpi-2022a-CUDA-11.7.eb b/Golden_Repo/n/NVSHMEM/NVSHMEM-2.8.0-gpsmpi-2022a-CUDA-11.7.eb new file mode 100644 index 000000000..d9edd5f15 --- /dev/null +++ b/Golden_Repo/n/NVSHMEM/NVSHMEM-2.8.0-gpsmpi-2022a-CUDA-11.7.eb @@ -0,0 +1,71 @@ +easyblock = 'ConfigureMake' + +name = 'NVSHMEM' +version = '2.8.0' +versionsuffix = '-CUDA-%(cudaver)s' + +local_cuda_version = '11.7' + +homepage = 'https://developer.nvidia.com/nvshmem' +description = """NVSHMEM is a parallel programming interface based on OpenSHMEM that provides +efficient and scalable communication for NVIDIA GPU clusters. NVSHMEM creates a +global address space for data that spans the memory of multiple GPUs and can be +accessed with fine-grained GPU-initiated operations, CPU-initiated operations, +and operations on CUDA streams. +""" + +toolchain = {'name': 'gpsmpi', 'version': '2022a'} + +download_instructions = """The sources of NVSHMEM can be downloaded at NVIDIA's webpage when you have signed up for +their (free) developer program: +https://developer.nvidia.com/nvshmem-downloads""" + +sources = ['%(namelower)s_src_%(version)s-3.txz'] +checksums = ['7d4ef226630a94b587d18e02c27decc8b41d6f4ee52a26e25644b23cd18da81f'] + +builddependencies = [ + ('Autotools', '20220317'), + ('pkgconf', '1.8.0'), +] + +dependencies = [ + ('CUDA', local_cuda_version, '', SYSTEM), + ('NCCL', 'default', f'-CUDA-{local_cuda_version}'), +] + +skipsteps = ['configure'] + +prebuildopts = 'export %s &&' % ' '.join([ + 'NVSHMEM_USE_GDRCOPY=1', + 'GDRCOPY_HOME=${EBROOTGDRCOPY}', + + 'MPI_HOME=${EBROOTPSMPI}', + 'NVSHMEM_MPI_SUPPORT=1', + 'NVSHMEMTEST_USE_MPI_LAUNCHER=1', + + 'NCCL_HOME=${EBROOTNCCL}', + 'NVSHMEM_USE_NCCL=1', + + 'NVSHMEM_BUILDDIR=%(builddir)s', + 'NVSHMEM_EXAMPLES_BUILDDIR=${NVSHMEM_BUILDDIR}/examples/obj', + 'NVSHMEM_OTHERTEST_BUILDDIR=${NVSHMEM_BUILDDIR}/othertest/obj', + 'NVSHMEM_TEST_BUILDDIR=${NVSHMEM_BUILDDIR}/test/obj', + 'NVSHMEM_PERFTEST_BUILDDIR=${NVSHMEM_BUILDDIR}/perftest/obj', + + 'NVSHMEM_PREFIX=%(installdir)s', + 'NVSHMEM_EXAMPLES_INSTALL=${NVSHMEM_PREFIX}/examples', + 'NVSHMEM_OTHERTEST_INSTALL=${NVSHMEM_PREFIX}/othertest', + 'NVSHMEM_PERFTEST_INSTALL=${NVSHMEM_PREFIX}/perftest', + 'NVSHMEM_TEST_INSTALL=${NVSHMEM_PREFIX}/test', +]) + +preinstallopts = prebuildopts + +sanity_check_paths = { + 'files': ['lib/libnvshmem.a', 'lib/nvshmem_bootstrap_mpi.%s' % SHLIB_EXT], + 'dirs': ['include'] +} + +modextravars = {'NVSHMEM_HOME': '%(installdir)s'} + +moduleclass = 'devel' diff --git a/Golden_Repo/n/NVSHMEM/NVSHMEM-2.8.0-npsmpic-2022a-CUDA-11.7.eb b/Golden_Repo/n/NVSHMEM/NVSHMEM-2.8.0-npsmpic-2022a-CUDA-11.7.eb new file mode 100644 index 000000000..ab9861d9a --- /dev/null +++ b/Golden_Repo/n/NVSHMEM/NVSHMEM-2.8.0-npsmpic-2022a-CUDA-11.7.eb @@ -0,0 +1,71 @@ +easyblock = 'ConfigureMake' + +name = 'NVSHMEM' +version = '2.8.0' +versionsuffix = '-CUDA-%(cudaver)s' + +local_cuda_version = '11.7' + +homepage = 'https://developer.nvidia.com/nvshmem' +description = """NVSHMEM is a parallel programming interface based on OpenSHMEM that provides +efficient and scalable communication for NVIDIA GPU clusters. NVSHMEM creates a +global address space for data that spans the memory of multiple GPUs and can be +accessed with fine-grained GPU-initiated operations, CPU-initiated operations, +and operations on CUDA streams. +""" + +toolchain = {'name': 'npsmpic', 'version': '2022a'} + +download_instructions = """The sources of NVSHMEM can be downloaded at NVIDIA's webpage when you have signed up for +their (free) developer program: +https://developer.nvidia.com/nvshmem-downloads""" + +sources = ['%(namelower)s_src_%(version)s-3.txz'] +checksums = ['7d4ef226630a94b587d18e02c27decc8b41d6f4ee52a26e25644b23cd18da81f'] + +builddependencies = [ + ('Autotools', '20220317'), + ('pkgconf', '1.8.0'), +] + +dependencies = [ + ('CUDA', local_cuda_version, '', SYSTEM), + ('NCCL', 'default', f'-CUDA-{local_cuda_version}'), +] + +skipsteps = ['configure'] + +prebuildopts = 'export %s &&' % ' '.join([ + 'NVSHMEM_USE_GDRCOPY=1', + 'GDRCOPY_HOME=${EBROOTGDRCOPY}', + + 'MPI_HOME=${EBROOTPSMPI}', + 'NVSHMEM_MPI_SUPPORT=1', + 'NVSHMEMTEST_USE_MPI_LAUNCHER=1', + + 'NCCL_HOME=${EBROOTNCCL}', + 'NVSHMEM_USE_NCCL=1', + + 'NVSHMEM_BUILDDIR=%(builddir)s', + 'NVSHMEM_EXAMPLES_BUILDDIR=${NVSHMEM_BUILDDIR}/examples/obj', + 'NVSHMEM_OTHERTEST_BUILDDIR=${NVSHMEM_BUILDDIR}/othertest/obj', + 'NVSHMEM_TEST_BUILDDIR=${NVSHMEM_BUILDDIR}/test/obj', + 'NVSHMEM_PERFTEST_BUILDDIR=${NVSHMEM_BUILDDIR}/perftest/obj', + + 'NVSHMEM_PREFIX=%(installdir)s', + 'NVSHMEM_EXAMPLES_INSTALL=${NVSHMEM_PREFIX}/examples', + 'NVSHMEM_OTHERTEST_INSTALL=${NVSHMEM_PREFIX}/othertest', + 'NVSHMEM_PERFTEST_INSTALL=${NVSHMEM_PREFIX}/perftest', + 'NVSHMEM_TEST_INSTALL=${NVSHMEM_PREFIX}/test', +]) + +preinstallopts = prebuildopts + +sanity_check_paths = { + 'files': ['lib/libnvshmem.a', 'lib/nvshmem_bootstrap_mpi.%s' % SHLIB_EXT], + 'dirs': ['include'] +} + +modextravars = {'NVSHMEM_HOME': '%(installdir)s'} + +moduleclass = 'devel' diff --git a/Golden_Repo/n/NVSHMEM/NVSHMEM-2.8.0-nvompic-2022a-CUDA-11.7.eb b/Golden_Repo/n/NVSHMEM/NVSHMEM-2.8.0-nvompic-2022a-CUDA-11.7.eb new file mode 100644 index 000000000..e8e16d929 --- /dev/null +++ b/Golden_Repo/n/NVSHMEM/NVSHMEM-2.8.0-nvompic-2022a-CUDA-11.7.eb @@ -0,0 +1,71 @@ +easyblock = 'ConfigureMake' + +name = 'NVSHMEM' +version = '2.8.0' +versionsuffix = '-CUDA-%(cudaver)s' + +local_cuda_version = '11.7' + +homepage = 'https://developer.nvidia.com/nvshmem' +description = """NVSHMEM is a parallel programming interface based on OpenSHMEM that provides +efficient and scalable communication for NVIDIA GPU clusters. NVSHMEM creates a +global address space for data that spans the memory of multiple GPUs and can be +accessed with fine-grained GPU-initiated operations, CPU-initiated operations, +and operations on CUDA streams. +""" + +toolchain = {'name': 'nvompic', 'version': '2022a'} + +download_instructions = """The sources of NVSHMEM can be downloaded at NVIDIA's webpage when you have signed up for +their (free) developer program: +https://developer.nvidia.com/nvshmem-downloads""" + +sources = ['%(namelower)s_src_%(version)s-3.txz'] +checksums = ['7d4ef226630a94b587d18e02c27decc8b41d6f4ee52a26e25644b23cd18da81f'] + +builddependencies = [ + ('Autotools', '20220317'), + ('pkgconf', '1.8.0'), +] + +dependencies = [ + ('CUDA', local_cuda_version, '', SYSTEM), + ('NCCL', 'default', f'-CUDA-{local_cuda_version}'), +] + +skipsteps = ['configure'] + +prebuildopts = 'export %s &&' % ' '.join([ + 'NVSHMEM_USE_GDRCOPY=1', + 'GDRCOPY_HOME=${EBROOTGDRCOPY}', + + 'MPI_HOME=${EBROOTOPENMPI}', + 'NVSHMEM_MPI_SUPPORT=1', + 'NVSHMEMTEST_USE_MPI_LAUNCHER=1', + + 'NCCL_HOME=${EBROOTNCCL}', + 'NVSHMEM_USE_NCCL=1', + + 'NVSHMEM_BUILDDIR=%(builddir)s', + 'NVSHMEM_EXAMPLES_BUILDDIR=${NVSHMEM_BUILDDIR}/examples/obj', + 'NVSHMEM_OTHERTEST_BUILDDIR=${NVSHMEM_BUILDDIR}/othertest/obj', + 'NVSHMEM_TEST_BUILDDIR=${NVSHMEM_BUILDDIR}/test/obj', + 'NVSHMEM_PERFTEST_BUILDDIR=${NVSHMEM_BUILDDIR}/perftest/obj', + + 'NVSHMEM_PREFIX=%(installdir)s', + 'NVSHMEM_EXAMPLES_INSTALL=${NVSHMEM_PREFIX}/examples', + 'NVSHMEM_OTHERTEST_INSTALL=${NVSHMEM_PREFIX}/othertest', + 'NVSHMEM_PERFTEST_INSTALL=${NVSHMEM_PREFIX}/perftest', + 'NVSHMEM_TEST_INSTALL=${NVSHMEM_PREFIX}/test', +]) + +preinstallopts = prebuildopts + +sanity_check_paths = { + 'files': ['lib/libnvshmem.a', 'lib/nvshmem_bootstrap_mpi.%s' % SHLIB_EXT], + 'dirs': ['include'] +} + +modextravars = {'NVSHMEM_HOME': '%(installdir)s'} + +moduleclass = 'devel' -- GitLab