Skip to content

[DeviceXlib] [package list]

DeviceXlib/0.9.0-cpeGNU-25.03-OpenMP-CPU (DeviceXlib-0.9.0-cpeGNU-25.03-OpenMP-CPU.eb)

Install with the EasyBuild-user module:

eb DeviceXlib-0.9.0-cpeGNU-25.03-OpenMP-CPU.eb -r
To access module help after installation and get reminded for which stacks and partitions the module is installed, use module spider DeviceXlib/0.9.0-cpeGNU-25.03-OpenMP-CPU.

EasyConfig:

#DOC CPU-only version with OpenMP support enabled.
##
# Author: Nicola Spallanzani <nicola.spallanzani@cnr.it>
# Author: Sergio Orlandini <s.orlandini@cineca.it>
# Author: Maria Montagna <m.montagna@cineca.it>
# Adapted for LUMI by Kurt Lust
##

easyblock = 'ConfigureMake'

name =          'DeviceXlib'
version =       '0.9.0'
versionsuffix = '-OpenMP-CPU'

homepage = 'https://gitlab.com/max-centre/components/devicexlib'

whatis = ['Description: fortran library wrapping device-oriented routines and utilities"']

description = """
DeviceXlib is a library that wraps device-oriented routines and utilities, such as device
data allocation, host-device data transfers. deviceXlib supports CUDA language, together
with OpenACC and OpenMP programming paradigms. deviceXlib wraps a subset of functions from
Nvidia cuBLAS, Intel oneMKL BLAS and AMD rocBLAS libraries.
"""

toolchain = {'name': 'cpeGNU', 'version': '25.03'}
toolchainopts = {
    'openmp':           True,
    'debug':            True, 
    'opt':              True,
    'gfortran9-compat': True, # Adds -fallow-argument-mismatch
    'extra_f90flags':   '-cpp'
}

source_urls = ['https://gitlab.com/max-centre/components/devicexlib/-/archive/%(version)s/']
sources =     ['devicexlib-%(version)s.tar.gz']
checksums =   ['77c57a31381a69a2eb2a77138b131a553c96aff03ca934c88b8a6d8434b39460']

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

preconfigopts = ' && '.join([
    'export CPP="cpp -P"',
    'export FPP="cpp -P -traditional"',
    'export LDFLAGS="-g -pthread -fopenmp"',
]) + ' && '

configopts = ' '.join([
    '--enable-openmp',
    '--enable-parallel=no',
    '--disable-cuda-env-check',
    '--with-blas-libs="-L$CRAY_LIBSCI_PREFIX/lib -lsci_gnu_mp"',
])

buildopts = 'all'

postinstallcmds = [
    'mkdir -p %(installdir)s/share/licenses/%(name)s',
    'cp LICENSE.txt README.md %(installdir)s/share/licenses/%(name)s',   
]

local_test_bins = ['buffer', 'linalg', 'malloc', 'mapping', 'memcpy_async', 'memcpy', 'memset', 'pinned']

sanity_check_paths = {
    'files': [f'bin/test_{b}.x' for b in local_test_bins] + ['lib/libdevXlib.a'],
    'dirs':  [],
}

sanity_check_commands = [f'test_{b}.x' for b in local_test_bins]

moduleclass = 'lib'

[DeviceXlib] [package list]