Skip to content
Snippets Groups Projects
Commit 49fb42d8 authored by Soeren Peters's avatar Soeren Peters
Browse files

Restructure the cmake cuda process. Remove the policy and always set...

Restructure the cmake cuda process. Remove the policy and always set CMAKE_CUDA_ARCHITECTURE to 30, if not set. This will fail when someone is trying to build with cuda 10.2 or higher, as cuda 10.2 minimum support is 52.

NOTICE: preferred way is to set CMAKE_CUDA_ARCHITECTURE as cmake argument OR in the config file to the real gpu architecture. For example phoenix tesla P100 have the compute capability 60.
parent 0fd519d4
No related branches found
No related tags found
1 merge request!9Fixed CMake Cuda workaround and merge conflict error.
......@@ -45,6 +45,7 @@ stages:
- cmake ..
-DBUILD_VF_CPU=ON
-DBUILD_VF_GPU=ON
-DCMAKE_CUDA_ARCHITECTURES=60
- cmake . -LAH
- make -j4
......@@ -87,6 +88,7 @@ gcc_9_rebuild:
- cmake ..
-DBUILD_VF_CPU=ON
-DBUILD_VF_GPU=ON
-DCMAKE_CUDA_ARCHITECTURES=60
-DCMAKE_CXX_COMPILER_LAUNCHER=ccache
-DCMAKE_CUDA_COMPILER_LAUNCHER=ccache
-DCMAKE_C_COMPILER_LAUNCHER=ccache
......@@ -275,6 +277,7 @@ gpu_numerical_tests:
- cmake ..
-DBUILD_VF_CPU=OFF
-DBUILD_VF_GPU=ON
-DCMAKE_CUDA_ARCHITECTURES=60
-DBUILD_VF_DOUBLE_ACCURACY=ON
-DBUILD_NUMERIC_TESTS=ON
-DPATH_NUMERICAL_TESTS=/tmp/test_data/numerical_tests_gpu
......@@ -327,6 +330,7 @@ clang_build_analyzer_clang_10:
- cmake ..
-DBUILD_VF_CPU=ON
-DBUILD_VF_GPU=ON
-DCMAKE_CUDA_ARCHITECTURES=60
-DUSE_OPENMP=OFF
-DCMAKE_CXX_FLAGS=-ftime-trace
- ClangBuildAnalyzer --start .
......@@ -362,6 +366,7 @@ include_what_you_use_clang_10:
- cmake ..
-DBUILD_VF_CPU=ON
-DBUILD_VF_GPU=ON
-DCMAKE_CUDA_ARCHITECTURES=60
-DUSE_OPENMP=OFF
-DBUILD_VF_INCLUDE_WHAT_YOU_USE=ON
- make
......@@ -436,6 +441,7 @@ gcov_gcc_9:
- cmake ..
-DBUILD_VF_CPU=ON
-DBUILD_VF_GPU=ON
-DCMAKE_CUDA_ARCHITECTURES=60
-DBUILD_VF_COVERAGE=ON
-DBUILD_VF_UNIT_TESTS=ON
- make -j4
......
......@@ -43,4 +43,6 @@ SET(BOOST_LIBRARYDIR "/cluster/lib/boost/1.63.0/gcc/lib" CACHE PATH "BOOST_LIB
#SET(VTK_DIR "/home/irmb/tools/VTK/build/VTK-8.2.0" CACHE PATH "VTK directory override" FORCE)
#SET(VTK_DIR "/home/stelenz/software/vtk/VTK-8.1.0/build" CACHE PATH "VTK directory override" FORCE)
## nvidia
set(NVCUDASAMPLES_ROOT "/cluster/cuda/11.0/samples")
set(CMAKE_CUDA_ARCHITECTURES 60) # NVIDIA Tesla P100
\ No newline at end of file
......@@ -10,16 +10,13 @@
# CMAKE 3.13: target_link_options
# CMAKE 3.15: CMAKE_MSVC_RUNTIME_LIBRARY
#################################################################################
cmake_minimum_required(VERSION 3.15..3.18 FATAL_ERROR)
cmake_minimum_required(VERSION 3.15..3.19 FATAL_ERROR)
project(VirtualFluids CXX)
set(CMAKE_CXX_STANDARD 14)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CUDA_STANDARD 14)
set(CMAKE_CUDA_STANDARD_REQUIRED TRUE)
set_property(GLOBAL PROPERTY USE_FOLDERS ON)
set_property(GLOBAL PROPERTY PREDEFINED_TARGETS_FOLDER ".cmake")
set(libraryFolder "libs")
......@@ -66,17 +63,6 @@ option(BUILD_VF_PYTHON_BINDINGS "" OFF)
option(BUILD_VF_DOUBLE_ACCURACY "Use double accuracy" OFF)
#################################################################################
# CMAKE POLICIES
#################################################################################
# CMAKE_CUDA_ARCHITECTURES
# https://cmake.org/cmake/help/git-stage/policy/CMP0104.htmls
if(POLICY CMP0104)
cmake_policy(SET CMP0104 NEW)
set(CMAKE_CUDA_ARCHITECTURES 30)
# with cuda 11 the minimum architecture is 52
endif()
#################################################################################
# MACROS
#################################################################################
......@@ -99,6 +85,25 @@ if (BUILD_VF_CPU)
include (cpu.cmake)
endif()
if(BUILD_VF_GPU)
include(CheckLanguage)
check_language(CUDA)
if(NOT CMAKE_CUDA_COMPILER)
message(FATAL_ERROR "CUDA Compiler was requested but is not found on the system.")
endif()
set(CMAKE_CUDA_STANDARD 11)
set(CMAKE_CUDA_STANDARD_REQUIRED TRUE)
if(NOT DEFINED CMAKE_CUDA_ARCHITECTURES)
message(WARNING "CMAKE_CUDA_ARCHITECTURES was not defined and is set to 30 (CUDA support until 10.1 only).")
set(CMAKE_CUDA_ARCHITECTURES 30)
endif()
message("CUDA Compiler: ${CMAKE_CUDA_COMPILER}")
message("CUDA Architecture: ${CMAKE_CUDA_ARCHITECTURES}")
include (gpu.cmake)
endif()
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment