SYCL Nightly #993
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: | |
| workflow_dispatch: | |
| schedule: | |
| - cron: '0 3 * * *' | |
| 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 | |
| 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: '--hip --cuda' | |
| 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 | |
| # Build used for performance testing only: not intended for testing | |
| linux_shared_build: | |
| if: github.repository == 'intel/llvm' | |
| uses: ./.github/workflows/sycl-linux-build.yml | |
| secrets: inherit | |
| with: | |
| build_cache_root: "/__w/" | |
| build_cache_suffix: sprod_shared | |
| build_configure_extra_args: '--shared-libs --hip --cuda --native_cpu --no-assertions' | |
| build_target: all | |
| toolchain_artifact: sycl_linux_sprod_shared | |
| toolchain_artifact_filename: sycl_linux_shared.tar.zst | |
| ubuntu2404_oneapi_build: | |
| if: github.repository == 'intel/llvm' | |
| uses: ./.github/workflows/sycl-linux-build.yml | |
| secrets: inherit | |
| with: | |
| build_cache_root: "/__w/" | |
| build_cache_suffix: oneapi | |
| build_configure_extra_args: -DCMAKE_C_FLAGS="-no-intel-lib -ffp-model=precise" -DCMAKE_CXX_FLAGS="-no-intel-lib -ffp-model=precise" | |
| cc: icx | |
| cxx: icpx | |
| toolchain_artifact: sycl_linux_oneapi | |
| toolchain_artifact_filename: sycl_linux_oneapi.tar.zst | |
| ubuntu2404_libcxx_build: | |
| if: github.repository == 'intel/llvm' | |
| uses: ./.github/workflows/sycl-linux-build.yml | |
| secrets: inherit | |
| with: | |
| build_cache_root: "/__w/" | |
| build_cache_suffix: libcxx | |
| build_configure_extra_args: --use-libcxx -DLLVM_SPIRV_ENABLE_LIBSPIRV_DIS=OFF | |
| cc: clang-18 | |
| cxx: clang++-18 | |
| toolchain_artifact: sycl_linux_libcxx | |
| toolchain_artifact_filename: sycl_linux_libcxx.tar.zst | |
| ubuntu2204_test: | |
| needs: [ubuntu2204_build] | |
| permissions: | |
| contents: write | |
| packages: read | |
| if: ${{ always() && !cancelled() && needs.ubuntu2204_build.outputs.build_conclusion == 'success' }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - name: AMD/HIP | |
| runner: '["Linux", "amdgpu"]' | |
| image_options: -u 1001 --device=/dev/dri --device=/dev/kfd | |
| target_devices: hip:gpu | |
| - name: Preview mode on AMD/HIP | |
| runner: '["Linux", "amdgpu"]' | |
| image_options: -u 1001 --device=/dev/dri --device=/dev/kfd | |
| target_devices: hip:gpu | |
| extra_lit_opts: --param test-preview-mode=True | |
| - name: NVIDIA/CUDA | |
| runner: '["Linux", "cuda"]' | |
| image_options: -u 1001 --gpus all --cap-add SYS_ADMIN | |
| target_devices: cuda:gpu | |
| - name: Preview mode on NVIDIA/CUDA | |
| runner: '["Linux", "cuda"]' | |
| image_options: -u 1001 --gpus all --cap-add SYS_ADMIN | |
| target_devices: cuda:gpu | |
| extra_lit_opts: --param test-preview-mode=True | |
| - name: Intel L0 Gen12 GPU | |
| runner: '["Linux", "gen12"]' | |
| target_devices: level_zero:gpu | |
| - name: Intel L0 Ponte Vecchio GPU | |
| runner: '["Linux", "pvc"]' | |
| target_devices: level_zero:gpu | |
| - name: Intel L0 Battlemage GPU | |
| runner: '["Linux", "bmg"]' | |
| target_devices: level_zero:gpu | |
| - name: Preview mode on Intel L0 Battlemage GPU | |
| runner: '["Linux", "bmg"]' | |
| target_devices: level_zero:gpu | |
| extra_lit_opts: --param test-preview-mode=True | |
| - name: Intel L0 Arc A-Series GPU | |
| runner: '["Linux", "arc"]' | |
| target_devices: level_zero:gpu | |
| - name: Intel OCL Gen12 GPU | |
| runner: '["Linux", "gen12"]' | |
| target_devices: opencl:gpu | |
| - name: OCL CPU (AMD) | |
| runner: '["Linux", "amdcpu"]' | |
| image_options: -u 1001 | |
| target_devices: opencl:cpu | |
| - name: OCL CPU (Intel/GEN12) | |
| runner: '["Linux", "gen12"]' | |
| image_options: -u 1001 --privileged --cap-add SYS_ADMIN | |
| target_devices: opencl:cpu | |
| - name: OCL CPU (Intel/Arc) | |
| runner: '["Linux", "arc"]' | |
| image_options: -u 1001 | |
| target_devices: opencl:cpu | |
| - name: Preview mode on SPR/PVC | |
| runner: '["Linux", "pvc"]' | |
| target_devices: level_zero:gpu | |
| extra_lit_opts: --param test-preview-mode=True | |
| uses: ./.github/workflows/sycl-linux-run-tests.yml | |
| with: | |
| name: ${{ matrix.name }} | |
| runner: ${{ matrix.runner }} | |
| image_options: ${{ matrix.image_options || '-u 1001 --device=/dev/dri -v /dev/dri/by-path:/dev/dri/by-path --privileged --cap-add SYS_ADMIN' }} | |
| target_devices: ${{ matrix.target_devices }} | |
| tests_selector: e2e | |
| extra_lit_opts: "--param 'cxx_flags=-D_GLIBCXX_USE_CXX11_ABI=0' ${{ matrix.extra_lit_opts }}" | |
| 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 }} | |
| ubuntu2404_oneapi_test: | |
| needs: [ubuntu2404_oneapi_build] | |
| permissions: | |
| contents: write | |
| packages: read | |
| if: ${{ always() && !cancelled() && needs.ubuntu2404_oneapi_build.outputs.build_conclusion == 'success' }} | |
| uses: ./.github/workflows/sycl-linux-run-tests.yml | |
| with: | |
| name: Intel PVC L0 oneAPI | |
| runner: '["Linux", "pvc"]' | |
| target_devices: level_zero:gpu | |
| extra_lit_opts: -j 50 | |
| image_options: -u 1001 --device=/dev/dri -v /dev/dri/by-path:/dev/dri/by-path --privileged --cap-add SYS_ADMIN | |
| repo_ref: ${{ github.sha }} | |
| toolchain_artifact: ${{ needs.ubuntu2404_oneapi_build.outputs.toolchain_artifact }} | |
| toolchain_artifact_filename: ${{ needs.ubuntu2404_oneapi_build.outputs.toolchain_artifact_filename }} | |
| toolchain_decompress_command: ${{ needs.ubuntu2404_oneapi_build.outputs.toolchain_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. | |
| 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 | |
| build_target: all | |
| e2e-win: | |
| needs: build-win | |
| # Continue if build was successful. | |
| if: | | |
| always() | |
| && !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 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 }} | |
| 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] | |
| permissions: | |
| contents: write | |
| packages: read | |
| 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 | |
| image_options: -u 1001 --gpus all --cap-add SYS_ADMIN --env NVIDIA_DISABLE_REQUIRE=1 | |
| target_devices: cuda:gpu | |
| 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 }} | |
| cuda-aws-stop: | |
| needs: [cuda-aws-start, cuda-run-tests] | |
| if: always() && ${{ needs.cuda-aws-start.result != 'skipped' }} | |
| uses: ./.github/workflows/sycl-aws.yml | |
| secrets: inherit | |
| with: | |
| mode: stop | |
| build-sycl-cts-linux: | |
| needs: ubuntu2204_build | |
| permissions: | |
| contents: write | |
| packages: read | |
| if: ${{ always() && !cancelled() && needs.ubuntu2204_build.outputs.build_conclusion == 'success' }} | |
| uses: ./.github/workflows/sycl-linux-run-tests.yml | |
| with: | |
| name: Build SYCL-CTS for Linux | |
| 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 }} | |
| binaries_artifact: sycl_cts_bin_linux | |
| run-sycl-cts-linux: | |
| needs: [ubuntu2204_build, build-sycl-cts-linux] | |
| permissions: | |
| contents: write | |
| packages: read | |
| if: ${{ always() && !cancelled() && needs.ubuntu2204_build.outputs.build_conclusion == 'success' }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - name: SYCL-CTS on OCL CPU | |
| runner: '["Linux", "gen12"]' | |
| image_options: -u 1001 --device=/dev/dri --privileged --cap-add SYS_ADMIN | |
| target_devices: opencl:cpu | |
| - name: SYCL-CTS on L0 gen12 | |
| runner: '["Linux", "gen12"]' | |
| 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_linux | |
| build-sycl-cts-win: | |
| needs: build-win | |
| if: ${{ always() && !cancelled() && needs.build-win.outputs.build_conclusion == 'success' }} | |
| uses: ./.github/workflows/sycl-windows-run-tests.yml | |
| with: | |
| name: Build SYCL-CTS for Windows | |
| runner: '["Windows", "build"]' | |
| testing_mode: 'build-only' | |
| tests_selector: cts | |
| repo_ref: ${{ github.sha }} | |
| toolchain_artifact_filename: ${{ needs.build-win.outputs.toolchain_artifact_filename }} | |
| binaries_artifact: sycl_cts_bin_win | |
| run-sycl-cts-win: | |
| needs: [build-win, build-sycl-cts-win] | |
| if: ${{ always() && !cancelled() && needs.build-win.outputs.build_conclusion == 'success' }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - name: SYCL-CTS on L0 gen12 | |
| runner: '["Windows", "gen12"]' | |
| target_devices: level_zero:gpu | |
| uses: ./.github/workflows/sycl-windows-run-tests.yml | |
| with: | |
| name: ${{ matrix.name }} | |
| runner: ${{ matrix.runner }} | |
| testing_mode: 'run-only' | |
| target_devices: ${{ matrix.target_devices }} | |
| tests_selector: cts | |
| repo_ref: ${{ github.sha }} | |
| toolchain_artifact_filename: ${{ needs.build-win.outputs.toolchain_artifact_filename }} | |
| binaries_artifact: sycl_cts_bin_win | |
| # Verification example: | |
| # cosign-windows-amd64.exe verify-blob sycl_linux.tar.gz \ | |
| # --bundle sycl_linux.tar.gz.sigstore.json \ | |
| # --certificate-oidc-issuer https://token.actions.githubusercontent.com \ | |
| # --certificate-identity https://github.com/intel/llvm/.github/workflows/sycl-nightly.yml@refs/heads/sycl | |
| nightly_build_upload: | |
| name: Nightly Build Upload | |
| if: ${{ github.ref_name == 'sycl' }} | |
| needs: [ubuntu2204_build, build-win] | |
| runs-on: ubuntu-latest | |
| permissions: | |
| contents: write | |
| id-token: write | |
| steps: | |
| - uses: actions/download-artifact@v6 | |
| with: | |
| name: sycl_linux_default | |
| - uses: actions/download-artifact@v6 | |
| with: | |
| name: sycl_windows_default | |
| - name: Sign with sigstore/cosign | |
| uses: sigstore/gh-action-sigstore-python@f832326173235dcb00dd5d92cd3f353de3188e6c # v3.1.0 | |
| with: | |
| inputs: sycl_linux.tar.gz sycl_windows.tar.gz | |
| - 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@6da8fa9354ddfdc4aeace5fc48d7f679b5214090 # v2.4.1 | |
| with: | |
| files: | | |
| sycl_linux.tar.gz | |
| sycl_windows.tar.gz | |
| sycl_linux.tar.gz.sigstore.json | |
| sycl_windows.tar.gz.sigstore.json | |
| 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 }} | |
| docker_build_push: | |
| if: github.repository == 'intel/llvm' | |
| runs-on: [Linux, build] | |
| permissions: | |
| packages: write | |
| needs: ubuntu2204_build | |
| steps: | |
| - uses: actions/checkout@v5 | |
| - uses: actions/download-artifact@v6 | |
| with: | |
| name: sycl_linux_default | |
| path: devops/ | |
| - name: Build and Push Container | |
| uses: ./devops/actions/build_container | |
| with: | |
| push: ${{ github.ref_name == 'sycl' }} | |
| file: nightly | |
| username: ${{ github.repository_owner }} | |
| password: ${{ secrets.GITHUB_TOKEN }} | |
| build-args: | | |
| base_image=ghcr.io/intel/llvm/ubuntu2404_intel_drivers | |
| base_tag=alldeps | |
| tags: | | |
| ghcr.io/${{ github.repository }}/sycl_ubuntu2404_nightly:${{ github.sha }} | |
| ghcr.io/${{ github.repository }}/sycl_ubuntu2404_nightly:latest |