Skip to content

Commit 0ab24b0

Browse files
committed
GPU CMake: Shuffle stuff a bit and move all NO_FAST_MATH stuff to GPU/... and FindO2GPU.cmake
1 parent 8df4ac2 commit 0ab24b0

File tree

3 files changed

+15
-19
lines changed

3 files changed

+15
-19
lines changed

GPU/CMakeLists.txt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@
1616
if(NOT DEFINED GPUCA_NO_FAST_MATH)
1717
set(GPUCA_NO_FAST_MATH 0)
1818
endif()
19-
set(GPUCA_CXX_NO_FAST_MATH_FLAGS "-fno-fast-math -ffp-contract=off")
2019
if(${GPUCA_NO_FAST_MATH})
2120
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${GPUCA_CXX_NO_FAST_MATH_FLAGS}")
2221
endif()

dependencies/FindO2GPU.cmake

Lines changed: 15 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -64,9 +64,20 @@ function(set_target_hip_arch target)
6464
endif()
6565
endfunction()
6666

67-
# Detect and enable CUDA
68-
STRING(REGEX REPLACE "\-std=[^ ]*" "" O2_GPU_CMAKE_CXX_FLAGS_NOSTD "${CMAKE_CXX_FLAGS}") # Need to strip c++17 imposed by alidist defaults
67+
# Need to strip c++17 imposed by alidist defaults
68+
STRING(REGEX REPLACE "\-std=[^ ]*" "" O2_GPU_CMAKE_CXX_FLAGS_NOSTD "${CMAKE_CXX_FLAGS}")
6969

70+
# ---------------------------------- Fast Math / Deterministic Mode ----------------------------------
71+
if(GPUCA_NO_FAST_MATH_WHOLEO2)
72+
set(GPUCA_NO_FAST_MATH 1)
73+
add_definitions(-DGPUCA_NO_FAST_MATH)
74+
set(CMAKE_CXX_FLAGS_${CMAKE_BUILD_TYPE_UPPER} "${CMAKE_CXX_FLAGS_${CMAKE_BUILD_TYPE_UPPER}} -fno-fast-math -ffp-contract=off")
75+
set(CMAKE_C_FLAGS_${CMAKE_BUILD_TYPE_UPPER} "${CMAKE_C_FLAGS_${CMAKE_BUILD_TYPE_UPPER}} -fno-fast-math -ffp-contract=off")
76+
endif()
77+
set(GPUCA_CXX_NO_FAST_MATH_FLAGS "-fno-fast-math -ffp-contract=off")
78+
set(GPUCA_CUDA_NO_FAST_MATH_FLAGS "--ftz=false --prec-div=true --prec-sqrt=true --fmad false")
79+
80+
# ---------------------------------- CUDA ----------------------------------
7081
if(ENABLE_CUDA)
7182
set(CMAKE_CUDA_STANDARD ${CMAKE_CXX_STANDARD})
7283
set(CMAKE_CUDA_STANDARD_REQUIRED TRUE)
@@ -124,7 +135,6 @@ if(ENABLE_CUDA)
124135
else()
125136
set(CMAKE_CUDA_FLAGS_${CMAKE_BUILD_TYPE_UPPER} "${CMAKE_CUDA_FLAGS_${CMAKE_BUILD_TYPE_UPPER}} -Xptxas -O4 -Xcompiler -O4")
126137
endif()
127-
set(GPUCA_CUDA_NO_FAST_MATH_FLAGS "--ftz=false --prec-div=true --prec-sqrt=true --fmad false")
128138
if(DEFINED GPUCA_NO_FAST_MATH AND "${GPUCA_NO_FAST_MATH}")
129139
set(CMAKE_CUDA_FLAGS_${CMAKE_BUILD_TYPE_UPPER} "${CMAKE_CUDA_FLAGS_${CMAKE_BUILD_TYPE_UPPER}} ${GPUCA_CUDA_NO_FAST_MATH_FLAGS}")
130140
elseif(NOT CMAKE_BUILD_TYPE_UPPER STREQUAL "DEBUG")
@@ -146,19 +156,14 @@ if(ENABLE_CUDA)
146156
endif()
147157
endif()
148158

149-
# Detect and enable OpenCL 1.2 from AMD
159+
# ---------------------------------- HIP ----------------------------------
150160
if(ENABLE_OPENCL)
151161
find_package(OpenCL)
152162
if(ENABLE_OPENCL AND NOT ENABLE_OPENCL STREQUAL "AUTO")
153163
set_package_properties(OpenCL PROPERTIES TYPE REQUIRED)
154164
else()
155165
set_package_properties(OpenCL PROPERTIES TYPE OPTIONAL)
156166
endif()
157-
endif()
158-
159-
# Detect and enable OpenCL 2.x
160-
if(ENABLE_OPENCL)
161-
find_package(OpenCL)
162167
find_package(LLVM)
163168
if(LLVM_FOUND)
164169
find_package(Clang)
@@ -196,7 +201,7 @@ if(ENABLE_OPENCL)
196201
endif()
197202
endif()
198203

199-
# Detect and enable HIP
204+
# ---------------------------------- HIP ----------------------------------
200205
if(ENABLE_HIP)
201206
if(NOT "$ENV{CMAKE_PREFIX_PATH}" MATCHES "rocm" AND NOT CMAKE_PREFIX_PATH MATCHES "rocm" AND EXISTS "/opt/rocm/lib/cmake/")
202207
list(APPEND CMAKE_PREFIX_PATH "/opt/rocm/lib/cmake")
@@ -303,7 +308,6 @@ if(ENABLE_HIP)
303308
endif()
304309
message(FATAL_ERROR "HIP requested but some of the above packages are not found")
305310
endif()
306-
307311
endif()
308312

309313
# if we end up here without a FATAL, it means we have found the "O2GPU" package

dependencies/O2CompileFlags.cmake

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -138,11 +138,4 @@ if(DEFINED ENV{O2_CXXFLAGS_OVERRIDE})
138138
message(STATUS "Setting CXXFLAGS Override $ENV{O2_CXXFLAGS_OVERRIDE}")
139139
endif()
140140

141-
if(GPUCA_NO_FAST_MATH_WHOLEO2)
142-
set(GPUCA_NO_FAST_MATH 1)
143-
add_definitions(-DGPUCA_NO_FAST_MATH)
144-
set(CMAKE_CXX_FLAGS_${CMAKE_BUILD_TYPE_UPPER} "${CMAKE_CXX_FLAGS_${CMAKE_BUILD_TYPE_UPPER}} -fno-fast-math -ffp-contract=off")
145-
set(CMAKE_C_FLAGS_${CMAKE_BUILD_TYPE_UPPER} "${CMAKE_C_FLAGS_${CMAKE_BUILD_TYPE_UPPER}} -fno-fast-math -ffp-contract=off")
146-
endif()
147-
148141
message(STATUS "Using build type: ${CMAKE_BUILD_TYPE} - CXXFLAGS: ${CMAKE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_${CMAKE_BUILD_TYPE_UPPER}}")

0 commit comments

Comments
 (0)