Skip to content

Commit 3666ce3

Browse files
Avoid code repetition
1 parent 4521aec commit 3666ce3

File tree

1 file changed

+29
-123
lines changed

1 file changed

+29
-123
lines changed

.github/workflows/standalone-benchmark.yml

Lines changed: 29 additions & 123 deletions
Original file line numberDiff line numberDiff line change
@@ -8,158 +8,64 @@ on:
88
- '**'
99

1010
jobs:
11-
nvidia-h100:
12-
runs-on: cern-nextgen-h100
11+
benchmark:
12+
runs-on: ${{ config.runner }}
1313
container: registry.cern.ch/alisw/slc9-gpu-builder:latest
14-
steps:
15-
- name: Checkout Repository
16-
uses: actions/checkout@v4
17-
- name: Build and Run
18-
run: |
19-
. $WORK_DIR/$ALIBUILD_ARCH_PREFIX/date/v3.0.3-1/etc/profile.d/init.sh
20-
. $WORK_DIR/$ALIBUILD_ARCH_PREFIX/pytorch_cpuinfo/alice1-1/etc/profile.d/init.sh
21-
. $WORK_DIR/$ALIBUILD_ARCH_PREFIX/O2/daily-20250805-0000-1/etc/profile.d/init.sh
22-
export ROOT_INCLUDE_PATH=$(echo "$ROOT_INCLUDE_PATH" | cut -d: -f3-) # Remove first two paths (O2)
23-
24-
mkdir -p ${STANDALONE_DIR}
25-
curl -o /root/events.tar.xz https://cernbox.cern.ch/remote.php/dav/public-files/cuQAwSojyDrl6FR/events.tar.xz
26-
tar -xf /root/events.tar.xz -C ${STANDALONE_DIR}
27-
rm /root/events.tar.xz
28-
29-
cmake -B $BUILD_DIR -DENABLE_CUDA=1 -DENABLE_HIP=0 -DENABLE_OPENCL=0 -DGPUCA_BUILD_EVENT_DISPLAY=0 -DCUDA_COMPUTETARGET=90 -DCMAKE_INSTALL_PREFIX=${STANDALONE_DIR} ${GITHUB_WORKSPACE}/GPU/GPUTracking/Standalone/
30-
cd $BUILD_DIR
31-
make install -j8
32-
cd ${STANDALONE_DIR}
33-
${STANDALONE_DIR}/ca -e o2-simple -g --gpuType CUDA --gpuDevice 0 --debug 1 > ${ARTIFACT_FILE}
34-
cat ${ARTIFACT_FILE}
35-
env:
36-
MODULEPATH: /cvmfs/alice.cern.ch/etc/toolchain/modulefiles/el9-x86_64:/cvmfs/alice.cern.ch/el9-x86_64/Modules/modulefiles
37-
STANDALONE_DIR: /root/standalone
38-
BUILD_DIR: /root/standalone/build
39-
ARTIFACT_FILE: /root/artifact.txt
40-
WORK_DIR: /cvmfs/alice.cern.ch
41-
ALIBUILD_ARCH_PREFIX: el9-x86_64/Packages
42-
DATE_REVISION: 1 # HACK: Skip broken dependency
43-
PYTORCH_CPUINFO_REVISION: 1 # HACK: Skip broken dependency
44-
- name: Upload Artifact
45-
uses: actions/upload-artifact@v4
46-
with:
47-
name: nvidia-h100-artifact
48-
path: /root/artifact.txt
14+
strategy:
15+
config:
16+
name: [nvidia-h100, nvidia-l40s, amd-mi300x, amd-w7900]
17+
include:
18+
- name: nvidia-h100
19+
runner: cern-nextgen-h100
20+
cmake_args: -DENABLE_CUDA=1 -DENABLE_HIP=0 -DENABLE_OPENCL=0 -DCUDA_COMPUTETARGET=90
21+
ca_args: --gpuType CUDA --gpuDevice 0
22+
- name: nvidia-l40s
23+
runner: cern-nextgen-l40s
24+
cmake_args: -DENABLE_CUDA=1 -DENABLE_HIP=0 -DENABLE_OPENCL=0 -DCUDA_COMPUTETARGET=89
25+
ca_args: --gpuType CUDA --gpuDevice 0
26+
- name: amd-mi300x
27+
runner: cern-nextgen-mi300x
28+
cmake_args: -DENABLE_CUDA=0 -DENABLE_HIP=1 -DENABLE_OPENCL=0 -DHIP_AMDGPUTARGET=gfx942
29+
ca_args: --gpuType HIP --gpuDevice 0
30+
- name: amd-w7900
31+
runner: cern-nextgen-w7900
32+
cmake_args: -DENABLE_CUDA=0 -DENABLE_HIP=1 -DENABLE_OPENCL=0 -DHIP_AMDGPUTARGET=gfx1100
33+
ca_args: --gpuType HIP --gpuDevice 0
4934

50-
nvidia-l40s:
51-
runs-on: cern-nextgen-l40s
52-
container: registry.cern.ch/alisw/slc9-gpu-builder:latest
35+
name: Benchmark on ${{ config.name }}
5336
steps:
5437
- name: Checkout Repository
5538
uses: actions/checkout@v4
56-
- name: Build and Run
57-
run: |
58-
. $WORK_DIR/$ALIBUILD_ARCH_PREFIX/date/v3.0.3-1/etc/profile.d/init.sh
59-
. $WORK_DIR/$ALIBUILD_ARCH_PREFIX/pytorch_cpuinfo/alice1-1/etc/profile.d/init.sh
60-
. $WORK_DIR/$ALIBUILD_ARCH_PREFIX/O2/daily-20250805-0000-1/etc/profile.d/init.sh
61-
export ROOT_INCLUDE_PATH=$(echo "$ROOT_INCLUDE_PATH" | cut -d: -f3-) # Remove first two paths (O2)
62-
63-
mkdir -p ${STANDALONE_DIR}
64-
curl -o /root/events.tar.xz https://cernbox.cern.ch/remote.php/dav/public-files/cuQAwSojyDrl6FR/events.tar.xz
65-
tar -xf /root/events.tar.xz -C ${STANDALONE_DIR}
66-
rm /root/events.tar.xz
6739

68-
cmake -B $BUILD_DIR -DENABLE_CUDA=1 -DENABLE_HIP=0 -DENABLE_OPENCL=0 -DGPUCA_BUILD_EVENT_DISPLAY=0 -DCUDA_COMPUTETARGET=89 -DCMAKE_INSTALL_PREFIX=${STANDALONE_DIR} ${GITHUB_WORKSPACE}/GPU/GPUTracking/Standalone/
69-
cd $BUILD_DIR
70-
make install -j8
71-
cd ${STANDALONE_DIR}
72-
${STANDALONE_DIR}/ca -e o2-simple -g --gpuType CUDA --gpuDevice 0 --debug 1 > ${ARTIFACT_FILE}
73-
cat ${ARTIFACT_FILE}
74-
env:
75-
MODULEPATH: /cvmfs/alice.cern.ch/etc/toolchain/modulefiles/el9-x86_64:/cvmfs/alice.cern.ch/el9-x86_64/Modules/modulefiles
76-
STANDALONE_DIR: /root/standalone
77-
BUILD_DIR: /root/standalone/build
78-
ARTIFACT_FILE: /root/artifact.txt
79-
WORK_DIR: /cvmfs/alice.cern.ch
80-
ALIBUILD_ARCH_PREFIX: el9-x86_64/Packages
81-
DATE_REVISION: 1 # HACK: Skip broken dependency
82-
PYTORCH_CPUINFO_REVISION: 1 # HACK: Skip broken dependency
83-
- name: Upload Artifact
84-
uses: actions/upload-artifact@v4
85-
with:
86-
name: nvidia-l40s-artifact
87-
path: /root/artifact.txt
88-
89-
amd-mi300x:
90-
runs-on: cern-nextgen-mi300x
91-
container: registry.cern.ch/alisw/slc9-gpu-builder:latest
92-
steps:
93-
- name: Checkout Repository
94-
uses: actions/checkout@v4
9540
- name: Build and Run
9641
run: |
9742
. $WORK_DIR/$ALIBUILD_ARCH_PREFIX/date/v3.0.3-1/etc/profile.d/init.sh
9843
. $WORK_DIR/$ALIBUILD_ARCH_PREFIX/pytorch_cpuinfo/alice1-1/etc/profile.d/init.sh
9944
. $WORK_DIR/$ALIBUILD_ARCH_PREFIX/O2/daily-20250805-0000-1/etc/profile.d/init.sh
100-
export ROOT_INCLUDE_PATH=$(echo "$ROOT_INCLUDE_PATH" | cut -d: -f3-) # Remove first two paths (O2)
45+
export ROOT_INCLUDE_PATH=$(echo "$ROOT_INCLUDE_PATH" | cut -d: -f3-)
10146
10247
mkdir -p ${STANDALONE_DIR}
10348
curl -o /root/events.tar.xz https://cernbox.cern.ch/remote.php/dav/public-files/cuQAwSojyDrl6FR/events.tar.xz
10449
tar -xf /root/events.tar.xz -C ${STANDALONE_DIR}
10550
rm /root/events.tar.xz
10651
107-
cmake -B $BUILD_DIR -DENABLE_CUDA=0 -DENABLE_HIP=1 -DENABLE_OPENCL=0 -DGPUCA_BUILD_EVENT_DISPLAY=0 -DHIP_AMDGPUTARGET=gfx942 -DCMAKE_INSTALL_PREFIX=${STANDALONE_DIR} ${GITHUB_WORKSPACE}/GPU/GPUTracking/Standalone/
52+
cmake -B $BUILD_DIR ${{ config.cmake_args }} -DGPUCA_BUILD_EVENT_DISPLAY=0 -DCMAKE_INSTALL_PREFIX=${STANDALONE_DIR} ${GITHUB_WORKSPACE}/GPU/GPUTracking/Standalone/
10853
cd $BUILD_DIR
10954
make install -j8
11055
cd ${STANDALONE_DIR}
111-
${STANDALONE_DIR}/ca -e o2-simple -g --gpuType HIP --gpuDevice 0 --debug 1 > ${ARTIFACT_FILE}
56+
${STANDALONE_DIR}/ca -e o2-simple -g ${{ config.ca_args }} --debug 1 > ${ARTIFACT_FILE}
11257
cat ${ARTIFACT_FILE}
11358
env:
114-
MODULEPATH: /cvmfs/alice.cern.ch/etc/toolchain/modulefiles/el9-x86_64:/cvmfs/alice.cern.ch/el9-x86_64/Modules/modulefiles
11559
STANDALONE_DIR: /root/standalone
11660
BUILD_DIR: /root/standalone/build
11761
ARTIFACT_FILE: /root/artifact.txt
11862
WORK_DIR: /cvmfs/alice.cern.ch
11963
ALIBUILD_ARCH_PREFIX: el9-x86_64/Packages
120-
DATE_REVISION: 1 # HACK: Skip broken dependency
121-
PYTORCH_CPUINFO_REVISION: 1 # HACK: Skip broken dependency
122-
- name: Upload Artifact
123-
uses: actions/upload-artifact@v4
124-
with:
125-
name: amd-mi300x-artifact
126-
path: /root/artifact.txt
64+
DATE_REVISION: 1
65+
PYTORCH_CPUINFO_REVISION: 1
12766

128-
amd-w7900:
129-
runs-on: cern-nextgen-w7900
130-
container: registry.cern.ch/alisw/slc9-gpu-builder:latest
131-
steps:
132-
- name: Checkout Repository
133-
uses: actions/checkout@v4
134-
- name: Build and Run
135-
run: |
136-
. $WORK_DIR/$ALIBUILD_ARCH_PREFIX/date/v3.0.3-1/etc/profile.d/init.sh
137-
. $WORK_DIR/$ALIBUILD_ARCH_PREFIX/pytorch_cpuinfo/alice1-1/etc/profile.d/init.sh
138-
. $WORK_DIR/$ALIBUILD_ARCH_PREFIX/O2/daily-20250805-0000-1/etc/profile.d/init.sh
139-
export ROOT_INCLUDE_PATH=$(echo "$ROOT_INCLUDE_PATH" | cut -d: -f3-) # Remove first two paths (O2)
140-
141-
mkdir -p ${STANDALONE_DIR}
142-
curl -o /root/events.tar.xz https://cernbox.cern.ch/remote.php/dav/public-files/cuQAwSojyDrl6FR/events.tar.xz
143-
tar -xf /root/events.tar.xz -C ${STANDALONE_DIR}
144-
rm /root/events.tar.xz
145-
146-
cmake -B $BUILD_DIR -DENABLE_CUDA=0 -DENABLE_HIP=1 -DENABLE_OPENCL=0 -DGPUCA_BUILD_EVENT_DISPLAY=0 -DHIP_AMDGPUTARGET=gfx1100 -DCMAKE_INSTALL_PREFIX=${STANDALONE_DIR} ${GITHUB_WORKSPACE}/GPU/GPUTracking/Standalone/
147-
cd $BUILD_DIR
148-
make install -j8
149-
cd ${STANDALONE_DIR}
150-
${STANDALONE_DIR}/ca -e o2-simple -g --gpuType HIP --gpuDevice 0 --debug 1 > ${ARTIFACT_FILE}
151-
cat ${ARTIFACT_FILE}
152-
env:
153-
MODULEPATH: /cvmfs/alice.cern.ch/etc/toolchain/modulefiles/el9-x86_64:/cvmfs/alice.cern.ch/el9-x86_64/Modules/modulefiles
154-
STANDALONE_DIR: /root/standalone
155-
BUILD_DIR: /root/standalone/build
156-
ARTIFACT_FILE: /root/artifact.txt
157-
WORK_DIR: /cvmfs/alice.cern.ch
158-
ALIBUILD_ARCH_PREFIX: el9-x86_64/Packages
159-
DATE_REVISION: 1 # HACK: Skip broken dependency
160-
PYTORCH_CPUINFO_REVISION: 1 # HACK: Skip broken dependency
16167
- name: Upload Artifact
16268
uses: actions/upload-artifact@v4
16369
with:
164-
name: amd-w7900-artifact
70+
name: ${{ config.name }}-artifact
16571
path: /root/artifact.txt

0 commit comments

Comments
 (0)