Skip to content

Commit 984bd3d

Browse files
Restore pre-commit
1 parent 24abdd8 commit 984bd3d

File tree

1 file changed

+172
-11
lines changed

1 file changed

+172
-11
lines changed

.github/workflows/sycl-linux-precommit.yml

Lines changed: 172 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,12 @@ concurrency:
4040
permissions: read-all
4141

4242
jobs:
43+
detect_changes:
44+
uses: ./.github/workflows/sycl-detect-changes.yml
45+
4346
build:
4447
name: Self build
48+
needs: [detect_changes]
4549
if: always() && success()
4650
uses: ./.github/workflows/sycl-linux-build.yml
4751
with:
@@ -52,9 +56,29 @@ jobs:
5256
build_image: "ghcr.io/intel/llvm/sycl_ubuntu2404_nightly:latest"
5357
cc: clang
5458
cxx: clang++
59+
# changes: ${{ needs.detect_changes.outputs.filters }}
5560
changes: '[]'
5661

5762
toolchain_artifact: sycl_linux_default
63+
# e2e_binaries_artifact: e2e_bin
64+
# e2e_binaries_preview_artifact: e2e_bin_preview
65+
66+
# If a PR changes CUDA adapter, run the build on Ubuntu 22.04 as well.
67+
# Ubuntu 22.04 container has CUDA 12.1 installed while Ubuntu 24.0 image
68+
# has CUDA 12.6.1 installed.
69+
# The idea is to ensure that the code works with both CUDA versions.
70+
build_ubuntu2204:
71+
needs: [detect_changes]
72+
if: false && always() && !cancelled() && contains(needs.detect_changes.outputs.filters, 'ur_cuda_adapter')
73+
uses: ./.github/workflows/sycl-linux-build.yml
74+
with:
75+
build_ref: ${{ github.sha }}
76+
build_cache_root: "/__w/"
77+
build_cache_suffix: "ubuntu22"
78+
build_image: "ghcr.io/intel/llvm/ubuntu2204_build:latest"
79+
changes: ${{ needs.detect_changes.outputs.filters }}
80+
81+
toolchain_artifact: sycl_linux_ubuntu22
5882

5983
compat_read_exclude:
6084
name: Read compatibility testing exclude list
@@ -73,21 +97,158 @@ jobs:
7397
run: |
7498
echo FILTER="$(grep -v '^#\|^\W*$' devops/compat_ci_exclude.sycl-rel-6_2 | paste -sd '|')" >> $GITHUB_OUTPUT
7599
76-
77-
compatibility:
78-
needs: [build, compat_read_exclude]
100+
run_prebuilt_e2e_tests:
101+
needs: [build, detect_changes, compat_read_exclude]
79102
if: ${{ always() && !cancelled() && needs.build.outputs.build_conclusion == 'success' }}
103+
strategy:
104+
fail-fast: false
105+
matrix:
106+
include:
107+
- name: GEN 12 Integrated
108+
runner: '["Linux", "gen12"]'
109+
image_options: -u 1001 --device=/dev/dri -v /dev/dri/by-path:/dev/dri/by-path --privileged --cap-add SYS_ADMIN
110+
target_devices: level_zero:gpu;opencl:gpu;opencl:cpu
111+
extra_lit_opts: --param gpu-intel-gen12=True
112+
- name: NVIDIA/CUDA
113+
runner: '["Linux", "cuda"]'
114+
image_options: -u 1001 --gpus all --cap-add SYS_ADMIN
115+
target_devices: cuda:gpu
116+
- name: AMD/HIP
117+
runner: '["Linux", "amdgpu"]'
118+
image_options: -u 1001 --device=/dev/dri --device=/dev/kfd
119+
target_devices: hip:gpu
120+
extra_lit_opts: -j 1
121+
- name: Intel Arc A-Series Graphics
122+
runner: '["Linux", "arc"]'
123+
image_options: -u 1001 --device=/dev/dri -v /dev/dri/by-path:/dev/dri/by-path --privileged --cap-add SYS_ADMIN
124+
target_devices: level_zero:gpu;opencl:gpu;level_zero_v2:gpu
125+
extra_lit_opts: --param matrix-xmx8=True
126+
- name: E2E tests with dev igc on Intel Arc A-Series Graphics
127+
runner: '["Linux", "arc"]'
128+
image: ghcr.io/intel/llvm/ubuntu2404_intel_drivers:devigc
129+
image_options: -u 1001 --device=/dev/dri -v /dev/dri/by-path:/dev/dri/by-path --privileged --cap-add SYS_ADMIN
130+
target_devices: level_zero:gpu
131+
extra_lit_opts: --param matrix-xmx8=True
132+
use_igc_dev: true
133+
env: '{"LIT_FILTER":"Matrix/"}'
134+
- name: E2E tests on Intel Ponte Vecchio GPU
135+
runner: '["Linux", "pvc"]'
136+
image_options: -u 1001 --device=/dev/dri -v /dev/dri/by-path:/dev/dri/by-path --privileged --cap-add SYS_ADMIN
137+
target_devices: level_zero:gpu;opencl:gpu;level_zero_v2:gpu
138+
- name: Dev IGC on Intel Ponte Vecchio GPU
139+
runner: '["Linux", "pvc"]'
140+
image: ghcr.io/intel/llvm/ubuntu2404_intel_drivers:devigc
141+
image_options: -u 1001 --device=/dev/dri -v /dev/dri/by-path:/dev/dri/by-path --privileged --cap-add SYS_ADMIN
142+
target_devices: level_zero:gpu
143+
use_igc_dev: true
144+
env: '{"LIT_FILTER":"Matrix/"}'
145+
- name: Intel Battlemage Graphics
146+
runner: '["Linux", "bmg"]'
147+
image_options: -u 1001 --device=/dev/dri -v /dev/dri/by-path:/dev/dri/by-path --privileged --cap-add SYS_ADMIN
148+
target_devices: level_zero_v1:gpu;level_zero_v2:gpu
149+
- name: Preview Mode
150+
runner: '["Linux", "gen12"]'
151+
image_options: -u 1001 --device=/dev/dri -v /dev/dri/by-path:/dev/dri/by-path --privileged --cap-add SYS_ADMIN
152+
target_devices: level_zero:gpu;opencl:gpu;opencl:cpu
153+
extra_lit_opts: --param test-preview-mode=True
154+
e2e_binaries_artifact: e2e_bin_preview
155+
- name: ABI compatibility against sycl-rel-6_2
156+
runner: '["Linux", "pvc"]'
157+
image: ghcr.io/intel/llvm/sycl_prebuilt_tests:sycl-rel-6_2
158+
image_options: -u 1001 --device=/dev/dri -v /dev/dri/by-path:/dev/dri/by-path --privileged --cap-add SYS_ADMIN
159+
target_devices: level_zero:gpu
160+
extra_lit_opts: '--param test-preview-mode=False --filter-out "${{ needs.compat_read_exclude.outputs.FILTER }}"'
161+
# Use pre-built E2E from the container:
162+
e2e_binaries_artifact: ''
163+
80164
uses: ./.github/workflows/sycl-linux-run-tests.yml
81165
with:
82-
name: E2E Backward ABI compatibility
83-
runner: '["Linux", "pvc"]'
84-
# FIXME:
85-
# image: ghcr.io/intel/llvm/sycl_prebuilt_tests:sycl-rel-6_2
86-
image: ghcr.io/intel/llvm/sycl_prebuilt_tests:e2e-preview-param
87-
image_options: -u 1001 --device=/dev/dri -v /dev/dri/by-path:/dev/dri/by-path --privileged --cap-add SYS_ADMIN
88-
target_devices: level_zero:gpu
166+
name: ${{ matrix.name }}
167+
runner: ${{ matrix.runner }}
168+
image: ${{ matrix.image }}
169+
image_options: ${{ matrix.image_options }}
170+
target_devices: ${{ matrix.target_devices }}
171+
extra_lit_opts: ${{ matrix.extra_lit_opts }}
172+
repo_ref: ${{ github.sha }}
89173
toolchain_artifact: ${{ needs.build.outputs.toolchain_artifact }}
90174
toolchain_artifact_filename: ${{ needs.build.outputs.toolchain_artifact_filename }}
91175
toolchain_decompress_command: ${{ needs.build.outputs.toolchain_decompress_command }}
92-
extra_lit_opts: '--param test-preview-mode=False --filter-out "${{ needs.compat_read_exclude.outputs.FILTER }}"'
176+
e2e_binaries_artifact: ${{ matrix.e2e_binaries_artifact || 'e2e_bin' }}
93177
e2e_testing_mode: 'run-only'
178+
179+
# Do not install drivers on AMD and CUDA runners.
180+
install_igc_driver: >-
181+
${{ !contains(matrix.target_devices, 'cuda') &&
182+
!contains(matrix.target_devices, 'hip') &&
183+
contains(needs.detect_changes.outputs.filters, 'drivers') }}
184+
install_dev_igc_driver: >-
185+
${{ !contains(matrix.target_devices, 'cuda') &&
186+
!contains(matrix.target_devices, 'hip') &&
187+
matrix.use_igc_dev &&
188+
(contains(needs.detect_changes.outputs.filters, 'devigccfg') || contains(needs.detect_changes.outputs.filters, 'drivers')) ||
189+
'false' }}
190+
# Run only if the PR does not have the 'ci-no-devigc' label.
191+
# skip_run: ${{matrix.use_igc_dev && contains(github.event.pull_request.labels.*.name, 'ci-no-devigc') || 'false'}}
192+
skip_run: ${{ matrix.image != 'ghcr.io/intel/llvm/sycl_prebuilt_tests:sycl-rel-6_2' }}
193+
env: ${{ matrix.env || (contains(needs.detect_changes.outputs.filters, 'esimd') && '{}' || '{"LIT_FILTER_OUT":"ESIMD/"}') }}
194+
195+
test_benchmark_scripts:
196+
needs: [build, detect_changes]
197+
if: |
198+
false && always() && !cancelled()
199+
&& needs.build.outputs.build_conclusion == 'success'
200+
&& contains(needs.detect_changes.outputs.filters, 'benchmarks')
201+
uses: ./.github/workflows/sycl-linux-run-tests.yml
202+
with:
203+
name: Benchmark suite precommit testing
204+
runner: '["PVC_PERF"]'
205+
image: ghcr.io/intel/llvm/sycl_ubuntu2404_nightly:latest
206+
image_options: -u 1001 --device=/dev/dri -v /dev/dri/by-path:/dev/dri/by-path --privileged --cap-add SYS_ADMIN
207+
target_devices: 'level_zero:gpu'
208+
tests_selector: benchmarks
209+
benchmark_upload_results: false
210+
benchmark_preset: 'Minimal'
211+
benchmark_dry_run: true
212+
repo_ref: ${{ github.sha }}
213+
toolchain_artifact: ${{ needs.build.outputs.toolchain_artifact }}
214+
toolchain_artifact_filename: ${{ needs.build.outputs.toolchain_artifact_filename }}
215+
toolchain_decompress_command: ${{ needs.build.outputs.toolchain_decompress_command }}
216+
217+
test-perf:
218+
needs: [build, detect_changes]
219+
if: |
220+
false && always() && !cancelled()
221+
&& needs.build.outputs.build_conclusion == 'success'
222+
&& (contains(github.event.pull_request.labels.*.name, 'run-perf-tests')
223+
|| contains(needs.detect_changes.outputs.filters, 'perf-tests'))
224+
strategy:
225+
fail-fast: false
226+
matrix:
227+
include:
228+
- name: Intel GEN12 Graphics system
229+
runner: '["Linux", "gen12"]'
230+
image_extra_opts: --device=/dev/dri
231+
- name: Intel Arc A-Series Graphics system
232+
runner: '["Linux", "arc"]'
233+
image_extra_opts: --device=/dev/dri
234+
- name: AMD system
235+
runner: '["Linux", "amdgpu"]'
236+
image_extra_opts: --device=/dev/dri --device=/dev/kfd
237+
- name: CUDA system
238+
runner: '["Linux", "cuda"]'
239+
image_extra_opts: --gpus all
240+
uses: ./.github/workflows/sycl-linux-run-tests.yml
241+
with:
242+
name: Perf tests on ${{ matrix.name }}
243+
runner: ${{ matrix. runner }}
244+
image_options: -u 1001 --privileged --cap-add SYS_ADMIN ${{ matrix.image_extra_opts }}
245+
target_devices: all
246+
247+
env: '{"LIT_FILTER":"PerformanceTests/"}'
248+
extra_lit_opts: -a -j 1 --param enable-perf-tests=True
249+
250+
repo_ref: ${{ github.sha }}
251+
252+
toolchain_artifact: ${{ needs.build.outputs.toolchain_artifact }}
253+
toolchain_artifact_filename: ${{ needs.build.outputs.toolchain_artifact_filename }}
254+
toolchain_decompress_command: ${{ needs.build.outputs.toolchain_decompress_command }}

0 commit comments

Comments
 (0)