@@ -14,36 +14,46 @@ jobs:
1414 strategy :
1515 fail-fast : false
1616 matrix :
17- name : [nvidia-h100, nvidia-l40s, amd-mi300x, amd-w7900]
17+ name : [cpu, nvidia-h100, nvidia-l40s, amd-mi300x, amd-w7900]
1818 include :
19+ - name : cpu
20+ runner : cern-nextgen-h100
21+ cmake_args : -DENABLE_CUDA=0 -DENABLE_HIP=0
22+ profiler_runs : 42
23+ standalone_runs : 42
24+ cpu_gpu : " -c"
1925 - name : nvidia-h100
2026 runner : cern-nextgen-h100
2127 cmake_args : -DENABLE_CUDA=1 -DENABLE_HIP=0 -DCUDA_COMPUTETARGET=90
2228 profiler_runs : 21
2329 standalone_runs : 42
30+ cpu_gpu : " -g --memSize 20000000000"
2431 - name : nvidia-l40s
2532 runner : cern-nextgen-l40s
2633 cmake_args : -DENABLE_CUDA=1 -DENABLE_HIP=0 -DCUDA_COMPUTETARGET=89
2734 profiler_runs : 42
2835 standalone_runs : 42
36+ cpu_gpu : " -g --memSize 20000000000"
2937 - name : amd-mi300x
3038 runner : cern-nextgen-mi300x
3139 cmake_args : -DENABLE_CUDA=0 -DENABLE_HIP=1 -DHIP_AMDGPUTARGET=gfx942
3240 profiler_runs : 42
3341 standalone_runs : 42
42+ cpu_gpu : " -g --memSize 20000000000"
3443 - name : amd-w7900
3544 runner : cern-nextgen-w7900
3645 cmake_args : -DENABLE_CUDA=0 -DENABLE_HIP=1 -DHIP_AMDGPUTARGET=gfx1100
3746 profiler_runs : 42
3847 standalone_runs : 42
48+ cpu_gpu : " -g --memSize 20000000000"
3949 env :
4050 WORK_DIR : /cvmfs/alice.cern.ch
4151 ALIBUILD_ARCH_PREFIX : el9-x86_64/Packages
4252 MODULEPATH : /cvmfs/alice.cern.ch/etc/toolchain/modulefiles/el9-x86_64:/cvmfs/alice.cern.ch/el9-x86_64/Modules/modulefiles
4353 STANDALONE_DIR : /root/standalone
4454 BENCHMARK_CSV : ${{ matrix.name }}.csv
4555 PROFILER_CSV : results_${{ matrix.name }}.csv
46- TIMING_CA : ./ca -e 50kHz -g --seed 0 --memSize 15000000000 --sync --debug 1 # Add --PROCdebugMarkdown 1 --runs 42 --runsInit 2 --PROCresetTimers 1 for benchmark runs
56+ TIMING_CA : ./ca -e 50kHz ${{ matrix.cpu_gpu }} --seed 0 --sync --debug 1 # Add --PROCdebugMarkdown 1 --runs 42 --runsInit 2 --PROCresetTimers 1 for benchmark runs
4757 LD_LIBRARY_PATH : /usr/local/cuda-13.0/compat
4858
4959 name : ${{ matrix.name }}
@@ -75,21 +85,21 @@ jobs:
7585 env :
7686 DETERMINISTIC_MODE : GPU
7787
78- - name : Test GPU Track Reconstruction
88+ - name : Test Track Reconstruction
7989 run : |
8090 source /etc/profile.d/modules.sh
8191 module load ninja/fortran-v1.11.1.g9-15 Vc/1.4.5-10 boost/v1.83.0-alice2-57 fmt/11.1.2-14 CMake/v3.31.6-10 ms_gsl/4.2.1-3 Clang/v20.1.7-9 TBB/v2022.3.0-3 ROOT/v6-36-04-alice9-15 ONNXRuntime/v1.22.0-71 GLFW/3.3.2-25
8292 cd ${STANDALONE_DIR}
83- ${STANDALONE_DIR}/ca -e o2-simple -g --seed 0 --memSize 20000000000 --sync --runs 1 --RTCenable --PROCdeterministicGPUReconstruction 1 --RTCoptConstexpr 1 --RTCoptSpecialCode 1 --debug 6
84- cmp ${STANDALONE_DIR}/GPU.out ${STANDALONE_DIR}/o2-simple-GPU .out
85- rm -rf ${STANDALONE_DIR}/GPU.out ${STANDALONE_DIR}/o2-simple-GPU .out ${STANDALONE_DIR}/events/o2-simple ${STANDALONE_DIR}/build
93+ ${STANDALONE_DIR}/ca -e o2-simple ${{ matrix.cpu_gpu }} --seed 0 --sync --runs 1 --RTCenable --PROCdeterministicGPUReconstruction 1 --RTCoptConstexpr 1 --RTCoptSpecialCode 1 --debug 6
94+ cmp ${STANDALONE_DIR}/* .out
95+ rm -rf ${STANDALONE_DIR}/* .out ${STANDALONE_DIR}/events/o2-simple ${STANDALONE_DIR}/build
8696
8797 - name : Build Non-Deterministic
8898 run : *build
8999 env :
90100 DETERMINISTIC_MODE : OFF
91101
92- - name : Benchmark GPU Track Reconstruction
102+ - name : Benchmark Track Reconstruction
93103 run : |
94104 source /etc/profile.d/modules.sh
95105 module load ninja/fortran-v1.11.1.g9-15 Vc/1.4.5-10 boost/v1.83.0-alice2-57 fmt/11.1.2-14 CMake/v3.31.6-10 ms_gsl/4.2.1-3 Clang/v20.1.7-9 TBB/v2022.3.0-3 ROOT/v6-36-04-alice9-15 ONNXRuntime/v1.22.0-71 GLFW/3.3.2-25
@@ -149,3 +159,4 @@ jobs:
149159 echo -e "\n\n" >> ${GITHUB_STEP_SUMMARY}
150160 python3 ${GITHUB_WORKSPACE}/.github/scripts/csv_to_md.py --runs ${{ matrix.standalone_runs }} --baseline ${STANDALONE_DIR}/baseline/${BENCHMARK_CSV} --current /root/${BENCHMARK_CSV} >> ${GITHUB_STEP_SUMMARY}
151161 rm -rf ${STANDALONE_DIR}/baseline
162+ if : ${{ matrix.name != 'cpu' }}
0 commit comments