Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
347 changes: 181 additions & 166 deletions .github/workflows/sycl-linux-precommit.yml
Original file line number Diff line number Diff line change
Expand Up @@ -55,179 +55,194 @@ jobs:
build_image: "ghcr.io/intel/llvm/sycl_ubuntu2404_nightly:latest"
cc: clang
cxx: clang++
changes: ${{ needs.detect_changes.outputs.filters }}
changes: '[]'

toolchain_artifact: sycl_linux_default
e2e_binaries_artifact: e2e_bin
e2e_binaries_spirv_backend_artifact: e2e_bin_spirv_backend
e2e_binaries_preview_artifact: e2e_bin_preview

# If a PR changes CUDA adapter, run the build on Ubuntu 22.04 as well.
# Ubuntu 22.04 container has CUDA 12.1 installed while Ubuntu 24.0 image
# has CUDA 12.6.1 installed.
# The idea is to ensure that the code works with both CUDA versions.
build_ubuntu2204:
needs: [detect_changes]
if: always() && !cancelled() && contains(needs.detect_changes.outputs.filters, 'ur_cuda_adapter')
uses: ./.github/workflows/sycl-linux-build.yml
with:
build_ref: ${{ github.sha }}
build_cache_root: "/__w/"
build_cache_suffix: "ubuntu22"
build_image: "ghcr.io/intel/llvm/ubuntu2204_build:latest"
changes: ${{ needs.detect_changes.outputs.filters }}

toolchain_artifact: sycl_linux_ubuntu22

run_prebuilt_e2e_tests:
# e2e_binaries_artifact: e2e_bin
# e2e_binaries_spirv_backend_artifact: e2e_bin_spirv_backend
# e2e_binaries_preview_artifact: e2e_bin_preview

# # If a PR changes CUDA adapter, run the build on Ubuntu 22.04 as well.
# # Ubuntu 22.04 container has CUDA 12.1 installed while Ubuntu 24.0 image
# # has CUDA 12.6.1 installed.
# # The idea is to ensure that the code works with both CUDA versions.
# build_ubuntu2204:
# needs: [detect_changes]
# if: always() && !cancelled() && contains(needs.detect_changes.outputs.filters, 'ur_cuda_adapter')
# uses: ./.github/workflows/sycl-linux-build.yml
# with:
# build_ref: ${{ github.sha }}
# build_cache_root: "/__w/"
# build_cache_suffix: "ubuntu22"
# build_image: "ghcr.io/intel/llvm/ubuntu2204_build:latest"
# changes: ${{ needs.detect_changes.outputs.filters }}

# toolchain_artifact: sycl_linux_ubuntu22

# run_prebuilt_e2e_tests:
# needs: [build, detect_changes]
# if: ${{ always() && !cancelled() && needs.build.outputs.build_conclusion == 'success' }}
# strategy:
# fail-fast: false
# matrix:
# include:
# - name: GEN 12 Integrated
# runner: '["Linux", "gen12"]'
# image_options: -u 1001 --device=/dev/dri -v /dev/dri/by-path:/dev/dri/by-path --privileged --cap-add SYS_ADMIN
# target_devices: level_zero:gpu;opencl:gpu;opencl:cpu
# extra_lit_opts: --param gpu-intel-gen12=True
# - name: NVIDIA/CUDA
# runner: '["Linux", "cuda"]'
# image_options: -u 1001 --gpus all --cap-add SYS_ADMIN
# target_devices: cuda:gpu
# - name: AMD/HIP
# runner: '["Linux", "amdgpu"]'
# image_options: -u 1001 --device=/dev/dri --device=/dev/kfd
# target_devices: hip:gpu
# extra_lit_opts: -j 1
# - name: Intel Arc A-Series Graphics
# runner: '["Linux", "arc"]'
# image_options: -u 1001 --device=/dev/dri -v /dev/dri/by-path:/dev/dri/by-path --privileged --cap-add SYS_ADMIN
# target_devices: level_zero:gpu;opencl:gpu;level_zero_v2:gpu
# extra_lit_opts: --param matrix-xmx8=True
# - name: E2E tests with dev igc on Intel Arc A-Series Graphics
# runner: '["Linux", "arc"]'
# image: ghcr.io/intel/llvm/ubuntu2404_intel_drivers:devigc
# image_options: -u 1001 --device=/dev/dri -v /dev/dri/by-path:/dev/dri/by-path --privileged --cap-add SYS_ADMIN
# target_devices: level_zero:gpu
# extra_lit_opts: --param matrix-xmx8=True
# use_igc_dev: true
# env: '{"LIT_FILTER":"Matrix/"}'
# - name: E2E tests on Intel Ponte Vecchio GPU
# runner: '["Linux", "pvc"]'
# image_options: -u 1001 --device=/dev/dri -v /dev/dri/by-path:/dev/dri/by-path --privileged --cap-add SYS_ADMIN
# target_devices: level_zero:gpu;opencl:gpu;level_zero_v2:gpu
# - name: Dev IGC on Intel Ponte Vecchio GPU
# runner: '["Linux", "pvc"]'
# image: ghcr.io/intel/llvm/ubuntu2404_intel_drivers:devigc
# image_options: -u 1001 --device=/dev/dri -v /dev/dri/by-path:/dev/dri/by-path --privileged --cap-add SYS_ADMIN
# target_devices: level_zero:gpu
# use_igc_dev: true
# env: '{"LIT_FILTER":"Matrix/"}'
# - name: Intel Battlemage Graphics
# runner: '["Linux", "bmg"]'
# image_options: -u 1001 --device=/dev/dri -v /dev/dri/by-path:/dev/dri/by-path --privileged --cap-add SYS_ADMIN
# target_devices: level_zero_v1:gpu;level_zero_v2:gpu
# - name: SPIR-V Backend / Intel Battlemage Graphics
# runner: '["Linux", "bmg"]'
# image_options: -u 1001 --device=/dev/dri -v /dev/dri/by-path:/dev/dri/by-path --privileged --cap-add SYS_ADMIN
# target_devices: level_zero:gpu;opencl:gpu;opencl:cpu
# extra_lit_opts: --param spirv-backend=True
# e2e_binaries_artifact: e2e_bin_spirv_backend
# - name: Preview Mode
# runner: '["Linux", "gen12"]'
# image_options: -u 1001 --device=/dev/dri -v /dev/dri/by-path:/dev/dri/by-path --privileged --cap-add SYS_ADMIN
# target_devices: level_zero:gpu;opencl:gpu;opencl:cpu
# extra_lit_opts: --param test-preview-mode=True
# e2e_binaries_artifact: e2e_bin_preview

# uses: ./.github/workflows/sycl-linux-run-tests.yml
# with:
# name: ${{ matrix.name }}
# runner: ${{ matrix.runner }}
# image: ${{ matrix.image }}
# image_options: ${{ matrix.image_options }}
# target_devices: ${{ matrix.target_devices }}
# extra_lit_opts: ${{ matrix.extra_lit_opts }}
# repo_ref: ${{ github.sha }}
# toolchain_artifact: ${{ needs.build.outputs.toolchain_artifact }}
# toolchain_artifact_filename: ${{ needs.build.outputs.toolchain_artifact_filename }}
# toolchain_decompress_command: ${{ needs.build.outputs.toolchain_decompress_command }}
# e2e_binaries_artifact: ${{ matrix.e2e_binaries_artifact || 'e2e_bin' }}
# e2e_testing_mode: 'run-only'

# # Do not install drivers on AMD and CUDA runners.
# install_igc_driver: >-
# ${{ !contains(matrix.target_devices, 'cuda') &&
# !contains(matrix.target_devices, 'hip') &&
# contains(needs.detect_changes.outputs.filters, 'drivers') }}
# install_dev_igc_driver: >-
# ${{ !contains(matrix.target_devices, 'cuda') &&
# !contains(matrix.target_devices, 'hip') &&
# matrix.use_igc_dev &&
# (contains(needs.detect_changes.outputs.filters, 'devigccfg') || contains(needs.detect_changes.outputs.filters, 'drivers')) ||
# 'false' }}
# # Run only if the PR does not have the 'ci-no-devigc' label.
# skip_run: ${{matrix.use_igc_dev && contains(github.event.pull_request.labels.*.name, 'ci-no-devigc') || 'false'}}
# env: ${{ matrix.env || (contains(needs.detect_changes.outputs.filters, 'esimd') && '{}' || '{"LIT_FILTER_OUT":"ESIMD/"}') }}

# test_benchmark_scripts:
# needs: [build, detect_changes]
# if: |
# always() && !cancelled()
# && needs.build.outputs.build_conclusion == 'success'
# && contains(needs.detect_changes.outputs.filters, 'benchmarks')
# uses: ./.github/workflows/sycl-linux-run-tests.yml
# with:
# name: Benchmark suite precommit testing
# runner: '["PVC_PERF"]'
# image: ghcr.io/intel/llvm/sycl_ubuntu2404_nightly:latest
# image_options: -u 1001 --device=/dev/dri -v /dev/dri/by-path:/dev/dri/by-path --privileged --cap-add SYS_ADMIN
# target_devices: 'level_zero:gpu'
# tests_selector: benchmarks
# benchmark_upload_results: false
# benchmark_preset: 'Minimal'
# benchmark_dry_run: true
# repo_ref: ${{ github.sha }}
# toolchain_artifact: ${{ needs.build.outputs.toolchain_artifact }}
# toolchain_artifact_filename: ${{ needs.build.outputs.toolchain_artifact_filename }}
# toolchain_decompress_command: ${{ needs.build.outputs.toolchain_decompress_command }}

# test-perf:
# needs: [build, detect_changes]
# if: |
# always() && !cancelled()
# && needs.build.outputs.build_conclusion == 'success'
# && (contains(github.event.pull_request.labels.*.name, 'run-perf-tests')
# || contains(needs.detect_changes.outputs.filters, 'perf-tests'))
# strategy:
# fail-fast: false
# matrix:
# include:
# - name: Intel GEN12 Graphics system
# runner: '["Linux", "gen12"]'
# image_extra_opts: --device=/dev/dri
# - name: Intel Arc A-Series Graphics system
# runner: '["Linux", "arc"]'
# image_extra_opts: --device=/dev/dri
# - name: AMD system
# runner: '["Linux", "amdgpu"]'
# image_extra_opts: --device=/dev/dri --device=/dev/kfd
# - name: CUDA system
# runner: '["Linux", "cuda"]'
# image_extra_opts: --gpus all
# uses: ./.github/workflows/sycl-linux-run-tests.yml
# with:
# name: Perf tests on ${{ matrix.name }}
# runner: ${{ matrix. runner }}
# image_options: -u 1001 --privileged --cap-add SYS_ADMIN ${{ matrix.image_extra_opts }}
# target_devices: all

# env: '{"LIT_FILTER":"PerformanceTests/"}'
# extra_lit_opts: -a -j 1 --param enable-perf-tests=True

# repo_ref: ${{ github.sha }}

# toolchain_artifact: ${{ needs.build.outputs.toolchain_artifact }}
# toolchain_artifact_filename: ${{ needs.build.outputs.toolchain_artifact_filename }}
# toolchain_decompress_command: ${{ needs.build.outputs.toolchain_decompress_command }}

compatibility:
needs: [build, detect_changes]
if: ${{ always() && !cancelled() && needs.build.outputs.build_conclusion == 'success' }}
strategy:
fail-fast: false
matrix:
include:
- name: GEN 12 Integrated
runner: '["Linux", "gen12"]'
image_options: -u 1001 --device=/dev/dri -v /dev/dri/by-path:/dev/dri/by-path --privileged --cap-add SYS_ADMIN
target_devices: level_zero:gpu;opencl:gpu;opencl:cpu
extra_lit_opts: --param gpu-intel-gen12=True
- name: NVIDIA/CUDA
runner: '["Linux", "cuda"]'
image_options: -u 1001 --gpus all --cap-add SYS_ADMIN
target_devices: cuda:gpu
- name: AMD/HIP
runner: '["Linux", "amdgpu"]'
image_options: -u 1001 --device=/dev/dri --device=/dev/kfd
target_devices: hip:gpu
extra_lit_opts: -j 1
- name: Intel Arc A-Series Graphics
runner: '["Linux", "arc"]'
image_options: -u 1001 --device=/dev/dri -v /dev/dri/by-path:/dev/dri/by-path --privileged --cap-add SYS_ADMIN
target_devices: level_zero:gpu;opencl:gpu;level_zero_v2:gpu
extra_lit_opts: --param matrix-xmx8=True
- name: E2E tests with dev igc on Intel Arc A-Series Graphics
runner: '["Linux", "arc"]'
image: ghcr.io/intel/llvm/ubuntu2404_intel_drivers:devigc
image_options: -u 1001 --device=/dev/dri -v /dev/dri/by-path:/dev/dri/by-path --privileged --cap-add SYS_ADMIN
target_devices: level_zero:gpu
extra_lit_opts: --param matrix-xmx8=True
use_igc_dev: true
env: '{"LIT_FILTER":"Matrix/"}'
- name: E2E tests on Intel Ponte Vecchio GPU
runner: '["Linux", "pvc"]'
image_options: -u 1001 --device=/dev/dri -v /dev/dri/by-path:/dev/dri/by-path --privileged --cap-add SYS_ADMIN
target_devices: level_zero:gpu;opencl:gpu;level_zero_v2:gpu
- name: Dev IGC on Intel Ponte Vecchio GPU
runner: '["Linux", "pvc"]'
image: ghcr.io/intel/llvm/ubuntu2404_intel_drivers:devigc
image_options: -u 1001 --device=/dev/dri -v /dev/dri/by-path:/dev/dri/by-path --privileged --cap-add SYS_ADMIN
target_devices: level_zero:gpu
use_igc_dev: true
env: '{"LIT_FILTER":"Matrix/"}'
- name: Intel Battlemage Graphics
runner: '["Linux", "bmg"]'
image_options: -u 1001 --device=/dev/dri -v /dev/dri/by-path:/dev/dri/by-path --privileged --cap-add SYS_ADMIN
target_devices: level_zero_v1:gpu;level_zero_v2:gpu
- name: SPIR-V Backend / Intel Battlemage Graphics
runner: '["Linux", "bmg"]'
image_options: -u 1001 --device=/dev/dri -v /dev/dri/by-path:/dev/dri/by-path --privileged --cap-add SYS_ADMIN
target_devices: level_zero:gpu;opencl:gpu;opencl:cpu
extra_lit_opts: --param spirv-backend=True
e2e_binaries_artifact: e2e_bin_spirv_backend
- name: Preview Mode
runner: '["Linux", "gen12"]'
image_options: -u 1001 --device=/dev/dri -v /dev/dri/by-path:/dev/dri/by-path --privileged --cap-add SYS_ADMIN
target_devices: level_zero:gpu;opencl:gpu;opencl:cpu
extra_lit_opts: --param test-preview-mode=True
e2e_binaries_artifact: e2e_bin_preview

uses: ./.github/workflows/sycl-linux-run-tests.yml
with:
name: ${{ matrix.name }}
runner: ${{ matrix.runner }}
image: ${{ matrix.image }}
image_options: ${{ matrix.image_options }}
target_devices: ${{ matrix.target_devices }}
extra_lit_opts: ${{ matrix.extra_lit_opts }}
repo_ref: ${{ github.sha }}
toolchain_artifact: ${{ needs.build.outputs.toolchain_artifact }}
toolchain_artifact_filename: ${{ needs.build.outputs.toolchain_artifact_filename }}
toolchain_decompress_command: ${{ needs.build.outputs.toolchain_decompress_command }}
e2e_binaries_artifact: ${{ matrix.e2e_binaries_artifact || 'e2e_bin' }}
e2e_testing_mode: 'run-only'

# Do not install drivers on AMD and CUDA runners.
install_igc_driver: >-
${{ !contains(matrix.target_devices, 'cuda') &&
!contains(matrix.target_devices, 'hip') &&
contains(needs.detect_changes.outputs.filters, 'drivers') }}
install_dev_igc_driver: >-
${{ !contains(matrix.target_devices, 'cuda') &&
!contains(matrix.target_devices, 'hip') &&
matrix.use_igc_dev &&
(contains(needs.detect_changes.outputs.filters, 'devigccfg') || contains(needs.detect_changes.outputs.filters, 'drivers')) ||
'false' }}
# Run only if the PR does not have the 'ci-no-devigc' label.
skip_run: ${{matrix.use_igc_dev && contains(github.event.pull_request.labels.*.name, 'ci-no-devigc') || 'false'}}
env: ${{ matrix.env || (contains(needs.detect_changes.outputs.filters, 'esimd') && '{}' || '{"LIT_FILTER_OUT":"ESIMD/"}') }}

test_benchmark_scripts:
needs: [build, detect_changes]
if: |
always() && !cancelled()
&& needs.build.outputs.build_conclusion == 'success'
&& contains(needs.detect_changes.outputs.filters, 'benchmarks')
uses: ./.github/workflows/sycl-linux-run-tests.yml
with:
name: Benchmark suite precommit testing
runner: '["PVC_PERF"]'
image: ghcr.io/intel/llvm/sycl_ubuntu2404_nightly:latest
name: E2E Backward ABI compatibility
runner: '["Linux", "pvc"]'
image: ghcr.io/intel/llvm/sycl_prebuilt_tests:nightly-2025-06-20
image_options: -u 1001 --device=/dev/dri -v /dev/dri/by-path:/dev/dri/by-path --privileged --cap-add SYS_ADMIN
target_devices: 'level_zero:gpu'
tests_selector: benchmarks
benchmark_upload_results: false
benchmark_preset: 'Minimal'
benchmark_dry_run: true
repo_ref: ${{ github.sha }}
toolchain_artifact: ${{ needs.build.outputs.toolchain_artifact }}
toolchain_artifact_filename: ${{ needs.build.outputs.toolchain_artifact_filename }}
toolchain_decompress_command: ${{ needs.build.outputs.toolchain_decompress_command }}

test-perf:
needs: [build, detect_changes]
if: |
always() && !cancelled()
&& needs.build.outputs.build_conclusion == 'success'
&& (contains(github.event.pull_request.labels.*.name, 'run-perf-tests')
|| contains(needs.detect_changes.outputs.filters, 'perf-tests'))
strategy:
fail-fast: false
matrix:
include:
- name: Intel GEN12 Graphics system
runner: '["Linux", "gen12"]'
image_extra_opts: --device=/dev/dri
- name: Intel Arc A-Series Graphics system
runner: '["Linux", "arc"]'
image_extra_opts: --device=/dev/dri
- name: AMD system
runner: '["Linux", "amdgpu"]'
image_extra_opts: --device=/dev/dri --device=/dev/kfd
- name: CUDA system
runner: '["Linux", "cuda"]'
image_extra_opts: --gpus all
uses: ./.github/workflows/sycl-linux-run-tests.yml
with:
name: Perf tests on ${{ matrix.name }}
runner: ${{ matrix. runner }}
image_options: -u 1001 --privileged --cap-add SYS_ADMIN ${{ matrix.image_extra_opts }}
target_devices: all

env: '{"LIT_FILTER":"PerformanceTests/"}'
extra_lit_opts: -a -j 1 --param enable-perf-tests=True

repo_ref: ${{ github.sha }}

target_devices: level_zero:gpu
toolchain_artifact: ${{ needs.build.outputs.toolchain_artifact }}
toolchain_artifact_filename: ${{ needs.build.outputs.toolchain_artifact_filename }}
toolchain_decompress_command: ${{ needs.build.outputs.toolchain_decompress_command }}
e2e_testing_mode: 'run-only'
9 changes: 5 additions & 4 deletions .github/workflows/sycl-linux-run-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ on:

repo_ref:
type: string
required: True
required: False
description: |
Commit SHA or branch to checkout the intel/llvm repo.
tests_ref:
Expand All @@ -60,9 +60,10 @@ on:

e2e_binaries_artifact:
description: |
Must be set if `e2e_testing_mode` is equal to `run-only` and the
artifact must exist. Can be set in other modes resulting in artifact
upload.
When set in modes other than `run-only` results in artifact upload.
For `run-only` mode, if specified, means downloading pre-built
binaries from the artifact, otherwise they are expected to be part of
the container.
type: string
default: ''
required: False
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/sycl-post-commit.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ on:

pull_request:
branches:
- sycl
- sycl-foo
paths:
- .github/workflows/sycl-post-commit.yml
- .github/workflows/sycl-linux-build.yml
Expand Down
Loading
Loading