[CI][SYCL][Do not merge] Add CI workflow to run compute-benchmarks on incoming syclos PRs #11135
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
# TODO When merging, ensure e2e tests are fully restored! | |
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 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' }} | |
# tests_selector: "benchmark" | |
# | |
# 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 }} | |
benchmark: | |
needs: [build, detect_changes ] | |
permissions: | |
contents: write | |
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: Run benchmarks on Intel | |
runner: '["Linux", "gen12"]' | |
image: ghcr.io/intel/llvm/ubuntu2204_intel_drivers: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;opencl:gpu;opencl:cpu | |
env: | | |
{ | |
"RESET_GPU": "1" | |
} | |
install_drivers: ${{ contains(needs.detect_changes.outputs.filters, 'drivers') }} | |
extra_lit_opts: --param gpu-intel-gen12=True | |
# - 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 -v /dev/dri/by-path:/dev/dri/by-path --privileged --cap-add SYS_ADMIN | |
# target_devices: level_zero:gpu;opencl:gpu | |
# reset_intel_gpu: true | |
# 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 -v /dev/dri/by-path:/dev/dri/by-path --privileged --cap-add SYS_ADMIN | |
# target_devices: level_zero:gpu;opencl:gpu | |
# reset_intel_gpu: true | |
# extra_lit_opts: --param matrix-xmx8=True --param gpu-intel-dg2=True | |
# env: '{"LIT_FILTER":${{ needs.determine_arc_tests.outputs.arc_tests }} }' | |
# use_igc_dev: true | |
# TODO switch back to e2e | |
uses: ./.github/workflows/sycl-linux-benchmark.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 }} | |
#extra_lit_opts: ${{ matrix.extra_lit_opts }} | |
env: ${{ matrix.env || '{}' }} | |
# # Do not install drivers on AMD and CUDA runners. | |
# install_igc_driver: >- | |
# ${{ !contains(matrix.target_devices, 'ext_oneapi_cuda') && | |
# !contains(matrix.target_devices, 'ext_oneapi_hip') && | |
# contains(needs.detect_changes.outputs.filters, 'drivers') }} | |
# install_dev_igc_driver: >- | |
# ${{ !contains(matrix.target_devices, 'ext_oneapi_cuda') && | |
# !contains(matrix.target_devices, 'ext_oneapi_hip') && | |
# matrix.use_igc_dev && contains(needs.detect_changes.outputs.filters, 'devigccfg') || | |
# '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'}} | |
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 }} |