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,89 @@
easyblock = 'CMakeMake'

name = 'CTranslate2'
version = '4.5.0'
versionsuffix = '-CUDA-%(cudaver)s'

homepage = 'https://opennmt.net/CTranslate2/'
description = "Fast inference engine for Transformer models."

toolchain = {'name': 'foss', 'version': '2024a'}
toolchainopts = {'extra_cxxflags': '-D_AMXTILEINTRIN_H_INCLUDED'}
# '-D_AMXTILEINTRIN_H_INCLUDED' flag is required to avoid the following errors,
# likely due to an incompatibility between the GCC 13.3.0 and NVCC CUDA 12.6.0:
# [...]/GCCcore/13.3.0/lib/gcc/x86_64-pc-linux-gnu/13.3.0/include/amxtileintrin.h(42):
# error: identifier "__builtin_ia32_ldtilecfg" is undefined
# from ec: LAMMPS-29Aug2024_update2-foss-2024a-kokkos-CUDA-12.6.0.eb

source_urls = ['https://github.com/OpenNMT/CTranslate2/archive/']
sources = [{
"download_filename": "v%(version)s.tar.gz",
"filename": SOURCE_TAR_GZ,
}]
patches = [
'CTranslate2-4.5.0_fix-third-party.patch',
'CTranslate2-4.5.0_fix-tests.patch',
'CTranslate2-4.5.0_replace-cxxopts.patch',
]
checksums = [
{'CTranslate2-4.5.0.tar.gz': 'f3040c7c3da5dde022fdc16906c279f3f936c6e79f3df8f998c908bb01a77cfe'},
{'CTranslate2-4.5.0_fix-third-party.patch': '45ab6d19954010dc5d515498a0827f0b13992d88b9691ab73ab27fee1114e3e3'},
{'CTranslate2-4.5.0_fix-tests.patch': '73123eafe612538354be5aa96c750199e1a219a5316800848c3894c1cc6ca2ad'},
{'CTranslate2-4.5.0_replace-cxxopts.patch': 'e378969c2968e2fd57863956a4d2f267731a49d1b890dcc45593d6a310531271'},
]

builddependencies = [
('CMake', '3.31.8'),
('pybind11', '2.12.0'),
('cxxopts', '3.0.0', '', SYSTEM),
('spdlog', '1.15.3'),
('cpu_features', '0.10.1'),
]

dependencies = [
('CUDA', '12.6.0', '', SYSTEM),
('Python', '3.12.3'),
('SciPy-bundle', '2024.05'),
('googletest', '1.15.2'),
('PyYAML', '6.0.2'),
('cuDNN', '9.5.1.17', versionsuffix, SYSTEM),
]

# make sure that CTranslate2 libraries are linked to FlexiBLAS, not OpenBLAS
preconfigopts = "export CMAKE_INCLUDE_PATH=$EBROOTFLEXIBLAS/include/flexiblas:${CMAKE_INCLUDE_PATH} && "
preconfigopts += "sed -i 's/openblas/flexiblas/g' %(start_dir)s/CMakeLists.txt && "

configopts = '-DOPENMP_RUNTIME=COMP -DWITH_CUDA=ON -DWITH_MKL=OFF '
configopts += '-DOPENBLAS_INCLUDE_DIR="$EBROOTFLEXIBLAS/include" -DWITH_OPENBLAS=ON '
configopts += '-DWITH_CUDNN=ON '
configopts += '-DENABLE_CPU_DISPATCH=OFF '

prebuildopts = 'export CT2_VERBOSE=3 && '

exts_defaultclass = 'PythonPackage'
exts_default_options = {
'source_urls': [PYPI_SOURCE],
'installopts': '',
'runtest': False,
}

exts_list = [
('ctranslate2', version, {
'sources': ['CTranslate2-%(version)s.tar.gz'],
'start_dir': 'python',
'checksums': ['f3040c7c3da5dde022fdc16906c279f3f936c6e79f3df8f998c908bb01a77cfe'],
}),
]

sanity_check_paths = {
'files': ['bin/ct2-translator', 'lib/libctranslate2.%s' % SHLIB_EXT],
'dirs': ['include/ctranslate2', 'lib/python%(pyshortver)s/site-packages'],
}

sanity_check_commands = [
"ct2-translator --help",
"python -s -c 'import ctranslate2'",
"python -s -m pip check",
]

moduleclass = 'ai'
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild
# Author: Denis Kristak, update: Pavel Tománek
easyblock = 'CMakeMake'

name = 'cpu_features'
version = '0.10.1'

homepage = 'https://github.com/google/cpu_features'
description = """A cross-platform C library to retrieve CPU features (such as available instructions) at runtime."""

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

source_urls = ['https://github.com/google/cpu_features/archive/']
sources = ['v%(version)s.tar.gz']
checksums = ['52639b380fced11d738f8b151dbfee63fb94957731d07f1966c812e5b90cbad4']

builddependencies = [
('CMake', '3.31.8'),
('binutils', '2.42'),
]

modextrapaths = {MODULE_LOAD_ENV_HEADERS: 'include/cpu_features'}

sanity_check_paths = {
'files': ['bin/list_cpu_features', 'lib/libcpu_features.a'],
'dirs': ['include/cpu_features/']
}

sanity_check_commands = ['list_cpu_features']

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

name = 'ONNX-Runtime'
version = '1.23.2'
versionsuffix = '-CUDA-%(cudaver)s'

homepage = 'https://onnxruntime.ai'
description = """ONNX Runtime inference can enable faster customer experiences and lower costs,
supporting models from deep learning frameworks such as PyTorch and
TensorFlow/Keras as well as classical machine learning libraries such as
scikit-learn, LightGBM, XGBoost, etc. ONNX Runtime is compatible with different
hardware, drivers, and operating systems, and provides optimal performance by
leveraging hardware accelerators where applicable alongside graph optimizations
and transforms."""

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

builddependencies = [
('CMake', '3.31.8'),
('Ninja', '1.12.1'),
('Eigen', '3.4.0'),
]
dependencies = [
('CUDA', '12.6.0', '', SYSTEM),
('cuDNN', '9.5.1.17', versionsuffix, SYSTEM),
('Python', '3.12.3'),
('SciPy-bundle', '2024.05'),
('ONNX', '1.20.0'),
('flatbuffers-python', '24.3.25'),
('sympy', '1.13.3'),
('Abseil', '20240722.0'),
]

# CUSTOM BUILD
local_onnx_buildcmd = ""
# do not fetch and install Abseil - use installed one from the module
# https://github.com/microsoft/onnxruntime/blob/v1.23.2/cmake/external/abseil-cpp.cmake#L39
local_onnx_buildcmd += "sed -i 's/20250512/20240722/g' %(start_dir)s/cmake/external/abseil-cpp.cmake && "
# the build command for onnx-runtime wheels
# creates /build/Linux/Release/dist/onnxruntime-1.23.2-cp312-cp312-linux_x86_64.whl
local_onnx_buildcmd += """
./build.sh \
--config Release \
--update --build \
--parallel %(parallel)s \
--use_cuda \
--cuda_home="$EBROOTCUDA" \
--cudnn_home="$EBROOTCUDNN" \
--cuda_version=%(cudashortver)s \
--skip_tests \
--build_shared_lib \
--build_wheel \
--skip_submodule_sync \
--cmake_generator Ninja \
--compile_no_warning_as_error \
--cmake_extra_defines \
absl_DIR=$EBROOTABSEIL/lib/cmake/absl \
"CMAKE_CUDA_ARCHITECTURES=%(cuda_cc_cmake)s" \
ONNXRUNTIME_VERSION=%(version)s
"""

exts_list = [
('humanfriendly', '10.0', {
'checksums': ['6b0b831ce8f15f7300721aa49829fc4e83921a9a301cc7f606be6686a2288ddc'],
}),
('coloredlogs', '15.0.1', {
'checksums': ['7c991aa71a4577af2f82600d8f8f3a89f936baeaf9b50a9c197da014e5bf16b0'],
}),
(name, version, {
'modulename': 'onnxruntime',
'buildcmd': local_onnx_buildcmd,
'install_src': '%(start_dir)s/build/Linux/Release/dist/*.whl',
'source_urls': ['https://github.com/microsoft/onnxruntime/archive/'],
'sources': [{'download_filename': 'v%(version)s.tar.gz', 'filename': SOURCE_TAR_GZ}],
'patches': ['ONNX-Runtime-1.23.2_gpu-package-name.patch'],
'checksums': [
{'ONNX-Runtime-1.23.2.tar.gz': '99bcf964ce4e869d823c99b2294562a9050cbfa8e76ec81c8683cb3c7e19c2b4'},
{'ONNX-Runtime-1.23.2_gpu-package-name.patch':
'f0b80ae45878be371a1c5ef2b917dc34095af9351dfb379450b7be798f6d43bd'},
],
}),
]

sanity_check_commands = ["python -c 'import onnxruntime; onnxruntime.get_available_providers()'"]

sanity_check_paths = {
'files': ['bin/onnxruntime_test'],
'dirs': ['lib'],
}

moduleclass = 'devel'
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
This patch fixes the name of the wheels and the package from onnxruntime-gpu to onnxruntime.
Author: Pavel Tomanek (Inuits)
--- setup.py.orig 2025-12-16 13:25:52.996185000 +0100
+++ setup.py 2025-12-16 13:26:05.009368000 +0100
@@ -797,7 +797,7 @@
elif qnn_version:
f.write(f"qnn_version = '{qnn_version}'\n")

-
+package_name = "onnxruntime"
save_build_and_package_info(package_name, version_number, cuda_version, rocm_version, qnn_version)

extras_require = {}
Original file line number Diff line number Diff line change
@@ -0,0 +1,101 @@
easyblock = 'PythonBundle'

name = 'pyannote.audio'
version = '3.4.0'
versionsuffix = '-CUDA-%(cudaver)s'
local_pytorch_version = '2.7.1'

homepage = 'https://github.com/pyannote'
description = "pyannote is an open-source toolkit for speaker diarization."

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

builddependencies = [
('PDM', '2.18.2'),
('Java', '21', '', SYSTEM),
('CMake', '3.31.8'),
]
dependencies = [
('CUDA', '12.6.0', '', SYSTEM),
('Python', '3.12.3'),
('PyTorch', local_pytorch_version, versionsuffix),
('torchaudio', local_pytorch_version, versionsuffix),
('Lightning', '2.5.6', versionsuffix),
('SciPy-bundle', '2024.05'),
('tensorboardX', '2.6.4'),
('Optuna', '4.1.0'),
('einops', '0.8.1'),
('ruamel.yaml', '0.18.6'),
('huggingface_hub', '0.34.4'),
('scikit-learn', '1.5.2'),
('tqdm', '4.66.5'),
('PyYAML', '6.0.2'),
('SentencePiece', '0.2.1'),
]

# fix versioneer.py for python 3.12
local_preinstallopts_versioneer = (
"sed -i -e 's/SafeConfigParser/ConfigParser/g' -e 's/readfp/read_file/g' versioneer.py && "
)

exts_list = [
('primePy', '1.3', {
'modulename': 'primePy',
'checksums': ['25fd7e25344b0789a5984c75d89f054fcf1f180bef20c998e4befbac92de4669'],
}),
('typer', '0.20.0', {
'checksums': ['1aaf6494031793e4876fb0bacfa6a912b551cf43c1e63c800df8b1a866720c37'],
}),
('torch_pitch_shift', '1.2.5', {
'checksums': ['6e1c7531f08d0f407a4c55e5ff8385a41355c5c5d27ab7fa08632e51defbd0ed'],
}),
('julius', '0.2.7', {
'checksums': ['3c0f5f5306d7d6016fcc95196b274cae6f07e2c9596eed314e4e7641554fbb08'],
}),
('torch_audiomentations', '0.12.0', {
'checksums': ['b02d4c5eb86376986a53eb405cca5e34f370ea9284411237508e720c529f7888'],
}),
('HyperPyYAML', '1.2.2', {
'checksums': ['bdb734210d18770a262f500fe5755c7a44a5d3b91521b06e24f7a00a36ee0f87'],
}),
('speechbrain', '1.0.3', {
'checksums': ['fcab3c6e90012cecb1eed40ea235733b550137e73da6bfa2340ba191ec714052'],
}),
('soundfile', '0.13.1', {
'checksums': ['b2c68dab1e30297317080a5b43df57e302584c49e2942defdde0acccc53f0e5b'],
}),
('semver', '3.0.4', {
'checksums': ['afc7d8c584a5ed0a11033af086e8af226a9c0b206f313e0301f8dd7b6b589602'],
}),
('pytorch-metric-learning', '2.9.0', {
'checksums': ['27a626caf5e2876a0fd666605a78cb67ef7597e25d7a68c18053dd503830701f'],
}),
('asteroid-filterbanks', '0.4.0', {
'checksums': ['415f89d1dcf2b13b35f03f7a9370968ac4e6fa6800633c522dac992b283409b9'],
}),
('omegaconf', '2.3.0', {
'checksums': ['d5d4b6d29955cc50ad50c46dc269bcd92c6e00f5f90d23ab5fee7bfca4ba4cc7'],
}),
('pyannote.core', '5.0.0', {
'preinstallopts': local_preinstallopts_versioneer,
'checksums': ['1a55bcc8bd680ba6be5fa53efa3b6f3d2cdd67144c07b6b4d8d66d5cb0d2096f'],
}),
('pyannote.database', '5.1.3', {
'checksums': ['0eaf64c1cc506718de60d2d702f1359b1ae7ff252ee3e4799f1c5e378cd52c31'],
}),
('pyannote.metrics', '3.2.1', {
'preinstallopts': local_preinstallopts_versioneer,
'checksums': ['08024255a3550e96a8e9da4f5f4af326886548480de891414567c8900920ee5c'],
}),
('pyannote.pipeline', '3.0.1', {
'preinstallopts': local_preinstallopts_versioneer,
'checksums': ['021794e26a2cf5d8fb5bb1835951e71f5fac33eb14e23dfb7468e16b1b805151'],
}),
(name, version, {
'source_urls': ['https://github.com/pyannote/pyannote-audio/archive/'],
'sources': [{'download_filename': '%(version)s.tar.gz', 'filename': SOURCE_TAR_GZ}],
'checksums': ['9fc8b4c96457733945d399559c328e07237a037ab7151443a81fe8473ea104ab'],
}),
]

moduleclass = 'tools'
Loading
Loading