Librairie MAGMA

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

Article mis en ligne le 20 juillet 2021
dernière modification le 30 août 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 .

  • MAGMA : 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
  • MAGMA : Compilation intel+MKL integer 64 bit (8 octets)
    module purge
    module load magma/2.5.4-cuda-intel-mkl-int64
    module li

    # Pour linker avec compilateur intel
    -lmagma_sparse -lmagma -L${MKLROOT}/lib/intel64 -lmkl_intel_ilp64 -lmkl_intel_thread -lmkl_core -liomp5 -lpthread -lm -ldl
  • MAGMA : Compilation gnu9+MKL integer 64 bit (8 octets)
    module purge
    module load magma/2.5.4-cuda-gnu9-mkl-int64

    export MAGMADIR=/usr/local/magma/gnu-mkl/2.5.4/int64/install/

    # Pour Compiler et Linker avec compilateur GNU
    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
  • MAGMA : Compilation gnu9+Openblas integer 32 bit (4 octets)
    module purge
    module load magma/2.5.4-cuda-gnu9-openblas-int32

    #Pour compiler et Linker avec compilateur GNU et OpenBlas
    export MAGMADIR=/usr/local/magma/gnu-openblas/2.5.4/int32/install
    export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${MAGMADIR}/lib

    gfortran -m64 -I${MKLROOT}/include -g -fopenmp -I${MAGMADIR}/include -c test_LU.F90
    gfortran -cpp -DAdd_ -g -fopenmp -L$MAGMADIR/lib -lmagma_sparse -lmagma -lopenblas  -lgomp -lpthread -lm -ldl -o exec.x test_LU.o