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,75 @@
easyblock = 'Bundle'

name = 'FlexiBLAS'
version = '3.3.1'

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': '23.7-CUDA-12.1.1'}
local_extra_flags = "-D__ELF__"
toolchainopts = {'pic': True, 'extra_cflags': local_extra_flags, 'extra_fflags': local_extra_flags}

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

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

# 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://gitlab.mpi-magdeburg.mpg.de/api/v4/projects/386/packages/generic/flexiblas-source/v3.3.1/'],
'sources': [SOURCELOWER_TAR_GZ],
'patches': [
'FlexiBLAS-3.0.4_fix-imkl.patch',
'FlexiBLAS-3.0.4_fix-wrapper_blas_intel.patch',
'FlexiBLAS-3.0.4_remove-semicolon.patch',
'FlexiBLAS-3.2.0_remove-intel-suffix.patch',
],
'checksums': [
'bbeebf5e5a006924558fec43f49affbe1aaa4cbacfc472a9ff6066ffda142e18', # flexiblas-3.3.1.tar.gz
'a078e46ad126574cc42314abd5b40461cdc6e950af79d105dbf92875c254c87c', # FlexiBLAS-3.0.4_fix-imkl.patch
# FlexiBLAS-3.0.4_fix-wrapper_blas_intel.patch
'30ae7d1edbcff2beb18bca9b751dcaf0bf9a996d41fbe669b0a11592ec01c7ac',
# FlexiBLAS-3.0.4_remove-semicolon.patch
'a3bbcff7aeca6f8bab989e7e3a8069f2b7b660e4559042221eecaa30dc0ce300',
# FlexiBLAS-3.2.0_remove-intel-suffix.patch
'98b70ac9b10c9e45cd7c2251f8b710cda704b04311b33b6fe1a56be51aa43bc4',
],
# 'configopts': '-DABI=GNU',
# 'configopts': '-DABI=Intel',
'backends': local_backends,
}),
('LAPACK', '3.11.0', {
'easyblock': 'CMakeMake',
'source_urls': ['https://github.com/Reference-LAPACK/lapack/archive/'],
'sources': ['v%(version)s.tar.gz'],
'checksums': ['4b9ba79bfd4921ca820e83979db76ab3363155709444a787979e81c22285ffa9'],
'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'
26 changes: 26 additions & 0 deletions easybuild/easyconfigs/n/nvofbf/nvofbf-2023a.eb
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
easyblock = 'Toolchain'

name = 'nvofbf'
version = '2023a'

homepage = '(none)'
description = """NVHPC based toolchain, including OpenMPI for MPI support,
OpenBLAS (via FlexiBLAS for BLAS and LAPACK support), FFTW and ScaLAPACK."""

toolchain = SYSTEM

local_cuda = '12.1.1'
local_compiler = ('NVHPC', '23.7-CUDA-%s' % local_cuda)

local_comp_mpi_tc = ('nvompi', '%(version)s')

dependencies = [
local_compiler,
('OpenMPI', '4.1.5', '', local_compiler),
('FlexiBLAS', '3.3.1', '', local_compiler),
('FFTW', '3.3.10', '', local_compiler),
('FFTW.MPI', '3.3.10', '', local_comp_mpi_tc),
('ScaLAPACK', '2.2.0', '-fb', local_comp_mpi_tc),
]

moduleclass = 'toolchain'
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
name = 'ScaLAPACK'
version = '2.2.0'
versionsuffix = '-fb'

homepage = 'https://www.netlib.org/scalapack/'
description = """The ScaLAPACK (or Scalable LAPACK) library includes a subset of LAPACK routines
redesigned for distributed memory MIMD parallel computers."""

toolchain = {'name': 'nvompi', 'version': '2023a'}
toolchainopts = {'extra_fflags': '-lpthread', 'openmp': True, 'pic': True, 'usempi': True}

source_urls = [homepage]
sources = [SOURCELOWER_TGZ]
patches = ['ScaLAPACK-%(version)s_fix-GCC-10.patch']
checksums = [
'40b9406c20735a9a3009d863318cb8d3e496fb073d201c5463df810e01ab2a57', # scalapack-2.2.0.tgz
'f6bc3c6dee012ba4a696548a2e12b6aae932ce4fd5a142153b338839f52b5906', # ScaLAPACK-2.2.0_fix-GCC-10.patch
]

local_gcc_compiler = ('GCCcore', '12.3.0')
local_compiler = ('NVHPC', '23.7-CUDA-12.1.1')

builddependencies = [
('CMake', '3.26.3', '', local_gcc_compiler),
]

dependencies = [
('FlexiBLAS', '3.3.1', '', local_compiler),
]

# Config Opts based on AOCL User Guide:
# https://developer.amd.com/wp-content/resources/AOCL_User%20Guide_2.2.pdf

configopts = '-DBUILD_SHARED_LIBS=ON '
configopts += '-DBLAS_LIBRARIES="$EBROOTFLEXIBLAS/lib/libflexiblas.%s" ' % SHLIB_EXT
configopts += '-DLAPACK_LIBRARIES="$EBROOTFLEXIBLAS/lib/libflexiblas.%s" ' % SHLIB_EXT

sanity_check_paths = {
'files': ['lib/libscalapack.%s' % SHLIB_EXT, 'lib64/libscalapack.%s' % SHLIB_EXT],
'dirs': ["lib", "lib64"],
}

moduleclass = 'numlib'
Loading