Skip to content
Open
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
1 change: 1 addition & 0 deletions .github/workflows/sycl-linux-precommit.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ on:
- '.github/workflows/sycl-rel-nightly-launch.yml'
- '.github/workflows/sycl-trivy.yml'
- '.github/workflows/sycl-coverity.yml'
- '.github/workflows/sycl-weekly.yml'
- 'devops/containers/**'
- 'devops/actions/build_container/**'
- 'unified-runtime/examples/**'
Expand Down
151 changes: 92 additions & 59 deletions .github/workflows/sycl-weekly.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,66 +9,99 @@ on:
permissions: read-all

jobs:
ubuntu2204_build:
if: github.repository == 'intel/llvm'
uses: ./.github/workflows/sycl-linux-build.yml
secrets: inherit
with:
build_cache_root: "/__w/"
build_configure_extra_args: ''
# ubuntu2204_build:
# if: github.repository == 'intel/llvm'
# uses: ./.github/workflows/sycl-linux-build.yml
# secrets: inherit
# with:
# build_cache_root: "/__w/"
# build_configure_extra_args: ''

toolchain_artifact: sycl_linux_default
# toolchain_artifact: sycl_linux_default

# This job builds SYCL-CTS with -fsycl-use-spirv-backend-for-spirv-gen.
build-sycl-cts:
needs: ubuntu2204_build
permissions:
contents: write
packages: read
if: ${{ !cancelled() && needs.ubuntu2204_build.outputs.build_conclusion == 'success' }}
uses: ./.github/workflows/sycl-linux-run-tests.yml
with:
name: Build SYCL-CTS
runner: '["Linux", "build"]'
testing_mode: 'build-only'
image_options: -u 1001 --device=/dev/dri --privileged --cap-add SYS_ADMIN
tests_selector: cts
repo_ref: ${{ github.sha }}
toolchain_artifact: ${{ needs.ubuntu2204_build.outputs.toolchain_artifact }}
toolchain_artifact_filename: ${{ needs.ubuntu2204_build.outputs.toolchain_artifact_filename }}
toolchain_decompress_command: ${{ needs.ubuntu2204_build.outputs.toolchain_decompress_command }}
extra_cmake_args: -DDPCPP_FLAGS=-fsycl-use-spirv-backend-for-spirv-gen
binaries_artifact: sycl_cts_bin
# # This job builds SYCL-CTS with -fsycl-use-spirv-backend-for-spirv-gen.
# build-sycl-cts:
# needs: ubuntu2204_build
# permissions:
# contents: write
# packages: read
# if: ${{ !cancelled() && needs.ubuntu2204_build.outputs.build_conclusion == 'success' }}
# uses: ./.github/workflows/sycl-linux-run-tests.yml
# with:
# name: Build SYCL-CTS
# runner: '["Linux", "build"]'
# testing_mode: 'build-only'
# image_options: -u 1001 --device=/dev/dri --privileged --cap-add SYS_ADMIN
# tests_selector: cts
# repo_ref: ${{ github.sha }}
# toolchain_artifact: ${{ needs.ubuntu2204_build.outputs.toolchain_artifact }}
# toolchain_artifact_filename: ${{ needs.ubuntu2204_build.outputs.toolchain_artifact_filename }}
# toolchain_decompress_command: ${{ needs.ubuntu2204_build.outputs.toolchain_decompress_command }}
# extra_cmake_args: -DDPCPP_FLAGS=-fsycl-use-spirv-backend-for-spirv-gen
# binaries_artifact: sycl_cts_bin

run-sycl-cts:
needs: [ubuntu2204_build, build-sycl-cts]
permissions:
contents: write
packages: read
if: ${{ !cancelled() && needs.ubuntu2204_build.outputs.build_conclusion == 'success' }}
strategy:
fail-fast: false
matrix:
include:
- name: SYCL-CTS on OCL CPU PVC w/ LLVM SPIR-V Backend
runner: '["Linux", "pvc"]'
image_options: -u 1001 --device=/dev/dri --privileged --cap-add SYS_ADMIN
target_devices: opencl:cpu
# run-sycl-cts:
# needs: [ubuntu2204_build, build-sycl-cts]
# permissions:
# contents: write
# packages: read
# if: ${{ !cancelled() && needs.ubuntu2204_build.outputs.build_conclusion == 'success' }}
# strategy:
# fail-fast: false
# matrix:
# include:
# - name: SYCL-CTS on OCL CPU PVC w/ LLVM SPIR-V Backend
# runner: '["Linux", "pvc"]'
# image_options: -u 1001 --device=/dev/dri --privileged --cap-add SYS_ADMIN
# target_devices: opencl:cpu

- name: SYCL-CTS on L0 GPU PVC w/ LLVM SPIR-V Backend
runner: '["Linux", "pvc"]'
image_options: -u 1001 --device=/dev/dri --privileged --cap-add SYS_ADMIN
target_devices: level_zero:gpu
uses: ./.github/workflows/sycl-linux-run-tests.yml
with:
name: ${{ matrix.name }}
runner: ${{ matrix.runner }}
testing_mode: 'run-only'
image_options: ${{ matrix.image_options }}
target_devices: ${{ matrix.target_devices }}
tests_selector: cts
repo_ref: ${{ github.sha }}
toolchain_artifact: ${{ needs.ubuntu2204_build.outputs.toolchain_artifact }}
toolchain_artifact_filename: ${{ needs.ubuntu2204_build.outputs.toolchain_artifact_filename }}
toolchain_decompress_command: ${{ needs.ubuntu2204_build.outputs.toolchain_decompress_command }}
binaries_artifact: sycl_cts_bin
# - name: SYCL-CTS on L0 GPU PVC w/ LLVM SPIR-V Backend
# runner: '["Linux", "pvc"]'
# image_options: -u 1001 --device=/dev/dri --privileged --cap-add SYS_ADMIN
# target_devices: level_zero:gpu
# uses: ./.github/workflows/sycl-linux-run-tests.yml
# with:
# name: ${{ matrix.name }}
# runner: ${{ matrix.runner }}
# testing_mode: 'run-only'
# image_options: ${{ matrix.image_options }}
# target_devices: ${{ matrix.target_devices }}
# tests_selector: cts
# repo_ref: ${{ github.sha }}
# toolchain_artifact: ${{ needs.ubuntu2204_build.outputs.toolchain_artifact }}
# toolchain_artifact_filename: ${{ needs.ubuntu2204_build.outputs.toolchain_artifact_filename }}
# toolchain_decompress_command: ${{ needs.ubuntu2204_build.outputs.toolchain_decompress_command }}
# binaries_artifact: sycl_cts_bin

yarpgen:
if: ${{ !cancelled() }}
runs-on: [Linux, build]
container:
# This workflow runs on Sundays, so in almost all cases there are no new
# commits on Saturday, and therefore the latest nightly can be used.
# TODO: Consider switching sycl-cts run to nightly build.
image: ghcr.io/intel/llvm/sycl_ubuntu2404_nightly:latest
# Is it the minimum set of options to get a working toolchain?
options: -u 1001 --device=/dev/dri -v /dev/dri/by-path:/dev/dri/by-path --privileged --cap-add SYS_ADMIN
steps:
- name: Set up yarpgen
run: |
git clone https://github.com/intel/yarpgen.git
cmake -B yarpgen/build -G Ninja yarpgen/
ninja -C yarpgen/build
- name: Run yarpgen
run: |
cd yarpgen
python3 --version
# A system hits OOM when using all available threads.
python3 scripts/run_gen.py --target clang -j4
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For how long does it run by default? I suggest we set the duration here explicitly

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It takes just 10 minutes with this amount of jobs. I'm not sure if more jobs reduce the time or even increase:D

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You mean to set the time limit for this job?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You mean to set the time limit for this job?

I mean yarpgen can continue generating and trying programs indefinitely, if you say it so. My point was to pass -t/--timeout parameter explicitly to better indicate the intent here and don't depend on a default which might change

- name: Pack results
run: tar -czf yarpgen_results.tar.gz yarpgen/testing
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I hope results aren't too huge. If they are, we can consider shorter retention policy if no issues were discovered

Copy link
Contributor Author

@KornevNikita KornevNikita Dec 5, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The archive takes just 1mb, as I understand without Intel SDE there are not many compiled programs. The issue is I have no idea how to download Intel SDE via console.

- uses: actions/upload-artifact@v5
with:
name: yarpgen_results
path: yarpgen_results.tar.gz
retention-days: 7
- name: Clean up
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would like this job to somehow report the fuzzing outcome. The tool does print some summary, but there are also errors which should not be considered as problems. For example, when a generated kernel uses too many arguments and they exceed implementation limits.

if: always()
run: rm -rf yarpgen yarpgen_results.tar.gz
1 change: 1 addition & 0 deletions .github/workflows/sycl-windows-precommit.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ on:
- '.github/workflows/sycl-rel-nightly-launch.yml'
- '.github/workflows/sycl-trivy.yml'
- '.github/workflows/sycl-coverity.yml'
- '.github/workflows/sycl-weekly.yml'
- 'devops/containers/**'
- 'devops/actions/build_container/**'
- 'devops/compat_ci_exclude.sycl-rel-6_2'
Expand Down
Loading