@@ -40,8 +40,12 @@ concurrency:
4040permissions : read-all
4141
4242jobs :
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 :
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