|
|
|
|
@ -688,10 +688,14 @@ CHAVELIBRSB
|
|
|
|
|
RSB_LIBS
|
|
|
|
|
LIBDIR
|
|
|
|
|
PSBLASRULES
|
|
|
|
|
CVERSIONCUDA
|
|
|
|
|
CSHORTVCUDA
|
|
|
|
|
CHAVECUDA
|
|
|
|
|
CHAVEAMD
|
|
|
|
|
CREALMETIS
|
|
|
|
|
CINTMETIS
|
|
|
|
|
CHAVEMETIS
|
|
|
|
|
CHAVEOPENMP
|
|
|
|
|
CSERIALMPI
|
|
|
|
|
LPKDEF
|
|
|
|
|
IPKDEF
|
|
|
|
|
@ -4640,7 +4644,7 @@ fi
|
|
|
|
|
|
|
|
|
|
#Note : we miss the name of the Intel C compiler
|
|
|
|
|
if test x"$pac_cv_serial_mpi" == x"yes" ; then
|
|
|
|
|
FAKEMPI="fakempi.o";
|
|
|
|
|
FAKEMPI="psb_fakempi.o";
|
|
|
|
|
MPIFC="$FC";
|
|
|
|
|
MPICC="$CC";
|
|
|
|
|
MPICXX="$CXX";
|
|
|
|
|
@ -7283,8 +7287,7 @@ fi
|
|
|
|
|
# Custom test : do we have a module or include for MPI Fortran interface?
|
|
|
|
|
if test x"$pac_cv_serial_mpi" == x"yes" ; then
|
|
|
|
|
FDEFINES="$psblas_cv_define_prepend-DSERIAL_MPI $psblas_cv_define_prepend-DMPI_MOD $FDEFINES";
|
|
|
|
|
CDEFINES="-DSERIAL_MPI $CDEFINES"
|
|
|
|
|
else
|
|
|
|
|
else
|
|
|
|
|
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking MPI Fortran 2008 interface" >&5
|
|
|
|
|
printf %s "checking MPI Fortran 2008 interface... " >&6; }
|
|
|
|
|
ac_ext=${ac_fc_srcext-f}
|
|
|
|
|
@ -7430,7 +7433,6 @@ printf "%s\n" "$as_me: Forcing equal values" >&6;}
|
|
|
|
|
fi
|
|
|
|
|
FDEFINES="$psblas_cv_define_prepend-DIPK${pac_cv_ipk_size} $FDEFINES";
|
|
|
|
|
FDEFINES="$psblas_cv_define_prepend-DLPK${pac_cv_lpk_size} $FDEFINES";
|
|
|
|
|
CDEFINES="-DIPK${pac_cv_ipk_size} -DLPK${pac_cv_lpk_size} $CDEFINES"
|
|
|
|
|
|
|
|
|
|
FLINK="$MPIFC"
|
|
|
|
|
if test -e penmp || test -e mp; then
|
|
|
|
|
@ -7720,6 +7722,7 @@ fi
|
|
|
|
|
if test x"$pac_cv_openmp" == x"yes" ; then
|
|
|
|
|
FDEFINES="$psblas_cv_define_prepend-DOPENMP $FDEFINES";
|
|
|
|
|
CDEFINES="-DOPENMP $CDEFINES";
|
|
|
|
|
CHAVEOPENMP="#define OPENMP"
|
|
|
|
|
FCOPT="$FCOPT $pac_cv_openmp_fcopt";
|
|
|
|
|
CCOPT="$CCOPT $pac_cv_openmp_ccopt";
|
|
|
|
|
CXXOPT="$CXXOPT $pac_cv_openmp_cxxopt";
|
|
|
|
|
@ -10152,7 +10155,7 @@ printf "%s\n" "$as_me: Unknown METIS REAL bitsize." >&6;}
|
|
|
|
|
fi
|
|
|
|
|
if test "x$psblas_cv_have_metis" == "xyes" ; then
|
|
|
|
|
FDEFINES="$psblas_cv_define_prepend-DHAVE_METIS $psblas_cv_define_prepend-DMETIS_$pac_cv_metis_idx $psblas_cv_define_prepend-DMETIS_REAL_$pac_cv_metis_real $FDEFINES"
|
|
|
|
|
CDEFINES="-DHAVE_METIS_ $psblas_cv_metis_includes $CDEFINES -DMETIS_$pac_cv_metis_idx -DMETIS_REAL_$pac_cv_metis_real"
|
|
|
|
|
# CDEFINES="-DHAVE_METIS_ $psblas_cv_metis_includes $CDEFINES -DMETIS_$pac_cv_metis_idx -DMETIS_REAL_$pac_cv_metis_real"
|
|
|
|
|
METISINCFILE=$psblas_cv_metisincfile
|
|
|
|
|
CHAVEMETIS="#define HAVE_METIS_"
|
|
|
|
|
CINTMETIS="#define METIS_$pac_cv_metis_idx"
|
|
|
|
|
@ -10366,7 +10369,7 @@ CPPFLAGS="$SAVE_CPPFLAGS";
|
|
|
|
|
|
|
|
|
|
if test "x$psblas_cv_have_amd" == "xyes" ; then
|
|
|
|
|
FDEFINES="$psblas_cv_define_prepend-DHAVE_AMD $FDEFINES"
|
|
|
|
|
CDEFINES="-DHAVE_AMD_ $psblas_cv_amd_includes $CDEFINES"
|
|
|
|
|
# CDEFINES="-DHAVE_AMD_ $psblas_cv_amd_includes $CDEFINES"
|
|
|
|
|
CHAVEAMD="#define HAVE_AMD_"
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
@ -10385,6 +10388,23 @@ fi
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if test "x$pac_cv_cuda" == "xyes"; then
|
|
|
|
|
if test "x$pac_cv_ipk_size" != "x4"; then
|
|
|
|
|
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: For CUDA I need psb_ipk_ to be 4 bytes but it is $pac_cv_ipk_size, disabling CUDA/SPGPU" >&5
|
|
|
|
|
printf "%s\n" "$as_me: For CUDA I need psb_ipk_ to be 4 bytes but it is $pac_cv_ipk_size, disabling CUDA/SPGPU" >&6;}
|
|
|
|
|
pac_cv_cuda="no";
|
|
|
|
|
HAVE_CUDA="no";
|
|
|
|
|
CUDA_CC="";
|
|
|
|
|
SPGPU_LIBS="";
|
|
|
|
|
CUDAD="";
|
|
|
|
|
CUDALD="";
|
|
|
|
|
CUDEFINES="";
|
|
|
|
|
CUDA_DEFINES="";
|
|
|
|
|
CUDA_INCLUDES="";
|
|
|
|
|
CUDA_LIBS="";
|
|
|
|
|
FCUDEFINES="";
|
|
|
|
|
CCUDEFINES="";
|
|
|
|
|
CXXCUDEFINES="";
|
|
|
|
|
else
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# Check whether --with-cudadir was given.
|
|
|
|
|
@ -10464,9 +10484,9 @@ LIBS="$SAVE_LIBS"
|
|
|
|
|
CPPFLAGS="$SAVE_CPPFLAGS"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if test "x$pac_cv_have_cuda" == "xyes"; then
|
|
|
|
|
if test "x$pac_cv_have_cuda" == "xyes"; then
|
|
|
|
|
|
|
|
|
|
ac_ext=c
|
|
|
|
|
ac_ext=c
|
|
|
|
|
ac_cpp='$CPP $CPPFLAGS'
|
|
|
|
|
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
|
|
|
|
|
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
|
|
|
|
|
@ -10597,16 +10617,19 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
|
|
|
|
|
LIBS="$SAVE_LIBS"
|
|
|
|
|
CPPFLAGS="$SAVE_CPPFLAGS"
|
|
|
|
|
|
|
|
|
|
HAVE_CUDA="yes";
|
|
|
|
|
CUDA_VERSION="$pac_cv_cuda_version";
|
|
|
|
|
CUDA_SHORT_VERSION=$(expr $pac_cv_cuda_version / 1000);
|
|
|
|
|
CUDA_DEFINES="-DHAVE_CUDA -DCUDA_SHORT_VERSION=${CUDA_SHORT_VERSION} -DCUDA_VERSION=${CUDA_VERSION}";
|
|
|
|
|
SPGPU_LIBS="-lspgpu";
|
|
|
|
|
CUDAD=cudad;
|
|
|
|
|
CUDALD=cudald;
|
|
|
|
|
LCUDA="-lpsb_cuda";
|
|
|
|
|
EXTRALDLIBS="-lstdc++";
|
|
|
|
|
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: At this point GPUTARGET is $CUDAD $CUDALD" >&5
|
|
|
|
|
HAVE_CUDA="yes";
|
|
|
|
|
CUDA_VERSION="$pac_cv_cuda_version";
|
|
|
|
|
CUDA_SHORT_VERSION=$(expr $pac_cv_cuda_version / 1000);
|
|
|
|
|
CUDA_DEFINES="-DHAVE_CUDA -DCUDA_SHORT_VERSION=${CUDA_SHORT_VERSION} -DCUDA_VERSION=${CUDA_VERSION}";
|
|
|
|
|
CHAVECUDA="#define HAVE_CUDA"
|
|
|
|
|
CSHORTVCUDA="#define CUDA_SHORT_VERSION ${CUDA_SHORT_VERSION}"
|
|
|
|
|
CVERSIONCUDA="#define CUDA_VERSION ${CUDA_VERSION}"
|
|
|
|
|
SPGPU_LIBS="-lspgpu";
|
|
|
|
|
CUDAD=cudad;
|
|
|
|
|
CUDALD=cudald;
|
|
|
|
|
LCUDA="-lpsb_cuda";
|
|
|
|
|
EXTRALDLIBS="-lstdc++";
|
|
|
|
|
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: At this point GPUTARGET is $CUDAD $CUDALD" >&5
|
|
|
|
|
printf "%s\n" "$as_me: At this point GPUTARGET is $CUDAD $CUDALD" >&6;}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -10620,42 +10643,22 @@ else $as_nop
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if test "x$pac_cv_cudacc" == "x"; then
|
|
|
|
|
pac_cv_cudacc="50,60,70,75,80,86";
|
|
|
|
|
CUDA_CC="$pac_cv_cudacc";
|
|
|
|
|
fi
|
|
|
|
|
if (( $pac_cv_cuda_version >= 11070 ))
|
|
|
|
|
then
|
|
|
|
|
CUDEFINES="--dopt=on";
|
|
|
|
|
fi
|
|
|
|
|
for cc in `echo $pac_cv_cudacc|sed 's/,/ /gi'`
|
|
|
|
|
do
|
|
|
|
|
CUDEFINES="$CUDEFINES -gencode arch=compute_$cc,code=sm_$cc";
|
|
|
|
|
done
|
|
|
|
|
if test "x$pac_cv_cuda_version" != "xunknown"; then
|
|
|
|
|
CUDEFINES="$CUDEFINES ${CUDA_DEFINES}"
|
|
|
|
|
FCUDEFINES=" ${CUDA_DEFINES}"
|
|
|
|
|
CCUDEFINES=" ${CUDA_DEFINES}"
|
|
|
|
|
CXXCUDEFINES=" ${CUDA_DEFINES}"
|
|
|
|
|
fi
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
if test "x$pac_cv_ipk_size" != "x4"; then
|
|
|
|
|
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: For CUDA I need psb_ipk_ to be 4 bytes but it is $pac_cv_ipk_size, disabling CUDA/SPGPU" >&5
|
|
|
|
|
printf "%s\n" "$as_me: For CUDA I need psb_ipk_ to be 4 bytes but it is $pac_cv_ipk_size, disabling CUDA/SPGPU" >&6;}
|
|
|
|
|
pac_cv_cuda="no";
|
|
|
|
|
HAVE_CUDA="no";
|
|
|
|
|
CUDA_CC="";
|
|
|
|
|
SPGPU_LIBS="";
|
|
|
|
|
CUDAD="";
|
|
|
|
|
CUDALD="";
|
|
|
|
|
CUDEFINES="";
|
|
|
|
|
CUDA_DEFINES="";
|
|
|
|
|
CUDA_INCLUDES="";
|
|
|
|
|
CUDA_LIBS="";
|
|
|
|
|
FCUDEFINES="";
|
|
|
|
|
CCUDEFINES="";
|
|
|
|
|
CXXCUDEFINES="";
|
|
|
|
|
if test "x$pac_cv_cudacc" == "x"; then
|
|
|
|
|
pac_cv_cudacc="50,60,70,75,80,86";
|
|
|
|
|
CUDA_CC="$pac_cv_cudacc";
|
|
|
|
|
fi
|
|
|
|
|
if (( $pac_cv_cuda_version >= 11070 ))
|
|
|
|
|
then
|
|
|
|
|
CUDEFINES="--dopt=on";
|
|
|
|
|
fi
|
|
|
|
|
for cc in `echo $pac_cv_cudacc|sed 's/,/ /gi'`
|
|
|
|
|
do
|
|
|
|
|
CUDEFINES="$CUDEFINES -gencode arch=compute_$cc,code=sm_$cc";
|
|
|
|
|
done
|
|
|
|
|
if test "x$pac_cv_cuda_version" != "xunknown"; then
|
|
|
|
|
FCUDEFINES=" ${CUDA_DEFINES}"
|
|
|
|
|
fi
|
|
|
|
|
fi
|
|
|
|
|
fi
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
@ -11180,6 +11183,10 @@ FDEFINES=$(PSBFDEFINES)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|