Skip to content

{bio}[foss/2025a] dorado v2.1.0 w/ CUDA 12.8.0 - #26501

Open
JarneRenders wants to merge 1 commit into
easybuilders:developfrom
JarneRenders:20260723110353_new_pr_dorado210
Open

{bio}[foss/2025a] dorado v2.1.0 w/ CUDA 12.8.0#26501
JarneRenders wants to merge 1 commit into
easybuilders:developfrom
JarneRenders:20260723110353_new_pr_dorado210

Conversation

@JarneRenders

@JarneRenders JarneRenders commented Jul 23, 2026

Copy link
Copy Markdown
Contributor

@github-actions github-actions Bot added update 2025a issues & PRs related to 2025a common toolchains labels Jul 23, 2026
@github-actions

Copy link
Copy Markdown

Updated software dorado-2.1.0-foss-2025a-CUDA-12.8.0.eb

Diff against dorado-1.1.1-foss-2024a-CUDA-12.6.0.eb

easybuild/easyconfigs/d/dorado/dorado-1.1.1-foss-2024a-CUDA-12.6.0.eb

diff --git a/easybuild/easyconfigs/d/dorado/dorado-1.1.1-foss-2024a-CUDA-12.6.0.eb b/easybuild/easyconfigs/d/dorado/dorado-2.1.0-foss-2025a-CUDA-12.8.0.eb
index eb876a41d6..8a3de074ce 100644
--- a/easybuild/easyconfigs/d/dorado/dorado-1.1.1-foss-2024a-CUDA-12.6.0.eb
+++ b/easybuild/easyconfigs/d/dorado/dorado-2.1.0-foss-2025a-CUDA-12.8.0.eb
@@ -1,14 +1,14 @@
 easyblock = 'CMakeMake'
 
 name = 'dorado'
-version = '1.1.1'
+version = '2.1.0'
 versionsuffix = '-CUDA-%(cudaver)s'
 
 homepage = 'https://github.com/nanoporetech/dorado'
 description = """Dorado is a high-performance, easy-to-use, open source basecaller for Oxford Nanopore reads."""
 
-toolchain = {'name': 'foss', 'version': '2024a'}
-toolchainopts = {'usempi': True}
+toolchain = {'name': 'foss', 'version': '2025a'}
+toolchainopts = {'usempi': False}
 
 source_urls = ['https://github.com/nanoporetech/dorado/archive/']
 sources = [{
@@ -21,30 +21,30 @@ sources = [{
     'filename': SOURCE_TAR_XZ,
 }]
 patches = [
-    '%(name)s-1.0.0_dont_install_external_libraries.patch',
+    'dorado-1.4.0_fix-hts-cmake.patch',
+    'dorado-2.1.0_fix-TestUtils.cpp.patch',
 ]
 checksums = [
-    {'dorado-1.1.1.tar.xz': 'e3aad85ab5076bae19a679332b71215c3b10faa745e3b46b7a35fc8fdb14fed6'},
-    {'dorado-1.0.0_dont_install_external_libraries.patch':
-     '2db45a8b1d5360e743b96beb9ce61264a2b3d4a815bed10ee4978caa3fba3a3b'},
+    {'dorado-2.1.0.tar.xz': '3b09354f4e808598af79308a4aa8fda861cd1891d18d1fce87b58328d6dcdd79'},
+    {'dorado-1.4.0_fix-hts-cmake.patch': 'b99f268086650462437cc252040bb8636dfe1e1bbb566e65590fd3401d63f2a0'},
+    {'dorado-2.1.0_fix-TestUtils.cpp.patch': '25415a52873732902641c476a0a54f3e34056227ee23848899133cbc237890ae'},
 ]
 
 builddependencies = [
-    ('binutils', '2.42'),
-    ('CMake', '3.29.3'),
-    ('patchelf', '0.18.0'),
-    ('git', '2.45.1'),
+    ('CMake', '3.31.3'),
+    ('git', '2.49.0'),
 ]
 
 dependencies = [
-    ('CUDA', '12.6.0', '', SYSTEM),
+    ('CUDA', '12.8.0', '', SYSTEM),
+    ('Python', '3.13.1'),
     ('OpenSSL', '3', '', SYSTEM),
-    ('PyTorch', '2.7.1', versionsuffix),
-    ('HDF5', '1.14.5'),
+    ('PyTorch', '2.9.1', f'{versionsuffix}-whl'),
+    ('HDF5', '1.14.6'),
     ('zstd', '1.5.6'),
-    ('HTSlib', '1.21'),
-    ('kineto', '20250715', versionsuffix),
-    ('libaec', '1.1.3'),
+    ('HTSlib', '1.22.1'),
+    ('kineto', '20260317', versionsuffix),
+    ('libaec', '1.1.4'),
 ]
 
 # don't link to OpenSSL static libraries
@@ -53,68 +53,29 @@ preconfigopts = "sed -i '/OPENSSL_USE_STATIC_LIBS TRUE/d' ../dorado/cmake/OpenSS
 # link in the ssl and crypto libs, to fix:
 # undefined reference to symbol 'SSL_get_peer_certificate@@OPENSSL_1_1_0'
 preconfigopts += r"sed -i 's/OpenSSL::SSL/ssl\n    crypto/g' ../dorado/dorado/utils/CMakeLists.txt && "
-
-# don't use vendored HTSlib, use provided HTSlib dependency
-preconfigopts += "rm -r ../dorado/dorado/3rdparty/htslib/ && "
-preconfigopts += "sed -i '/add_dependencies.*htslib_project/d' ../dorado/CMakeLists.txt && "
-preconfigopts += "sed -i '/add_dependencies.*htslib_project/d' ../dorado/dorado/utils/CMakeLists.txt && "
-preconfigopts += "sed -i '/Htslib.cmake/d' ../dorado/CMakeLists.txt && "
-# rename link target 'htslib' -> 'hts' only in CMake files, excluding kadayashi's cmake dir
-preconfigopts += r"find ../dorado -type f \( -name CMakeLists.txt -o -name '*.cmake' \) "
-preconfigopts += "-not -path '../dorado/dorado/3rdparty/kadayashi/cmake/*' -print0 | "
-preconfigopts += r"xargs -0 sed -i -E 's/\<htslib\>/hts/g' && "
-# keep kadayashi's find_package on 'htslib' and make it return -lhts via its finder
-preconfigopts += r"sed -i -E 's/find_package\(\s*hts\b/find_package(htslib/' "
-preconfigopts += "../dorado/dorado/3rdparty/kadayashi/CMakeLists.txt && "
-preconfigopts += r"sed -i -E 's/\bset\(HTSLIB_LIBRARIES\s+htslib(::hts)?\)/set(HTSLIB_LIBRARIES hts)/' "
-preconfigopts += "../dorado/dorado/3rdparty/kadayashi/cmake/Findhtslib.cmake && "
-
+# replace dont_install_external_libraries.patch by sed cmd - use system CUDA
+preconfigopts += "sed -i '/install(FILES ${NATIVE_CUDA_LIBS} DESTINATION lib COMPONENT redist_libs)/d' "
+preconfigopts += "../dorado/cmake/InstallRedistLibs.cmake && "
 # disable treating warnings like errors by stripping out -Werror
 # cfr. https://github.com/nanoporetech/dorado/issues/779
 preconfigopts += "sed -i 's/-Werror//g' ../dorado/cmake/Warnings.cmake && "
-preconfigopts += "sed -i 's/enable_warnings_as_errors.*//g' ../dorado/CMakeLists.txt "
-preconfigopts += "../dorado/dorado/utils/CMakeLists.txt "
-preconfigopts += "../dorado/dorado/modbase/CMakeLists.txt "
-preconfigopts += "../dorado/dorado/torch_utils/CMakeLists.txt && "
+# disable prebuilt FlashAttention3 download, falls back to Torch
+preconfigopts += "sed -i '/if (DEFINED DORADO_FLASHATTENTION_PATH)/i unset(FLASHATTENTION_PATCH_SUFFIX)' "
+preconfigopts += "../dorado/cmake/FlashAttention.cmake && "
 
-# skip including a nonexistant file
-preconfigopts += "TMPDIR=$(mktemp -d) && "
-preconfigopts += "head -442 ../dorado/cmake/Torch.cmake > $TMPDIR/cmake && "
-preconfigopts += "tail -31 ../dorado/cmake/Torch.cmake >> $TMPDIR/cmake && "
-preconfigopts += "mv $TMPDIR/cmake ../dorado/cmake/Torch.cmake && "
-
-_copts = [
+local_torch_root_py = 'import torch, pathlib; print(pathlib.Path(torch.__file__).resolve().parent)'
+configopts = ' '.join([
     "-DCUDA_TOOLKIT_ROOT_DIR=$EBROOTCUDA",
     "-DCMAKE_CUDA_COMPILER=$EBROOTCUDA/bin/nvcc",
     '-DOPENSSL_ROOT_DIR=$EBROOTOPENSSL',
-    "-DDORADO_LIBTORCH_DIR=$EBROOTPYTORCH/lib",
-    # add -pthread flag (in addition to -lpthread) to avoid linking error:
-    # in function `_GLOBAL__sub_I_mutex.cc': mutex.cc:(.text.startup+0x17): undefined reference to `pthread_atfork'
     '-DCMAKE_C_FLAGS="$CFLAGS -pthread"',
     '-DCMAKE_CXX_FLAGS="$CXXFLAGS -pthread"',
-    # "-DHTSLIB_INCLUDE_DIR=$EBROOTHTSLIB/include",
-    # "-DHTSLIB_LIBRARIES=$EBROOTHTSLIB/lib/libhts.so",
-    '-DCMAKE_EXE_LINKER_FLAGS="$LDFLAGS -lcublas"',
-    '-DCMAKE_SHARED_LINKER_FLAGS="$LDFLAGS -lcublas"',
-]
+    # let torch find its files - different paths for PyTorch from sources and wheels
+    rf'''-DDORADO_LIBTORCH_DIR="$(python -s -c '{local_torch_root_py}')"''',
+    r'''-DCMAKE_PREFIX_PATH="$(python -s -c 'import torch; print(torch.utils.cmake_prefix_path)')"''',
+]) + ' '
 
-configopts = ' '.join(_copts) + ' '
-
-# disable CMake fiddling with RPATH when EasyBuild is configured to use RPATH linking
-configopts += "$(if %(rpath_enabled)s; then "
-configopts += "echo '-DCMAKE_SKIP_INSTALL_RPATH=YES -DCMAKE_SKIP_RPATH=YES'; fi) "
-
-# CUDA libraries that are copied to installdir need to be patched to have an RPATH section
-# when EasyBuild is configured to use RPATH linking (required to pass RPATH sanity check);
-# by default, CMake sets RUNPATH to '$ORIGIN' rather than RPATH (but that's disabled above)
-postinstallcmds = [
-    "if %(rpath_enabled)s; then "
-    "  for lib in $(ls %(installdir)s/lib/lib{cu,nv}*.so*); do "
-    "    echo setting RPATH in $lib;"
-    "    patchelf --force-rpath --set-rpath '$ORIGIN' $lib;"
-    "  done;"
-    "fi",
-]
+runtest = True
 
 sanity_check_paths = {
     'files': ['bin/dorado'],
Diff against dorado-0.9.1-foss-2023a-CUDA-12.1.1.eb

easybuild/easyconfigs/d/dorado/dorado-0.9.1-foss-2023a-CUDA-12.1.1.eb

diff --git a/easybuild/easyconfigs/d/dorado/dorado-0.9.1-foss-2023a-CUDA-12.1.1.eb b/easybuild/easyconfigs/d/dorado/dorado-2.1.0-foss-2025a-CUDA-12.8.0.eb
index f1006a7765..8a3de074ce 100644
--- a/easybuild/easyconfigs/d/dorado/dorado-0.9.1-foss-2023a-CUDA-12.1.1.eb
+++ b/easybuild/easyconfigs/d/dorado/dorado-2.1.0-foss-2025a-CUDA-12.8.0.eb
@@ -1,14 +1,14 @@
 easyblock = 'CMakeMake'
 
 name = 'dorado'
-version = '0.9.1'
+version = '2.1.0'
 versionsuffix = '-CUDA-%(cudaver)s'
 
 homepage = 'https://github.com/nanoporetech/dorado'
 description = """Dorado is a high-performance, easy-to-use, open source basecaller for Oxford Nanopore reads."""
 
-toolchain = {'name': 'foss', 'version': '2023a'}
-toolchainopts = {'usempi': True}
+toolchain = {'name': 'foss', 'version': '2025a'}
+toolchainopts = {'usempi': False}
 
 source_urls = ['https://github.com/nanoporetech/dorado/archive/']
 sources = [{
@@ -21,30 +21,30 @@ sources = [{
     'filename': SOURCE_TAR_XZ,
 }]
 patches = [
-    '%(name)s-0.8.0_dont_install_external_libraries.patch',
+    'dorado-1.4.0_fix-hts-cmake.patch',
+    'dorado-2.1.0_fix-TestUtils.cpp.patch',
 ]
 checksums = [
-    {'dorado-0.9.1.tar.xz':
-     '95fcbc822b0f31e0f670cafbd234ea639233e978d2fad745b0546b344974dff0'},
-    {'dorado-0.8.0_dont_install_external_libraries.patch':
-     '28942b7057af00c574a5e70d33a58b4036fd09ae0b041f45b67581c8dda832b1'},
+    {'dorado-2.1.0.tar.xz': '3b09354f4e808598af79308a4aa8fda861cd1891d18d1fce87b58328d6dcdd79'},
+    {'dorado-1.4.0_fix-hts-cmake.patch': 'b99f268086650462437cc252040bb8636dfe1e1bbb566e65590fd3401d63f2a0'},
+    {'dorado-2.1.0_fix-TestUtils.cpp.patch': '25415a52873732902641c476a0a54f3e34056227ee23848899133cbc237890ae'},
 ]
 
 builddependencies = [
-    ('binutils', '2.40'),
-    ('CMake', '3.26.3'),
-    ('patchelf', '0.18.0'),
+    ('CMake', '3.31.3'),
+    ('git', '2.49.0'),
 ]
 
 dependencies = [
-    ('CUDA', '12.1.1', '', SYSTEM),
-    ('OpenSSL', '1.1', '', SYSTEM),
-    ('PyTorch', '2.1.2', '-CUDA-%(cudaver)s'),
-    ('HDF5', '1.14.0'),
-    ('zstd', '1.5.5'),
-    ('HTSlib', '1.18'),
-    ('kineto', '0.4.0'),
-    ('libaec', '1.0.6'),
+    ('CUDA', '12.8.0', '', SYSTEM),
+    ('Python', '3.13.1'),
+    ('OpenSSL', '3', '', SYSTEM),
+    ('PyTorch', '2.9.1', f'{versionsuffix}-whl'),
+    ('HDF5', '1.14.6'),
+    ('zstd', '1.5.6'),
+    ('HTSlib', '1.22.1'),
+    ('kineto', '20260317', versionsuffix),
+    ('libaec', '1.1.4'),
 ]
 
 # don't link to OpenSSL static libraries
@@ -52,49 +52,30 @@ dependencies = [
 preconfigopts = "sed -i '/OPENSSL_USE_STATIC_LIBS TRUE/d' ../dorado/cmake/OpenSSL.cmake && "
 # link in the ssl and crypto libs, to fix:
 # undefined reference to symbol 'SSL_get_peer_certificate@@OPENSSL_1_1_0'
-preconfigopts += "sed -i 's/OpenSSL::SSL/ssl\\n    crypto/g' ../dorado/dorado/utils/CMakeLists.txt && "
-
-# don't use vendored HTSlib, use provided HTSlib dependency
-preconfigopts += "rm -r ../dorado/dorado/3rdparty/htslib/ && "
-preconfigopts += "sed -i '/add_dependencies.*htslib_project/d' ../dorado/CMakeLists.txt && "
-preconfigopts += "sed -i '/add_dependencies.*htslib_project/d' ../dorado/dorado/utils/CMakeLists.txt && "
-preconfigopts += "sed -i '/Htslib.cmake/d' ../dorado/CMakeLists.txt && "
-# link with -lhts, not -lhtslib
-preconfigopts += "sed -i 's/htslib/hts/g' ../dorado/CMakeLists.txt && "
-preconfigopts += "sed -i 's/htslib/hts/g' ../dorado/dorado/utils/CMakeLists.txt && "
-preconfigopts += "sed -i 's/htslib/hts/g' ../dorado/dorado/torch_utils/CMakeLists.txt && "
-
+preconfigopts += r"sed -i 's/OpenSSL::SSL/ssl\n    crypto/g' ../dorado/dorado/utils/CMakeLists.txt && "
+# replace dont_install_external_libraries.patch by sed cmd - use system CUDA
+preconfigopts += "sed -i '/install(FILES ${NATIVE_CUDA_LIBS} DESTINATION lib COMPONENT redist_libs)/d' "
+preconfigopts += "../dorado/cmake/InstallRedistLibs.cmake && "
 # disable treating warnings like errors by stripping out -Werror
 # cfr. https://github.com/nanoporetech/dorado/issues/779
 preconfigopts += "sed -i 's/-Werror//g' ../dorado/cmake/Warnings.cmake && "
+# disable prebuilt FlashAttention3 download, falls back to Torch
+preconfigopts += "sed -i '/if (DEFINED DORADO_FLASHATTENTION_PATH)/i unset(FLASHATTENTION_PATCH_SUFFIX)' "
+preconfigopts += "../dorado/cmake/FlashAttention.cmake && "
 
-_copts = [
+local_torch_root_py = 'import torch, pathlib; print(pathlib.Path(torch.__file__).resolve().parent)'
+configopts = ' '.join([
     "-DCUDA_TOOLKIT_ROOT_DIR=$EBROOTCUDA",
     "-DCMAKE_CUDA_COMPILER=$EBROOTCUDA/bin/nvcc",
     '-DOPENSSL_ROOT_DIR=$EBROOTOPENSSL',
-    "-DDORADO_LIBTORCH_DIR=$EBROOTPYTORCH/lib",
-    # add -pthread flag (in addition to -lpthread) to avoid linking error:
-    # in function `_GLOBAL__sub_I_mutex.cc': mutex.cc:(.text.startup+0x17): undefined reference to `pthread_atfork'
     '-DCMAKE_C_FLAGS="$CFLAGS -pthread"',
-]
+    '-DCMAKE_CXX_FLAGS="$CXXFLAGS -pthread"',
+    # let torch find its files - different paths for PyTorch from sources and wheels
+    rf'''-DDORADO_LIBTORCH_DIR="$(python -s -c '{local_torch_root_py}')"''',
+    r'''-DCMAKE_PREFIX_PATH="$(python -s -c 'import torch; print(torch.utils.cmake_prefix_path)')"''',
+]) + ' '
 
-configopts = ' '.join(_copts) + ' '
-
-# disable CMake fiddling with RPATH when EasyBuild is configured to use RPATH linking
-configopts += "$(if %(rpath_enabled)s; then "
-configopts += "echo '-DCMAKE_SKIP_INSTALL_RPATH=YES -DCMAKE_SKIP_RPATH=YES'; fi) "
-
-# CUDA libraries that are copied to installdir need to be patched to have an RPATH section
-# when EasyBuild is configured to use RPATH linking (required to pass RPATH sanity check);
-# by default, CMake sets RUNPATH to '$ORIGIN' rather than RPATH (but that's disabled above)
-postinstallcmds = [
-    "if %(rpath_enabled)s; then "
-    "  for lib in $(ls %(installdir)s/lib/lib{cu,nv}*.so*); do "
-    "    echo setting RPATH in $lib;"
-    "    patchelf --force-rpath --set-rpath '$ORIGIN' $lib;"
-    "  done;"
-    "fi",
-]
+runtest = True
 
 sanity_check_paths = {
     'files': ['bin/dorado'],
Diff against dorado-0.9.0-foss-2023a-CUDA-12.1.1.eb

easybuild/easyconfigs/d/dorado/dorado-0.9.0-foss-2023a-CUDA-12.1.1.eb

diff --git a/easybuild/easyconfigs/d/dorado/dorado-0.9.0-foss-2023a-CUDA-12.1.1.eb b/easybuild/easyconfigs/d/dorado/dorado-2.1.0-foss-2025a-CUDA-12.8.0.eb
index 38a2abfe08..8a3de074ce 100644
--- a/easybuild/easyconfigs/d/dorado/dorado-0.9.0-foss-2023a-CUDA-12.1.1.eb
+++ b/easybuild/easyconfigs/d/dorado/dorado-2.1.0-foss-2025a-CUDA-12.8.0.eb
@@ -1,14 +1,14 @@
 easyblock = 'CMakeMake'
 
 name = 'dorado'
-version = '0.9.0'
+version = '2.1.0'
 versionsuffix = '-CUDA-%(cudaver)s'
 
 homepage = 'https://github.com/nanoporetech/dorado'
 description = """Dorado is a high-performance, easy-to-use, open source basecaller for Oxford Nanopore reads."""
 
-toolchain = {'name': 'foss', 'version': '2023a'}
-toolchainopts = {'usempi': True}
+toolchain = {'name': 'foss', 'version': '2025a'}
+toolchainopts = {'usempi': False}
 
 source_urls = ['https://github.com/nanoporetech/dorado/archive/']
 sources = [{
@@ -21,30 +21,30 @@ sources = [{
     'filename': SOURCE_TAR_XZ,
 }]
 patches = [
-    '%(name)s-0.8.0_dont_install_external_libraries.patch',
+    'dorado-1.4.0_fix-hts-cmake.patch',
+    'dorado-2.1.0_fix-TestUtils.cpp.patch',
 ]
 checksums = [
-    {'dorado-0.9.0.tar.xz':
-     'f08ccbd047d16e20e1fbd71f3449c9b82cbe264aa07a0d0f9a637f957587d99a'},
-    {'dorado-0.8.0_dont_install_external_libraries.patch':
-     '28942b7057af00c574a5e70d33a58b4036fd09ae0b041f45b67581c8dda832b1'},
+    {'dorado-2.1.0.tar.xz': '3b09354f4e808598af79308a4aa8fda861cd1891d18d1fce87b58328d6dcdd79'},
+    {'dorado-1.4.0_fix-hts-cmake.patch': 'b99f268086650462437cc252040bb8636dfe1e1bbb566e65590fd3401d63f2a0'},
+    {'dorado-2.1.0_fix-TestUtils.cpp.patch': '25415a52873732902641c476a0a54f3e34056227ee23848899133cbc237890ae'},
 ]
 
 builddependencies = [
-    ('binutils', '2.40'),
-    ('CMake', '3.26.3'),
-    ('patchelf', '0.18.0'),
+    ('CMake', '3.31.3'),
+    ('git', '2.49.0'),
 ]
 
 dependencies = [
-    ('CUDA', '12.1.1', '', SYSTEM),
-    ('OpenSSL', '1.1', '', SYSTEM),
-    ('PyTorch', '2.1.2', '-CUDA-%(cudaver)s'),
-    ('HDF5', '1.14.0'),
-    ('zstd', '1.5.5'),
-    ('HTSlib', '1.18'),
-    ('kineto', '0.4.0'),
-    ('libaec', '1.0.6'),
+    ('CUDA', '12.8.0', '', SYSTEM),
+    ('Python', '3.13.1'),
+    ('OpenSSL', '3', '', SYSTEM),
+    ('PyTorch', '2.9.1', f'{versionsuffix}-whl'),
+    ('HDF5', '1.14.6'),
+    ('zstd', '1.5.6'),
+    ('HTSlib', '1.22.1'),
+    ('kineto', '20260317', versionsuffix),
+    ('libaec', '1.1.4'),
 ]
 
 # don't link to OpenSSL static libraries
@@ -52,49 +52,30 @@ dependencies = [
 preconfigopts = "sed -i '/OPENSSL_USE_STATIC_LIBS TRUE/d' ../dorado/cmake/OpenSSL.cmake && "
 # link in the ssl and crypto libs, to fix:
 # undefined reference to symbol 'SSL_get_peer_certificate@@OPENSSL_1_1_0'
-preconfigopts += "sed -i 's/OpenSSL::SSL/ssl\\n    crypto/g' ../dorado/dorado/utils/CMakeLists.txt && "
-
-# don't use vendored HTSlib, use provided HTSlib dependency
-preconfigopts += "rm -r ../dorado/dorado/3rdparty/htslib/ && "
-preconfigopts += "sed -i '/add_dependencies.*htslib_project/d' ../dorado/CMakeLists.txt && "
-preconfigopts += "sed -i '/add_dependencies.*htslib_project/d' ../dorado/dorado/utils/CMakeLists.txt && "
-preconfigopts += "sed -i '/Htslib.cmake/d' ../dorado/CMakeLists.txt && "
-# link with -lhts, not -lhtslib
-preconfigopts += "sed -i 's/htslib/hts/g' ../dorado/CMakeLists.txt && "
-preconfigopts += "sed -i 's/htslib/hts/g' ../dorado/dorado/utils/CMakeLists.txt && "
-preconfigopts += "sed -i 's/htslib/hts/g' ../dorado/dorado/torch_utils/CMakeLists.txt && "
-
+preconfigopts += r"sed -i 's/OpenSSL::SSL/ssl\n    crypto/g' ../dorado/dorado/utils/CMakeLists.txt && "
+# replace dont_install_external_libraries.patch by sed cmd - use system CUDA
+preconfigopts += "sed -i '/install(FILES ${NATIVE_CUDA_LIBS} DESTINATION lib COMPONENT redist_libs)/d' "
+preconfigopts += "../dorado/cmake/InstallRedistLibs.cmake && "
 # disable treating warnings like errors by stripping out -Werror
 # cfr. https://github.com/nanoporetech/dorado/issues/779
 preconfigopts += "sed -i 's/-Werror//g' ../dorado/cmake/Warnings.cmake && "
+# disable prebuilt FlashAttention3 download, falls back to Torch
+preconfigopts += "sed -i '/if (DEFINED DORADO_FLASHATTENTION_PATH)/i unset(FLASHATTENTION_PATCH_SUFFIX)' "
+preconfigopts += "../dorado/cmake/FlashAttention.cmake && "
 
-_copts = [
+local_torch_root_py = 'import torch, pathlib; print(pathlib.Path(torch.__file__).resolve().parent)'
+configopts = ' '.join([
     "-DCUDA_TOOLKIT_ROOT_DIR=$EBROOTCUDA",
     "-DCMAKE_CUDA_COMPILER=$EBROOTCUDA/bin/nvcc",
     '-DOPENSSL_ROOT_DIR=$EBROOTOPENSSL',
-    "-DDORADO_LIBTORCH_DIR=$EBROOTPYTORCH/lib",
-    # add -pthread flag (in addition to -lpthread) to avoid linking error:
-    # in function `_GLOBAL__sub_I_mutex.cc': mutex.cc:(.text.startup+0x17): undefined reference to `pthread_atfork'
     '-DCMAKE_C_FLAGS="$CFLAGS -pthread"',
-]
+    '-DCMAKE_CXX_FLAGS="$CXXFLAGS -pthread"',
+    # let torch find its files - different paths for PyTorch from sources and wheels
+    rf'''-DDORADO_LIBTORCH_DIR="$(python -s -c '{local_torch_root_py}')"''',
+    r'''-DCMAKE_PREFIX_PATH="$(python -s -c 'import torch; print(torch.utils.cmake_prefix_path)')"''',
+]) + ' '
 
-configopts = ' '.join(_copts) + ' '
-
-# disable CMake fiddling with RPATH when EasyBuild is configured to use RPATH linking
-configopts += "$(if %(rpath_enabled)s; then "
-configopts += "echo '-DCMAKE_SKIP_INSTALL_RPATH=YES -DCMAKE_SKIP_RPATH=YES'; fi) "
-
-# CUDA libraries that are copied to installdir need to be patched to have an RPATH section
-# when EasyBuild is configured to use RPATH linking (required to pass RPATH sanity check);
-# by default, CMake sets RUNPATH to '$ORIGIN' rather than RPATH (but that's disabled above)
-postinstallcmds = [
-    "if %(rpath_enabled)s; then "
-    "  for lib in $(ls %(installdir)s/lib/lib{cu,nv}*.so*); do "
-    "    echo setting RPATH in $lib;"
-    "    patchelf --force-rpath --set-rpath '$ORIGIN' $lib;"
-    "  done;"
-    "fi",
-]
+runtest = True
 
 sanity_check_paths = {
     'files': ['bin/dorado'],

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

2025a issues & PRs related to 2025a common toolchains update

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant