Librairie MAGMA

https://icl.cs.utk.edu/magma/

Article mis en ligne le 20 juillet 2021
dernière modification le 16 juillet 2021

Le projet MAGMA développe une librairie d’Algèbre LInéaire Dense similaire à LAPACK mais pour des architectures hétérogènes ou hybrides : Multicore+GPU

Plusieurs module sont disponibles suivant les compilations (Intel, gnu) les librairies Blas (MKL, OpenBlas) et la représentation des entiers (4 ou 8 octets)
Toutes les librairies MAGMA ci-dessous sont compilée en cuda 11.0 qui vient avec le module nvidia/nvhpc/20.9-working .

#Compilation intel+MKL integer 32 bit (4 octets)
module purge
module load magma/2.5.4-cuda-intel-mkl-int32
module li
Currently Loaded Modulefiles:
 1) intel/18.2                         2) nvidia/nvhpc/20.9-working          3) magma/2.5.4-cuda-intel-mkl-int32
# Pour linker avec compilateur intel
-lmagma_sparse -lmagma -lmkl_intel_lp64 -mkl=parallel
#Compilation intel+MKL integer 64 bit (8 octets)
module purge
module load magma/2.5.4-cuda-intel-mkl-int64
module li
Currently Loaded Modulefiles:
 1) intel/18.2                         2) nvidia/nvhpc/20.9-working          3) magma/2.5.4-cuda-intel-mkl-int64
# Pour linker avec compilateur intel
-lmagma_sparse -lmagma -L${MKLROOT}/lib/intel64 -lmkl_intel_ilp64 -lmkl_intel_thread -lmkl_core -liomp5 -lpthread -lm -ldl
#Compilation gnu9+MKL integer 64 bit (8 octets)
module purge
module load magma/2.5.4-cuda-gnu9-mkl-int64
module li
Currently Loaded Modulefiles:
 1) gcc/9.3.0                         2) intel/18.2                        3) nvidia/nvhpc/20.9-working         4) magma/2.5.4-cuda-gnu9-mkl-int64

#pour compiler et linker avec compilateur gnu
export MAGMADIR=/usr/local/magma/gnu-mkl/2.5.4/int64/install/

gfortran -m64 -I${MKLROOT}/include -g -fopenmp -I${MAGMADIR}/include -c test_LU.F90
gfortran -fopenmp -g -pg -DADD_ -lmagma -Wl,--no-as-needed -lmkl_gf_ilp64 -lmkl_gnu_thread -lmkl_core -lgomp -lpthread -lm -ldl -o exec.x test_LU.o