diff --git a/easybuild/easyconfigs/f/FlexiBLAS/FlexiBLAS-3.3.1-NVHPC-23.7-CUDA-12.1.1.eb b/easybuild/easyconfigs/f/FlexiBLAS/FlexiBLAS-3.3.1-NVHPC-23.7-CUDA-12.1.1.eb new file mode 100644 index 000000000000..33d986abe368 --- /dev/null +++ b/easybuild/easyconfigs/f/FlexiBLAS/FlexiBLAS-3.3.1-NVHPC-23.7-CUDA-12.1.1.eb @@ -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' diff --git a/easybuild/easyconfigs/n/nvofbf/nvofbf-2023a.eb b/easybuild/easyconfigs/n/nvofbf/nvofbf-2023a.eb new file mode 100644 index 000000000000..cc6324a3e013 --- /dev/null +++ b/easybuild/easyconfigs/n/nvofbf/nvofbf-2023a.eb @@ -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' diff --git a/easybuild/easyconfigs/s/ScaLAPACK/ScaLAPACK-2.2.0-nvompi-2023a-fb.eb b/easybuild/easyconfigs/s/ScaLAPACK/ScaLAPACK-2.2.0-nvompi-2023a-fb.eb new file mode 100644 index 000000000000..60c0188ce855 --- /dev/null +++ b/easybuild/easyconfigs/s/ScaLAPACK/ScaLAPACK-2.2.0-nvompi-2023a-fb.eb @@ -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'