diff --git a/GPU/Common/GPUCommonDef.h b/GPU/Common/GPUCommonDef.h index d9a5bdf92b6ac..ffe5551f02f1b 100644 --- a/GPU/Common/GPUCommonDef.h +++ b/GPU/Common/GPUCommonDef.h @@ -30,7 +30,7 @@ //Some GPU configuration settings, must be included first #include "GPUCommonDefSettings.h" -#if !(defined(__CLING__) || defined(__ROOTCLING__) || defined(G__ROOT)) // No GPU code for ROOT +#if !defined(__CLING__) && !defined(G__ROOT) // No GPU code for ROOT #if defined(__CUDACC__) || defined(__OPENCL__) || defined(__HIPCC__) || defined(__OPENCL_HOST__) #define GPUCA_GPUCODE // Compiled by GPU compiler #endif diff --git a/GPU/Common/GPUCommonMath.h b/GPU/Common/GPUCommonMath.h index 01067ca032650..b448a30107dad 100644 --- a/GPU/Common/GPUCommonMath.h +++ b/GPU/Common/GPUCommonMath.h @@ -521,7 +521,7 @@ GPUdi() void GPUCommonMath::AtomicMinInternal(S* addr, T val) #endif // GPUCA_GPUCODE } -#if (defined(__CUDACC__) || defined(__HIPCC__)) && !defined(G__ROOT) +#if (defined(__CUDACC__) || defined(__HIPCC__)) && !defined(G__ROOT) && !defined(__CLING__) #define GPUCA_HAVE_ATOMIC_MINMAX_FLOAT template <> GPUdii() void GPUCommonMath::AtomicMaxInternal(GPUglobalref() GPUgeneric() GPUAtomic(float) * addr, float val) diff --git a/GPU/GPUTracking/Standalone/Benchmark/standalone.cxx b/GPU/GPUTracking/Standalone/Benchmark/standalone.cxx index 95997a30034c9..a624e1e55ed4b 100644 --- a/GPU/GPUTracking/Standalone/Benchmark/standalone.cxx +++ b/GPU/GPUTracking/Standalone/Benchmark/standalone.cxx @@ -223,6 +223,14 @@ int32_t ReadConfiguration(int argc, char** argv) configStandalone.rec.tpc.nWaysOuter = 1; configStandalone.rec.tpc.trackReferenceX = 83; configStandalone.proc.outputSharedClusterMap = 1; + configStandalone.proc.clearO2OutputFromGPU = 1; + configStandalone.QA.clusterRejectionHistograms = 1; + configStandalone.proc.tpcIncreasedMinClustersPerRow = 500000; + configStandalone.proc.ignoreNonFatalGPUErrors = 1; + // TODO: rundEdx=1 + // GPU_proc.qcRunFraction=$TPC_TRACKING_QC_RUN_FRACTION;" + // [[ $CTFINPUT == 1 ]] && GPU_CONFIG_KEY+="GPU_proc.tpcInputWithClusterRejection=1;" + // double pipeline / rtc } if (configStandalone.outputcontrolmem) { @@ -893,7 +901,7 @@ int32_t main(int argc, char** argv) double pipelineWalltime = 1.; if (configStandalone.proc.doublePipeline) { HighResTimer timerPipeline; - if (RunBenchmark(rec, chainTracking, 1, iEvent, &nTracksTotal, &nClustersTotal) || RunBenchmark(recPipeline, chainTrackingPipeline, 2, iEvent, &nTracksTotal, &nClustersTotal)) { + if (configStandalone.proc.debugLevel < 2 && (RunBenchmark(rec, chainTracking, 1, iEvent, &nTracksTotal, &nClustersTotal) || RunBenchmark(recPipeline, chainTrackingPipeline, 2, iEvent, &nTracksTotal, &nClustersTotal))) { goto breakrun; } auto pipeline1 = std::async(std::launch::async, RunBenchmark, rec, chainTracking, configStandalone.runs, iEvent, &nTracksTotal, &nClustersTotal, 0, &timerPipeline); diff --git a/GPU/GPUTracking/Standalone/CMakeLists.txt b/GPU/GPUTracking/Standalone/CMakeLists.txt index 0b37ce38b79f7..48fbd77c62786 100644 --- a/GPU/GPUTracking/Standalone/CMakeLists.txt +++ b/GPU/GPUTracking/Standalone/CMakeLists.txt @@ -65,7 +65,12 @@ if (GPUCA_BUILD_DEBUG_SANITIZE) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -shared-libasan") endif() endif() -string(APPEND CMAKE_CXX_FLAGS " -Wno-error -Wall -Wextra -Wshadow -Wno-unused-function -Wno-unused-parameter -Wno-unused-local-typedefs -Wno-unknown-pragmas -Wno-write-strings") +if(GPUCA_CONFIG_WERROR) + string(APPEND CMAKE_CXX_FLAGS " -Werror -Wno-unknown-warning-option") +else() + string(APPEND CMAKE_CXX_FLAGS " -Wno-error") +endif() +string(APPEND CMAKE_CXX_FLAGS " -Wall -Wextra -Wshadow -Wno-unused-function -Wno-unused-parameter -Wno-unused-local-typedefs -Wno-unknown-pragmas -Wno-write-strings") string(APPEND CMAKE_SHARED_LINKER_FLAGS " -rdynamic -Wl,--no-undefined") if(CMAKE_CXX_COMPILER MATCHES "clang\\+\\+") string(APPEND CMAKE_CXX_FLAGS " -Wno-vla-cxx-extension") diff --git a/GPU/GPUTracking/Standalone/cmake/build.sh b/GPU/GPUTracking/Standalone/cmake/build.sh index 9fe650fd30905..2698a5bad3950 100755 --- a/GPU/GPUTracking/Standalone/cmake/build.sh +++ b/GPU/GPUTracking/Standalone/cmake/build.sh @@ -7,13 +7,16 @@ set -e mkdir -p standalone/build pushd standalone/build cp $1/GPU/GPUTracking/Standalone/cmake/config.cmake . -cat >> config.cmake << "EOF" -set(ENABLE_CUDA 1) -set(ENABLE_HIP 1) -set(ENABLE_OPENCL 1) -set(GPUCA_CONFIG_ONNX 1) -set(GPUCA_BUILD_EVENT_DISPLAY 0) +if [[ $GPUCA_STANDALONE_CI == 1 ]]; then + cat >> config.cmake << "EOF" + set(ENABLE_CUDA 1) + set(ENABLE_HIP 1) + set(ENABLE_OPENCL 1) + set(GPUCA_CONFIG_ONNX 1) + set(GPUCA_BUILD_EVENT_DISPLAY 0) + set(GPUCA_CONFIG_WERROR 1) EOF +fi cmake -DCMAKE_INSTALL_PREFIX=../ $1/GPU/GPUTracking/Standalone make ${JOBS+-j $JOBS} install popd diff --git a/GPU/GPUTracking/Standalone/cmake/config.cmake b/GPU/GPUTracking/Standalone/cmake/config.cmake index 77ce9c9e77fca..88fe418d40e5b 100644 --- a/GPU/GPUTracking/Standalone/cmake/config.cmake +++ b/GPU/GPUTracking/Standalone/cmake/config.cmake @@ -38,4 +38,5 @@ set(CUDA_COMPUTETARGET "default") # 86 89 #set(GPUCA_RTC_NO_COMPILED_KERNELS 1) #set(GPUCA_KERNEL_RESOURCE_USAGE_VERBOSE 1) #set(GPUCA_CONFIG_COMPILER gcc) # gcc / clang +#set(GPUCA_CONFIG_WERROR 1) #add_definitions(-DGPUCA_GPU_DEBUG_PRINT) diff --git a/GPU/TPCFastTransformation/Spline2D.h b/GPU/TPCFastTransformation/Spline2D.h index 788816f73d6dd..19f9fc7b55b91 100644 --- a/GPU/TPCFastTransformation/Spline2D.h +++ b/GPU/TPCFastTransformation/Spline2D.h @@ -22,7 +22,7 @@ #include "FlatObject.h" #include "GPUCommonDef.h" -#if !defined(__ROOTCLING__) && !defined(GPUCA_GPUCODE) && !defined(GPUCA_NO_VC) +#if !defined(__CLING__) && !defined(G__ROOT) && !defined(GPUCA_GPUCODE) && !defined(GPUCA_NO_VC) #include #include #endif diff --git a/GPU/TPCFastTransformation/Spline2DSpec.h b/GPU/TPCFastTransformation/Spline2DSpec.h index e7a9db8e6ae9c..b4d351e8d0407 100644 --- a/GPU/TPCFastTransformation/Spline2DSpec.h +++ b/GPU/TPCFastTransformation/Spline2DSpec.h @@ -22,7 +22,7 @@ #include "GPUCommonDef.h" #include "SplineUtil.h" -#if !defined(__ROOTCLING__) && !defined(GPUCA_GPUCODE) && !defined(GPUCA_NO_VC) +#if !defined(__CLING__) && !defined(G__ROOT) && !defined(GPUCA_GPUCODE) && !defined(GPUCA_NO_VC) #include #include #endif diff --git a/GPU/TPCFastTransformation/SplineSpec.h b/GPU/TPCFastTransformation/SplineSpec.h index 1af427dee503b..744be943181db 100644 --- a/GPU/TPCFastTransformation/SplineSpec.h +++ b/GPU/TPCFastTransformation/SplineSpec.h @@ -22,7 +22,7 @@ #include "GPUCommonDef.h" #include "SplineUtil.h" -#if !defined(__ROOTCLING__) && !defined(GPUCA_GPUCODE) && !defined(GPUCA_NO_VC) +#if !defined(__CLING__) && !defined(G__ROOT) && !defined(GPUCA_GPUCODE) && !defined(GPUCA_NO_VC) #include #include #endif diff --git a/GPU/TPCFastTransformation/devtools/IrregularSpline2D3D.h b/GPU/TPCFastTransformation/devtools/IrregularSpline2D3D.h index d60326ddf76ab..33d6874f40aae 100644 --- a/GPU/TPCFastTransformation/devtools/IrregularSpline2D3D.h +++ b/GPU/TPCFastTransformation/devtools/IrregularSpline2D3D.h @@ -21,7 +21,7 @@ #include "FlatObject.h" #include "GPUCommonDef.h" -#if !defined(__ROOTCLING__) && !defined(GPUCA_GPUCODE) && !defined(GPUCA_NO_VC) +#if !defined(__CLING__) && !defined(G__ROOT) && !defined(GPUCA_GPUCODE) && !defined(GPUCA_NO_VC) #include #include #endif @@ -329,7 +329,7 @@ GPUdi() void IrregularSpline2D3D::getSplineVec(const float* correctedData, float // Same as getSpline, but using vectorized calculation. // \param correctedData should be at least 128-bit aligned -#if !defined(__ROOTCLING__) && !defined(GPUCA_GPUCODE) && !defined(GPUCA_NO_VC) +#if !defined(__CLING__) && !defined(G__ROOT) && !defined(GPUCA_GPUCODE) && !defined(GPUCA_NO_VC) const IrregularSpline1D& gridU = getGridU(); const IrregularSpline1D& gridV = getGridV(); int32_t nu = gridU.getNumberOfKnots(); diff --git a/GPU/TPCFastTransformation/devtools/SemiregularSpline2D3D.h b/GPU/TPCFastTransformation/devtools/SemiregularSpline2D3D.h index 954738fa74f1b..835a525239346 100644 --- a/GPU/TPCFastTransformation/devtools/SemiregularSpline2D3D.h +++ b/GPU/TPCFastTransformation/devtools/SemiregularSpline2D3D.h @@ -23,7 +23,7 @@ #include "RegularSpline1D.h" #include "FlatObject.h" -#if !defined(__ROOTCLING__) && !defined(GPUCA_GPUCODE) && !defined(GPUCA_NO_VC) +#if !defined(__CLING__) && !defined(G__ROOT) && !defined(GPUCA_GPUCODE) && !defined(GPUCA_NO_VC) #include #include #endif @@ -398,7 +398,7 @@ inline void SemiregularSpline2D3D::getSplineVec(const float* correctedData, floa // Same as getSpline, but using vectorized calculation. // \param correctedData should be at least 128-bit aligned -#if !defined(__ROOTCLING__) && !defined(GPUCA_GPUCODE) && !defined(GPUCA_NO_VC) +#if !defined(__CLING__) && !defined(G__ROOT) && !defined(GPUCA_GPUCODE) && !defined(GPUCA_NO_VC) //&& !defined(__CLING__) /* Idea: There are 16 knots important for (u, v).