Skip to content

Commit 1f4a931

Browse files
authored
Merge branch 'intel:sycl' into gromacs-bench
2 parents ac24577 + 599a9e3 commit 1f4a931

File tree

653 files changed

+11196
-25478
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

653 files changed

+11196
-25478
lines changed

.github/workflows/bandit.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ permissions:
1111

1212
jobs:
1313
bandit:
14+
if: github.repository == 'intel/llvm'
1415
name: Bandit
1516
runs-on: ubuntu-latest
1617
permissions:

.github/workflows/sycl-docs.yml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,13 @@ jobs:
4949
mkdir clang
5050
mv $GITHUB_WORKSPACE/build/tools/sycl/doc/html/* .
5151
mv $GITHUB_WORKSPACE/build/tools/clang/docs/html/* clang/
52+
cp -r $GITHUB_WORKSPACE/repo/devops/scripts/benchmarks/html benchmarks
5253
touch .nojekyll
54+
# Update benchmarking dashboard configuration
55+
cat << EOF > benchmarks/config.js
56+
remoteDataUrl = 'https://raw.githubusercontent.com/intel/llvm-ci-perf-results/refs/heads/unify-ci/data.json';
57+
defaultCompareNames = ["Baseline_PVC_L0"];
58+
EOF
5359
# Upload the generated docs as an artifact and deploy to GitHub Pages.
5460
- name: Upload artifact
5561
uses: actions/upload-pages-artifact@v3
Lines changed: 90 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,90 @@
1+
name: SYCL hardening check
2+
3+
permissions: read-all
4+
5+
on:
6+
workflow_call:
7+
inputs:
8+
sycl_linux_artifact:
9+
type: string
10+
sycl_linux_archive:
11+
type: string
12+
sycl_linux_decompress_command:
13+
type: string
14+
15+
sycl_windows_artifact:
16+
type: string
17+
sycl_windows_archive:
18+
type: string
19+
20+
jobs:
21+
hardening_check:
22+
runs-on: ubuntu-latest
23+
24+
steps:
25+
- name: Install hardening-check
26+
run: |
27+
sudo apt update
28+
sudo apt install -y devscripts
29+
30+
- name: Download SYCL toolchain
31+
uses: actions/download-artifact@v4
32+
with:
33+
name: ${{ inputs.sycl_linux_artifact }}
34+
35+
- name: Extract SYCL toolchain
36+
run: |
37+
mkdir toolchain
38+
tar -I '${{ inputs.sycl_linux_decompress_command }}' -xf ${{ inputs.sycl_linux_archive }} -C toolchain
39+
40+
- name: Perform checks
41+
run: |
42+
for file in ./toolchain/bin/*; do
43+
hardening-check "$file" | tee -a "./hardening-check.txt"
44+
done
45+
46+
for file in $(find ./toolchain/lib/ -type f -name "*.so*"); do
47+
hardening-check "$file" | tee -a "./hardening-check.txt"
48+
done
49+
50+
- uses: actions/upload-artifact@v4
51+
with:
52+
name: hardening-check
53+
path: hardening-check.txt
54+
55+
winchecksec:
56+
runs-on: windows-latest
57+
58+
steps:
59+
- name: Install winchecksec
60+
run: |
61+
curl -LO https://github.com/trailofbits/winchecksec/releases/download/v3.1.0/windows.x64.Release.zip
62+
mkdir winchecksec
63+
unzip "windows.x64.Release.zip" -d winchecksec
64+
65+
- name: Download SYCL toolchain
66+
uses: actions/download-artifact@v4
67+
with:
68+
name: ${{ inputs.sycl_windows_artifact }}
69+
70+
- name: Extract SYCL toolchain
71+
shell: bash
72+
run: |
73+
mkdir toolchain
74+
tar -xf ${{ inputs.sycl_windows_archive }} -C toolchain
75+
76+
- name: Download and check Windows artifacts
77+
shell: bash
78+
run: |
79+
for file in $(find ./toolchain/bin/ -type f -name "*.exe"); do
80+
./winchecksec/build/Release/winchecksec.exe "$file" | tee -a "./winchecksec.txt"
81+
done
82+
83+
for file in $(find ./toolchain/bin/ -type f -name "*.dll"); do
84+
./winchecksec/build/Release/winchecksec.exe "$file" | tee -a "./winchecksec.txt"
85+
done
86+
87+
- uses: actions/upload-artifact@v4
88+
with:
89+
name: winchecksec
90+
path: winchecksec.txt

.github/workflows/sycl-issues-ping-assignee.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ permissions: read-all
1818

1919
jobs:
2020
run:
21+
if: github.repository == 'intel/llvm'
2122
permissions:
2223
issues: write
2324
runs-on: ubuntu-latest

.github/workflows/sycl-linux-run-tests.yml

Lines changed: 34 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ on:
2525
required: False
2626
tests_selector:
2727
description: |
28-
Three possible options: "e2e", "cts", and "compute-benchmarks".
28+
Three possible options: "e2e", "cts", and "benchmarks".
2929
type: string
3030
default: "e2e"
3131

@@ -111,6 +111,33 @@ on:
111111
default: ''
112112
required: False
113113

114+
benchmark_upload_results:
115+
description: |
116+
Set to true to upload results to git repository storing benchmarking
117+
results.
118+
type: string
119+
default: 'false'
120+
required: False
121+
benchmark_save_name:
122+
description: |
123+
Save name to use for benchmark results: Save names are stored in
124+
metadata of result file, and are used to identify benchmark results in
125+
the same series (e.g. same configuration, same device, etc.).
126+
127+
Note: Currently, benchmark result filenames are in the format of
128+
<benchmark_save_name>_<Device>_<Backend>_YYYYMMDD_HHMMSS.json
129+
type: string
130+
default: ''
131+
required: False
132+
benchmark_preset:
133+
description: |
134+
Name of benchmark preset to run.
135+
136+
See /devops/scripts/benchmarks/presets.py for all presets available.
137+
type: string
138+
default: 'Minimal'
139+
required: False
140+
114141
workflow_dispatch:
115142
inputs:
116143
runner:
@@ -150,7 +177,7 @@ on:
150177
options:
151178
- e2e
152179
- cts
153-
- compute-benchmarks
180+
- benchmarks
154181

155182
env:
156183
description: |
@@ -303,11 +330,14 @@ jobs:
303330
target_devices: ${{ inputs.target_devices }}
304331
retention-days: ${{ inputs.retention-days }}
305332

306-
- name: Run compute-benchmarks on SYCL
307-
if: inputs.tests_selector == 'compute-benchmarks'
333+
- name: Run benchmarks
334+
if: inputs.tests_selector == 'benchmarks'
308335
uses: ./devops/actions/run-tests/benchmark
309336
with:
310337
target_devices: ${{ inputs.target_devices }}
338+
upload_results: ${{ inputs.benchmark_upload_results }}
339+
save_name: ${{ inputs.benchmark_save_name }}
340+
preset: ${{ inputs.benchmark_preset }}
311341
env:
312342
RUNNER_TAG: ${{ inputs.runner }}
313343
GITHUB_TOKEN: ${{ secrets.LLVM_SYCL_BENCHMARK_TOKEN }}

.github/workflows/sycl-nightly.yml

Lines changed: 18 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ jobs:
2323
# prefer widespread gzip compression.
2424
artifact_archive_name: sycl_linux.tar.gz
2525

26+
# Build used for performance testing only: not intended for testing
2627
linux_shared_build:
2728
if: github.repository == 'intel/llvm'
2829
uses: ./.github/workflows/sycl-linux-build.yml
@@ -31,7 +32,7 @@ jobs:
3132
build_cache_root: "/__w/"
3233
build_cache_suffix: sprod_shared
3334
build_artifact_suffix: sprod_shared
34-
build_configure_extra_args: '--shared-libs --hip --cuda --native_cpu'
35+
build_configure_extra_args: '--shared-libs --hip --cuda --native_cpu --no-assertions'
3536

3637
artifact_archive_name: sycl_linux_shared.tar.zst
3738

@@ -148,6 +149,8 @@ jobs:
148149
# We upload both Linux/Windows build via Github's "Releases"
149150
# functionality, make sure Linux/Windows names follow the same pattern.
150151
artifact_archive_name: sycl_windows.tar.gz
152+
# Disable the spirv-dis requirement as to not require SPIR-V Tools.
153+
build_configure_extra_args: -DLLVM_SPIRV_ENABLE_LIBSPIRV_DIS=off
151154

152155
e2e-win:
153156
needs: build-win
@@ -274,35 +277,30 @@ jobs:
274277
sycl_toolchain_archive: ${{ needs.build-win.outputs.artifact_archive_name }}
275278
sycl_cts_artifact: sycl_cts_bin_win
276279

277-
aggregate_benchmark_results:
278-
if: github.repository == 'intel/llvm' && !cancelled()
279-
name: Aggregate benchmark results and produce historical averages
280-
uses: ./.github/workflows/sycl-benchmark-aggregate.yml
281-
secrets:
282-
LLVM_SYCL_BENCHMARK_TOKEN: ${{ secrets.LLVM_SYCL_BENCHMARK_TOKEN }}
283-
with:
284-
lookback_days: 100
285-
286280
run-sycl-benchmarks:
287-
needs: [ubuntu2204_build, aggregate_benchmark_results]
281+
needs: [ubuntu2204_build]
288282
if: ${{ always() && !cancelled() && needs.ubuntu2204_build.outputs.build_conclusion == 'success' }}
289283
strategy:
290-
fail-fast: false
291284
matrix:
292285
include:
293-
- name: Run compute-benchmarks on L0 PVC
286+
- ref: ${{ github.sha }}
287+
save_name: Baseline
294288
runner: '["PVC_PERF"]'
295-
image_options: -u 1001 --device=/dev/dri -v /dev/dri/by-path:/dev/dri/by-path --privileged --cap-add SYS_ADMIN
296-
target_devices: level_zero:gpu
289+
backend: 'level_zero:gpu'
290+
preset: Minimal
297291
uses: ./.github/workflows/sycl-linux-run-tests.yml
298292
secrets: inherit
299293
with:
300-
name: ${{ matrix.name }}
294+
name: Run compute-benchmarks (${{ matrix.runner }}, ${{ matrix.backend }})
301295
runner: ${{ matrix.runner }}
302-
image_options: ${{ matrix.image_options }}
303-
target_devices: ${{ matrix.target_devices }}
304-
tests_selector: compute-benchmarks
305-
repo_ref: ${{ github.sha }}
296+
image: ghcr.io/intel/llvm/sycl_ubuntu2404_nightly:latest
297+
image_options: -u 1001 --device=/dev/dri -v /dev/dri/by-path:/dev/dri/by-path --privileged --cap-add SYS_ADMIN
298+
target_devices: ${{ matrix.backend }}
299+
tests_selector: benchmarks
300+
benchmark_upload_results: true
301+
benchmark_save_name: ${{ matrix.save_name }}
302+
benchmark_preset: ${{ matrix.preset }}
303+
repo_ref: ${{ matrix.ref }}
306304
sycl_toolchain_artifact: sycl_linux_default
307305
sycl_toolchain_archive: ${{ needs.ubuntu2204_build.outputs.artifact_archive_name }}
308306
sycl_toolchain_decompress_command: ${{ needs.ubuntu2204_build.outputs.artifact_decompress_command }}

.github/workflows/sycl-rel-nightly.yml

Lines changed: 21 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -44,9 +44,10 @@ jobs:
4444
with:
4545
build_cache_root: "/__w/"
4646
build_artifact_suffix: default
47-
build_configure_extra_args: '--no-assertions --add_security_flags=sanitize --hip --cuda'
47+
build_configure_extra_args: '--disable-jit --no-assertions --add_security_flags=sanitize --hip --cuda'
4848
build_image: ghcr.io/intel/llvm/ubuntu2204_build:latest
4949
build_ref: ${{ inputs.testing_branch || 'sycl-rel-6_1_0' }}
50+
pack_release: 'true'
5051

5152
# We upload the build for people to download/use, override its name and
5253
# prefer widespread gzip compression.
@@ -105,7 +106,8 @@ jobs:
105106
uses: ./.github/workflows/sycl-windows-build.yml
106107
with:
107108
ref: ${{ inputs.testing_branch || 'sycl-rel-6_1_0' }}
108-
build_configure_extra_args: '--no-assertions --add_security_flags=sanitize'
109+
build_configure_extra_args: '--disable-jit --no-assertions --add_security_flags=sanitize'
110+
pack_release: 'true'
109111

110112
# We upload both Linux/Windows build via Github's "Releases"
111113
# functionality, make sure Linux/Windows names follow the same pattern.
@@ -165,7 +167,7 @@ jobs:
165167

166168
cuda-aws-stop:
167169
needs: [cuda-aws-start, cuda-run-tests]
168-
if: always()
170+
if: always() && ${{ needs.cuda-aws-start.result != 'skipped' }}
169171
uses: ./.github/workflows/sycl-aws.yml
170172
secrets: inherit
171173
with:
@@ -220,3 +222,19 @@ jobs:
220222
sycl_toolchain_archive: ${{ needs.ubuntu2204_build.outputs.artifact_archive_name }}
221223
sycl_toolchain_decompress_command: ${{ needs.ubuntu2204_build.outputs.artifact_decompress_command }}
222224
sycl_cts_artifact: sycl_cts_bin_linux
225+
226+
hardening-check:
227+
needs: [ubuntu2204_build, build-win]
228+
if: |
229+
always()
230+
&& !cancelled()
231+
&& needs.ubuntu2204_build.outputs.build_conclusion == 'success'
232+
&& needs.build-win.outputs.build_conclusion == 'success'
233+
uses: ./.github/workflows/sycl-hardening-check.yml
234+
with:
235+
sycl_linux_artifact: sycl_linux_release
236+
sycl_linux_archive: ${{ needs.ubuntu2204_build.outputs.artifact_archive_name }}
237+
sycl_linux_decompress_command: ${{ needs.ubuntu2204_build.outputs.artifact_decompress_command }}
238+
239+
sycl_windows_artifact: sycl_windows_release
240+
sycl_windows_archive: ${{ needs.build-win.outputs.artifact_archive_name }}

.github/workflows/sycl-stale-issues.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ permissions: read-all
88

99
jobs:
1010
close-issues:
11+
if: github.repository == 'intel/llvm'
1112
permissions:
1213
issues: write # for actions/stale to close stale issues
1314
pull-requests: write # for actions/stale to close stale PRs

0 commit comments

Comments
 (0)