SYCL Nightly #1016
This file contains hidden or 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 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' | |
| 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: | |
| 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: ./.github/workflows/sycl-linux-run-tests | |
| with: | |
| tests_selector: e2e | |
| 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 }} | |
| #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 }} | |