Skip to content

Commit 9e0a03c

Browse files
committed
Add sycl benchmark to Nightly benchmark workflow
1 parent 58ceb32 commit 9e0a03c

File tree

2 files changed

+51
-7
lines changed

2 files changed

+51
-7
lines changed

.github/workflows/nightly.yml

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -353,5 +353,20 @@ jobs:
353353
pr_no: '0'
354354
bench_script_params: '--save Baseline_PVC'
355355

356+
Benchmarks-sycl:
357+
uses: ./.github/workflows/reusable_benchmarks.yml
358+
permissions:
359+
contents: write
360+
pull-requests: write
361+
with:
362+
pr_no: '0'
363+
bench_script_params: >-
364+
--adapter level_zero_v2
365+
--compute-runtime
366+
--build-igc
367+
--preset Minimal
368+
--exit-on-failure
369+
runner: 'L0_PERF_GPU'
370+
356371
SYCL:
357372
uses: ./.github/workflows/reusable_sycl.yml

.github/workflows/reusable_benchmarks.yml

Lines changed: 36 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -128,13 +128,14 @@ jobs:
128128
129129
- name: Install benchmarking scripts deps
130130
run: |
131-
python -m venv .venv
131+
python3 -m venv .venv
132132
source .venv/bin/activate
133133
pip install -r ${{github.workspace}}/sc/devops/scripts/benchmarks/requirements.txt
134134
135135
- name: Set core range and GPU mask
136136
run: |
137-
# Compute the core range for the second NUMA node; first node is for SYCL/UR jobs.
137+
# On the L0_PERF runner, compute the core range for the second NUMA node;
138+
# first node is for SYCL/UR jobs.
138139
# Skip the first 4 cores - the kernel is likely to schedule more work on these.
139140
CORES=$(lscpu | awk '
140141
/NUMA node1 CPU|On-line CPU/ {line=$0}
@@ -147,20 +148,48 @@ jobs:
147148
echo "Selected core: $CORES"
148149
echo "CORES=$CORES" >> $GITHUB_ENV
149150
150-
ZE_AFFINITY_MASK=1
151+
ZE_AFFINITY_MASK=${{ inputs.runner == 'L0_PERF_GPU' && '0' || '1' }}
151152
echo "ZE_AFFINITY_MASK=$ZE_AFFINITY_MASK" >> $GITHUB_ENV
152153
153-
- name: Run UMF benchmarks
154+
- name: Download latest sycl
155+
run: |
156+
llvm_tag=$(curl -s https://api.github.com/repos/intel/llvm/releases | awk -F'"' '/"tag_name": "nightly/ {print $4; exit}')
157+
download_url="https://github.com/intel/llvm/releases/download/${llvm_tag}/sycl_linux.tar.gz"
158+
echo "llvm tag: $llvm_tag"
159+
wget --no-verbose $download_url -O sycl_linux.tar.gz
160+
161+
- name: Unpack sycl
162+
run: |
163+
mkdir -p sycl
164+
tar -xzf sycl_linux.tar.gz -C sycl --strip-components=1
165+
rm sycl_linux.tar.gz
166+
echo "SYCL_DIR=${{ github.workspace }}/sycl" >> $GITHUB_ENV
167+
echo "${{ github.workspace }}/sycl/bin" >> $GITHUB_PATH
168+
echo "LD_LIBRARY_PATH=${{ github.workspace }}/sycl/lib:$LD_LIBRARY_PATH" >> $GITHUB_ENV
169+
170+
- name: Remove UMF libraries from sycl
171+
run: rm -f ${{ env.SYCL_DIR }}/lib/libumf*
172+
173+
- name: Run sycl-ls
174+
env:
175+
LD_LIBRARY_PATH: ${{ env.SYCL_DIR }}/lib
176+
SYCL_UR_TRACE: 1
177+
SYCL_UR_USE_LEVEL_ZERO_V2: 1
178+
run: ${{ env.SYCL_DIR }}/bin/sycl-ls
179+
180+
- name: Run benchmarks
154181
id: benchmarks
182+
env:
183+
LD_LIBRARY_PATH: ${{ env.SYCL_DIR }}/lib
184+
CPATH: ${{ env.SYCL_DIR }}/include
155185
run: >
156186
source .venv/bin/activate &&
157187
taskset -c ${{ env.CORES }} ./sc/devops/scripts/benchmarks/main.py
158188
~/bench_workdir_umf
159-
--umf ${{env.BUILD_DIR}}
160-
--timeout 3000
161-
--output-html remote
162189
--results-dir ${{ github.workspace }}/results-repo
163190
--output-markdown
191+
${{ (inputs.runner == 'L0_PERF') && format('--umf {0} --timeout 3000 --output-html remote', env.BUILD_DIR) || '' }}
192+
${{ (inputs.runner == 'L0_PERF_GPU') && format('--sycl {0} --ur {0} --timeout 18000', env.SYCL_DIR) || '' }}
164193
${{ env.bench_params }}
165194
166195
# In case it failed to add a comment, we can still print the results.

0 commit comments

Comments
 (0)