Cmake cuda update (#675)

This PR contains CMake changes for CUDA.

Co-authored-by: pengwang <penwang@nvidia.com>
Co-authored-by: Sarah Virginia Osborn <osborn9@llnl.gov>
This commit is contained in:
Ruipeng Li 2022-07-19 22:04:42 -07:00 committed by GitHub
parent 22d35a4d09
commit 275d04d987
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 14 additions and 5 deletions

View File

@ -105,6 +105,7 @@ set(HYPRE_WITH_EXTRA_CXXFLAGS "" CACHE STRING "Define extra CXX compile flag
option(HYPRE_WITH_CUDA "Use CUDA. Require cuda-8.0 or higher" OFF)
option(HYPRE_WITH_SYCL "Use SYCL" OFF)
option(HYPRE_ENABLE_UNIFIED_MEMORY "Use unified memory for allocating the memory" OFF)
option(HYPRE_ENABLE_DEVICE_MALLOC_ASYNC "Use device async malloc" OFF)
# CUDA options
option(HYPRE_ENABLE_CUDA_STREAMS "Use CUDA streams" ON)
option(HYPRE_ENABLE_CUSPARSE "Use cuSPARSE" ON)
@ -217,11 +218,6 @@ if (HYPRE_WITH_CUDA)
message(STATUS "Using CXX standard: c++${CMAKE_CXX_STANDARD}")
# Use ${CMAKE_CXX_COMPILER} as the cuda host compiler.
if (NOT CMAKE_CUDA_HOST_COMPILER)
set(CMAKE_CUDA_HOST_COMPILER ${CMAKE_CXX_COMPILER})
endif ()
# Add any extra CXX compiler flags HYPRE_WITH_EXTRA_CXXFLAGS
if (NOT HYPRE_WITH_EXTRA_CXXFLAGS STREQUAL "")
string(REPLACE " " ";" HYPRE_WITH_EXTRA_CXXFLAGS "${HYPRE_WITH_EXTRA_CXXFLAGS}")
@ -231,6 +227,12 @@ if (HYPRE_WITH_CUDA)
# Check if CUDA is available, then enable it
include(CheckLanguage)
check_language(CUDA)
# Use ${CMAKE_CXX_COMPILER} as the cuda host compiler.
if (NOT CMAKE_CUDA_HOST_COMPILER)
set(CMAKE_CUDA_HOST_COMPILER ${CMAKE_CXX_COMPILER})
endif ()
if (CMAKE_CUDA_COMPILER)
enable_language(CUDA)
@ -242,6 +244,10 @@ if (HYPRE_WITH_CUDA)
set(CMAKE_CUDA_STANDARD_REQUIRED ON CACHE BOOL "" FORCE)
if (HYPRE_ENABLE_DEVICE_MALLOC_ASYNC)
set(HYPRE_USING_DEVICE_MALLOC_ASYNC ON CACHE BOOL "" FORCE)
endif ()
set(HYPRE_USING_CUDA ON CACHE BOOL "" FORCE)
set(HYPRE_USING_GPU ON CACHE BOOL "" FORCE)

View File

@ -31,6 +31,9 @@
/* Use complex values */
#cmakedefine HYPRE_COMPLEX 1
/* Use cudaMallocAsync */
#cmakedefine HYPRE_USING_DEVICE_MALLOC_ASYNC 1
/* Debug mode */
#cmakedefine HYPRE_DEBUG 1