Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

dorado #208

Closed
boegel opened this issue Sep 8, 2023 · 6 comments
Closed

dorado #208

boegel opened this issue Sep 8, 2023 · 6 comments
Assignees
Labels
binaries Pre-built (x86_64 Linux) binaries are available difficulty: easy software that should be easy to support GPU priority: high site:ugent Software installation request for UGent Tier-2 update

Comments

@boegel
Copy link
Contributor

boegel commented Sep 8, 2023

@boegel boegel added difficulty: easy software that should be easy to support priority: high update site:ugent Software installation request for UGent Tier-2 GPU binaries Pre-built (x86_64 Linux) binaries are available labels Sep 8, 2023
@boegel boegel self-assigned this Sep 8, 2023
@boegel
Copy link
Contributor Author

boegel commented Sep 8, 2023

trivial update of dorado-0.3.1-foss-2022a-CUDA-11.7.0.eb didn't work, build failed, see nanoporetech/dorado#364

@branfosj
Copy link

branfosj commented Sep 10, 2023

At the point this happens it is logging information. I traced this to requested_bytes being added for PyTorch 2.0. I used a sed to replace it with logging reserved_bytes a second time instead.

# requested_bytes not in PyTorch 1.13.1
preconfigopts += "sed -i 's/requested_bytes/reserved_bytes/g' ../dorado/dorado/nn/CudaCRFModel.cpp && 

I've not PR-ed this as I am having issues with linking related to SSL. I bypassed that issue with a hack, as I only needed dorado for a test I was doing locally.

dorado-0.3.4-foss-2022a-CUDA-11.7.0.eb
easyblock = 'CMakeMake'

name = 'dorado'
version = '0.3.4'
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': '2022a'}
toolchainopts = {'usempi': True}

source_urls = ['https://github.com/nanoporetech/dorado/archive/']
sources = [{
    'git_config': {
        'url': 'https://github.com/nanoporetech',
        'repo_name': name,
        'tag': 'v%(version)s',
        'recursive': True,
    },
    'filename': SOURCE_TAR_GZ,
}]
checksums = [None]

builddependencies = [
    ('binutils', '2.38'),
    ('CMake', '3.24.3'),
]

dependencies = [
    ('CUDA', '11.7.0', '', SYSTEM),
    # ('OpenSSL', '1.1', '', SYSTEM),
    ('PyTorch', '1.13.1', '-CUDA-%(cudaver)s'),
    ('HDF5', '1.12.2'),
    ('zstd', '1.5.2'),
    ('HTSlib', '1.15.1'),
    ('kineto', '0.4.0'),
    ('libaec', '1.0.6'),
]

# don't link to OpenSSL static libraries
# fix for CMake Error "missing: OPENSSL_CRYPTO_LIBRARY" (if only shared OpenSSL libraries are available)
preconfigopts = "sed -i 's/OPENSSL_USE_STATIC_LIBS TRUE/OPENSSL_USE_STATIC_LIBS FALSE/' ../dorado/cmake/OpenSSL.cmake && "
preconfigopts += "export OPENSSL_ROOT_DIR=$EBROOTOPENSSL && "
# link in the ssl and crypto libs
preconfigopts += "sed -i 's/OpenSSL::SSL/ssl\\n    crypto/g' ../dorado/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 '/Htslib.cmake/d' ../dorado/CMakeLists.txt && "
# link with -lhts, not -lhtslib
preconfigopts += "sed -i 's/htslib/hts/g' ../dorado/CMakeLists.txt && "

# requested_bytes not in PyTorch 1.13.1
preconfigopts += "sed -i 's/requested_bytes/reserved_bytes/g' ../dorado/dorado/nn/CudaCRFModel.cpp && "

configopts = "-DDORADO_INSTALL_PATH=%(installdir)s "
configopts += "-DPython3_EXECUTABLE=$EBROOTPYTHON/bin/python "
configopts += "-DCUDA_TOOLKIT_ROOT_DIR=$EBROOTCUDA -DCMAKE_CUDA_COMPILER=$EBROOTCUDA/bin/nvcc "
configopts += "-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'
configopts += '-DCMAKE_C_FLAGS="$CFLAGS -pthread" '

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

sanity_check_commands = ["dorado basecaller --help"]

moduleclass = 'bio'

@laraPPr
Copy link
Collaborator

laraPPr commented Nov 21, 2023

The same users is also asking to install v0.4.1 #2023102360000756

@laraPPr laraPPr changed the title dorado 0.3.4 dorado v0.4.1 Nov 22, 2023
@laraPPr
Copy link
Collaborator

laraPPr commented Dec 19, 2023

Other people are now also asking for v0.5.0 #2023120660000516 + #2023121360002966

@boegel
Copy link
Contributor Author

boegel commented Jan 4, 2024

working easyconfig for dorado v0.5.1: easybuilders/easybuild-easyconfigs#19489

@boegel boegel changed the title dorado v0.4.1 dorado Jan 4, 2024
@boegel
Copy link
Contributor Author

boegel commented Jan 4, 2024

dorado 0.5.1 installed on all HPC-UGent Tier-2 GPU clusters (incl. donphan) + Tier-1 GPU partition, so closing...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
binaries Pre-built (x86_64 Linux) binaries are available difficulty: easy software that should be easy to support GPU priority: high site:ugent Software installation request for UGent Tier-2 update
Projects
None yet
Development

No branches or pull requests

3 participants