From 79bebc0f71ebf9df875051f75342ece374cf6812 Mon Sep 17 00:00:00 2001 From: Rafael Ravedutti <rafaelravedutti@gmail.com> Date: Wed, 14 Feb 2024 01:34:39 +0100 Subject: [PATCH] Fix CUDA compilation in CMakeLists.txt Signed-off-by: Rafael Ravedutti <rafaelravedutti@gmail.com> --- CMakeLists.txt | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index a0da6cc..31fa623 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -12,6 +12,12 @@ if(NOT TESTCASE) set(TESTCASE md CACHE STRING "Select the testcase from the following: md, dem" FORCE) endif() +set(CUDA_ARCH ${CUDA_ARCH} CACHE STRING "CUDA_ARCH environment variable must be set.") + +if(NOT CUDA_ARCH) + set(CUDA_ARCH sm_80) +endif() + string(TOLOWER "${TESTCASE}" TESTCASE) message(STATUS "Selected testcase: ${TESTCASE}") @@ -63,6 +69,7 @@ add_dependencies(${CPU_BIN} gen_cpu) if(COMPILE_CUDA) find_package(CUDA REQUIRED) + enable_language(CUDA) if(USE_WALBERLA) waLBerla_add_executable( @@ -81,6 +88,14 @@ if(COMPILE_CUDA) target_compile_features(runtime_gpu PUBLIC cxx_std_11) set_target_properties(runtime_gpu PROPERTIES CUDA_SEPARABLE_COMPILATION ON) + target_compile_options(${GPU_BIN} PRIVATE $<$<COMPILE_LANGUAGE:CUDA>:-arch=${CUDA_ARCH}>) + target_include_directories(${GPU_BIN} PRIVATE ${CUDA_INCLUDE_DIRS}) + set_target_properties(${GPU_BIN} PROPERTIES CUDA_ARCHITECTURES ${CUDA_ARCH}) + + target_compile_options(runtime_gpu PRIVATE $<$<COMPILE_LANGUAGE:CUDA>:-arch=${CUDA_ARCH}>) + target_include_directories(runtime_gpu PRIVATE ${CUDA_INCLUDE_DIRS}) + set_target_properties(runtime_gpu PROPERTIES CUDA_ARCHITECTURES ${CUDA_ARCH}) + #set_property(TARGET ${GPU_BIN} PROPERTY CUDA_SEPARABLE_COMPILATION ON) #target_link_libraries(${GPU_BIN} runtime_gpu) -- GitLab