From ee06859dffa6417875b5b69f1f88bba85f252a68 Mon Sep 17 00:00:00 2001 From: David Rohr Date: Wed, 4 Jun 2025 16:20:27 +0200 Subject: [PATCH] GPU: Add script for standalone build in the CI --- GPU/GPUTracking/Standalone/cmake/build.sh | 18 ++++++++++++++++++ GPU/documentation/build-standalone.md | 2 ++ GPU/documentation/deterministic-mode.md | 1 + 3 files changed, 21 insertions(+) create mode 100755 GPU/GPUTracking/Standalone/cmake/build.sh diff --git a/GPU/GPUTracking/Standalone/cmake/build.sh b/GPU/GPUTracking/Standalone/cmake/build.sh new file mode 100755 index 0000000000000..d2e4ae08c1575 --- /dev/null +++ b/GPU/GPUTracking/Standalone/cmake/build.sh @@ -0,0 +1,18 @@ +#!/bin/bash +if [[ -z $1 ]]; then + echo "Please provide Sourcedir as command line argument" + exit 1 +fi +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) +EOF +cmake -DCMAKE_INSTALL_PREFIX=../ $1/GPU/GPUTracking/Standalone +make ${JOBS+-j $JOBS} install +popd diff --git a/GPU/documentation/build-standalone.md b/GPU/documentation/build-standalone.md index d6aa45d749568..451ce659dc7f0 100644 --- a/GPU/documentation/build-standalone.md +++ b/GPU/documentation/build-standalone.md @@ -35,6 +35,8 @@ And there are plenty of additional settings to enable/disable event display, qa, This will create the `ca` binary in `~/standalone`, which is basically the same as the `o2-gpu-standalone-benchmark`, but built outside of O2. +As an exacmple you can also have a look at [build.sh](https://github.com/AliceO2Group/AliceO2/blob/dev/GPU/GPUTracking/Standalone/cmake/build.sh), which is used by the CI. + # Running The following command lines will use `./ca`, in case you use the executable from the O2 build, please replace by `o2-gpu-standalone-benchmark`. diff --git a/GPU/documentation/deterministic-mode.md b/GPU/documentation/deterministic-mode.md index 9c8db2930ceaa..53f8a1eb27711 100644 --- a/GPU/documentation/deterministic-mode.md +++ b/GPU/documentation/deterministic-mode.md @@ -12,6 +12,7 @@ This is steered by 3 options: - The `--PROCdeterministicGPUReconstruction` command line option / `GPU_proc.deterministicGPUReconstruction` `--configKeyValue` setting : Run time setting. - The `--RTCdeterministic` command line option / `GPU_proc_rtc.deterministic` `--configKeyValue` setting. (Auto-enabled by the `deterministicGPUReconstruction` setting.) : Compile-time setting for RTC code. +Note that enabling a single setting will not result in fully deterministic behavior! Each setting enables different deterministic aspects! In order to be fully deterministic, all settings must be enabled, where the RTC setting is automatically enabled if not explicitly disabled. `GPUCA_DETERMINISTIC_MODE` has multiple levels, which are described here: [FindO2GPU.cmake](https://github.com/AliceO2Group/AliceO2/blob/80a80a17f5a1d9cb77743e2a39b15b653fe1a4f9/dependencies/FindO2GPU.cmake#L72).