Skip to content

[QUDA] [package list]

QUDA/0a31b22-cpeAMD-22.09-GPU (QUDA-0a31b22-cpeAMD-22.09-GPU.eb)

This software is archived in the LUMI-EasyBuild-contrib GitHub repository as easybuild/easyconfigs/__archive__/q/QUDA/QUDA-0a31b22-cpeAMD-22.09-GPU.eb. The corresponding module would be QUDA/0a31b22-cpeAMD-22.09-GPU.

easyblock = 'CMakeMake'

name = 'QUDA'
version = '0a31b22'
versionsuffix = "-GPU"

homepage = 'https://lattice.github.io/quda/'

description = """QUDA is a library for performing calculations in lattice QCD on GPUs."""


toolchain = {'name': 'cpeAMD', 'version': '23.09'}
toolchainopts = {'usempi': True, 'openmp': True, 'pic': True, 'strict': True}

sources = [{
    'filename':   'quda-%(version)s.tar.gz',    
    'git_config': {
        'url': 'https://github.com/lattice',
        'repo_name': 'quda',
        'commit': '0a31b22738ca0a2a42176bf6b4460119d74112fc'
    }
}]

dependencies = [
    ('amd', '5.6.1', '', SYSTEM),
    ('rocm', '5.6.1', '', SYSTEM),
    ('gcc-mixed/12.2.0', EXTERNAL_MODULE),
    ('cray-libsci/23.09.1.1',   EXTERNAL_MODULE),
]

builddependencies = [
    ('buildtools',   '%(toolchain_version)s',   '', True),
]

preconfigopts  = 'unset MPICXX && unset MPICC && '
preconfigopts += 'export C_INCLUDE_PATH=$ROCM_PATH/llvm/include && '
preconfigopts += 'export CPLUS_INCLUDE_PATH=$ROCM_PATH/llvm/include && '
preconfigopts += 'export LIBRARY_PATH=${EBROOTBOOST}/lib:${EBROOTBUILDTOOLS}/lib:${ROCM_PATH}/lib && '

configopts =  '-D CMAKE_BUILD_TYPE=Release '
configopts += '-D CMAKE_C_COMPILER=${ROCM_PATH}/llvm/bin/clang '
configopts += '-D CMAKE_C_FLAGS="--gcc-toolchain=$GCC_PATH/snos/" '
configopts += '-D CMAKE_CXX_COMPILER=${ROCM_PATH}/llvm/bin/clang++ '
configopts += '-D CMAKE_CXX_FLAGS="--gcc-toolchain=$GCC_PATH/snos/" '
configopts += '-D ROCM_PATH=${ROCM_PATH} '
configopts += '-D ROCM_CXX_FLAGS="--gcc-toolchain=$GCC_PATH/snos/" '
configopts += '-D CMAKE_HIP_COMPILER=${ROCM_PATH}/llvm/bin/clang++ '
configopts += '-D QUDA_TARGET_TYPE=HIP '
configopts += '-D QUDA_BUILD_ALL_TESTS=ON '
configopts += '-D QUDA_MPI=ON '
configopts += '-D QUDA_DIRAC_CLOVER=ON '
configopts += '-D QUDA_DIRAC_CLOVER_HASENBUSCH=ON '
configopts += '-D QUDA_DIRAC_DOMAIN_WALL=OFF '
configopts += '-D QUDA_DIRAC_NDEG_TWISTED_MASS=ON '
configopts += '-D QUDA_DIRAC_NDEG_TWISTED_CLOVER=ON '
configopts += '-D QUDA_DIRAC_STAGGERED=ON '
configopts += '-D QUDA_DIRAC_TWISTED_MASS=ON '
configopts += '-D QUDA_DIRAC_TWISTED_CLOVER=ON '
configopts += '-D QUDA_DIRAC_WILSON=ON '
configopts += '-D QUDA_FORCE_GAUGE=ON '
configopts += '-D QUDA_FORCE_HISQ=OFF '
configopts += '-D QUDA_GAUGE_ALG=ON '
configopts += '-D QUDA_GAUGE_TOOLS=OFF '
configopts += '-D QUDA_MULTIGRID=ON '
configopts += '-D QUDA_INTERFACE_MILC=OFF '
configopts += '-D QUDA_INTERFACE_CPS=OFF '
configopts += '-D QUDA_INTERFACE_QDP=ON '
configopts += '-D QUDA_INTERFACE_TIFR=OFF '
configopts += '-D QUDA_DOWNLOAD_USQCD=ON '
configopts += '-D QUDA_GPU_ARCH=gfx90a '
configopts += '-D AMDGPU_TARGETS=gfx90a '
configopts += '-D GPU_TARGETS=gfx90a '

sanity_check_paths = {
    'files': ['lib/libquda.so'],
    'dirs':  ['bin', 'lib', 'include'],
}

moduleclass = 'phys'

[QUDA] [package list]