Skip to content
Closed
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,57 @@
easyblock = 'Bundle'

name = 'FlexiBLAS'
version = '3.4.4'

homepage = 'https://gitlab.mpi-magdeburg.mpg.de/software/flexiblas-release'
description = """FlexiBLAS is a wrapper library that enables the exchange of the BLAS and LAPACK implementation
used by a program without recompiling or relinking it."""

toolchain = {'name': 'NVHPC', 'version': '24.9-CUDA-12.6.0'}
local_extra_flags = "-D__ELF__"
toolchainopts = {'pic': True, 'extra_cflags': local_extra_flags, 'extra_fflags': local_extra_flags}

builddependencies = [
('CMake', '3.29.3'),
('Python', '3.12.3'), # required for running the tests
]

dependencies = [
('OpenBLAS', '0.3.27'),
]

# note: first listed backend will be used as default by FlexiBLAS,
# unless otherwise specified via easyconfig parameter flexiblas_default
local_backends = ['OpenBLAS']

# imkl supplies its backend via the imkl module, not as a dependency
if ARCH == 'x86_64':
local_backends.append('imkl')

default_component_specs = {'start_dir': '%(namelower)s-%(version)s'}
sanity_check_all_components = True

# Also build and install LAPACKE, which FlexiBLAS does not support yet
components = [
(name, version, {
'source_urls': ['https://github.com/mpimd-csc/flexiblas/releases/download/v%(version)s/'],
'sources': [SOURCELOWER_TAR_GZ],
'checksums': ['05040ae092142dd0bf38d1bb9ce33f6b475d9f9bb455e33be997932ae855c22b'],
'backends': local_backends,
}),
('LAPACK', '3.12.0', {
'easyblock': 'CMakeMake',
'source_urls': ['https://github.com/Reference-LAPACK/lapack/archive/'],
'sources': ['v%(version)s.tar.gz'],
'checksums': ['eac9570f8e0ad6f30ce4b963f4f033f0f643e7c3912fc9ee6cd99120675ad48b'],
'configopts': ('-DBUILD_SHARED_LIBS=ON -DUSE_OPTIMIZED_BLAS=ON -DLAPACKE=ON '
'-DUSE_OPTIMIZED_LAPACK=ON -DBUILD_DEPRECATED=ON '
'-DCMAKE_INSTALL_INCLUDEDIR=%(installdir)s/include/flexiblas'),
'sanity_check_paths': {
'files': ['lib/liblapacke.%s' % SHLIB_EXT, 'include/flexiblas/lapacke.h'],
'dirs': [],
},
}),
]

moduleclass = 'lib'
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
name = 'OpenBLAS'
version = '0.3.27'

homepage = 'http://www.openblas.net/'
description = "OpenBLAS is an optimized BLAS library based on GotoBLAS2 1.13 BSD version."

toolchain = {'name': 'NVHPC', 'version': '24.9-CUDA-12.6.0'}

source_urls = [
# order matters, trying to download the large.tgz/timing.tgz LAPACK tarballs from GitHub causes trouble
'https://www.netlib.org/lapack/timing/',
'https://github.com/xianyi/OpenBLAS/archive/',
]
sources = ['v%(version)s.tar.gz']
patches = [
('large.tgz', '.'),
('timing.tgz', '.'),
'OpenBLAS-0.3.15_workaround-gcc-miscompilation.patch',
'OpenBLAS-0.3.21_fix-order-vectorization.patch',
'OpenBLAS-0.3.26_lapack_qr_noninittest.patch',
'OpenBLAS-0.3.27_fix_zscal.patch',
'OpenBLAS-0.3.27_riscv-drop-static-fortran-flag.patch',
]
checksums = [
{'v0.3.27.tar.gz': 'aa2d68b1564fe2b13bc292672608e9cdeeeb6dc34995512e65c3b10f4599e897'},
{'large.tgz': 'f328d88b7fa97722f271d7d0cfea1c220e0f8e5ed5ff01d8ef1eb51d6f4243a1'},
{'timing.tgz': '999c65f8ea8bd4eac7f1c7f3463d4946917afd20a997807300fe35d70122f3af'},
{'OpenBLAS-0.3.15_workaround-gcc-miscompilation.patch':
'e6b326fb8c4a8a6fd07741d9983c37a72c55c9ff9a4f74a80e1352ce5f975971'},
{'OpenBLAS-0.3.21_fix-order-vectorization.patch':
'08af834e5d60441fd35c128758ed9c092ba6887c829e0471ecd489079539047d'},
{'OpenBLAS-0.3.26_lapack_qr_noninittest.patch': '4781bf1d7b239374fd8069e15b4e2c0ef0e8efaa1a7d4c33557bd5b27e5de77c'},
{'OpenBLAS-0.3.27_fix_zscal.patch': '9210d7b66538dabaddbe1bfceb16f8225708856f60876ca5561b19d3599f9fd1'},
{'OpenBLAS-0.3.27_riscv-drop-static-fortran-flag.patch':
'f374e41efffd592ab1c9034df9e7abf1045ed151f4fc0fd0da618ce9826f2d4b'},
]

builddependencies = [
('make', '4.4.1'),
# required by LAPACK test suite
('Python', '3.12.3'),
]

# extensive testing can be enabled by uncommenting the line below
# runtest = 'PATH=.:$PATH lapack-timing'

moduleclass = 'numlib'