Skip to content

SYCL Nightly

SYCL Nightly #1021

Workflow file for this run

name: SYCL Nightly
on:
schedule:
- cron: '0 3 * * *'
workflow_dispatch:
inputs:
runner:
type: choice
options:
- '["Linux", "gen12"]'
- '["amdgpu"]'
- '["Linux", "arc"]'
- '["Linux", "pvc"]'
- '["cts-cpu"]'
- '["Linux", "build"]'
- '["cuda"]'
- '["PVC_PERF"]'
image:
type: choice
options:
- 'ghcr.io/intel/llvm/sycl_ubuntu2404_nightly:latest'
- 'ghcr.io/intel/llvm/sycl_prebuilt_tests:sycl-rel-6_2'
- 'ghcr.io/intel/llvm/sycl_prebuilt_tests:sycl-rel-6_3'
- 'ghcr.io/intel/llvm/ubuntu2404_intel_drivers:alldeps'
image_options:
description: |
Use option with "--device=/dev/kfd" for AMDGPU, without it for the rest.
type: choice
options:
- '-u 1001 --device=/dev/dri --device=/dev/kfd --privileged --cap-add SYS_ADMIN'
- '-u 1001 --device=/dev/dri --privileged --cap-add SYS_ADMIN'
- '-u 1001 --gpus all --cap-add SYS_ADMIN'
target_devices:
type: choice
options:
- 'level_zero:gpu'
- 'opencl:cpu'
- 'opencl:gpu'
- 'hip:gpu'
- 'cuda:gpu'
default: 'opencl:cpu'
tests_selector:
type: choice
options:
- e2e
- cts
- benchmarks
toolchain_release_tag:
description: |
Tag of a "Nightly" release at https://github.com/intel/llvm/releases.
default: ''
env:
description: |
Suggested variables: for E2E tests - LIT_FILTER, LIT_FILTER_OUT.
LIT_OPTS won't work as we redefine it as part of this workflow.
For SYCL CTS - CTS_TESTS_TO_BUILD to specify which categories to
build, e.g. {"CTS_TESTS_TO_BUILD":"test_category1 test_category2..."}.
Format: '{"VAR1":"VAL1","VAR2":"VAL2",...}'
default: '{}'
extra_lit_opts:
description: |
Extra options to be added to LIT_OPTS.
default: ''
testing_mode:
type: choice
options:
- "full"
- "build-only"
- "run-only"
benchmark_exit_on_failure:
type: choice
options:
- "true"
- "false"
permissions: read-all
jobs:
#check_abi_symbols:
# name: Check ABI symbols tests match release branch
# runs-on: [Linux, build]
# if: github.repository == 'intel/llvm'
# container: ghcr.io/intel/llvm/ubuntu2404_build
# steps:
# - uses: actions/checkout@v5
# with:
# sparse-checkout: |
# sycl/test/abi
# - run: |
# git fetch --depth=1 origin sycl-rel-6_3
# git diff --exit-code -I "^# RUN" origin/sycl-rel-6_3:sycl/test/abi/sycl_symbols_linux.dump sycl/test/abi/sycl_symbols_linux-sycl-rel-6_3.dump
# git diff --exit-code -I "^# RUN" origin/sycl-rel-6_3:sycl/test/abi/sycl_symbols_windows.dump sycl/test/abi/sycl_symbols_windows-sycl-rel-6_3.dump
#get_date:
# runs-on: ubuntu-latest
# outputs:
# date: ${{ steps.get_date.outputs.date }}
# steps:
# - id: get_date
# run: echo "date=$(date +'%Y-%m-%d')" >> $GITHUB_OUTPUT
ubuntu2204_build:
#needs: get_date
if: github.repository == 'intel/llvm'
uses: ./.github/workflows/sycl-linux-build.yml
secrets: inherit
with:
build_cache_root: "/__w/"
build_configure_extra_args: '--hip --cuda -DSYCL_BUILD_INFO="Nightly ${{ needs.get_date.outputs.date }}"'
build_image: ghcr.io/intel/llvm/ubuntu2204_build:latest
retention-days: 90
toolchain_artifact: sycl_linux_default
# We upload the build for people to download/use, override its name and
# prefer widespread gzip compression.
toolchain_artifact_filename: sycl_linux.tar.gz
e2e_with_NewOffloadModel:
needs: [ubuntu2204_build]
if: ${{ !cancelled() && needs.ubuntu2204_build.outputs.build_conclusion == 'success' }}
strategy:
fail-fast: false
uses: ./.github/workflows/sycl-linux-run-tests.yml
with:
name: "E2E with enabled NewOffloadModel"
runner: ${{ inputs.runner }}
image_options: ${{ inputs.image_options }}
tests_selector: e2e
testing_mode: "full"
target_devices: ${{ inputs.target_devices }}
extra_lit_opts: "--param enable_new_offload_model=True"
ref: ${{ github.sha }}

Check failure on line 139 in .github/workflows/sycl-nightly.yml

View workflow run for this annotation

GitHub Actions / SYCL Nightly

Invalid workflow file

The workflow is not valid. .github/workflows/sycl-nightly.yml (Line: 139, Col: 12): Invalid input, ref is not defined in the referenced workflow. .github/workflows/sycl-nightly.yml (Line: 125, Col: 3): Error calling workflow 'intel/llvm/.github/workflows/sycl-linux-run-tests.yml@44ca9049fe3b330001dbfb71ca3215647a595c23'. The nested job 'run' is requesting 'contents: write', but is only allowed 'contents: read'.
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 }}
#e2e_with_NewOffloadModel:
# runs-on: [Linux, build]
# needs: [ubuntu2204_build]
# if: ${{ !cancelled() && needs.ubuntu2204_build.outputs.build_conclusion == 'success' }}
# strategy:
# fail-fast: false
# steps:
# - uses: actions/checkout@v5
# - uses: ./devops/actions/run-tests/e2e
# with:
# testing_mode: "full"
# target_devices: ${{ inputs.target_devices }}
# extra_lit_opts: "--param enable_new_offload_model=True"
# 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 }}
#build-win:
# needs: get_date
# 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.
# toolchain_artifact_filename: sycl_windows.tar.gz
# # Disable the spirv-dis requirement as to not require SPIR-V Tools.
# build_configure_extra_args: -DLLVM_SPIRV_ENABLE_LIBSPIRV_DIS=off -DSYCL_BUILD_INFO="Nightly ${{ needs.get_date.outputs.date }}"
# build_target: all
#e2e-win:
# needs: build-win
# # Continue if build was successful.
# if: |
# !cancelled()
# && needs.build-win.outputs.build_conclusion == 'success'
# strategy:
# fail-fast: false
# matrix:
# include:
# - name: Intel L0 Gen12 GPU
# runner: '["Windows", "gen12"]'
# target_devices: level_zero:gpu
#
# - name: Intel L0 Arc GPU
# runner: '["Windows", arc"]'
# target_devices: level_zero:gpu
#
# - name: Intel L0 Battlemage GPU
# runner: '["Windows", "bmg"]'
# target_devices: level_zero:gpu
#
# uses: ./.github/workflows/sycl-windows-run-tests.yml
# with:
# name: ${{ matrix.name }}
# runner: ${{ matrix.runner }}
# target_devices: ${{ matrix.target_devices }}
# toolchain_artifact_filename: ${{ needs.build-win.outputs.toolchain_artifact_filename }}
# Temporary version:
#jobs:
# run:
# if: github.event_name == 'workflow_dispatch' || inputs.skip_run == 'false'
# name: ${{ inputs.name }}
# runs-on: ${{ fromJSON(inputs.runner) }}
# permissions:
# contents: write
# packages: read
# container:
# image: ${{ inputs.image || 'ghcr.io/intel/llvm/ubuntu2404_intel_drivers:alldeps'}}
# options: ${{ inputs.image_options }}
# env: ${{ fromJSON(inputs.env) }}
# steps:
# - uses: actions/checkout@v5
# with:
# sparse-checkout: |
# devops
# sycl/cts_exclude_filter
# - name: Register cleanup after job is finished
# uses: ./devops/actions/cleanup
# - name: Reset Intel GPU
# uses: ./devops/actions/reset_gpu
# - name: Install drivers
# if: inputs.binaries_artifact != 'in-container' && (inputs.install_igc_driver == 'true' || inputs.install_dev_igc_driver == 'true')
# env:
# GITHUB_TOKEN: ${{ github.token }}
# run: |
# if [ "${{ inputs.install_dev_igc_driver }}" = "true" ]; then
# # If libllvm14 is already installed (dev igc docker), still return true.
# sudo apt-get install -yqq libllvm14 || true;
# fi
# sudo -E bash devops/scripts/install_drivers.sh devops/dependencies.json ${{ inputs.install_dev_igc_driver == 'true' && 'devops/dependencies-igc-dev.json --use-dev-igc' || '' }} --all
# - name: Source OneAPI TBB vars.sh
# shell: bash
# run: |
# # https://github.com/actions/runner/issues/1964 prevents us from using
# # the ENTRYPOINT in the image.
# env | sort > env_before
# if [ -e /runtimes/oneapi-tbb/env/vars.sh ]; then
# source /runtimes/oneapi-tbb/env/vars.sh;
# elif [ -e /opt/runtimes/oneapi-tbb/env/vars.sh ]; then
# source /opt/runtimes/oneapi-tbb/env/vars.sh;
# else
# echo "no TBB vars in /opt/runtimes or /runtimes";
# fi
# env | sort > env_after
# comm -13 env_before env_after >> $GITHUB_ENV
# rm env_before env_after
# - name: Download SYCL toolchain
# if: inputs.toolchain_artifact != '' && github.event_name != 'workflow_run'
# uses: actions/download-artifact@v6
# with:
# name: ${{ inputs.toolchain_artifact }}
# - name: Download SYCL toolchain [workflow_run]
# # NOTE: This is for `sycl-linux-precommit-aws.yml`.
# if: inputs.toolchain_artifact != '' && github.event_name == 'workflow_run'
# uses: actions/github-script@v8
# with:
# script: |
# const name = '${{ inputs.toolchain_artifact }}'
# let allArtifacts = await github.rest.actions.listWorkflowRunArtifacts({
# owner: context.repo.owner,
# repo: context.repo.repo,
# run_id: context.payload.workflow_run.id,
# });
# let matchArtifact = allArtifacts.data.artifacts.filter((artifact) => {
# return artifact.name == name
# })[0];
# let download = await github.rest.actions.downloadArtifact({
# owner: context.repo.owner,
# repo: context.repo.repo,
# artifact_id: matchArtifact.id,
# archive_format: 'zip',
# });
# let fs = require('fs');
# fs.writeFileSync(`${process.env.GITHUB_WORKSPACE}/` + name + '.zip', Buffer.from(download.data));
# - name: Unzip artifact [workflow_run]
# if: inputs.toolchain_artifact != '' && github.event_name == 'workflow_run'
# run: |
# pwd
# ls
# unzip ${{ inputs.toolchain_artifact }}.zip
# rm ${{ inputs.toolchain_artifact }}.zip
# - name: Extract/Setup SYCL toolchain
# if: inputs.toolchain_artifact != ''
# run: |
# mkdir toolchain
# tar -I '${{ inputs.toolchain_decompress_command }}' -xf ${{ inputs.toolchain_artifact_filename }} -C toolchain
# rm -f ${{ inputs.toolchain_artifact_filename }}
# echo PATH=$PWD/toolchain/bin/:$PATH >> $GITHUB_ENV
# echo LD_LIBRARY_PATH=$PWD/toolchain/lib/:$LD_LIBRARY_PATH >> $GITHUB_ENV
# - name: Download SYCL toolchain using release tag
# if: inputs.toolchain_release_tag != ''
# env:
# TAG: ${{ inputs.toolchain_release_tag }}
# shell: bash
# run: |
# mkdir toolchain
# wget "https://github.com/intel/llvm/releases/download/$TAG/sycl_linux.tar.gz"
# tar xf sycl_linux.tar.gz -C toolchain
# echo PATH=$PWD/toolchain/bin/:$PATH >> $GITHUB_ENV
# echo LD_LIBRARY_PATH=$PWD/toolchain/lib/:$LD_LIBRARY_PATH >> $GITHUB_ENV
# - run: which clang++ sycl-ls
# - run: sycl-ls --verbose
# - run: SYCL_UR_TRACE=1 sycl-ls
# - name: Print IGC version
# run: |
# if [ -f /usr/local/lib/igc/IGCTAG.txt ]; then
# cat /usr/local/lib/igc/IGCTAG.txt
# fi
#
# #- name: Run E2E Tests
# if: inputs.tests_selector == 'e2e'
# uses: ./devops/actions/run-tests/e2e
# timeout-minutes: 60
# with:
# ref: ${{ inputs.tests_ref || inputs.repo_ref || github.sha }}
# binaries_artifact: ${{ inputs.in_workflow_call_mode && inputs.binaries_artifact
# || inputs.testing_mode == 'run-only' && 'in-container'
# || '' }}
# testing_mode: ${{ inputs.testing_mode }}
# extra_cmake_args: ${{ inputs.extra_cmake_args }}
# target_devices: ${{ inputs.target_devices }}
# extra_lit_opts: ${{ inputs.extra_lit_opts }}
# retention-days: ${{ inputs.retention-days }}
#
# - name: Run E2E Tests in New Offload Model.
# if: inputs.tests_selector == 'e2e'
# uses: ./devops/actions/run-tests/e2e
# timeout-minutes: 60
# with:
# ref: ${{ inputs.tests_ref || inputs.repo_ref || github.sha }}
# binaries_artifact: ${{ inputs.in_workflow_call_mode && inputs.binaries_artifact
# || inputs.testing_mode == 'run-only' && 'in-container'
# || '' }}
# testing_mode: ${{ inputs.testing_mode }}
# extra_cmake_args: ${{ inputs.extra_cmake_args }}
# target_devices: ${{ inputs.target_devices }}
# extra_lit_opts: ${{ inputs.extra_lit_opts }} --param enable_new_offload_model=True
# retention-days: ${{ inputs.retention-days }}