Add new search paths for the NVIDIA math libs (#788)
This PR adds two new search paths for the NVIDIA math libraries (cuSPARSE, cuBLAS, cuSOLVER). This fixes build issues on Polaris and Perlmutter. * Add two new search paths for the NVIDIA math libs to configure * Turn off CUDA math libs when CUDA is disabled
This commit is contained in:
parent
322b9d10cc
commit
69f74995e0
@ -173,9 +173,9 @@ hypre_using_um=no
|
||||
hypre_gpu_mpi=no
|
||||
hypre_using_gpu_profiling=no
|
||||
hypre_using_cuda_streams=no
|
||||
hypre_using_cusparse=yes
|
||||
hypre_using_cublas=yes
|
||||
hypre_using_curand=yes
|
||||
hypre_using_cusparse=no
|
||||
hypre_using_cublas=no
|
||||
hypre_using_curand=no
|
||||
hypre_using_cusolver=no
|
||||
hypre_using_device_pool=no
|
||||
hypre_using_device_malloc_async=no
|
||||
@ -414,39 +414,6 @@ AS_HELP_STRING([--enable-unified-memory],
|
||||
[hypre_using_um=no]
|
||||
)
|
||||
|
||||
AC_ARG_ENABLE(cuda-streams,
|
||||
AS_HELP_STRING([--enable-cuda-streams],
|
||||
[Use CUDA streams (default is YES).]),
|
||||
[case "${enableval}" in
|
||||
yes) hypre_using_cuda_streams=yes ;;
|
||||
no) hypre_using_cuda_streams=no ;;
|
||||
*) hypre_using_cuda_streams=yes ;;
|
||||
esac],
|
||||
[hypre_using_cuda_streams=yes]
|
||||
)
|
||||
|
||||
AC_ARG_ENABLE(cusparse,
|
||||
AS_HELP_STRING([--enable-cusparse],
|
||||
[Use cuSPARSE (default is YES).]),
|
||||
[case "${enableval}" in
|
||||
yes) hypre_using_cusparse=yes ;;
|
||||
no) hypre_using_cusparse=no ;;
|
||||
*) hypre_using_cusparse=yes ;;
|
||||
esac],
|
||||
[hypre_using_cusparse=yes]
|
||||
)
|
||||
|
||||
AC_ARG_ENABLE(cusolver,
|
||||
AS_HELP_STRING([--enable-cusolver],
|
||||
[Use cuSOLVER (default is NO).]),
|
||||
[case "${enableval}" in
|
||||
yes) hypre_using_cusolver=yes ;;
|
||||
no) hypre_using_cusolver=no ;;
|
||||
*) hypre_using_cusolver=yes ;;
|
||||
esac],
|
||||
[hypre_using_cusolver=no]
|
||||
)
|
||||
|
||||
AC_ARG_ENABLE(device-memory-pool,
|
||||
AS_HELP_STRING([--enable-device-memory-pool],
|
||||
[Use device pooling allocator (default is NO).]),
|
||||
@ -469,63 +436,6 @@ AS_HELP_STRING([--enable-device-malloc-async],
|
||||
[hypre_using_device_malloc_async=no]
|
||||
)
|
||||
|
||||
AC_ARG_ENABLE(cublas,
|
||||
AS_HELP_STRING([--enable-cublas],
|
||||
[Use cuBLAS (default is YES).]),
|
||||
[case "${enableval}" in
|
||||
yes) hypre_using_cublas=yes ;;
|
||||
no) hypre_using_cublas=no ;;
|
||||
*) hypre_using_cublas=yes ;;
|
||||
esac],
|
||||
[hypre_using_cublas=yes]
|
||||
)
|
||||
|
||||
AC_ARG_ENABLE(curand,
|
||||
AS_HELP_STRING([--enable-curand],
|
||||
[Use cuRAND (default is YES).]),
|
||||
[case "${enableval}" in
|
||||
yes) hypre_using_curand=yes ;;
|
||||
no) hypre_using_curand=no ;;
|
||||
*) hypre_using_curand=yes ;;
|
||||
esac],
|
||||
[hypre_using_curand=yes]
|
||||
)
|
||||
|
||||
|
||||
|
||||
AC_ARG_ENABLE(rocsparse,
|
||||
AS_HELP_STRING([--enable-rocsparse],
|
||||
[Use rocSPARSE (default is YES).]),
|
||||
[case "${enableval}" in
|
||||
yes) hypre_using_rocsparse=yes ;;
|
||||
no) hypre_using_rocsparse=no ;;
|
||||
*) hypre_using_rocsparse=yes ;;
|
||||
esac],
|
||||
[hypre_using_rocsparse=yes]
|
||||
)
|
||||
|
||||
AC_ARG_ENABLE(rocblas,
|
||||
AS_HELP_STRING([--enable-rocblas],
|
||||
[Use rocBLAS (default is NO).]),
|
||||
[case "${enableval}" in
|
||||
yes) hypre_using_rocblas=yes ;;
|
||||
no) hypre_using_rocblas=no ;;
|
||||
*) hypre_using_rocblas=no ;;
|
||||
esac],
|
||||
[hypre_using_rocblas=no]
|
||||
)
|
||||
|
||||
AC_ARG_ENABLE(rocrand,
|
||||
AS_HELP_STRING([--enable-rocrand],
|
||||
[Use rocRAND (default is YES).]),
|
||||
[case "${enableval}" in
|
||||
yes) hypre_using_rocrand=yes ;;
|
||||
no) hypre_using_rocrand=no ;;
|
||||
*) hypre_using_rocrand=yes ;;
|
||||
esac],
|
||||
[hypre_using_rocrand=yes]
|
||||
)
|
||||
|
||||
AC_ARG_ENABLE(gpu-profiling,
|
||||
AS_HELP_STRING([--enable-gpu-profiling],
|
||||
[Use NVTX on CUDA, rocTX on HIP (default is NO).]),
|
||||
@ -548,39 +458,6 @@ AS_HELP_STRING([--enable-gpu-aware-mpi],
|
||||
[hypre_gpu_mpi=no]
|
||||
)
|
||||
|
||||
AC_ARG_ENABLE(onemklsparse,
|
||||
AS_HELP_STRING([--enable-onemklsparse],
|
||||
[Use oneMKL sparse (default is YES).]),
|
||||
[case "${enableval}" in
|
||||
yes) hypre_using_onemklsparse=yes ;;
|
||||
no) hypre_using_onemklsparse=no ;;
|
||||
*) hypre_using_onemklsparse=yes ;;
|
||||
esac],
|
||||
[hypre_using_onemklsparse=yes]
|
||||
)
|
||||
|
||||
AC_ARG_ENABLE(onemklblas,
|
||||
AS_HELP_STRING([--enable-onemklblas],
|
||||
[Use oneMKL blas (default is YES).]),
|
||||
[case "${enableval}" in
|
||||
yes) hypre_using_onemklblas=yes ;;
|
||||
no) hypre_using_onemklblas=no ;;
|
||||
*) hypre_using_onemklblas=yes ;;
|
||||
esac],
|
||||
[hypre_using_onemklblas=yes]
|
||||
)
|
||||
|
||||
AC_ARG_ENABLE(onemklrand,
|
||||
AS_HELP_STRING([--enable-onemklrand],
|
||||
[Use oneMKL rand (default is YES).]),
|
||||
[case "${enableval}" in
|
||||
yes) hypre_using_onemklrand=yes ;;
|
||||
no) hypre_using_onemklrand=no ;;
|
||||
*) hypre_using_onemklrand=yes ;;
|
||||
esac],
|
||||
[hypre_using_onemklrand=yes]
|
||||
)
|
||||
|
||||
dnl * The AC_DEFINE is below, after hypre_using_mpi is completely set
|
||||
dnl * Need to change to a new approach that always defines variable to some value
|
||||
|
||||
@ -1262,6 +1139,39 @@ AS_HELP_STRING([--with-hip],
|
||||
[hypre_using_hip=no]
|
||||
)
|
||||
|
||||
AC_ARG_ENABLE(rocsparse,
|
||||
AS_HELP_STRING([--enable-rocsparse],
|
||||
[Use rocSPARSE (default is YES).]),
|
||||
[case "${enableval}" in
|
||||
yes) hypre_using_rocsparse=yes ;;
|
||||
no) hypre_using_rocsparse=no ;;
|
||||
*) hypre_using_rocsparse=yes ;;
|
||||
esac],
|
||||
[hypre_using_rocsparse=yes]
|
||||
)
|
||||
|
||||
AC_ARG_ENABLE(rocblas,
|
||||
AS_HELP_STRING([--enable-rocblas],
|
||||
[Use rocBLAS (default is NO).]),
|
||||
[case "${enableval}" in
|
||||
yes) hypre_using_rocblas=yes ;;
|
||||
no) hypre_using_rocblas=no ;;
|
||||
*) hypre_using_rocblas=no ;;
|
||||
esac],
|
||||
[hypre_using_rocblas=no]
|
||||
)
|
||||
|
||||
AC_ARG_ENABLE(rocrand,
|
||||
AS_HELP_STRING([--enable-rocrand],
|
||||
[Use rocRAND (default is YES).]),
|
||||
[case "${enableval}" in
|
||||
yes) hypre_using_rocrand=yes ;;
|
||||
no) hypre_using_rocrand=no ;;
|
||||
*) hypre_using_rocrand=yes ;;
|
||||
esac],
|
||||
[hypre_using_rocrand=yes]
|
||||
)
|
||||
|
||||
dnl ***** SYCL
|
||||
AC_ARG_WITH(sycl,
|
||||
AS_HELP_STRING([--with-sycl],
|
||||
@ -1300,6 +1210,77 @@ AS_HELP_STRING([--with-gpu-arch=ARG],
|
||||
]
|
||||
)
|
||||
|
||||
AC_ARG_ENABLE(cublas,
|
||||
AS_HELP_STRING([--enable-cublas],
|
||||
[Use cuBLAS (default is YES with CUDA, otherwise is NO).]),
|
||||
[case "${enableval}" in
|
||||
yes) hypre_using_cublas=yes ;;
|
||||
no) hypre_using_cublas=no ;;
|
||||
*) hypre_using_cublas=no ;;
|
||||
esac],
|
||||
[case "$hypre_using_cuda" in
|
||||
yes) hypre_using_cublas=yes ;;
|
||||
no) hypre_using_cublas=no ;;
|
||||
*) hypre_using_cublas=no ;;
|
||||
esac]
|
||||
)
|
||||
|
||||
AC_ARG_ENABLE(curand,
|
||||
AS_HELP_STRING([--enable-curand],
|
||||
[Use cuRAND (default is YES with CUDA, otherwise is NO).]),
|
||||
[case "${enableval}" in
|
||||
yes) hypre_using_curand=yes ;;
|
||||
no) hypre_using_curand=no ;;
|
||||
*) hypre_using_curand=no ;;
|
||||
esac],
|
||||
[case "$hypre_using_cuda" in
|
||||
yes) hypre_using_curand=yes ;;
|
||||
no) hypre_using_curand=no ;;
|
||||
*) hypre_using_curand=no ;;
|
||||
esac]
|
||||
)
|
||||
|
||||
AC_ARG_ENABLE(cuda-streams,
|
||||
AS_HELP_STRING([--enable-cuda-streams],
|
||||
[Use CUDA streams (default is YES with CUDA, otherwise is NO).]),
|
||||
[case "${enableval}" in
|
||||
yes) hypre_using_cuda_streams=yes ;;
|
||||
no) hypre_using_cuda_streams=no ;;
|
||||
*) hypre_using_cuda_streams=yes ;;
|
||||
esac],
|
||||
[case "$hypre_using_cuda" in
|
||||
yes) hypre_using_cuda_streams=yes ;;
|
||||
no) hypre_using_cuda_streams=no ;;
|
||||
*) hypre_using_cuda_streams=yes ;;
|
||||
esac],
|
||||
)
|
||||
|
||||
AC_ARG_ENABLE(cusparse,
|
||||
AS_HELP_STRING([--enable-cusparse],
|
||||
[Use cuSPARSE (default is YES with CUDA, otherwise is NO).]),
|
||||
[case "${enableval}" in
|
||||
yes) hypre_using_cusparse=yes ;;
|
||||
no) hypre_using_cusparse=no ;;
|
||||
*) hypre_using_cusparse=no ;;
|
||||
esac],
|
||||
[case "$hypre_using_cuda" in
|
||||
yes) hypre_using_cusparse=yes ;;
|
||||
no) hypre_using_cusparse=no ;;
|
||||
*) hypre_using_cusparse=no ;;
|
||||
esac],
|
||||
)
|
||||
|
||||
AC_ARG_ENABLE(cusolver,
|
||||
AS_HELP_STRING([--enable-cusolver],
|
||||
[Use cuSOLVER (default is NO).]),
|
||||
[case "${enableval}" in
|
||||
yes) hypre_using_cusolver=yes ;;
|
||||
no) hypre_using_cusolver=no ;;
|
||||
*) hypre_using_cusolver=no ;;
|
||||
esac],
|
||||
[hypre_using_cusolver=no]
|
||||
)
|
||||
|
||||
dnl ***** SYCL options
|
||||
|
||||
AC_ARG_WITH(sycl-target,
|
||||
@ -1333,6 +1314,39 @@ AS_HELP_STRING([--with-sycl-target-backend=ARG],
|
||||
]
|
||||
)
|
||||
|
||||
AC_ARG_ENABLE(onemklsparse,
|
||||
AS_HELP_STRING([--enable-onemklsparse],
|
||||
[Use oneMKL sparse (default is YES).]),
|
||||
[case "${enableval}" in
|
||||
yes) hypre_using_onemklsparse=yes ;;
|
||||
no) hypre_using_onemklsparse=no ;;
|
||||
*) hypre_using_onemklsparse=yes ;;
|
||||
esac],
|
||||
[hypre_using_onemklsparse=yes]
|
||||
)
|
||||
|
||||
AC_ARG_ENABLE(onemklblas,
|
||||
AS_HELP_STRING([--enable-onemklblas],
|
||||
[Use oneMKL blas (default is YES).]),
|
||||
[case "${enableval}" in
|
||||
yes) hypre_using_onemklblas=yes ;;
|
||||
no) hypre_using_onemklblas=no ;;
|
||||
*) hypre_using_onemklblas=yes ;;
|
||||
esac],
|
||||
[hypre_using_onemklblas=yes]
|
||||
)
|
||||
|
||||
AC_ARG_ENABLE(onemklrand,
|
||||
AS_HELP_STRING([--enable-onemklrand],
|
||||
[Use oneMKL rand (default is YES).]),
|
||||
[case "${enableval}" in
|
||||
yes) hypre_using_onemklrand=yes ;;
|
||||
no) hypre_using_onemklrand=no ;;
|
||||
*) hypre_using_onemklrand=yes ;;
|
||||
esac],
|
||||
[hypre_using_onemklrand=yes]
|
||||
)
|
||||
|
||||
dnl ***** RAJA
|
||||
|
||||
AC_ARG_WITH(raja,
|
||||
@ -2137,7 +2151,10 @@ then
|
||||
fi
|
||||
fi dnl hypre_using_um
|
||||
|
||||
dnl CUDA
|
||||
dnl *********************************************************************
|
||||
dnl * Check for CUDA header
|
||||
dnl *********************************************************************
|
||||
|
||||
if [test "$hypre_using_cuda" = "yes"]
|
||||
then
|
||||
AC_CHECK_HEADERS(["${CUDA_HOME}/include/cuda.h"], [hypre_found_cuda=yes; HYPRE_CUDA_PATH=${CUDA_HOME}])
|
||||
@ -2153,6 +2170,94 @@ then
|
||||
fi
|
||||
fi
|
||||
|
||||
dnl *********************************************************************
|
||||
dnl * Check for cuSPARSE header
|
||||
dnl *********************************************************************
|
||||
|
||||
if [test "$hypre_using_cusparse" = "yes"]
|
||||
then
|
||||
AC_CHECK_FILE([${HYPRE_CUDA_PATH}/include/cusparse.h], [hypre_found_cusparse=yes; HYPRE_VENDOR_MATH_PATH=${HYPRE_CUDA_PATH}])
|
||||
|
||||
if test "x$hypre_found_cusparse" != "xyes"
|
||||
then
|
||||
AC_CHECK_FILE([${HYPRE_CUDA_PATH}/../math_libs/include/cusparse.h],
|
||||
[hypre_found_cusparse=yes; HYPRE_VENDOR_MATH_PATH=$(readlink -f ${HYPRE_CUDA_PATH}/../math_libs); AC_MSG_NOTICE([setting vendor math path to ${HYPRE_VENDOR_MATH_PATH}])])
|
||||
fi
|
||||
|
||||
if test "x$hypre_found_cusparse" != "xyes"
|
||||
then
|
||||
AC_CHECK_FILE([${HYPRE_CUDA_PATH}/../../math_libs/include/cusparse.h],
|
||||
[hypre_found_cusparse=yes; HYPRE_VENDOR_MATH_PATH=$(readlink -f ${HYPRE_CUDA_PATH}/../../math_libs); AC_MSG_NOTICE([setting vendor math path to ${HYPRE_VENDOR_MATH_PATH}])])
|
||||
fi
|
||||
|
||||
if test "x$hypre_found_cusparse" != "xyes"
|
||||
then
|
||||
AC_MSG_ERROR([unable to find cusparse.h ...])
|
||||
fi
|
||||
fi
|
||||
|
||||
dnl *********************************************************************
|
||||
dnl * Check for cuBLAS header
|
||||
dnl *********************************************************************
|
||||
|
||||
if [test "$hypre_using_cublas" = "yes"]
|
||||
then
|
||||
AC_CHECK_FILE([${HYPRE_CUDA_PATH}/include/cublas.h], [hypre_found_cublas=yes; HYPRE_VENDOR_MATH_PATH=${HYPRE_CUDA_PATH}])
|
||||
|
||||
if test "x$hypre_found_cublas" != "xyes" && test "x${HYPRE_VENDOR_MATH_PATH}" != "x"
|
||||
then
|
||||
AC_CHECK_FILE([${HYPRE_VENDOR_MATH_PATH}/include/cublas.h], [hypre_found_cublas=yes;])
|
||||
fi
|
||||
|
||||
if test "x$hypre_found_cublas" != "xyes"
|
||||
then
|
||||
AC_CHECK_FILE([${HYPRE_CUDA_PATH}/../math_libs/include/cublas.h],
|
||||
[hypre_found_cublas=yes; HYPRE_VENDOR_MATH_PATH=$(readlink -f ${HYPRE_CUDA_PATH}/../math_libs); AC_MSG_NOTICE([setting vendor math path to ${HYPRE_VENDOR_MATH_PATH}])])
|
||||
fi
|
||||
|
||||
if test "x$hypre_found_cublas" != "xyes"
|
||||
then
|
||||
AC_CHECK_FILE([${HYPRE_CUDA_PATH}/../../math_libs/include/cublas.h],
|
||||
[hypre_found_cublas=yes; HYPRE_VENDOR_MATH_PATH=$(readlink -f ${HYPRE_CUDA_PATH}/../../math_libs); AC_MSG_NOTICE([setting vendor math path to ${HYPRE_VENDOR_MATH_PATH}])])
|
||||
fi
|
||||
|
||||
if test "x$hypre_found_cublas" != "xyes"
|
||||
then
|
||||
AC_MSG_ERROR([unable to find cublas.h ...])
|
||||
fi
|
||||
fi
|
||||
|
||||
dnl *********************************************************************
|
||||
dnl * Check for cuSOLVER header
|
||||
dnl *********************************************************************
|
||||
|
||||
if [test "$hypre_using_cusolver" = "yes"]
|
||||
then
|
||||
AC_CHECK_FILE([${HYPRE_CUDA_PATH}/include/cusolverDn.h], [hypre_found_cusolver=yes; HYPRE_VENDOR_MATH_PATH=${HYPRE_CUDA_PATH}])
|
||||
|
||||
if test "x$hypre_found_cusolver" != "xyes" && test "x${HYPRE_VENDOR_MATH_PATH}" != "x"
|
||||
then
|
||||
AC_CHECK_FILE([${HYPRE_VENDOR_MATH_PATH}/include/cusolverDn.h], [hypre_found_cusolver=yes;])
|
||||
fi
|
||||
|
||||
if test "x$hypre_found_cusolver" != "xyes"
|
||||
then
|
||||
AC_CHECK_FILE([${HYPRE_CUDA_PATH}/../math_libs/include/cusolverDn.h],
|
||||
[hypre_found_cusolver=yes; HYPRE_VENDOR_MATH_PATH=$(readlink -f ${HYPRE_CUDA_PATH}/../math_libs); AC_MSG_NOTICE([setting vendor math path to ${HYPRE_VENDOR_MATH_PATH}])])
|
||||
fi
|
||||
|
||||
if test "x$hypre_found_cusolver" != "xyes"
|
||||
then
|
||||
AC_CHECK_FILE([${HYPRE_CUDA_PATH}/../../math_libs/include/cusolverDn.h],
|
||||
[hypre_found_cusolver=yes; HYPRE_VENDOR_MATH_PATH=$(readlink -f ${HYPRE_CUDA_PATH}/../../math_libs); AC_MSG_NOTICE([setting vendor math path to ${HYPRE_VENDOR_MATH_PATH}])])
|
||||
fi
|
||||
|
||||
if test "x$hypre_found_cusolver" != "xyes"
|
||||
then
|
||||
AC_MSG_ERROR([unable to find cusolverDn.h ...])
|
||||
fi
|
||||
fi
|
||||
|
||||
dnl *********************************************************************
|
||||
dnl * Check for HIP header
|
||||
dnl *********************************************************************
|
||||
@ -2311,6 +2416,11 @@ then
|
||||
HYPRE_CUDA_INCLUDE='-I${HYPRE_CUDA_PATH}/include'
|
||||
HYPRE_CUDA_LIBS='-L${HYPRE_CUDA_PATH}/lib64 -lcudart'
|
||||
|
||||
AS_IF([test x"$hypre_using_cusparse" == x"yes" || test x"$hypre_using_cublas" == x"yes" || test x"$hypre_using_cusolver" == x"yes"],
|
||||
[AS_IF([test "x$HYPRE_CUDA_PATH" != "x$HYPRE_VENDOR_MATH_PATH"],
|
||||
[HYPRE_CUDA_INCLUDE+=" -I${HYPRE_VENDOR_MATH_PATH}/include"
|
||||
HYPRE_CUDA_LIBS+=" -L${HYPRE_VENDOR_MATH_PATH}/lib64"])])
|
||||
|
||||
if test "$hypre_using_gpu_profiling" = "yes"
|
||||
then
|
||||
AC_DEFINE(HYPRE_USING_NVTX, 1, [Define to 1 if using NVIDIA Tools Extension (NVTX)])
|
||||
|
||||
655
src/configure
vendored
655
src/configure
vendored
@ -782,21 +782,10 @@ enable_persistent
|
||||
enable_hopscotch
|
||||
enable_fortran
|
||||
enable_unified_memory
|
||||
enable_cuda_streams
|
||||
enable_cusparse
|
||||
enable_cusolver
|
||||
enable_device_memory_pool
|
||||
enable_device_malloc_async
|
||||
enable_cublas
|
||||
enable_curand
|
||||
enable_rocsparse
|
||||
enable_rocblas
|
||||
enable_rocrand
|
||||
enable_gpu_profiling
|
||||
enable_gpu_aware_mpi
|
||||
enable_onemklsparse
|
||||
enable_onemklblas
|
||||
enable_onemklrand
|
||||
with_cxxstandard
|
||||
with_LD
|
||||
with_LDFLAGS
|
||||
@ -840,11 +829,22 @@ with_mli
|
||||
with_MPI
|
||||
with_cuda
|
||||
with_hip
|
||||
enable_rocsparse
|
||||
enable_rocblas
|
||||
enable_rocrand
|
||||
with_sycl
|
||||
with_cuda_home
|
||||
with_gpu_arch
|
||||
enable_cublas
|
||||
enable_curand
|
||||
enable_cuda_streams
|
||||
enable_cusparse
|
||||
enable_cusolver
|
||||
with_sycl_target
|
||||
with_sycl_target_backend
|
||||
enable_onemklsparse
|
||||
enable_onemklblas
|
||||
enable_onemklrand
|
||||
with_raja
|
||||
with_raja_include
|
||||
with_raja_lib
|
||||
@ -1519,20 +1519,24 @@ Optional Features:
|
||||
--enable-fortran Require a working Fortran compiler (default is YES).
|
||||
--enable-unified-memory Use unified memory for allocating the memory
|
||||
(default is NO).
|
||||
--enable-cuda-streams Use CUDA streams (default is YES).
|
||||
--enable-cusparse Use cuSPARSE (default is YES).
|
||||
--enable-cusolver Use cuSOLVER (default is NO).
|
||||
--enable-device-memory-pool
|
||||
Use device pooling allocator (default is NO).
|
||||
--enable-device-malloc-async
|
||||
Use device async malloc (default is NO).
|
||||
--enable-cublas Use cuBLAS (default is YES).
|
||||
--enable-curand Use cuRAND (default is YES).
|
||||
--enable-gpu-profiling Use NVTX on CUDA, rocTX on HIP (default is NO).
|
||||
--enable-gpu-aware-mpi Use GPU memory aware MPI
|
||||
--enable-rocsparse Use rocSPARSE (default is YES).
|
||||
--enable-rocblas Use rocBLAS (default is NO).
|
||||
--enable-rocrand Use rocRAND (default is YES).
|
||||
--enable-gpu-profiling Use NVTX on CUDA, rocTX on HIP (default is NO).
|
||||
--enable-gpu-aware-mpi Use GPU memory aware MPI
|
||||
--enable-cublas Use cuBLAS (default is YES with CUDA, otherwise is
|
||||
NO).
|
||||
--enable-curand Use cuRAND (default is YES with CUDA, otherwise is
|
||||
NO).
|
||||
--enable-cuda-streams Use CUDA streams (default is YES with CUDA,
|
||||
otherwise is NO).
|
||||
--enable-cusparse Use cuSPARSE (default is YES with CUDA, otherwise is
|
||||
NO).
|
||||
--enable-cusolver Use cuSOLVER (default is NO).
|
||||
--enable-onemklsparse Use oneMKL sparse (default is YES).
|
||||
--enable-onemklblas Use oneMKL blas (default is YES).
|
||||
--enable-onemklrand Use oneMKL rand (default is YES).
|
||||
@ -2806,9 +2810,9 @@ hypre_using_um=no
|
||||
hypre_gpu_mpi=no
|
||||
hypre_using_gpu_profiling=no
|
||||
hypre_using_cuda_streams=no
|
||||
hypre_using_cusparse=yes
|
||||
hypre_using_cublas=yes
|
||||
hypre_using_curand=yes
|
||||
hypre_using_cusparse=no
|
||||
hypre_using_cublas=no
|
||||
hypre_using_curand=no
|
||||
hypre_using_cusolver=no
|
||||
hypre_using_device_pool=no
|
||||
hypre_using_device_malloc_async=no
|
||||
@ -3141,45 +3145,6 @@ else
|
||||
fi
|
||||
|
||||
|
||||
# Check whether --enable-cuda-streams was given.
|
||||
if test "${enable_cuda_streams+set}" = set; then :
|
||||
enableval=$enable_cuda_streams; case "${enableval}" in
|
||||
yes) hypre_using_cuda_streams=yes ;;
|
||||
no) hypre_using_cuda_streams=no ;;
|
||||
*) hypre_using_cuda_streams=yes ;;
|
||||
esac
|
||||
else
|
||||
hypre_using_cuda_streams=yes
|
||||
|
||||
fi
|
||||
|
||||
|
||||
# Check whether --enable-cusparse was given.
|
||||
if test "${enable_cusparse+set}" = set; then :
|
||||
enableval=$enable_cusparse; case "${enableval}" in
|
||||
yes) hypre_using_cusparse=yes ;;
|
||||
no) hypre_using_cusparse=no ;;
|
||||
*) hypre_using_cusparse=yes ;;
|
||||
esac
|
||||
else
|
||||
hypre_using_cusparse=yes
|
||||
|
||||
fi
|
||||
|
||||
|
||||
# Check whether --enable-cusolver was given.
|
||||
if test "${enable_cusolver+set}" = set; then :
|
||||
enableval=$enable_cusolver; case "${enableval}" in
|
||||
yes) hypre_using_cusolver=yes ;;
|
||||
no) hypre_using_cusolver=no ;;
|
||||
*) hypre_using_cusolver=yes ;;
|
||||
esac
|
||||
else
|
||||
hypre_using_cusolver=no
|
||||
|
||||
fi
|
||||
|
||||
|
||||
# Check whether --enable-device-memory-pool was given.
|
||||
if test "${enable_device_memory_pool+set}" = set; then :
|
||||
enableval=$enable_device_memory_pool; case "${enableval}" in
|
||||
@ -3206,73 +3171,6 @@ else
|
||||
fi
|
||||
|
||||
|
||||
# Check whether --enable-cublas was given.
|
||||
if test "${enable_cublas+set}" = set; then :
|
||||
enableval=$enable_cublas; case "${enableval}" in
|
||||
yes) hypre_using_cublas=yes ;;
|
||||
no) hypre_using_cublas=no ;;
|
||||
*) hypre_using_cublas=yes ;;
|
||||
esac
|
||||
else
|
||||
hypre_using_cublas=yes
|
||||
|
||||
fi
|
||||
|
||||
|
||||
# Check whether --enable-curand was given.
|
||||
if test "${enable_curand+set}" = set; then :
|
||||
enableval=$enable_curand; case "${enableval}" in
|
||||
yes) hypre_using_curand=yes ;;
|
||||
no) hypre_using_curand=no ;;
|
||||
*) hypre_using_curand=yes ;;
|
||||
esac
|
||||
else
|
||||
hypre_using_curand=yes
|
||||
|
||||
fi
|
||||
|
||||
|
||||
|
||||
|
||||
# Check whether --enable-rocsparse was given.
|
||||
if test "${enable_rocsparse+set}" = set; then :
|
||||
enableval=$enable_rocsparse; case "${enableval}" in
|
||||
yes) hypre_using_rocsparse=yes ;;
|
||||
no) hypre_using_rocsparse=no ;;
|
||||
*) hypre_using_rocsparse=yes ;;
|
||||
esac
|
||||
else
|
||||
hypre_using_rocsparse=yes
|
||||
|
||||
fi
|
||||
|
||||
|
||||
# Check whether --enable-rocblas was given.
|
||||
if test "${enable_rocblas+set}" = set; then :
|
||||
enableval=$enable_rocblas; case "${enableval}" in
|
||||
yes) hypre_using_rocblas=yes ;;
|
||||
no) hypre_using_rocblas=no ;;
|
||||
*) hypre_using_rocblas=no ;;
|
||||
esac
|
||||
else
|
||||
hypre_using_rocblas=no
|
||||
|
||||
fi
|
||||
|
||||
|
||||
# Check whether --enable-rocrand was given.
|
||||
if test "${enable_rocrand+set}" = set; then :
|
||||
enableval=$enable_rocrand; case "${enableval}" in
|
||||
yes) hypre_using_rocrand=yes ;;
|
||||
no) hypre_using_rocrand=no ;;
|
||||
*) hypre_using_rocrand=yes ;;
|
||||
esac
|
||||
else
|
||||
hypre_using_rocrand=yes
|
||||
|
||||
fi
|
||||
|
||||
|
||||
# Check whether --enable-gpu-profiling was given.
|
||||
if test "${enable_gpu_profiling+set}" = set; then :
|
||||
enableval=$enable_gpu_profiling; case "${enableval}" in
|
||||
@ -3299,45 +3197,6 @@ else
|
||||
fi
|
||||
|
||||
|
||||
# Check whether --enable-onemklsparse was given.
|
||||
if test "${enable_onemklsparse+set}" = set; then :
|
||||
enableval=$enable_onemklsparse; case "${enableval}" in
|
||||
yes) hypre_using_onemklsparse=yes ;;
|
||||
no) hypre_using_onemklsparse=no ;;
|
||||
*) hypre_using_onemklsparse=yes ;;
|
||||
esac
|
||||
else
|
||||
hypre_using_onemklsparse=yes
|
||||
|
||||
fi
|
||||
|
||||
|
||||
# Check whether --enable-onemklblas was given.
|
||||
if test "${enable_onemklblas+set}" = set; then :
|
||||
enableval=$enable_onemklblas; case "${enableval}" in
|
||||
yes) hypre_using_onemklblas=yes ;;
|
||||
no) hypre_using_onemklblas=no ;;
|
||||
*) hypre_using_onemklblas=yes ;;
|
||||
esac
|
||||
else
|
||||
hypre_using_onemklblas=yes
|
||||
|
||||
fi
|
||||
|
||||
|
||||
# Check whether --enable-onemklrand was given.
|
||||
if test "${enable_onemklrand+set}" = set; then :
|
||||
enableval=$enable_onemklrand; case "${enableval}" in
|
||||
yes) hypre_using_onemklrand=yes ;;
|
||||
no) hypre_using_onemklrand=no ;;
|
||||
*) hypre_using_onemklrand=yes ;;
|
||||
esac
|
||||
else
|
||||
hypre_using_onemklrand=yes
|
||||
|
||||
fi
|
||||
|
||||
|
||||
|
||||
if test "x$LDFLAGS" = "x"
|
||||
then
|
||||
@ -4148,6 +4007,45 @@ else
|
||||
fi
|
||||
|
||||
|
||||
# Check whether --enable-rocsparse was given.
|
||||
if test "${enable_rocsparse+set}" = set; then :
|
||||
enableval=$enable_rocsparse; case "${enableval}" in
|
||||
yes) hypre_using_rocsparse=yes ;;
|
||||
no) hypre_using_rocsparse=no ;;
|
||||
*) hypre_using_rocsparse=yes ;;
|
||||
esac
|
||||
else
|
||||
hypre_using_rocsparse=yes
|
||||
|
||||
fi
|
||||
|
||||
|
||||
# Check whether --enable-rocblas was given.
|
||||
if test "${enable_rocblas+set}" = set; then :
|
||||
enableval=$enable_rocblas; case "${enableval}" in
|
||||
yes) hypre_using_rocblas=yes ;;
|
||||
no) hypre_using_rocblas=no ;;
|
||||
*) hypre_using_rocblas=no ;;
|
||||
esac
|
||||
else
|
||||
hypre_using_rocblas=no
|
||||
|
||||
fi
|
||||
|
||||
|
||||
# Check whether --enable-rocrand was given.
|
||||
if test "${enable_rocrand+set}" = set; then :
|
||||
enableval=$enable_rocrand; case "${enableval}" in
|
||||
yes) hypre_using_rocrand=yes ;;
|
||||
no) hypre_using_rocrand=no ;;
|
||||
*) hypre_using_rocrand=yes ;;
|
||||
esac
|
||||
else
|
||||
hypre_using_rocrand=yes
|
||||
|
||||
fi
|
||||
|
||||
|
||||
|
||||
# Check whether --with-sycl was given.
|
||||
if test "${with_sycl+set}" = set; then :
|
||||
@ -4190,6 +4088,85 @@ if test "${with_gpu_arch+set}" = set; then :
|
||||
fi
|
||||
|
||||
|
||||
# Check whether --enable-cublas was given.
|
||||
if test "${enable_cublas+set}" = set; then :
|
||||
enableval=$enable_cublas; case "${enableval}" in
|
||||
yes) hypre_using_cublas=yes ;;
|
||||
no) hypre_using_cublas=no ;;
|
||||
*) hypre_using_cublas=no ;;
|
||||
esac
|
||||
else
|
||||
case "$hypre_using_cuda" in
|
||||
yes) hypre_using_cublas=yes ;;
|
||||
no) hypre_using_cublas=no ;;
|
||||
*) hypre_using_cublas=no ;;
|
||||
esac
|
||||
|
||||
fi
|
||||
|
||||
|
||||
# Check whether --enable-curand was given.
|
||||
if test "${enable_curand+set}" = set; then :
|
||||
enableval=$enable_curand; case "${enableval}" in
|
||||
yes) hypre_using_curand=yes ;;
|
||||
no) hypre_using_curand=no ;;
|
||||
*) hypre_using_curand=no ;;
|
||||
esac
|
||||
else
|
||||
case "$hypre_using_cuda" in
|
||||
yes) hypre_using_curand=yes ;;
|
||||
no) hypre_using_curand=no ;;
|
||||
*) hypre_using_curand=no ;;
|
||||
esac
|
||||
|
||||
fi
|
||||
|
||||
|
||||
# Check whether --enable-cuda-streams was given.
|
||||
if test "${enable_cuda_streams+set}" = set; then :
|
||||
enableval=$enable_cuda_streams; case "${enableval}" in
|
||||
yes) hypre_using_cuda_streams=yes ;;
|
||||
no) hypre_using_cuda_streams=no ;;
|
||||
*) hypre_using_cuda_streams=yes ;;
|
||||
esac
|
||||
else
|
||||
case "$hypre_using_cuda" in
|
||||
yes) hypre_using_cuda_streams=yes ;;
|
||||
no) hypre_using_cuda_streams=no ;;
|
||||
*) hypre_using_cuda_streams=yes ;;
|
||||
esac
|
||||
fi
|
||||
|
||||
|
||||
# Check whether --enable-cusparse was given.
|
||||
if test "${enable_cusparse+set}" = set; then :
|
||||
enableval=$enable_cusparse; case "${enableval}" in
|
||||
yes) hypre_using_cusparse=yes ;;
|
||||
no) hypre_using_cusparse=no ;;
|
||||
*) hypre_using_cusparse=no ;;
|
||||
esac
|
||||
else
|
||||
case "$hypre_using_cuda" in
|
||||
yes) hypre_using_cusparse=yes ;;
|
||||
no) hypre_using_cusparse=no ;;
|
||||
*) hypre_using_cusparse=no ;;
|
||||
esac
|
||||
fi
|
||||
|
||||
|
||||
# Check whether --enable-cusolver was given.
|
||||
if test "${enable_cusolver+set}" = set; then :
|
||||
enableval=$enable_cusolver; case "${enableval}" in
|
||||
yes) hypre_using_cusolver=yes ;;
|
||||
no) hypre_using_cusolver=no ;;
|
||||
*) hypre_using_cusolver=no ;;
|
||||
esac
|
||||
else
|
||||
hypre_using_cusolver=no
|
||||
|
||||
fi
|
||||
|
||||
|
||||
|
||||
|
||||
# Check whether --with-sycl-target was given.
|
||||
@ -4223,6 +4200,45 @@ if test "${with_sycl_target_backend+set}" = set; then :
|
||||
fi
|
||||
|
||||
|
||||
# Check whether --enable-onemklsparse was given.
|
||||
if test "${enable_onemklsparse+set}" = set; then :
|
||||
enableval=$enable_onemklsparse; case "${enableval}" in
|
||||
yes) hypre_using_onemklsparse=yes ;;
|
||||
no) hypre_using_onemklsparse=no ;;
|
||||
*) hypre_using_onemklsparse=yes ;;
|
||||
esac
|
||||
else
|
||||
hypre_using_onemklsparse=yes
|
||||
|
||||
fi
|
||||
|
||||
|
||||
# Check whether --enable-onemklblas was given.
|
||||
if test "${enable_onemklblas+set}" = set; then :
|
||||
enableval=$enable_onemklblas; case "${enableval}" in
|
||||
yes) hypre_using_onemklblas=yes ;;
|
||||
no) hypre_using_onemklblas=no ;;
|
||||
*) hypre_using_onemklblas=yes ;;
|
||||
esac
|
||||
else
|
||||
hypre_using_onemklblas=yes
|
||||
|
||||
fi
|
||||
|
||||
|
||||
# Check whether --enable-onemklrand was given.
|
||||
if test "${enable_onemklrand+set}" = set; then :
|
||||
enableval=$enable_onemklrand; case "${enableval}" in
|
||||
yes) hypre_using_onemklrand=yes ;;
|
||||
no) hypre_using_onemklrand=no ;;
|
||||
*) hypre_using_onemklrand=yes ;;
|
||||
esac
|
||||
else
|
||||
hypre_using_onemklrand=yes
|
||||
|
||||
fi
|
||||
|
||||
|
||||
|
||||
|
||||
# Check whether --with-raja was given.
|
||||
@ -8926,6 +8942,7 @@ then
|
||||
as_fn_error $? "Asked for unified memory, but not using CUDA, HIP, SYCL, or device OpenMP!" "$LINENO" 5
|
||||
fi
|
||||
fi
|
||||
|
||||
if test "$hypre_using_cuda" = "yes"
|
||||
then
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5
|
||||
@ -9103,6 +9120,305 @@ done
|
||||
fi
|
||||
|
||||
|
||||
if test "$hypre_using_cusparse" = "yes"
|
||||
then
|
||||
as_ac_File=`$as_echo "ac_cv_file_${HYPRE_CUDA_PATH}/include/cusparse.h" | $as_tr_sh`
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${HYPRE_CUDA_PATH}/include/cusparse.h" >&5
|
||||
$as_echo_n "checking for ${HYPRE_CUDA_PATH}/include/cusparse.h... " >&6; }
|
||||
if eval \${$as_ac_File+:} false; then :
|
||||
$as_echo_n "(cached) " >&6
|
||||
else
|
||||
test "$cross_compiling" = yes &&
|
||||
as_fn_error $? "cannot check for file existence when cross compiling" "$LINENO" 5
|
||||
if test -r "${HYPRE_CUDA_PATH}/include/cusparse.h"; then
|
||||
eval "$as_ac_File=yes"
|
||||
else
|
||||
eval "$as_ac_File=no"
|
||||
fi
|
||||
fi
|
||||
eval ac_res=\$$as_ac_File
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
|
||||
$as_echo "$ac_res" >&6; }
|
||||
if eval test \"x\$"$as_ac_File"\" = x"yes"; then :
|
||||
hypre_found_cusparse=yes; HYPRE_VENDOR_MATH_PATH=${HYPRE_CUDA_PATH}
|
||||
fi
|
||||
|
||||
|
||||
if test "x$hypre_found_cusparse" != "xyes"
|
||||
then
|
||||
as_ac_File=`$as_echo "ac_cv_file_${HYPRE_CUDA_PATH}/../math_libs/include/cusparse.h" | $as_tr_sh`
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${HYPRE_CUDA_PATH}/../math_libs/include/cusparse.h" >&5
|
||||
$as_echo_n "checking for ${HYPRE_CUDA_PATH}/../math_libs/include/cusparse.h... " >&6; }
|
||||
if eval \${$as_ac_File+:} false; then :
|
||||
$as_echo_n "(cached) " >&6
|
||||
else
|
||||
test "$cross_compiling" = yes &&
|
||||
as_fn_error $? "cannot check for file existence when cross compiling" "$LINENO" 5
|
||||
if test -r "${HYPRE_CUDA_PATH}/../math_libs/include/cusparse.h"; then
|
||||
eval "$as_ac_File=yes"
|
||||
else
|
||||
eval "$as_ac_File=no"
|
||||
fi
|
||||
fi
|
||||
eval ac_res=\$$as_ac_File
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
|
||||
$as_echo "$ac_res" >&6; }
|
||||
if eval test \"x\$"$as_ac_File"\" = x"yes"; then :
|
||||
hypre_found_cusparse=yes; HYPRE_VENDOR_MATH_PATH=$(readlink -f ${HYPRE_CUDA_PATH}/../math_libs); { $as_echo "$as_me:${as_lineno-$LINENO}: setting vendor math path to ${HYPRE_VENDOR_MATH_PATH}" >&5
|
||||
$as_echo "$as_me: setting vendor math path to ${HYPRE_VENDOR_MATH_PATH}" >&6;}
|
||||
fi
|
||||
|
||||
fi
|
||||
|
||||
if test "x$hypre_found_cusparse" != "xyes"
|
||||
then
|
||||
as_ac_File=`$as_echo "ac_cv_file_${HYPRE_CUDA_PATH}/../../math_libs/include/cusparse.h" | $as_tr_sh`
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${HYPRE_CUDA_PATH}/../../math_libs/include/cusparse.h" >&5
|
||||
$as_echo_n "checking for ${HYPRE_CUDA_PATH}/../../math_libs/include/cusparse.h... " >&6; }
|
||||
if eval \${$as_ac_File+:} false; then :
|
||||
$as_echo_n "(cached) " >&6
|
||||
else
|
||||
test "$cross_compiling" = yes &&
|
||||
as_fn_error $? "cannot check for file existence when cross compiling" "$LINENO" 5
|
||||
if test -r "${HYPRE_CUDA_PATH}/../../math_libs/include/cusparse.h"; then
|
||||
eval "$as_ac_File=yes"
|
||||
else
|
||||
eval "$as_ac_File=no"
|
||||
fi
|
||||
fi
|
||||
eval ac_res=\$$as_ac_File
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
|
||||
$as_echo "$ac_res" >&6; }
|
||||
if eval test \"x\$"$as_ac_File"\" = x"yes"; then :
|
||||
hypre_found_cusparse=yes; HYPRE_VENDOR_MATH_PATH=$(readlink -f ${HYPRE_CUDA_PATH}/../../math_libs); { $as_echo "$as_me:${as_lineno-$LINENO}: setting vendor math path to ${HYPRE_VENDOR_MATH_PATH}" >&5
|
||||
$as_echo "$as_me: setting vendor math path to ${HYPRE_VENDOR_MATH_PATH}" >&6;}
|
||||
fi
|
||||
|
||||
fi
|
||||
|
||||
if test "x$hypre_found_cusparse" != "xyes"
|
||||
then
|
||||
as_fn_error $? "unable to find cusparse.h ..." "$LINENO" 5
|
||||
fi
|
||||
fi
|
||||
|
||||
|
||||
if test "$hypre_using_cublas" = "yes"
|
||||
then
|
||||
as_ac_File=`$as_echo "ac_cv_file_${HYPRE_CUDA_PATH}/include/cublas.h" | $as_tr_sh`
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${HYPRE_CUDA_PATH}/include/cublas.h" >&5
|
||||
$as_echo_n "checking for ${HYPRE_CUDA_PATH}/include/cublas.h... " >&6; }
|
||||
if eval \${$as_ac_File+:} false; then :
|
||||
$as_echo_n "(cached) " >&6
|
||||
else
|
||||
test "$cross_compiling" = yes &&
|
||||
as_fn_error $? "cannot check for file existence when cross compiling" "$LINENO" 5
|
||||
if test -r "${HYPRE_CUDA_PATH}/include/cublas.h"; then
|
||||
eval "$as_ac_File=yes"
|
||||
else
|
||||
eval "$as_ac_File=no"
|
||||
fi
|
||||
fi
|
||||
eval ac_res=\$$as_ac_File
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
|
||||
$as_echo "$ac_res" >&6; }
|
||||
if eval test \"x\$"$as_ac_File"\" = x"yes"; then :
|
||||
hypre_found_cublas=yes; HYPRE_VENDOR_MATH_PATH=${HYPRE_CUDA_PATH}
|
||||
fi
|
||||
|
||||
|
||||
if test "x$hypre_found_cublas" != "xyes" && test "x${HYPRE_VENDOR_MATH_PATH}" != "x"
|
||||
then
|
||||
as_ac_File=`$as_echo "ac_cv_file_${HYPRE_VENDOR_MATH_PATH}/include/cublas.h" | $as_tr_sh`
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${HYPRE_VENDOR_MATH_PATH}/include/cublas.h" >&5
|
||||
$as_echo_n "checking for ${HYPRE_VENDOR_MATH_PATH}/include/cublas.h... " >&6; }
|
||||
if eval \${$as_ac_File+:} false; then :
|
||||
$as_echo_n "(cached) " >&6
|
||||
else
|
||||
test "$cross_compiling" = yes &&
|
||||
as_fn_error $? "cannot check for file existence when cross compiling" "$LINENO" 5
|
||||
if test -r "${HYPRE_VENDOR_MATH_PATH}/include/cublas.h"; then
|
||||
eval "$as_ac_File=yes"
|
||||
else
|
||||
eval "$as_ac_File=no"
|
||||
fi
|
||||
fi
|
||||
eval ac_res=\$$as_ac_File
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
|
||||
$as_echo "$ac_res" >&6; }
|
||||
if eval test \"x\$"$as_ac_File"\" = x"yes"; then :
|
||||
hypre_found_cublas=yes;
|
||||
fi
|
||||
|
||||
fi
|
||||
|
||||
if test "x$hypre_found_cublas" != "xyes"
|
||||
then
|
||||
as_ac_File=`$as_echo "ac_cv_file_${HYPRE_CUDA_PATH}/../math_libs/include/cublas.h" | $as_tr_sh`
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${HYPRE_CUDA_PATH}/../math_libs/include/cublas.h" >&5
|
||||
$as_echo_n "checking for ${HYPRE_CUDA_PATH}/../math_libs/include/cublas.h... " >&6; }
|
||||
if eval \${$as_ac_File+:} false; then :
|
||||
$as_echo_n "(cached) " >&6
|
||||
else
|
||||
test "$cross_compiling" = yes &&
|
||||
as_fn_error $? "cannot check for file existence when cross compiling" "$LINENO" 5
|
||||
if test -r "${HYPRE_CUDA_PATH}/../math_libs/include/cublas.h"; then
|
||||
eval "$as_ac_File=yes"
|
||||
else
|
||||
eval "$as_ac_File=no"
|
||||
fi
|
||||
fi
|
||||
eval ac_res=\$$as_ac_File
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
|
||||
$as_echo "$ac_res" >&6; }
|
||||
if eval test \"x\$"$as_ac_File"\" = x"yes"; then :
|
||||
hypre_found_cublas=yes; HYPRE_VENDOR_MATH_PATH=$(readlink -f ${HYPRE_CUDA_PATH}/../math_libs); { $as_echo "$as_me:${as_lineno-$LINENO}: setting vendor math path to ${HYPRE_VENDOR_MATH_PATH}" >&5
|
||||
$as_echo "$as_me: setting vendor math path to ${HYPRE_VENDOR_MATH_PATH}" >&6;}
|
||||
fi
|
||||
|
||||
fi
|
||||
|
||||
if test "x$hypre_found_cublas" != "xyes"
|
||||
then
|
||||
as_ac_File=`$as_echo "ac_cv_file_${HYPRE_CUDA_PATH}/../../math_libs/include/cublas.h" | $as_tr_sh`
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${HYPRE_CUDA_PATH}/../../math_libs/include/cublas.h" >&5
|
||||
$as_echo_n "checking for ${HYPRE_CUDA_PATH}/../../math_libs/include/cublas.h... " >&6; }
|
||||
if eval \${$as_ac_File+:} false; then :
|
||||
$as_echo_n "(cached) " >&6
|
||||
else
|
||||
test "$cross_compiling" = yes &&
|
||||
as_fn_error $? "cannot check for file existence when cross compiling" "$LINENO" 5
|
||||
if test -r "${HYPRE_CUDA_PATH}/../../math_libs/include/cublas.h"; then
|
||||
eval "$as_ac_File=yes"
|
||||
else
|
||||
eval "$as_ac_File=no"
|
||||
fi
|
||||
fi
|
||||
eval ac_res=\$$as_ac_File
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
|
||||
$as_echo "$ac_res" >&6; }
|
||||
if eval test \"x\$"$as_ac_File"\" = x"yes"; then :
|
||||
hypre_found_cublas=yes; HYPRE_VENDOR_MATH_PATH=$(readlink -f ${HYPRE_CUDA_PATH}/../../math_libs); { $as_echo "$as_me:${as_lineno-$LINENO}: setting vendor math path to ${HYPRE_VENDOR_MATH_PATH}" >&5
|
||||
$as_echo "$as_me: setting vendor math path to ${HYPRE_VENDOR_MATH_PATH}" >&6;}
|
||||
fi
|
||||
|
||||
fi
|
||||
|
||||
if test "x$hypre_found_cublas" != "xyes"
|
||||
then
|
||||
as_fn_error $? "unable to find cublas.h ..." "$LINENO" 5
|
||||
fi
|
||||
fi
|
||||
|
||||
|
||||
if test "$hypre_using_cusolver" = "yes"
|
||||
then
|
||||
as_ac_File=`$as_echo "ac_cv_file_${HYPRE_CUDA_PATH}/include/cusolverDn.h" | $as_tr_sh`
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${HYPRE_CUDA_PATH}/include/cusolverDn.h" >&5
|
||||
$as_echo_n "checking for ${HYPRE_CUDA_PATH}/include/cusolverDn.h... " >&6; }
|
||||
if eval \${$as_ac_File+:} false; then :
|
||||
$as_echo_n "(cached) " >&6
|
||||
else
|
||||
test "$cross_compiling" = yes &&
|
||||
as_fn_error $? "cannot check for file existence when cross compiling" "$LINENO" 5
|
||||
if test -r "${HYPRE_CUDA_PATH}/include/cusolverDn.h"; then
|
||||
eval "$as_ac_File=yes"
|
||||
else
|
||||
eval "$as_ac_File=no"
|
||||
fi
|
||||
fi
|
||||
eval ac_res=\$$as_ac_File
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
|
||||
$as_echo "$ac_res" >&6; }
|
||||
if eval test \"x\$"$as_ac_File"\" = x"yes"; then :
|
||||
hypre_found_cusolver=yes; HYPRE_VENDOR_MATH_PATH=${HYPRE_CUDA_PATH}
|
||||
fi
|
||||
|
||||
|
||||
if test "x$hypre_found_cusolver" != "xyes" && test "x${HYPRE_VENDOR_MATH_PATH}" != "x"
|
||||
then
|
||||
as_ac_File=`$as_echo "ac_cv_file_${HYPRE_VENDOR_MATH_PATH}/include/cusolverDn.h" | $as_tr_sh`
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${HYPRE_VENDOR_MATH_PATH}/include/cusolverDn.h" >&5
|
||||
$as_echo_n "checking for ${HYPRE_VENDOR_MATH_PATH}/include/cusolverDn.h... " >&6; }
|
||||
if eval \${$as_ac_File+:} false; then :
|
||||
$as_echo_n "(cached) " >&6
|
||||
else
|
||||
test "$cross_compiling" = yes &&
|
||||
as_fn_error $? "cannot check for file existence when cross compiling" "$LINENO" 5
|
||||
if test -r "${HYPRE_VENDOR_MATH_PATH}/include/cusolverDn.h"; then
|
||||
eval "$as_ac_File=yes"
|
||||
else
|
||||
eval "$as_ac_File=no"
|
||||
fi
|
||||
fi
|
||||
eval ac_res=\$$as_ac_File
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
|
||||
$as_echo "$ac_res" >&6; }
|
||||
if eval test \"x\$"$as_ac_File"\" = x"yes"; then :
|
||||
hypre_found_cusolver=yes;
|
||||
fi
|
||||
|
||||
fi
|
||||
|
||||
if test "x$hypre_found_cusolver" != "xyes"
|
||||
then
|
||||
as_ac_File=`$as_echo "ac_cv_file_${HYPRE_CUDA_PATH}/../math_libs/include/cusolverDn.h" | $as_tr_sh`
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${HYPRE_CUDA_PATH}/../math_libs/include/cusolverDn.h" >&5
|
||||
$as_echo_n "checking for ${HYPRE_CUDA_PATH}/../math_libs/include/cusolverDn.h... " >&6; }
|
||||
if eval \${$as_ac_File+:} false; then :
|
||||
$as_echo_n "(cached) " >&6
|
||||
else
|
||||
test "$cross_compiling" = yes &&
|
||||
as_fn_error $? "cannot check for file existence when cross compiling" "$LINENO" 5
|
||||
if test -r "${HYPRE_CUDA_PATH}/../math_libs/include/cusolverDn.h"; then
|
||||
eval "$as_ac_File=yes"
|
||||
else
|
||||
eval "$as_ac_File=no"
|
||||
fi
|
||||
fi
|
||||
eval ac_res=\$$as_ac_File
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
|
||||
$as_echo "$ac_res" >&6; }
|
||||
if eval test \"x\$"$as_ac_File"\" = x"yes"; then :
|
||||
hypre_found_cusolver=yes; HYPRE_VENDOR_MATH_PATH=$(readlink -f ${HYPRE_CUDA_PATH}/../math_libs); { $as_echo "$as_me:${as_lineno-$LINENO}: setting vendor math path to ${HYPRE_VENDOR_MATH_PATH}" >&5
|
||||
$as_echo "$as_me: setting vendor math path to ${HYPRE_VENDOR_MATH_PATH}" >&6;}
|
||||
fi
|
||||
|
||||
fi
|
||||
|
||||
if test "x$hypre_found_cusolver" != "xyes"
|
||||
then
|
||||
as_ac_File=`$as_echo "ac_cv_file_${HYPRE_CUDA_PATH}/../../math_libs/include/cusolverDn.h" | $as_tr_sh`
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${HYPRE_CUDA_PATH}/../../math_libs/include/cusolverDn.h" >&5
|
||||
$as_echo_n "checking for ${HYPRE_CUDA_PATH}/../../math_libs/include/cusolverDn.h... " >&6; }
|
||||
if eval \${$as_ac_File+:} false; then :
|
||||
$as_echo_n "(cached) " >&6
|
||||
else
|
||||
test "$cross_compiling" = yes &&
|
||||
as_fn_error $? "cannot check for file existence when cross compiling" "$LINENO" 5
|
||||
if test -r "${HYPRE_CUDA_PATH}/../../math_libs/include/cusolverDn.h"; then
|
||||
eval "$as_ac_File=yes"
|
||||
else
|
||||
eval "$as_ac_File=no"
|
||||
fi
|
||||
fi
|
||||
eval ac_res=\$$as_ac_File
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
|
||||
$as_echo "$ac_res" >&6; }
|
||||
if eval test \"x\$"$as_ac_File"\" = x"yes"; then :
|
||||
hypre_found_cusolver=yes; HYPRE_VENDOR_MATH_PATH=$(readlink -f ${HYPRE_CUDA_PATH}/../../math_libs); { $as_echo "$as_me:${as_lineno-$LINENO}: setting vendor math path to ${HYPRE_VENDOR_MATH_PATH}" >&5
|
||||
$as_echo "$as_me: setting vendor math path to ${HYPRE_VENDOR_MATH_PATH}" >&6;}
|
||||
fi
|
||||
|
||||
fi
|
||||
|
||||
if test "x$hypre_found_cusolver" != "xyes"
|
||||
then
|
||||
as_fn_error $? "unable to find cusolverDn.h ..." "$LINENO" 5
|
||||
fi
|
||||
fi
|
||||
|
||||
|
||||
if test x"$hypre_using_hip" == x"yes" ; then :
|
||||
if test -n "$ROCM_PATH"; then :
|
||||
HYPRE_ROCM_PREFIX=$ROCM_PATH
|
||||
@ -9254,6 +9570,13 @@ $as_echo "#define HYPRE_USING_CUDA 1" >>confdefs.h
|
||||
HYPRE_CUDA_INCLUDE='-I${HYPRE_CUDA_PATH}/include'
|
||||
HYPRE_CUDA_LIBS='-L${HYPRE_CUDA_PATH}/lib64 -lcudart'
|
||||
|
||||
if test x"$hypre_using_cusparse" == x"yes" || test x"$hypre_using_cublas" == x"yes" || test x"$hypre_using_cusolver" == x"yes"; then :
|
||||
if test "x$HYPRE_CUDA_PATH" != "x$HYPRE_VENDOR_MATH_PATH"; then :
|
||||
HYPRE_CUDA_INCLUDE+=" -I${HYPRE_VENDOR_MATH_PATH}/include"
|
||||
HYPRE_CUDA_LIBS+=" -L${HYPRE_VENDOR_MATH_PATH}/lib64"
|
||||
fi
|
||||
fi
|
||||
|
||||
if test "$hypre_using_gpu_profiling" = "yes"
|
||||
then
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user