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
@@ -0,0 +1,49 @@
easyblock = 'PythonBundle'

name = 'CUDA-wheel-bundle'
version = '12.6.0'
versionsuffix = '-CUDA-%(cudaver)s'

homepage = 'https://developer.nvidia.com/cuda'
description = "Repackaging of NVIDIA CUDA libraries as Python packages"

toolchain = {'name': 'gfbf', 'version': '2024a'}

dependencies = [
('CUDA', version, '', SYSTEM),
('cuDNN', '9.5.1.17', versionsuffix, SYSTEM),
('cuSPARSELt', '0.6.3.2', versionsuffix, SYSTEM),
('UCX-CUDA', '1.16.0', versionsuffix),
('NCCL', '2.26.2', versionsuffix),
('ucx-py', '0.40.00'),
('Python', '3.12.3'),
]

dummy_package = True

exts_list = [
# the following package list is based on the requirements of PyTorch 2.7.1
# provided by CUDA
('nvidia-cublas-cu12', '12.6.4.1'),
('nvidia-cuda-cupti-cu12', '12.6.80'),
('nvidia-cuda-nvrtc-cu12', '12.6.77'),
('nvidia-cuda-runtime-cu12', '12.6.77'),
('nvidia-cufft-cu12', '11.3.0.4'),
('nvidia-curand-cu12', '10.3.7.77'),
('nvidia-cusolver-cu12', '11.7.1.2'),
('nvidia-cusparse-cu12', '12.5.4.2'),
('nvidia-nvjitlink-cu12', '12.6.85'),
('nvidia-nvtx-cu12', '12.6.77'),
# provided by cuDNN
('nvidia-cudnn-cu12', '9.5.1.17'),
# provided by cuSPARSELt
('nvidia-cusparselt-cu12', '0.6.3'),
# provided by NCCL
('nvidia-nccl-cu12', '2.26.2.post1'),
# provided by UCX-CUDA
('libucx-cu12', '1.16.0.post2'),
# provided by ucx-py
('ucx-py-cu12', '0.40.0')
]

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

name = 'RAPIDS'
version = '24.10.0'
versionsuffix = '-CUDA-%(cudaver)s'

homepage = 'https://rapids.ai/'
description = """RAPIDS provides unmatched speed with familiar APIs that match the most popular
PyData libraries. Built on state-of-the-art foundations like NVIDIA CUDA and
Apache Arrow, it unlocks the speed of GPUs with code you already know."""

toolchain = {'name': 'foss', 'version': '2024a'}

builddependencies = [
('hatchling', '1.24.2'),
('Cython', '3.0.10'),
('CMake', '3.31.8'),
]

dependencies = [
('CUDA', '12.6.0', '', SYSTEM),
('Python', '3.12.3'),
('CUDA-Python', '12.6.2.post1', versionsuffix),
# provides nvidia-nccl-cu12-2.26.2.post1, libucx-cu12, ucx-py-cu12, nvidia-cublas-cu12,...
('CUDA-wheel-bundle', '%(cudaver)s', versionsuffix),
('SciPy-bundle', '2024.05'),
('Arrow', '17.0.0'),
('numba', '0.60.0'),
('dask', '2024.9.1'),
]

exts_default_options = {'source_urls': [PYPI_SOURCE, 'https://pypi.nvidia.com/%(name)s-cu%(cudamajver)s']}
_rapids_whl_name = '%(name)s_cu%(cudamajver)s-%(version)s-'
_rapids_whl_cp_version = 'cp%(pymajver)s%(pyminver)s-cp%(pymajver)s%(pyminver)s'
_rapids_tmpl = _rapids_whl_name + _rapids_whl_cp_version

# fix treelite sources
local_treelite_fix = (
"sed -i 's/os.cpu_count()/%(parallel)s/' packager/nativelib.py && "
"sed -i '1i #include <cstdint>' cpp_src/src/gtil/postprocessor.h && "
)

exts_list = [
('zict', '3.0.0', {
'checksums': ['e321e263b6a97aafc0790c3cfb3c04656b7066e6738c37fffcca95d803c9fba5'],
}),
('treelite', '4.3.0', {
'preinstallopts': local_treelite_fix,
'checksums': ['7d0f4cf89826fbf9556b39c9fff2e82ab071b1b16adb98de4e98fcbaf860bc27'],
}),
('cachetools', '5.5.0', {
'checksums': ['2cc24fb4cbe39633fb7badd9db9ca6295d766d9c2995f245725a46715d050f2a'],
}),
('fastrlock', '0.8.3', {
'checksums': ['4af6734d92eaa3ab4373e6c9a1dd0d5ad1304e172b1521733c6c3b3d73c8fa5d'],
}),
('cupy_cuda12x', '13.6.0', {
'modulename': 'cupy',
'source_tmpl': f'%(name)s-%(version)s-{_rapids_whl_cp_version}-manylinux2014_%(arch)s.whl',
'checksums': ['79b0cacb5e8b190ef409f9e03f06ac8de1b021b0c0dda47674d446f5557e0eb1'],
}),
('libucxx', '0.40.0', {
'modulename': False,
'source_tmpl': f'{_rapids_whl_name}py3-none-manylinux_2_24_%(arch)s.manylinux_2_28_%(arch)s.whl',
'checksums': ['eb00c16bea61814456a92307f36e7b8b6746c4a04b31a3f28d89bbb4025bc120'],
}),
('ucxx', '0.40.0', {
'source_tmpl': f'{_rapids_tmpl}-manylinux_2_27_%(arch)s.manylinux_2_28_%(arch)s.whl',
'modulename': 'ucxx',
'checksums': ['8d12a50952027e609a952f12153e794cd4cb636b7cbde211047ad5f3e8eff801'],
}),
('distributed-ucxx', '0.40.0', {
'modulename': False,
'source_tmpl': 'distributed_ucxx_cu%(cudamajver)s-%(version)s-py3-none-any.whl',
'checksums': ['07d05b85e8449840e157c35b25131f6b7678ff33c5294d2cafbf7fc9968750be'],
}),
('nvtx', '0.2.14', {
'source_tmpl': (
f'%(name)s-%(version)s-{_rapids_whl_cp_version}-manylinux_2_17_%(arch)s.manylinux2014_%(arch)s.whl'
),
'checksums': ['17efe5d903996bceb0c8a12cae80fa9b66bee7ee895923bd9d8ec2a5af1aabd8'],
}),
('pynvjitlink_cu12', '0.4.0', {
'source_tmpl': (
f'%(name)s-%(version)s-{_rapids_whl_cp_version}-manylinux_2_27_%(arch)s.manylinux_2_28_%(arch)s.whl'
),
'modulename': 'pynvjitlink',
'checksums': ['8f6834d84e0fba15b8c0ee39d8c4397e631708f97a8196c2f7b3082f2f35f465'],
}),
('rmm', version, {
'source_tmpl': f'{_rapids_tmpl}-manylinux_2_24_%(arch)s.manylinux_2_28_%(arch)s.whl',
'modulename': 'rmm',
'checksums': ['e6141f0356afdd2a422da4b8e48a44c929928c78f7e005c648df02d6ef9c7740'],
}),
('dask_cuda', version, {
'source_tmpl': SOURCE_PY3_WHL,
'checksums': ['3666ba38169c6c4448c698c0fe05d3fe5bb9b1c13b6de86030c7e6ad3e2dc2be'],
}),
('dask-cudf', '24.10.1', {
'source_tmpl': 'dask_cudf_cu%(cudamajver)s-%(version)s-py3-none-any.whl',
'modulename': False,
'checksums': ['9f04be126ffc5921298c51d2888572ac0e31ac77a9dd67920ecec1a1b40978e8'],
}),
('dask_expr', '1.1.14', {
'preinstallopts': "sed -i 's/2024.9.0/2024.9.1/' pyproject.toml && ",
'checksums': ['c67c0c190d933e253f85674da71615f23ed8ba08f3abcc0cd160080643feb40a'],
}),
('rapids_dask_dependency', version, {
'source_tmpl': SOURCE_PY3_WHL,
'modulename': False,
'checksums': ['25242e0b1264e18e97d53b3fa96256d1e75f13865b84ea989f730b54c86d9023'],
}),
('raft-dask', version, {
'source_tmpl': f'raft_dask_cu%(cudamajver)s-%(version)s-{_rapids_whl_cp_version}-manylinux_2_28_%(arch)s.whl',
'modulename': False,
'checksums': ['bdc1fecf821b6b77e2692b2504bad0c9a3b4d75596732c53d454345941927779'],
}),
('pylibraft', version, {
'source_tmpl': f'{_rapids_tmpl}-manylinux_2_28_%(arch)s.whl',
'modulename': 'pylibraft',
'checksums': ['88014c4ad7cf49b8ae5979051b571f838621954460c7898c4ef49488d446fffc'],
}),
('libcudf', '24.10.1', {
'modulename': False,
'source_tmpl': f'{_rapids_whl_name}py3-none-manylinux_2_28_%(arch)s.whl',
'checksums': ['59eaabf315efb7da8e3d6add14806d4f41b4fd664a9d636d72c1638c9574882a'],
}),
('pylibcudf', '24.10.1', {
'modulename': 'pylibcudf',
'source_tmpl': f'{_rapids_tmpl}-manylinux_2_24_%(arch)s.manylinux_2_28_%(arch)s.whl',
'checksums': ['717987c16cc8774c8326fc3c94bd2ad1c58acf41e52586052e38dd00ba1bc7e4'],
}),
('pylibcugraph', version, {
'source_tmpl': f'{_rapids_tmpl}-manylinux_2_28_%(arch)s.whl',
'modulename': 'pylibcugraph',
'checksums': ['fa2b2c2b03322afa21bf9160ac0ed185ca258486f39a6a20d7714041ba3b4cc8'],
}),
('cuvs', version, {
'modulename': 'cuvs',
'source_tmpl': f'{_rapids_tmpl}-manylinux_2_28_%(arch)s.whl',
'checksums': ['730fe5c9fc8ea9b3a985101ccab51707c94ddd2e4358f6e9178c01c728f09eea'],
}),
('cudf', '24.10.1', {
'source_tmpl': f'{_rapids_tmpl}-manylinux_2_24_%(arch)s.manylinux_2_28_%(arch)s.whl',
'checksums': ['fb1934d908e33b61a4ded6c33f8305b78947d01149ed5c37b07e0c581ebbc136'],
}),
('cuml', version, {
'source_tmpl': f'{_rapids_tmpl}-manylinux_2_28_%(arch)s.whl',
'checksums': ['47647af4bc997cb2bc8f5713b2c4187f7b427c5d2bc745468697711544c26e76'],
}),
('cugraph', version, {
'source_tmpl': f'{_rapids_tmpl}-manylinux_2_28_%(arch)s.whl',
'checksums': ['64f7c683d186066726ebdd5e061fcc7e6cb739c6d3dce1accdda46265d7b92c7'],
}),
]

# update dask and distributed pinned version in rapids-dask-dependency dist METADATA
postinstallcmds = [
"sed -i 's/2024.9.0/2024.9.1/' "
"%(installdir)s/lib/python%(pyshortver)s/site-packages/rapids_dask_dependency-%(version)s.dist-info/METADATA",
]

modextravars = {
'RAPIDS_LIBUCX_PREFER_SYSTEM_LIBRARY': 'true',
'NUMBA_CUDA_USE_NVIDIA_BINDING': '1',
}

sanity_check_commands = [
"python -sc 'from numba import cuda'",
"python -sc 'import cupy as cp; x=cp.arange(10); print(int(x.sum()))' | grep 45",
]

moduleclass = 'ai'
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
easyblock = 'PythonBundle'

name = 'rapids-singlecell'
version = '0.10.11'
versionsuffix = '-CUDA-%(cudaver)s'

homepage = 'https://github.com/scverse/rapids_singlecell'
description = """rapids-singlecell provides GPU-accelerated single-cell analysis with an AnnData-first API.
It is largely compatible with Scanpy and includes selected functionality from Squidpy, decoupler, and pertpy.
Computations use CuPy and NVIDIA RAPIDS for performance on large datasets."""

toolchain = {'name': 'foss', 'version': '2024a'}

builddependencies = [('hatchling', '1.24.2')]
dependencies = [
('CUDA', '12.6.0', '', SYSTEM),
('Python', '3.12.3'),
('CUDA-Python', '12.6.2.post1', versionsuffix),
('RAPIDS', '24.10.0', versionsuffix),
('SciPy-bundle', '2024.05'),
('anndata', '0.11.4'),
('scanpy', '1.10.4'),
('scikit-misc', '0.5.1'),
('matplotlib', '3.9.2'),
('tqdm', '4.66.5'),
('statsmodels', '0.14.4'),
('scikit-image', '0.25.0'),
]

local_test_cmd = (
'pytest -v tests '
# Dask tests spawn processes and open TCP ports
'--ignore=tests/dask '
# Multi-GPU neighbor tests
'--ignore=tests/test_mg_neighbors.py '
# Harmony tests download data at runtime
'--ignore=tests/test_harmony.py '
# Wrong API calls to scanpy from test_neighbors
# from scanpy.neighbors._connectivity import jaccard as scanpy_jaccard
'--ignore=tests/test_neighbors.py '
# problem on A2 gpu
# '-k "not float64 and not test_block_size_consistency" '
)

exts_list = [
('natsort', '8.4.0', {
'checksums': ['45312c4a0e5507593da193dedd04abb1469253b601ecaf63445ad80f0a1ea581'],
}),
('rapids_singlecell', version, {
'testinstall': True,
'runtest': local_test_cmd,
# .git dir required
'sources': [{
'git_config': {
'url': 'https://github.com/scverse',
'repo_name': '%(name)s',
'tag': 'v%(version)s',
'keep_git_dir': True,
},
'filename': SOURCE_TAR_XZ,
}],
'checksums': ['c7d63fcd780ada30ad9569158bbd2f1452bc6b5d071124d1b25794d8a71cf28c'],
}),
]

moduleclass = 'bio'
49 changes: 49 additions & 0 deletions easybuild/easyconfigs/u/ucx-py/ucx-py-0.40.00-gfbf-2024a.eb
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
easyblock = 'PythonBundle'

name = 'ucx-py'
version = '0.40.00'

github_account = 'rapidsai'

homepage = "https://ucx-py.readthedocs.io"
description = """UCX-Py is the Python interface for UCX, a low-level high-performance networking library.
UCX and UCX-Py supports several transport methods including InfiniBand and NVLink
while still using traditional networking protocols like TCP."""

toolchain = {'name': 'gfbf', 'version': '2024a'}
toolchainopts = {'pic': True, 'lowopt': True}

builddependencies = [('Cython', '3.0.10')]
dependencies = [
('Python', '3.12.3'),
('PyYAML', '6.0.2'),
('SciPy-bundle', '2024.05'),
('UCX', '1.16.0'),
]

exts_list = [
('pynvml', '11.4.1', {
'preinstallopts': (
"sed -i -e 's/SafeConfigParser()/ConfigParser()/' -e 's/readfp(/read_file(/' versioneer.py && "
),
'checksums': ['b2e4a33b80569d093b513f5804db0c7f40cfc86f15a013ae7a8e99c5e175d5dd'],
}),
('rapids-dependency-file-generator', '1.16.0', {
'source_urls': ['https://github.com/%(github_account)s/dependency-file-generator/archive'],
'sources': [{'download_filename': 'v%(version)s.tar.gz', 'filename': '%(name)s-%(version)s.tar.gz'}],
'checksums': ['b49989947a8e9e7f722762758d536f74cc2f72d680d3939da225d58a36c235df'],
}),
('rapids-build-backend', '0.3.2', {
'source_urls': ['https://github.com/%(github_account)s/%(name)s/archive'],
'sources': [{'download_filename': 'v%(version)s.tar.gz', 'filename': '%(name)s-%(version)s.tar.gz'}],
'checksums': ['11ed069adf2b6b70b8f45e5d8e3947ed8f669e4cd7e7245f491b86f0c1f0a01d'],
}),
(name, version, {
'modulename': 'ucp',
'source_urls': ['https://github.com/%(github_account)s/%(name)s/archive'],
'sources': [{'download_filename': 'v%(version)s.tar.gz', 'filename': '%(name)s-%(version)s.tar.gz'}],
'checksums': ['283692e775202995d7a3326e4de17d4b728635a71ee1e7a12d330680dadcc8c4'],
}),
]

moduleclass = 'lib'
Loading