This commit is contained in:
Ulrike Yang 2018-09-18 07:18:36 -07:00
commit 5c2eb287a3
5 changed files with 97 additions and 80 deletions

View File

@ -65,7 +65,7 @@ CFLAGS = @CFLAGS@ @DEFS@ $(C_COMPILE_FLAGS)
CXX = @CXX@
CXXFLAGS = @CXXFLAGS@ @DEFS@ $(CXX_COMPILE_FLAGS)
#CUCC = @CUCC@
#CUCC = @CUCC@
#CUFLAGS = @CUFLAGS@ @DEFS@ ${CU_COMPILE_FLAGS}
LINK_FC = @LINK_FC@

View File

@ -1395,43 +1395,6 @@ LINK_CXX="${CXX}"
HYPRE_LIBSUFFIX=".a"
dnl *********************************************************************
dnl * Set flags if needed to enable shared libraries and Python, Java
dnl *********************************************************************
if test "$hypre_using_shared" = "yes"
then
HYPRE_LIBSUFFIX=".so"
SHARED_SET_SONAME="-Wl,-soname,"
SHARED_OPTIONS="-Wl,-z,defs"
case $hypre_platform in
AIX* | aix* | Aix*) SHARED_COMPILE_FLAG="-qmkshrobj"
SHARED_BUILD_FLAG="-G"
dnl LINK_F77="${F77} -brtl"
LINK_FC="${FC} -brtl"
LINK_CC="${CC} -brtl"
LINK_CXX="${CXX} -brtl" ;;
DARWIN* | darwin* | Darwin*) SHARED_COMPILE_FLAG="-fPIC"
SHARED_BUILD_FLAG="-dynamiclib -undefined dynamic_lookup"
HYPRE_LIBSUFFIX=".dylib"
SHARED_SET_SONAME="-install_name @rpath/"
SHARED_OPTIONS="-undefined error" ;;
*) SHARED_COMPILE_FLAG="-fPIC"
SHARED_BUILD_FLAG="-shared" ;;
esac
FFLAGS="${FFLAGS} ${SHARED_COMPILE_FLAG}"
CFLAGS="${CFLAGS} ${SHARED_COMPILE_FLAG}"
CXXFLAGS="${CXXFLAGS} ${SHARED_COMPILE_FLAG}"
dnl BUILD_F77_SHARED="${F77} ${SHARED_BUILD_FLAG}"
BUILD_FC_SHARED="${FC} ${SHARED_BUILD_FLAG}"
if test "$hypre_using_fei" = "yes"
then
BUILD_CC_SHARED="${CXX} ${SHARED_BUILD_FLAG}"
else
BUILD_CC_SHARED="${CC} ${SHARED_BUILD_FLAG}"
fi
BUILD_CXX_SHARED="${CXX} ${SHARED_BUILD_FLAG}"
fi
BUILD_PYTHON=0
PYTHON=""
if test "$hypre_using_python" = "yes"
@ -1616,10 +1579,10 @@ if test "$hypre_user_chose_cuda" = "yes"
then
dnl to delete
AC_DEFINE(HYPRE_USING_GPU, 1, [GPU being used])
AC_DEFINE(HYPRE_USING_CUDA, 1, [CUDA being used])
AC_DEFINE(USE_NVTX, 1, [NVTX being used])
dnl let CC/CXX and LINK be CUCC and let host compiler be CXX
AC_CHECK_PROGS(CUCC, nvcc)
NVCCBIN=${CXX}
@ -1627,13 +1590,13 @@ then
CXX=${CUCC}
LINK_CC=${CXX}
LINK_CXX=${CXX}
dnl CUDA SM
if test "x$HYPRE_CUDA_SM" = "x"
then
HYPRE_CUDA_SM=60
fi
CUFLAGS+="-O2 -ccbin=$NVCCBIN -gencode arch=compute_${HYPRE_CUDA_SM},\"code=sm_${HYPRE_CUDA_SM}\" -expt-extended-lambda -dc --std=c++11 -Xcompiler -Wno-deprecated-register --x cu"
CXXFLAGS="${CUFLAGS} -Xcompiler \"${CXXFLAGS}\""
CFLAGS=${CXXFLAGS}
@ -1641,7 +1604,7 @@ then
HYPRE_CUDA_INCL="-I${HYPRE_CUDA_PATH}/include"
HYPRE_CUDA_LIBS="-L${HYPRE_CUDA_PATH}/lib64 -lcusparse -lcudart -lcublas -lnvToolsExt"
fi
dnl *********************************************************************
dnl * Set unified memory options
dnl *********************************************************************
@ -1682,7 +1645,7 @@ then
dnl AC_DEFINE(HYPRE_DEVICE_OPENMP_MAPPED, 1, [Enable device OpenMP target mapped version])
AC_CHECK_PROGS(CUCC, nvcc)
CFLAGS="${CFLAGS} -DHYPRE_USING_CUSPARSE -DHYPRE_USING_OPENMP_OFFLOAD"
CXXFLAGS="${CXXFLAGS} -DHYPRE_USING_CUSPARSE -DHYPRE_USING_OPENMP_OFFLOAD"
@ -1704,6 +1667,49 @@ then
HYPRE_CUDA_LIBS="-L${HYPRE_CUDA_PATH}/lib64 -lcusparse -lcudart -lcublas -lnvToolsExt"
fi
dnl *********************************************************************
dnl * Set flags if needed to enable shared libraries and Python, Java
dnl *********************************************************************
if test "$hypre_using_shared" = "yes"
then
HYPRE_LIBSUFFIX=".so"
if [test "x$CXX" = "xnvcc" || test "x$CC" = "xnvcc"]
then
SHARED_SET_SONAME="-Xlinker=-soname,"
SHARED_OPTIONS="-Xlinker=-z,defs"
SHARED_COMPILE_FLAG="-Xcompiler \"-fPIC\""
else
SHARED_SET_SONAME="-Wl,-soname,"
SHARED_OPTIONS="-Wl,-z,defs"
SHARED_COMPILE_FLAG="-fPIC"
fi
case $hypre_platform in
AIX* | aix* | Aix*) SHARED_COMPILE_FLAG="-qmkshrobj"
SHARED_BUILD_FLAG="-G"
dnl LINK_F77="${F77} -brtl"
LINK_FC="${FC} -brtl"
LINK_CC="${CC} -brtl"
LINK_CXX="${CXX} -brtl" ;;
DARWIN* | darwin* | Darwin*) SHARED_BUILD_FLAG="-dynamiclib -undefined dynamic_lookup"
HYPRE_LIBSUFFIX=".dylib"
SHARED_SET_SONAME="-install_name @rpath/"
SHARED_OPTIONS="-undefined error" ;;
*) SHARED_BUILD_FLAG="-shared" ;;
esac
FFLAGS="${FFLAGS} ${SHARED_COMPILE_FLAG}"
CFLAGS="${CFLAGS} ${SHARED_COMPILE_FLAG}"
CXXFLAGS="${CXXFLAGS} ${SHARED_COMPILE_FLAG}"
dnl BUILD_F77_SHARED="${F77} ${SHARED_BUILD_FLAG}"
BUILD_FC_SHARED="${FC} ${SHARED_BUILD_FLAG}"
if test "$hypre_using_fei" = "yes"
then
BUILD_CC_SHARED="${CXX} ${SHARED_BUILD_FLAG}"
else
BUILD_CC_SHARED="${CC} ${SHARED_BUILD_FLAG}"
fi
BUILD_CXX_SHARED="${CXX} ${SHARED_BUILD_FLAG}"
fi
dnl *********************************************************************
dnl * Set memory env
dnl *********************************************************************

70
src/configure vendored
View File

@ -7817,38 +7817,6 @@ LINK_CXX="${CXX}"
HYPRE_LIBSUFFIX=".a"
if test "$hypre_using_shared" = "yes"
then
HYPRE_LIBSUFFIX=".so"
SHARED_SET_SONAME="-Wl,-soname,"
SHARED_OPTIONS="-Wl,-z,defs"
case $hypre_platform in
AIX* | aix* | Aix*) SHARED_COMPILE_FLAG="-qmkshrobj"
SHARED_BUILD_FLAG="-G"
LINK_FC="${FC} -brtl"
LINK_CC="${CC} -brtl"
LINK_CXX="${CXX} -brtl" ;;
DARWIN* | darwin* | Darwin*) SHARED_COMPILE_FLAG="-fPIC"
SHARED_BUILD_FLAG="-dynamiclib -undefined dynamic_lookup"
HYPRE_LIBSUFFIX=".dylib"
SHARED_SET_SONAME="-install_name @rpath/"
SHARED_OPTIONS="-undefined error" ;;
*) SHARED_COMPILE_FLAG="-fPIC"
SHARED_BUILD_FLAG="-shared" ;;
esac
FFLAGS="${FFLAGS} ${SHARED_COMPILE_FLAG}"
CFLAGS="${CFLAGS} ${SHARED_COMPILE_FLAG}"
CXXFLAGS="${CXXFLAGS} ${SHARED_COMPILE_FLAG}"
BUILD_FC_SHARED="${FC} ${SHARED_BUILD_FLAG}"
if test "$hypre_using_fei" = "yes"
then
BUILD_CC_SHARED="${CXX} ${SHARED_BUILD_FLAG}"
else
BUILD_CC_SHARED="${CC} ${SHARED_BUILD_FLAG}"
fi
BUILD_CXX_SHARED="${CXX} ${SHARED_BUILD_FLAG}"
fi
BUILD_PYTHON=0
PYTHON=""
if test "$hypre_using_python" = "yes"
@ -8410,6 +8378,44 @@ done
HYPRE_CUDA_LIBS="-L${HYPRE_CUDA_PATH}/lib64 -lcusparse -lcudart -lcublas -lnvToolsExt"
fi
if test "$hypre_using_shared" = "yes"
then
HYPRE_LIBSUFFIX=".so"
if test "x$CXX" = "xnvcc" || test "x$CC" = "xnvcc"
then
SHARED_SET_SONAME="-Xlinker=-soname,"
SHARED_OPTIONS="-Xlinker=-z,defs"
SHARED_COMPILE_FLAG="-Xcompiler \"-fPIC\""
else
SHARED_SET_SONAME="-Wl,-soname,"
SHARED_OPTIONS="-Wl,-z,defs"
SHARED_COMPILE_FLAG="-fPIC"
fi
case $hypre_platform in
AIX* | aix* | Aix*) SHARED_COMPILE_FLAG="-qmkshrobj"
SHARED_BUILD_FLAG="-G"
LINK_FC="${FC} -brtl"
LINK_CC="${CC} -brtl"
LINK_CXX="${CXX} -brtl" ;;
DARWIN* | darwin* | Darwin*) SHARED_BUILD_FLAG="-dynamiclib -undefined dynamic_lookup"
HYPRE_LIBSUFFIX=".dylib"
SHARED_SET_SONAME="-install_name @rpath/"
SHARED_OPTIONS="-undefined error" ;;
*) SHARED_BUILD_FLAG="-shared" ;;
esac
FFLAGS="${FFLAGS} ${SHARED_COMPILE_FLAG}"
CFLAGS="${CFLAGS} ${SHARED_COMPILE_FLAG}"
CXXFLAGS="${CXXFLAGS} ${SHARED_COMPILE_FLAG}"
BUILD_FC_SHARED="${FC} ${SHARED_BUILD_FLAG}"
if test "$hypre_using_fei" = "yes"
then
BUILD_CC_SHARED="${CXX} ${SHARED_BUILD_FLAG}"
else
BUILD_CC_SHARED="${CC} ${SHARED_BUILD_FLAG}"
fi
BUILD_CXX_SHARED="${CXX} ${SHARED_BUILD_FLAG}"
fi
if test "x$hypre_using_um" = "xyes"
then

View File

@ -887,7 +887,7 @@ HYPRE_Int hypre_ParVectorMassInnerProd ( hypre_ParVector *x , hypre_ParVector **
HYPRE_Int hypre_ParVectorMassDotpTwo ( hypre_ParVector *x , hypre_ParVector *y , hypre_ParVector **z, HYPRE_Int k, HYPRE_Int unroll, HYPRE_Real *prod_x , HYPRE_Real *prod_y );
HYPRE_Int hypre_ParVectorMassAxpy ( HYPRE_Complex *alpha, hypre_ParVector **x, hypre_ParVector *y, HYPRE_Int k, HYPRE_Int unroll);
HYPRE_Int hypre_ParVectorGetValues ( hypre_ParVector *vector, HYPRE_Int num_values, HYPRE_Int *indices , HYPRE_Complex *values);
#ifdef HYPRE_USE_GPU
#ifdef HYPRE_USING_GPU
hypre_int hypre_ParVectorIsManaged(hypre_ParVector *vector);
#endif

View File

@ -49,10 +49,15 @@ LAPACKLIBFLAGS = ${LAPACKLIBDIRS} ${LAPACKLIBS}
BLASLIBFLAGS = ${BLASLIBDIRS} ${BLASLIBS}
LIBFLAGS = ${LDFLAGS} ${LIBS}
ifeq (${LINK_CC}, nvcc)
XLINK = -Xlinker=-rpath,${HYPRE_BUILD_DIR}/lib
else
XLINK = -Wl,-rpath,${HYPRE_BUILD_DIR}/lib
endif
LFLAGS =\
-L${HYPRE_BUILD_DIR}/lib\
-lHYPRE\
-Wl,-rpath,${HYPRE_BUILD_DIR}/lib\
-L${HYPRE_BUILD_DIR}/lib -lHYPRE\
${XLINK}\
${DSUPERLU_LIBS}\
${SUPERLU_LIBS}\
${MPILIBFLAGS}\