diff --git a/GPU/GPUTracking/Definitions/GPUSettingsList.h b/GPU/GPUTracking/Definitions/GPUSettingsList.h index 40a7fc71cbb4d..a1f650a2bc56e 100644 --- a/GPU/GPUTracking/Definitions/GPUSettingsList.h +++ b/GPU/GPUTracking/Definitions/GPUSettingsList.h @@ -521,7 +521,7 @@ AddOption(outputcontrolmem, uint64_t, 0, "outputMemory", 0, "Use predefined outp AddOption(inputcontrolmem, uint64_t, 0, "inputMemory", 0, "Use predefined input buffer of this size", min(0ul), message("Using %s bytes as input memory")) AddOption(cpuAffinity, int32_t, -1, "", 0, "Pin CPU affinity to this CPU core", min(-1)) AddOption(fifoScheduler, bool, false, "", 0, "Use FIFO realtime scheduler", message("Setting FIFO scheduler: %s")) -AddOption(fpe, bool, true, "", 0, "Trap on floating point exceptions") +AddOption(fpe, int8_t, -1, "", 0, "Trap on floating point exceptions (-1 = if no ffast-math)") AddOption(flushDenormals, bool, true, "", 0, "Enable FTZ and DAZ (Flush all denormals to zero)") AddOption(solenoidBzNominalGPU, float, -1e6f, "", 0, "Field strength of solenoid Bz in kGaus") AddOption(constBz, bool, false, "", 0, "Force constand Bz") diff --git a/GPU/GPUTracking/Standalone/Benchmark/CMakeLists.txt b/GPU/GPUTracking/Standalone/Benchmark/CMakeLists.txt index fe583be02fe6b..de2d683036193 100644 --- a/GPU/GPUTracking/Standalone/Benchmark/CMakeLists.txt +++ b/GPU/GPUTracking/Standalone/Benchmark/CMakeLists.txt @@ -22,8 +22,6 @@ if(ALIGPU_BUILD_TYPE STREQUAL "O2") TARGETVARNAME targetName PUBLIC_LINK_LIBRARIES O2::GPUO2Interface O2::GPUTracking SOURCES ${SRCS}) - - target_compile_definitions(${targetName} PUBLIC $) endif() if(ALIGPU_BUILD_TYPE STREQUAL "Standalone") @@ -31,6 +29,8 @@ if(ALIGPU_BUILD_TYPE STREQUAL "Standalone") set(targetName ca) endif() +target_compile_definitions(${targetName} PUBLIC $) + if(ROOT_FOUND) target_sources(${targetName} PRIVATE ../../qa/genEvents.cxx) endif() diff --git a/GPU/GPUTracking/Standalone/Benchmark/standalone.cxx b/GPU/GPUTracking/Standalone/Benchmark/standalone.cxx index d6279df7c9188..e9cb7c5179c59 100644 --- a/GPU/GPUTracking/Standalone/Benchmark/standalone.cxx +++ b/GPU/GPUTracking/Standalone/Benchmark/standalone.cxx @@ -142,7 +142,11 @@ int32_t ReadConfiguration(int argc, char** argv) return 1; } } +#ifdef __FAST_MATH__ + if (configStandalone.fpe == 1) { +#else if (configStandalone.fpe) { +#endif feenableexcept(FE_INVALID | FE_DIVBYZERO | FE_OVERFLOW); } if (configStandalone.flushDenormals) { @@ -158,7 +162,7 @@ int32_t ReadConfiguration(int argc, char** argv) printf("FIFO Scheduler setting not supported on Windows\n"); return 1; } - if (configStandalone.fpe) { + if (configStandalone.fpe == 1) { printf("FPE not supported on Windows\n"); return 1; } diff --git a/GPU/GPUTracking/Standalone/CMakeLists.txt b/GPU/GPUTracking/Standalone/CMakeLists.txt index 6e536727a0c67..5ed511173f53e 100644 --- a/GPU/GPUTracking/Standalone/CMakeLists.txt +++ b/GPU/GPUTracking/Standalone/CMakeLists.txt @@ -187,40 +187,33 @@ include_directories(${GPU_DIR}/Common # Create main targets add_subdirectory(../../ GPU) add_library(standalone_support SHARED ${GPUTRACKING_DIR}/utils/EmptyFile.cxx) +target_compile_definitions(standalone_support PUBLIC $) -target_link_libraries(GPUTracking PUBLIC TPCFastTransformation standalone_support dl) +target_link_libraries(standalone_support PUBLIC# + dl + pthread + Microsoft.GSL::GSL + TPCFastTransformation) +target_link_libraries(GPUTracking PUBLIC TPCFastTransformation standalone_support) target_link_libraries(ca PUBLIC GPUTracking) -target_link_libraries(standalone_support PUBLIC dl pthread) -target_compile_definitions(ca PUBLIC $) -target_compile_definitions(standalone_support PUBLIC $) # Add all sources and dependencies to to support based on Config File target_sources(standalone_support PRIVATE - ${O2_DIR}/Common/Field/src/MagFieldFast.cxx - ${O2_DIR}/DataFormats/Detectors/TPC/src/CompressedClusters.cxx - ${O2_DIR}/DataFormats/simulation/src/MCCompLabel.cxx - ${O2_DIR}/DataFormats/Reconstruction/src/TrackParametrization.cxx - ${O2_DIR}/DataFormats/Reconstruction/src/TrackParametrizationWithError.cxx - ${O2_DIR}/DataFormats/Reconstruction/src/Vertex.cxx - ${O2_DIR}/DataFormats/Reconstruction/src/TrackLTIntegral.cxx - ${O2_DIR}/DataFormats/Reconstruction/src/TrackParametrization.cxx - ${O2_DIR}/DataFormats/Reconstruction/src/TrackParametrizationWithError.cxx - ${O2_DIR}/Detectors/TRD/base/src/GeometryBase.cxx - ${O2_DIR}/Detectors/Base/src/MatLayerCylSet.cxx - ${O2_DIR}/Detectors/Base/src/MatLayerCyl.cxx - ${O2_DIR}/Detectors/Base/src/Ray.cxx - ${O2_DIR}/Detectors/Base/src/Propagator.cxx - ${O2_DIR}/Detectors/ITSMFT/ITS/tracking/src/Road.cxx) -if(CONFIG_O2_ITS_TRAITS) - target_sources(standalone_support PRIVATE - ${O2_DIR}/Detectors/ITSMFT/ITS/tracking/src/PrimaryVertexContext.cxx - ${O2_DIR}/Detectors/ITSMFT/ITS/tracking/src/Cluster.cxx - ${O2_DIR}/Detectors/ITSMFT/ITS/tracking/src/ClusterLines.cxx - ${O2_DIR}/Detectors/ITSMFT/ITS/tracking/src/TrackerTraitsCPU.cxx - ${O2_DIR}/Detectors/ITSMFT/ITS/tracking/src/VertexerTraits.cxx - ${O2_DIR}/Detectors/ITSMFT/ITS/tracking/src/ROframe.cxx) - target_link_libraries(standalone_support PUBLIC Boost::boost) -endif() + ${O2_DIR}/Common/Field/src/MagFieldFast.cxx + ${O2_DIR}/DataFormats/Detectors/TPC/src/CompressedClusters.cxx + ${O2_DIR}/DataFormats/simulation/src/MCCompLabel.cxx + ${O2_DIR}/DataFormats/Reconstruction/src/TrackParametrization.cxx + ${O2_DIR}/DataFormats/Reconstruction/src/TrackParametrizationWithError.cxx + ${O2_DIR}/DataFormats/Reconstruction/src/Vertex.cxx + ${O2_DIR}/DataFormats/Reconstruction/src/TrackLTIntegral.cxx + ${O2_DIR}/DataFormats/Reconstruction/src/TrackParametrization.cxx + ${O2_DIR}/DataFormats/Reconstruction/src/TrackParametrizationWithError.cxx + ${O2_DIR}/Detectors/TRD/base/src/GeometryBase.cxx + ${O2_DIR}/Detectors/Base/src/MatLayerCylSet.cxx + ${O2_DIR}/Detectors/Base/src/MatLayerCyl.cxx + ${O2_DIR}/Detectors/Base/src/Ray.cxx + ${O2_DIR}/Detectors/Base/src/Propagator.cxx + ${O2_DIR}/Detectors/ITSMFT/ITS/tracking/src/Road.cxx) if(GPUCA_CONFIG_FMT) target_link_libraries(standalone_support PUBLIC fmt::fmt) @@ -232,23 +225,14 @@ if(GPUCA_CONFIG_VC) target_link_libraries(TPCFastTransformation PUBLIC Vc::Vc) endif() -if(GPUCA_BUILD_EVENT_DISPLAY) - if(GPUCA_CONFIG_GL3W) - target_sources(GPUTrackingDisplay PRIVATE ${GPUTRACKING_DIR}/display/3rdparty/gl3w.c) - endif() - target_sources(GPUTracking PRIVATE ${GPUTRACKING_DIR}/display/3rdparty/HandMadeMath/HandMadeMathImpl.cxx) - target_include_directories(GPUTracking SYSTEM PUBLIC ${GPUTRACKING_DIR}/display/3rdparty) -endif() - if(GPUCA_CONFIG_ROOT) target_link_libraries(standalone_support PUBLIC - ROOT::Core - ROOT::RIO - ROOT::Hist - ROOT::Gui - ROOT::Tree) + ROOT::Core + ROOT::RIO + ROOT::Hist + ROOT::Gui + ROOT::Tree) endif() -target_link_libraries(standalone_support PUBLIC Microsoft.GSL::GSL TPCFastTransformation) if (GPUCA_BUILD_DEBUG_SANITIZE AND CMAKE_CXX_COMPILER MATCHES "clang\\+\\+") execute_process(COMMAND ${CMAKE_CXX_COMPILER} -print-file-name=libclang_rt.asan-x86_64.so OUTPUT_VARIABLE CLANG_ASAN_SO_PATH OUTPUT_STRIP_TRAILING_WHITESPACE) diff --git a/GPU/GPUTracking/display/CMakeLists.txt b/GPU/GPUTracking/display/CMakeLists.txt index 68385d7916234..b3107dbec8c79 100644 --- a/GPU/GPUTracking/display/CMakeLists.txt +++ b/GPU/GPUTracking/display/CMakeLists.txt @@ -179,9 +179,12 @@ if(ALIGPU_BUILD_TYPE STREQUAL "Standalone") endif() if(GPUCA_CONFIG_GL3W) target_compile_definitions(${targetName} PRIVATE GPUCA_DISPLAY_GL3W) + target_sources(${targetName} PRIVATE ${GPUTRACKING_DIR}/display/3rdparty/gl3w.c) else() target_link_libraries(${targetName} PRIVATE ${GLEW_LIBRARIES}) endif() + target_sources(${targetName} PRIVATE ${GPUTRACKING_DIR}/display/3rdparty/HandMadeMath/HandMadeMathImpl.cxx) + target_include_directories(${targetName} SYSTEM PUBLIC ${GPUTRACKING_DIR}/display/3rdparty) endif() if (OPENGL_GLU_FOUND)