[CI] Run E2E tests on PVC, with and without dev-igc #9144
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: SYCL Pre Commit on Linux | |
on: | |
# We rely on "Fork pull request workflows from outside collaborators" - | |
# "Require approval for all outside collaborators" at | |
# https://github.com/intel/llvm/settings/actions for security. | |
pull_request: | |
branches: | |
- sycl | |
- sycl-devops-pr/** | |
- sycl-rel-** | |
# Do not run builds if changes are only in the following locations | |
paths-ignore: | |
- '.github/ISSUE_TEMPLATE/**' | |
- '.github/CODEOWNERS' | |
- 'sycl/doc/**' | |
- 'sycl/gdb/**' | |
- 'clang/docs/**' | |
- '**.md' | |
- '**.rst' | |
- '.github/workflows/sycl-windows-*.yml' | |
- '.github/workflows/sycl-macos-*.yml' | |
- '.github/workflows/sycl-nightly.yml' | |
- 'devops/containers/**' | |
- 'devops/actions/build_container/**' | |
concurrency: | |
# Cancel a currently running workflow from the same PR, branch or tag. | |
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} | |
cancel-in-progress: true | |
permissions: read-all | |
jobs: | |
detect_changes: | |
uses: ./.github/workflows/sycl-detect-changes.yml | |
build: | |
needs: [detect_changes] | |
if: always() && success() | |
uses: ./.github/workflows/sycl-linux-build.yml | |
with: | |
build_ref: ${{ github.sha }} | |
merge_ref: '' | |
build_cache_root: "/__w/" | |
build_artifact_suffix: "default" | |
build_cache_suffix: "default" | |
changes: ${{ needs.detect_changes.outputs.filters }} | |
determine_arc_tests: | |
name: Decide which Arc tests to run | |
needs: [build, detect_changes] | |
if: ${{ always() && !cancelled() && needs.build.outputs.build_conclusion == 'success' }} | |
runs-on: [Linux, aux-tasks] | |
timeout-minutes: 3 | |
outputs: | |
arc_tests: ${{ steps.arc_tests.outputs.arc_tests }} | |
steps: | |
- name: Determine Arc tests | |
id: arc_tests | |
run: | | |
if [ "${{ contains(needs.detect_changes.outputs.filters, 'devigccfg') }}" == "true" ]; then | |
echo 'arc_tests="(ESIMD|InvokeSimd|Matrix)/"' >> "$GITHUB_OUTPUT" | |
elif [ "${{ contains(needs.detect_changes.outputs.filters, 'drivers') }}" == "true" ]; then | |
echo 'arc_tests=""' >> "$GITHUB_OUTPUT" | |
elif [ "${{ contains(needs.detect_changes.outputs.filters, 'esimd') }}" == "true" ]; then | |
echo 'arc_tests="(ESIMD|InvokeSimd|Matrix)/"' >> "$GITHUB_OUTPUT" | |
else | |
echo 'arc_tests="Matrix/"' >> "$GITHUB_OUTPUT" | |
fi | |
test: | |
needs: [build, detect_changes, determine_arc_tests] | |
if: ${{ always() && !cancelled() && needs.build.outputs.build_conclusion == 'success' }} | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
- name: NVIDIA/CUDA | |
runner: '["Linux", "cuda"]' | |
image: ghcr.io/intel/llvm/ubuntu2204_build:latest | |
image_options: -u 1001 --gpus all --cap-add SYS_ADMIN | |
target_devices: ext_oneapi_cuda:gpu | |
- name: Intel | |
runner: '["Linux", "gen12"]' | |
image: ghcr.io/intel/llvm/ubuntu2204_intel_drivers:latest | |
image_options: -u 1001 --device=/dev/dri --privileged --cap-add SYS_ADMIN | |
target_devices: level_zero:gpu;opencl:gpu;opencl:cpu | |
reset_intel_gpu: true | |
install_drivers: ${{ contains(needs.detect_changes.outputs.filters, 'drivers') }} | |
extra_lit_opts: --param gpu-intel-gen12=True | |
- name: E2E tests on Intel Ponte Vecchio GPU | |
runner: '["Linux", "pvc"]' | |
image: ghcr.io/intel/llvm/ubuntu2204_intel_drivers:latest | |
image_options: -u 1001 --device=/dev/dri --privileged --cap-add SYS_ADMIN | |
target_devices: ext_oneapi_level_zero:gpu;opencl:gpu | |
install_drivers: ${{ contains(needs.detect_changes.outputs.filters, 'drivers') }} | |
extra_lit_opts: --param gpu-intel-pvc=True -j 20 | |
- name: E2E tests with dev igc on Intel Ponte Vecchio GPU | |
runner: '["Linux", "pvc"]' | |
image: ghcr.io/intel/llvm/ubuntu2204_intel_drivers:devigc | |
image_options: -u 1001 --device=/dev/dri --privileged --cap-add SYS_ADMIN | |
target_devices: ext_oneapi_level_zero:gpu;opencl:gpu | |
install_drivers: >- | |
${{ contains(needs.detect_changes.outputs.filters, 'drivers') || | |
contains(needs.detect_changes.outputs.filters, 'devigccfg') }} | |
use_dev_igc: ${{ contains(needs.detect_changes.outputs.filters, 'devigccfg') }} | |
# Run only if the PR does not have the 'ci-no-devigc' label. | |
skip_run: ${{ contains(github.event.pull_request.labels.*.name, 'ci-no-devigc') }} | |
extra_lit_opts: --param gpu-intel-pvc=True -j 20 | |
- name: E2E tests on Intel Arc A-Series Graphics | |
runner: '["Linux", "arc"]' | |
image: ghcr.io/intel/llvm/ubuntu2204_intel_drivers:latest | |
image_options: -u 1001 --device=/dev/dri --privileged --cap-add SYS_ADMIN | |
target_devices: level_zero:gpu;opencl:gpu | |
reset_intel_gpu: true | |
install_drivers: ${{ contains(needs.detect_changes.outputs.filters, 'drivers') }} | |
extra_lit_opts: --param matrix-xmx8=True --param gpu-intel-dg2=True | |
env: '{"LIT_FILTER":${{ needs.determine_arc_tests.outputs.arc_tests }} }' | |
- name: E2E tests with dev igc on Intel Arc A-Series Graphics | |
runner: '["Linux", "arc"]' | |
image: ghcr.io/intel/llvm/ubuntu2204_intel_drivers:devigc | |
image_options: -u 1001 --device=/dev/dri --privileged --cap-add SYS_ADMIN | |
target_devices: level_zero:gpu;opencl:gpu | |
reset_intel_gpu: true | |
install_drivers: >- | |
${{ contains(needs.detect_changes.outputs.filters, 'drivers') || | |
contains(needs.detect_changes.outputs.filters, 'devigccfg') }} | |
use_dev_igc: ${{ contains(needs.detect_changes.outputs.filters, 'devigccfg') }} | |
extra_lit_opts: --param matrix-xmx8=True --param gpu-intel-dg2=True | |
env: '{"LIT_FILTER":${{ needs.determine_arc_tests.outputs.arc_tests }} }' | |
# Run only if the PR does not have the 'ci-no-devigc' label. | |
skip_run: ${{ contains(github.event.pull_request.labels.*.name, 'ci-no-devigc') }} | |
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 }} | |
reset_intel_gpu: ${{ matrix.reset_intel_gpu }} | |
install_drivers: ${{ matrix.install_drivers }} | |
use_dev_igc: ${{ matrix.use_dev_igc }} | |
extra_lit_opts: ${{ matrix.extra_lit_opts }} | |
env: ${{ matrix.env || '{}' }} | |
skip_run: ${{ matrix.skip_run || 'false' }} | |
ref: ${{ github.sha }} | |
merge_ref: '' | |
sycl_toolchain_artifact: sycl_linux_default | |
sycl_toolchain_archive: ${{ needs.build.outputs.artifact_archive_name }} | |
sycl_toolchain_decompress_command: ${{ needs.build.outputs.artifact_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: ghcr.io/intel/llvm/ubuntu2204_intel_drivers:latest | |
image_extra_opts: --device=/dev/dri | |
reset_intel_gpu: true | |
- name: Intel Arc A-Series Graphics system | |
runner: '["Linux", "arc"]' | |
image: ghcr.io/intel/llvm/ubuntu2204_intel_drivers:latest | |
image_extra_opts: --device=/dev/dri | |
reset_intel_gpu: true | |
- name: AMD system | |
runner: '["Linux", "amdgpu"]' | |
image: ghcr.io/intel/llvm/ubuntu2204_build:latest | |
image_extra_opts: --device=/dev/dri --device=/dev/kfd | |
extra_cmake_args: -DHIP_PLATFORM="AMD" -DAMD_ARCH="gfx1031" | |
- name: CUDA system | |
runner: '["Linux", "cuda"]' | |
image: ghcr.io/intel/llvm/ubuntu2204_build:latest | |
image_extra_opts: --gpus all | |
uses: ./.github/workflows/sycl-linux-run-tests.yml | |
with: | |
name: Perf tests on ${{ matrix.name }} | |
runner: ${{ matrix. runner }} | |
image: ${{ matrix.image }} | |
image_options: -u 1001 --privileged --cap-add SYS_ADMIN ${{ matrix.image_extra_opts }} | |
target_devices: all | |
reset_intel_gpu: ${{ matrix.reset_intel_gpu }} | |
env: '{"LIT_FILTER":"PerformanceTests/"}' | |
extra_lit_opts: -a -j 1 --param enable-perf-tests=True | |
extra_cmake_args: ${{ matrix.extra_cmake_args }} | |
ref: ${{ github.sha }} | |
merge_ref: '' | |
sycl_toolchain_artifact: sycl_linux_default | |
sycl_toolchain_archive: ${{ needs.build.outputs.artifact_archive_name }} | |
sycl_toolchain_decompress_command: ${{ needs.build.outputs.artifact_decompress_command }} |