21
21
runner :
22
22
required : false
23
23
type : string
24
- default : ' L0_PERF'
24
+ default : ' L0_PERF_PVC'
25
+ compatibility :
26
+ required : false
27
+ type : string
28
+ default : 0
29
+ description : |
30
+ Set it to 1 to run compatibility sycl benchmarks
25
31
26
32
permissions :
27
33
contents : read
@@ -128,13 +134,14 @@ jobs:
128
134
129
135
- name : Install benchmarking scripts deps
130
136
run : |
131
- python -m venv .venv
137
+ python3 -m venv .venv
132
138
source .venv/bin/activate
133
139
pip install -r ${{github.workspace}}/sc/devops/scripts/benchmarks/requirements.txt
134
140
135
141
- name : Set core range and GPU mask
136
142
run : |
137
- # Compute the core range for the second NUMA node; first node is for SYCL/UR jobs.
143
+ # On the L0_PERF_PVC runner, compute the core range for the second NUMA node;
144
+ # first node is for SYCL/UR jobs.
138
145
# Skip the first 4 cores - the kernel is likely to schedule more work on these.
139
146
CORES=$(lscpu | awk '
140
147
/NUMA node1 CPU|On-line CPU/ {line=$0}
@@ -147,20 +154,57 @@ jobs:
147
154
echo "Selected core: $CORES"
148
155
echo "CORES=$CORES" >> $GITHUB_ENV
149
156
150
- ZE_AFFINITY_MASK=1
157
+ ZE_AFFINITY_MASK=${{ inputs.runner == 'L0_PERF_ARC' && '0' || '1' }}
151
158
echo "ZE_AFFINITY_MASK=$ZE_AFFINITY_MASK" >> $GITHUB_ENV
152
159
153
- - name : Run UMF benchmarks
160
+ - name : Download latest sycl
161
+ if : inputs.compatibility == 1
162
+ run : |
163
+ llvm_tag=$(curl -s https://api.github.com/repos/intel/llvm/releases | awk -F'"' '/"tag_name": "nightly/ {print $4; exit}')
164
+ download_url="https://github.com/intel/llvm/releases/download/${llvm_tag}/sycl_linux.tar.gz"
165
+ echo "llvm tag: $llvm_tag"
166
+ wget --no-verbose $download_url -O sycl_linux.tar.gz
167
+
168
+ - name : Unpack sycl
169
+ if : inputs.compatibility == 1
170
+ run : |
171
+ mkdir -p sycl
172
+ tar -xzf sycl_linux.tar.gz -C sycl --strip-components=1
173
+ rm sycl_linux.tar.gz
174
+ echo "SYCL_DIR=${{ github.workspace }}/sycl" >> $GITHUB_ENV
175
+ echo "${{ github.workspace }}/sycl/bin" >> $GITHUB_PATH
176
+ echo "LD_LIBRARY_PATH=${{ github.workspace }}/sycl/lib:$LD_LIBRARY_PATH" >> $GITHUB_ENV
177
+
178
+ - name : Remove UMF libraries from sycl
179
+ if : inputs.compatibility == 1
180
+ run : rm -f ${{ env.SYCL_DIR }}/lib/libumf*
181
+
182
+ - name : Copy UMF libraries to sycl
183
+ if : inputs.compatibility == 1
184
+ run : |
185
+ cp ${{ env.BUILD_DIR }}/lib/libumf* ${{ env.SYCL_DIR }}/lib/
186
+
187
+ - name : Run sycl-ls
188
+ if : inputs.compatibility == 1
189
+ env :
190
+ LD_LIBRARY_PATH : ${{ env.SYCL_DIR }}/lib
191
+ SYCL_UR_TRACE : 1
192
+ SYCL_UR_USE_LEVEL_ZERO_V2 : 1
193
+ run : ${{ env.SYCL_DIR }}/bin/sycl-ls
194
+
195
+ - name : Run benchmarks
154
196
id : benchmarks
197
+ env :
198
+ LD_LIBRARY_PATH : ${{ env.SYCL_DIR }}/lib
199
+ CPATH : ${{ env.SYCL_DIR }}/include
155
200
run : >
156
201
source .venv/bin/activate &&
157
202
taskset -c ${{ env.CORES }} ./sc/devops/scripts/benchmarks/main.py
158
203
~/bench_workdir_umf
159
- --umf ${{env.BUILD_DIR}}
160
- --timeout 3000
161
- --output-html remote
162
204
--results-dir ${{ github.workspace }}/results-repo
163
205
--output-markdown
206
+ ${{ (inputs.compatibility == 0) && format('--umf {0} --timeout 3000 --output-html remote', env.BUILD_DIR) || '' }}
207
+ ${{ (inputs.compatibility == 1) && format('--sycl {0} --timeout 7200', env.SYCL_DIR) || '' }}
164
208
${{ env.bench_params }}
165
209
166
210
# In case it failed to add a comment, we can still print the results.
@@ -196,6 +240,7 @@ jobs:
196
240
197
241
- name : Commit data.json and results directory
198
242
working-directory : results-repo
243
+ if : inputs.compatibility == 0
199
244
run : |
200
245
git config --global user.name "GitHub Actions Bot"
201
246
git config --global user.email "actions@github.com"
0 commit comments