diff --git a/easybuild/easyconfigs/a/AOCL-BLAS/AOCL-BLAS-5.2-GCC-15.2.0.eb b/easybuild/easyconfigs/a/AOCL-BLAS/AOCL-BLAS-5.2-GCC-15.2.0.eb new file mode 100644 index 000000000000..14fa21d81fb2 --- /dev/null +++ b/easybuild/easyconfigs/a/AOCL-BLAS/AOCL-BLAS-5.2-GCC-15.2.0.eb @@ -0,0 +1,24 @@ +easyblock = 'EB_BLIS' + +name = 'AOCL-BLAS' +version = '5.2' + +homepage = 'https://github.com/amd/blis' +description = """AOCL-BLAS is AMD's optimized version of + BLAS targeted for AMD EPYC and Ryzen CPUs.""" + +toolchain = {'name': 'GCC', 'version': '15.2.0'} +toolchainopts = {'openmp': True} + +source_urls = ['https://github.com/amd/blis/archive/'] +sources = ['%(version)s.tar.gz'] +checksums = ['c553bd543eedc87920df9b82634ae4c02662145ed737f51fdf4c9bca5e588028'] + +builddependencies = [ + ('Python', '3.14.2'), + ('Perl', '5.42.0'), +] + +runtest = 'check' + +moduleclass = 'numlib' diff --git a/easybuild/easyconfigs/b/BLIS/BLIS-2.0-GCC-15.2.0.eb b/easybuild/easyconfigs/b/BLIS/BLIS-2.0-GCC-15.2.0.eb new file mode 100644 index 000000000000..35b6ffd37337 --- /dev/null +++ b/easybuild/easyconfigs/b/BLIS/BLIS-2.0-GCC-15.2.0.eb @@ -0,0 +1,22 @@ +name = 'BLIS' +version = '2.0' + +homepage = 'https://github.com/flame/blis/' +description = """BLIS is a portable software framework for instantiating high-performance +BLAS-like dense linear algebra libraries.""" + +toolchain = {'name': 'GCC', 'version': '15.2.0'} +toolchainopts = {'openmp': True} + +source_urls = ['https://github.com/flame/blis/archive/'] +sources = ['%(version)s.tar.gz'] +checksums = ['08bbebd77914a6d1a43874ae5ec2f54fe6a77cba745f2532df28361b0f1ad1b3'] + +builddependencies = [ + ('Python', '3.14.2'), + ('Perl', '5.42.0'), +] + +runtest = 'check' + +moduleclass = 'numlib' diff --git a/easybuild/easyconfigs/f/FlexiBLAS/FlexiBLAS-3.5.0-GCC-15.2.0.eb b/easybuild/easyconfigs/f/FlexiBLAS/FlexiBLAS-3.5.0-GCC-15.2.0.eb new file mode 100644 index 000000000000..2cd45e42653b --- /dev/null +++ b/easybuild/easyconfigs/f/FlexiBLAS/FlexiBLAS-3.5.0-GCC-15.2.0.eb @@ -0,0 +1,67 @@ +easyblock = 'Bundle' + +name = 'FlexiBLAS' +version = '3.5.0' + +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': 'GCC', 'version': '15.2.0'} +local_extra_flags = "-fstack-protector-strong -fstack-clash-protection" +toolchainopts = {'pic': True, 'extra_cflags': local_extra_flags, 'extra_fflags': local_extra_flags} + +builddependencies = [ + ('CMake', '4.2.1'), + ('Python', '3.14.2'), # required for running the tests + ('BLIS', '2.0'), +] +if ARCH == 'x86_64': + builddependencies.append(('AOCL-BLAS', '5.2')) +if ARCH == 'aarch64': + builddependencies.append(('NVPL', '25.11', '', SYSTEM)) + +dependencies = [ + ('OpenBLAS', '0.3.31'), +] + +# note: first listed backend will be used as default by FlexiBLAS, +# unless otherwise specified via easyconfig parameter flexiblas_default +local_backends = ['OpenBLAS', 'BLIS'] + +# imkl supplies its backend via the imkl module, not as a dependency +if ARCH == 'x86_64': + local_backends.extend(['AOCL-BLAS', 'imkl']) +if ARCH == 'aarch64': + local_backends.extend(['NVPL']) + +default_component_specs = {'start_dir': '%(namelower)s-%(version)s'} +sanity_check_all_components = True + +# Also build and install LAPACKE. FlexiBLAS v3.5.0 mentions support for LAPACKE +# and provides a fallback shared library, but does not include pkgconf files for it. +# LAPACK version matches the one built by FlexiBLAS v3.5.0. +components = [ + (name, version, { + 'source_urls': + ['https://gitlab.mpi-magdeburg.mpg.de/api/v4/projects/386/packages/generic/flexiblas-source/v%(version)s/'], + 'sources': [SOURCELOWER_TAR_GZ], + 'checksums': ['4f135fd3d4d844f221624b13734acd0d221a4347a19fa78604a6cbcaa3f477ea'], + 'backends': local_backends, + }), + ('LAPACK', '3.12.1', { + 'easyblock': 'CMakeMake', + 'source_urls': ['https://github.com/Reference-LAPACK/lapack/archive/'], + 'sources': ['v%(version)s.tar.gz'], + 'checksums': ['2ca6407a001a474d4d4d35f3a61550156050c48016d949f0da0529c0aa052422'], + 'configopts': ('-DBUILD_SHARED_LIBS=ON -DUSE_OPTIMIZED_BLAS=ON -DLAPACKE=ON ' + '-DUSE_OPTIMIZED_LAPACK=ON -DBUILD_DEPRECATED=ON -DBUILD_INDEX64_EXT_API=OFF ' + '-DCMAKE_INSTALL_INCLUDEDIR=%(installdir)s/include/flexiblas'), + 'sanity_check_paths': { + 'files': ['lib/liblapacke.%s' % SHLIB_EXT, 'include/flexiblas/lapacke.h'], + 'dirs': [], + }, + }), +] + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/m/make/make-4.4.1-GCCcore-15.2.0.eb b/easybuild/easyconfigs/m/make/make-4.4.1-GCCcore-15.2.0.eb new file mode 100644 index 000000000000..3931d755b5ed --- /dev/null +++ b/easybuild/easyconfigs/m/make/make-4.4.1-GCCcore-15.2.0.eb @@ -0,0 +1,29 @@ +easyblock = 'ConfigureMake' + +name = 'make' +version = '4.4.1' + +homepage = 'https://www.gnu.org/software/make/make.html' +description = "GNU version of make utility" + +toolchain = {'name': 'GCCcore', 'version': '15.2.0'} + +source_urls = [GNU_SOURCE] +sources = [SOURCE_TAR_GZ] +checksums = ['dd16fb1d67bfab79a72f5e8390735c49e3e8e70b4945a15ab1f81ddb78658fb3'] + +builddependencies = [('binutils', '2.45')] + +postinstallcmds = ["cd %(installdir)s/bin && ln -s make gmake"] + +sanity_check_paths = { + 'files': ['bin/gmake', 'bin/make'], + 'dirs': [] +} + +sanity_check_commands = [ + "gmake --help", + "make --help", +] + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/o/OpenBLAS/OpenBLAS-0.3.31-GCC-15.2.0.eb b/easybuild/easyconfigs/o/OpenBLAS/OpenBLAS-0.3.31-GCC-15.2.0.eb new file mode 100644 index 000000000000..78da6782a66d --- /dev/null +++ b/easybuild/easyconfigs/o/OpenBLAS/OpenBLAS-0.3.31-GCC-15.2.0.eb @@ -0,0 +1,43 @@ +name = 'OpenBLAS' +version = '0.3.31' + +homepage = 'https://www.openblas.net/' +description = "OpenBLAS is an optimized BLAS library based on GotoBLAS2 1.13 BSD version." + +toolchain = {'name': 'GCC', 'version': '15.2.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', +] +checksums = [ + {'v0.3.31.tar.gz': '6dd2a63ac9d32643b7cc636eab57bf4e57d0ed1fff926dfbc5d3d97f2d2be3a6'}, + {'large.tgz': 'f328d88b7fa97722f271d7d0cfea1c220e0f8e5ed5ff01d8ef1eb51d6f4243a1'}, + {'timing.tgz': '999c65f8ea8bd4eac7f1c7f3463d4946917afd20a997807300fe35d70122f3af'}, + {'OpenBLAS-0.3.15_workaround-gcc-miscompilation.patch': + 'e6b326fb8c4a8a6fd07741d9983c37a72c55c9ff9a4f74a80e1352ce5f975971'}, + {'OpenBLAS-0.3.21_fix-order-vectorization.patch': + '08af834e5d60441fd35c128758ed9c092ba6887c829e0471ecd489079539047d'}, +] + +builddependencies = [ + ('make', '4.4.1'), + # required by LAPACK test suite + ('Python', '3.14.2'), +] + +run_lapack_tests = True +max_failing_lapack_tests_num_errors = 150 + +# extensive testing can be enabled by uncommenting the line below +# runtest = 'PATH=.:$PATH lapack-timing' + +moduleclass = 'numlib'