Skip to content

[CI] Move testing to Ubuntu 24.04 everywhere #3749

[CI] Move testing to Ubuntu 24.04 everywhere

[CI] Move testing to Ubuntu 24.04 everywhere #3749

name: SYCL Post Commit
on:
push:
branches:
- sycl
- sycl-devops-pr/**
- sycl-rel-**
pull_request:
branches:
- sycl
- sycl-devops-pr/**
paths:
- .github/workflows/sycl-post-commit.yml
- .github/workflows/sycl-linux-build.yml
- .github/workflows/sycl-linux-run-tests.yml
- .github/workflows/sycl-macos-build-and-test.yml
- ./devops/actions/cleanup
- ./devops/actions/cached_checkout
concurrency:
# Cancel a currently running workflow from the same PR or commit hash.
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }}
cancel-in-progress: true
permissions: read-all
jobs:
build-lin:
name: Linux (Self build + no-assertions)
if: github.repository == 'intel/llvm'
uses: ./.github/workflows/sycl-linux-build.yml
with:
build_cache_root: "/__w/llvm"
build_cache_suffix: default
build_artifact_suffix: default
build_configure_extra_args: --no-assertions --hip --cuda --native_cpu --cmake-opt="-DSYCL_ENABLE_STACK_PRINTING=ON" --cmake-opt="-DSYCL_LIB_WITH_DEBUG_SYMBOL=ON --cmake-opt=-DCMAKE_CXX_FLAGS="-Wno-mismatched-new-delete"
merge_ref: ''
e2e-lin:
needs: [build-lin]
if: ${{ always() && !cancelled() && needs.build-lin.outputs.build_conclusion == 'success' }}
strategy:
fail-fast: false
matrix:
include:
- name: Intel GEN12 Graphics with Level Zero
runner: '["Linux", "gen12"]'
extra_lit_opts: --param gpu-intel-gen12=True
target_devices: level_zero:gpu;opencl:fpga
reset_intel_gpu: true
- name: Intel Arc A-Series Graphics with Level Zero
runner: '["Linux", "arc"]'
extra_lit_opts: --param matrix-xmx8=True --param gpu-intel-dg2=True
reset_intel_gpu: true
- name: AMD/HIP
runner: '["Linux", "amdgpu"]'
image: ghcr.io/intel/llvm/ubuntu2404_build:latest
image_options: -u 1001 --device=/dev/dri --device=/dev/kfd
target_devices: ext_oneapi_hip:gpu
reset_intel_gpu: false
- name: E2E tests on Intel Ponte Vecchio GPU
runner: '["Linux", "pvc"]'
env: '{"LIT_FILTER_OUT":"ESIMD/unified_memory_api/"}'
image: ghcr.io/intel/llvm/ubuntu2404_intel_drivers:latest
image_options: -u 1001 --device=/dev/dri --privileged --cap-add SYS_ADMIN
target_devices: ext_oneapi_level_zero:gpu;opencl:gpu
extra_lit_opts: -j 50
- name: E2E tests with dev igc on Intel Ponte Vecchio GPU
runner: '["Linux", "pvc"]'
env: '{"LIT_FILTER_OUT":"ESIMD/unified_memory_api/"}'
image: ghcr.io/intel/llvm/ubuntu2404_intel_drivers:devigc
image_options: -u 1001 --device=/dev/dri --privileged --cap-add SYS_ADMIN
target_devices: ext_oneapi_level_zero:gpu;opencl:gpu
use_igc_dev: true
extra_lit_opts: -j 50
# Performance tests below. Specifics:
# - only run performance tests (use LIT_FILTER env)
# - ask llvm-lit to show all the output, even for PASS (-a)
# - run in single thread (-j 1)
# - enable the tests in LIT (--param enable-perf-tests=True)
# - run on all available devices.
- name: Perf tests on Intel GEN12 Graphics system
runner: '["Linux", "gen12"]'
env: '{"LIT_FILTER":"PerformanceTests/"}'
extra_lit_opts: -a -j 1 --param enable-perf-tests=True --param gpu-intel-gen12=True
target_devices: all
reset_intel_gpu: true
- name: Perf tests on Intel Arc A-Series Graphics system
runner: '["Linux", "arc"]'
env: '{"LIT_FILTER":"PerformanceTests/"}'
extra_lit_opts: -a -j 1 --param enable-perf-tests=True
target_devices: all
reset_intel_gpu: true
uses: ./.github/workflows/sycl-linux-run-tests.yml
with:
name: ${{ matrix.name }}
runner: ${{ matrix. runner }}
image: ${{ matrix.image || 'ghcr.io/intel/llvm/ubuntu2404_intel_drivers:latest' }}
image_options: ${{ matrix.image_options || '-u 1001 --device=/dev/dri -v /dev/dri/by-path:/dev/dri/by-path --privileged --cap-add SYS_ADMIN' }}
target_devices: ${{ matrix.target_devices || 'level_zero:gpu' }}
reset_intel_gpu: ${{ matrix.reset_intel_gpu }}
extra_lit_opts: ${{ matrix.extra_lit_opts }}
env: ${{ matrix.env || '{}' }}
ref: ${{ github.sha }}
merge_ref: ''
sycl_toolchain_artifact: sycl_linux_default
sycl_toolchain_archive: ${{ needs.build-lin.outputs.artifact_archive_name }}
sycl_toolchain_decompress_command: ${{ needs.build-lin.outputs.artifact_decompress_command }}
build-win:
if: |
always()
&& success()
&& github.repository == 'intel/llvm'
uses: ./.github/workflows/sycl-windows-build.yml
with:
compiler: icx
build_configure_extra_args: --cmake-opt=-DCMAKE_C_FLAGS="/clang:-Wno-nonportable-include-path /clang:-Wno-cast-function-type-mismatch" --cmake-opt=-DCMAKE_CXX_FLAGS="/clang:-Wno-nonportable-include-path /clang:-Wno-cast-function-type-mismatch" --cmake-opt="-DCMAKE_EXE_LINKER_FLAGS=/manifest:no" --cmake-opt="-DCMAKE_MODULE_LINKER_FLAGS=/manifest:no" --cmake-opt="-DCMAKE_SHARED_LINKER_FLAGS=/manifest:no"
build_cache_suffix: icx
e2e-win:
needs: build-win
# Continue if build was successful.
if: |
always()
&& !cancelled()
&& needs.build-win.outputs.build_conclusion == 'success'
uses: ./.github/workflows/sycl-windows-run-tests.yml
with:
name: Intel GEN12 Graphics with Level Zero
runner: '["Windows","gen12"]'
sycl_toolchain_archive: ${{ needs.build-win.outputs.artifact_archive_name }}
extra_lit_opts: --param gpu-intel-gen12=True
compiler: icx
macos_default:
name: macOS
if: github.repository == 'intel/llvm'
uses: ./.github/workflows/sycl-macos-build-and-test.yml