Skip to content

Commit

Permalink
[SYCL][CI] Introduce release branch nightly workflow
Browse files Browse the repository at this point in the history
It will use different tests.

Also, to better understand the current status, some of disabled CTS have
been re-enabled
  • Loading branch information
AlexeySachkov committed Nov 27, 2024
1 parent 1c728cc commit d1bad62
Show file tree
Hide file tree
Showing 3 changed files with 246 additions and 3 deletions.
243 changes: 243 additions & 0 deletions .github/workflows/sycl-release-nightly.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,243 @@
name: SYCL Release Branch Nightly

on:
workflow_dispatch:
# TODO: schedule workflows are only launched on the main branch
schedule:
- cron: '0 3 * * *'
branches:
- sycl-rel*

permissions: read-all

# TODO: we need to skip the whole workflow if it was launched by cron job, but
# there were no new commits since the last cron run.

jobs:
ubuntu2204_build:
if: github.repository == 'intel/llvm'
uses: ./.github/workflows/sycl-linux-build.yml
secrets: inherit
with:
build_cache_root: "/__w/"
build_artifact_suffix: v6
build_configure_extra_args: '--hip --cuda'
merge_ref: ''
retention-days: 90

# We upload the build for people to download/use, override its name and
# prefer widespread gzip compression.
artifact_archive_name: sycl_linux.tar.gz

ubuntu2204_test:
needs: [ubuntu2204_build]
if: ${{ always() && !cancelled() && needs.ubuntu2204_build.outputs.build_conclusion == 'success' }}
strategy:
fail-fast: false
matrix:
include:
- name: AMD/HIP
runner: '["Linux", "amdgpu"]'
image: ghcr.io/intel/llvm/ubuntu2204_build:latest
image_options: -u 1001 --device=/dev/dri --device=/dev/kfd
target_devices: ext_oneapi_hip:gpu
tests_selector: e2e

- name: Intel L0 GPU
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
reset_intel_gpu: true
tests_selector: e2e
extra_lit_opts: --param gpu-intel-gen12=True

- name: Intel OCL GPU
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: opencl:gpu
reset_intel_gpu: true
tests_selector: e2e
extra_lit_opts: --param gpu-intel-gen12=True

- name: Intel OCL CPU
runner: '["Linux", "gen12"]'
image: ghcr.io/intel/llvm/ubuntu2204_intel_drivers:latest
image_options: -u 1001 --privileged --cap-add SYS_ADMIN
target_devices: opencl:cpu
tests_selector: e2e

- name: SYCL-CTS on OCL CPU
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: opencl:cpu
tests_selector: cts

- name: SYCL-CTS on L0 gen12
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
tests_selector: cts
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 }}
tests_selector: ${{ matrix.tests_selector }}
extra_lit_opts: ${{ matrix.extra_lit_opts }}
reset_intel_gpu: ${{ matrix.reset_intel_gpu }}
ref: ${{ github.sha }}
merge_ref: ''
sycl_toolchain_artifact: sycl_linux_default
sycl_toolchain_archive: ${{ needs.ubuntu2204_build.outputs.artifact_archive_name }}
sycl_toolchain_decompress_command: ${{ needs.ubuntu2204_build.outputs.artifact_decompress_command }}

build-win:
uses: ./.github/workflows/sycl-windows-build.yml
if: github.repository == 'intel/llvm'
with:
retention-days: 90
# We upload both Linux/Windows build via Github's "Releases"
# functionality, make sure Linux/Windows names follow the same pattern.
artifact_archive_name: sycl_windows.tar.gz

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

cuda-aws-start:
needs: [ubuntu2204_build]
if: ${{ always() && !cancelled() && needs.ubuntu2204_build.outputs.build_conclusion == 'success' }}
uses: ./.github/workflows/sycl-aws.yml
secrets: inherit
with:
mode: start

cuda-run-tests:
needs: [ubuntu2204_build, cuda-aws-start]
if: ${{ always() && !cancelled() && needs.ubuntu2204_build.outputs.build_conclusion == 'success' }}
uses: ./.github/workflows/sycl-linux-run-tests.yml
with:
name: CUDA E2E
runner: '["aws_cuda-${{ github.run_id }}-${{ github.run_attempt }}"]'
image: ghcr.io/intel/llvm/ubuntu2204_build:latest-0300ac924620a51f76c4929794637b82790f12ab
image_options: -u 1001 --gpus all --cap-add SYS_ADMIN --env NVIDIA_DISABLE_REQUIRE=1
target_devices: ext_oneapi_cuda:gpu
ref: ${{ github.sha }}
merge_ref: ''

sycl_toolchain_artifact: sycl_linux_default
sycl_toolchain_archive: ${{ needs.ubuntu2204_build.outputs.artifact_archive_name }}
sycl_toolchain_decompress_command: ${{ needs.ubuntu2204_build.outputs.artifact_decompress_command }}

cuda-aws-stop:
needs: [cuda-aws-start, cuda-run-tests]
if: always()
uses: ./.github/workflows/sycl-aws.yml
secrets: inherit
with:
mode: stop

# No binaries upload for now
# nightly_build_upload:
# name: Nightly Build Upload
# if: ${{ github.ref_name == 'sycl' }}
# needs: [ubuntu2204_build, build-win]
# runs-on: ubuntu-latest
# permissions:
# contents: write
# steps:
# - uses: actions/download-artifact@v4
# with:
# name: sycl_linux_default
# - uses: actions/download-artifact@v4
# with:
# name: sycl_windows_default
# - name: Compute tag
# id: tag
# run: |
# if [ "${{ github.event_name == 'schedule' }}" == "true" ]; then
# echo "TAG=$(date +'%Y-%m-%d')" >> "$GITHUB_OUTPUT"
# else
# # TODO: Use date of the commit?
# echo "TAG=$(date +'%Y-%m-%d')-${GITHUB_SHA::7}" >> "$GITHUB_OUTPUT"
# fi
# - name: Upload binaries
# uses: softprops/action-gh-release@e7a8f85e1c67a31e6ed99a94b41bd0b71bbee6b8
# with:
# files: |
# sycl_linux.tar.gz
# sycl_windows.tar.gz
# tag_name: nightly-${{ steps.tag.outputs.TAG }}
# name: DPC++ daily ${{ steps.tag.outputs.TAG }}
# prerelease: true
# body: "Daily build ${{ steps.tag.outputs.TAG }}"
# target_commitish: ${{ github.sha }}

# No containers update for now
# ubuntu2204_docker_build_push:
# if: github.repository == 'intel/llvm'
# runs-on: [Linux, build]
# permissions:
# packages: write
# needs: ubuntu2204_build
# steps:
# - uses: actions/checkout@v4
# - uses: actions/download-artifact@v4
# with:
# name: sycl_linux_default
# path: devops/
# - name: Build and Push Container (with drivers)
# uses: ./devops/actions/build_container
# with:
# push: ${{ github.ref_name == 'sycl' }}
# file: ubuntu2204_preinstalled
# username: ${{ github.repository_owner }}
# password: ${{ secrets.GITHUB_TOKEN }}
# build-args: |
# base_image=ghcr.io/intel/llvm/ubuntu2204_intel_drivers
# base_tag=latest
# tags: |
# ghcr.io/${{ github.repository }}/sycl_ubuntu2204_nightly:${{ github.sha }}
# ghcr.io/${{ github.repository }}/sycl_ubuntu2204_nightly:latest
# - name: Build and Push Container (no drivers)
# uses: ./devops/actions/build_container
# with:
# push: ${{ github.ref_name == 'sycl' }}
# file: ubuntu2204_preinstalled
# username: ${{ github.repository_owner }}
# password: ${{ secrets.GITHUB_TOKEN }}
# build-args: |
# base_image=ghcr.io/intel/llvm/ubuntu2204_base
# base_tag=latest
# tags: |
# ghcr.io/${{ github.repository }}/sycl_ubuntu2204_nightly:no-drivers-${{ github.sha }}
# ghcr.io/${{ github.repository }}/sycl_ubuntu2204_nightly:no-drivers
# - name: Build and Push Container (Build image)
# uses: ./devops/actions/build_container
# with:
# push: ${{ github.ref_name == 'sycl' }}
# file: ubuntu2204_preinstalled
# username: ${{ github.repository_owner }}
# password: ${{ secrets.GITHUB_TOKEN }}
# build-args: |
# base_image=ghcr.io/intel/llvm/ubuntu2204_build
# base_tag=latest
# tags: |
# ghcr.io/${{ github.repository }}/sycl_ubuntu2204_nightly:build-${{ github.sha }}
# ghcr.io/${{ github.repository }}/sycl_ubuntu2204_nightly:build
2 changes: 1 addition & 1 deletion devops/cts_exclude_filter_L0_GPU
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@
kernel_bundle
marray
# No issue created yet
optional_kernel_features
# optional_kernel_features
4 changes: 2 additions & 2 deletions devops/cts_exclude_filter_OCL_CPU
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,6 @@
kernel_bundle
marray
# https://github.com/intel/llvm/issues/13477
math_builtin_api
# math_builtin_api
# https://github.com/intel/llvm/issues/13574
hierarchical
# hierarchical

0 comments on commit d1bad62

Please sign in to comment.