Skip to content

Commit

Permalink
Merge pull request #20107 from Flamefire/20240313135157_new_pr_CUDA1240
Browse files Browse the repository at this point in the history
{lib}[GCCcore/13.2.0] CUDA v12.4.0, NCCL v2.20.5, magma v2.7.2, ... w/ CUDA 12.4.0
  • Loading branch information
Micket authored Mar 19, 2024
2 parents 6f964c5 + fa15403 commit e788852
Show file tree
Hide file tree
Showing 4 changed files with 135 additions and 0 deletions.
24 changes: 24 additions & 0 deletions easybuild/easyconfigs/c/CUDA/CUDA-12.4.0.eb
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
name = 'CUDA'
version = '12.4.0'
local_nv_version = '550.54.14'

homepage = 'https://developer.nvidia.com/cuda-toolkit'
description = """CUDA (formerly Compute Unified Device Architecture) is a parallel
computing platform and programming model created by NVIDIA and implemented by the
graphics processing units (GPUs) that they produce. CUDA gives developers access
to the virtual instruction set and memory of the parallel computational elements in CUDA GPUs."""

toolchain = SYSTEM

source_urls = ['https://developer.download.nvidia.com/compute/cuda/%(version)s/local_installers/']
sources = ['cuda_%%(version)s_%s_linux%%(cudaarch)s.run' % local_nv_version]
checksums = [{
'cuda_%%(version)s_%s_linux.run' % local_nv_version:
'e6a842f4eca9490575cdb68b6b1bb78d47b95a897de48dee292c431892e57d17',
'cuda_%%(version)s_%s_linux_ppc64le.run' % local_nv_version:
'ef9a712daccf2805b4422f2301ff0eaa5c3ad41ef5d64b8626773bce7d1f41fe',
'cuda_%%(version)s_%s_linux_sbsa.run' % local_nv_version:
'b12bfe6c36d32ecf009a6efb0024325c5fc389fca1143f5f377ae2555936e803'
}]

moduleclass = 'system'
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
easyblock = 'CMakeMake'

name = 'magma'
version = '2.7.2'
versionsuffix = '-CUDA-%(cudaver)s'

homepage = 'https://icl.cs.utk.edu/magma/'
description = """The MAGMA project aims to develop a dense linear algebra library similar to
LAPACK but for heterogeneous/hybrid architectures, starting with current Multicore+GPU systems."""

toolchain = {'name': 'foss', 'version': '2023b'}
toolchainopts = {'pic': True, 'openmp': True}

source_urls = ['https://icl.cs.utk.edu/projectsfiles/%(name)s/downloads/']
sources = [SOURCE_TAR_GZ]
patches = ['%(name)s-2.7.2_allow-all-sms.patch']
checksums = [
{'magma-2.7.2.tar.gz': '729bc1a70e518a7422fe7a3a54537a4741035a77be3349f66eac5c362576d560'},
{'magma-2.7.2_allow-all-sms.patch': '2996485844d7e199ea57eaebf59903d3514a03536f82b655ce30de480e28b828'},
]

builddependencies = [
('CMake', '3.27.6'),
]
dependencies = [
('CUDA', '12.4.0', '', SYSTEM),
('UCX-CUDA', '1.15.0', versionsuffix),
]

# default CUDA compute capabilities to use (override via --cuda-compute-capabilities)
cuda_compute_capabilities = ['5.0', '6.0', '7.0', '7.5', '8.0', '8.6', '9.0']

# make sure both static and shared libs are built
configopts = [
'-DBUILD_SHARED_LIBS=%s \
-DGPU_TARGET="%%(cuda_sm_space_sep)s" ' % local_shared for local_shared in ('ON', 'OFF')
]

sanity_check_paths = {
'files': ['lib/libmagma.%s' % SHLIB_EXT, 'lib/libmagma.a'],
'dirs': ['include'],
}

moduleclass = 'math'
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
name = 'NCCL'
version = '2.20.5'
versionsuffix = '-CUDA-%(cudaver)s'

homepage = 'https://developer.nvidia.com/nccl'
description = """The NVIDIA Collective Communications Library (NCCL) implements multi-GPU and multi-node collective
communication primitives that are performance optimized for NVIDIA GPUs."""

toolchain = {'name': 'GCCcore', 'version': '13.2.0'}

github_account = 'NVIDIA'
source_urls = [GITHUB_SOURCE]
sources = ['v%(version)s-1.tar.gz']
checksums = ['d11ad65c1df3cbe4447eaddceec71569f5c0497e27b3b8369cf79f18d2b2ad8c']

builddependencies = [('binutils', '2.40')]

dependencies = [
('CUDA', '12.4.0', '', SYSTEM),
('UCX-CUDA', '1.15.0', versionsuffix),
]

# default CUDA compute capabilities to use (override via --cuda-compute-capabilities)
cuda_compute_capabilities = ['5.0', '6.0', '7.0', '7.5', '8.0', '8.6', '9.0']

moduleclass = 'lib'
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
easyblock = 'EB_UCX_Plugins'

name = 'UCX-CUDA'
version = '1.15.0'
versionsuffix = '-CUDA-%(cudaver)s'

homepage = 'http://www.openucx.org/'
description = """Unified Communication X
An open-source production grade communication framework for data centric
and high-performance applications
This module adds the UCX CUDA support.
"""

toolchain = {'name': 'GCCcore', 'version': '13.2.0'}
toolchainopts = {'pic': True}

source_urls = ['https://github.com/openucx/ucx/releases/download/v%(version)s']
sources = [{'filename': 'ucx-%(version)s.tar.gz', 'alt_location': 'UCX'}]
patches = ['%(name)s-1.11.0_link_against_existing_UCX_libs.patch']
checksums = [
{'ucx-1.15.0.tar.gz': '4b202087076bc1c98f9249144f0c277a8ea88ad4ca6f404f94baa9cb3aebda6d'},
{'UCX-CUDA-1.11.0_link_against_existing_UCX_libs.patch':
'457187fa020e526609ba91e7750c9941d57bd57d60d6eed317b40ad8824aca93'},
]

builddependencies = [
('binutils', '2.40'),
('Autotools', '20220317'),
('pkgconf', '2.0.3'),
]

dependencies = [
('zlib', '1.2.13'),
('UCX', version),
('CUDA', '12.4.0', '', SYSTEM),
('GDRCopy', '2.4'),
]


moduleclass = 'lib'

0 comments on commit e788852

Please sign in to comment.