MAGMA

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 .


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

# 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 PGI+MKL integer 32 bit (4 octets)

module purge
module load magma/2.5.4-cuda-pgi-mkl-int32
module li
Currently Loaded Modulefiles:
1) intel/18.2                       2) cuda/11.0                        3) gcc/7.3.0                        4) pgi/19.10                        5) magma/2.5.4-cuda-pgi-mkl-int32
# Pour compiler/ linker avec compilateur pgi
-I$MAGMADIR/include -I$CUDADIR/include -L$CUDADIR/lib64/ -L$CUDAMATH/lib64 -L$MKLROOT/lib/intel64 -L$MAGMADIR/lib
-lmagma -lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core -lpthread -lstdc++ -lm -lcusparse -lcudart -lcudadevrt -lcublas -lcublasLt

PGI+MKL integer 64 bit (8 octets)

module purge
module load magma/2.5.4-cuda-pgi-mkl-int64
module li
Currently Loaded Modulefiles:
1) intel/18.2                       2) cuda/11.0                        3) gcc/7.3.0                        4) pgi/19.10                        5) magma/2.5.4-cuda-pgi-mkl-int64
# Pour compiler/ linker avec compilateur pgi
-I$MAGMADIR/include -I$CUDADIR/include -L$CUDADIR/lib64/ -L$CUDAMATH/lib64 -L$MKLROOT/lib/intel64 -L$MAGMADIR/lib
-lmagma -lmkl_intel_lp64 -ilmkl_intel_thread -lmkl_core -lpthread -lstdc++ -lm -lcusparse -lcudart -lcudadevrt -lcublas -lcublasLt

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

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

Voir aussi

FAQ

Questions fréquentes et messages d'erreurs