SYCL Nightly #650
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] | |
| # We're in the ABI breaking window now, disabling until the next major | |
| # release. | |
| if: github.repository == 'intel/llvm' && false | |
| container: ghcr.io/intel/llvm/ubuntu2404_build | |
| steps: | |
| - uses: actions/checkout@v6 | |
| 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: '--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 | |
| # 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 --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_nvidia_gen12: | |
| needs: [ubuntu2204_build] | |
| name: E2E NVIDIA and GEN12 OCL with ${{ matrix.enable_new_offload_model == 'True' && 'New Offload Model' || 'Old Offload Model' }} | |
| permissions: | |
| contents: write | |
| packages: read | |
| if: ${{ !cancelled() && needs.ubuntu2204_build.outputs.build_conclusion == 'success' }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| enable_new_offload_model: ['False', 'True'] | |
| arch: ['cuda', 'gen12'] | |
| include: | |
| - arch: 'cuda' | |
| image_options: -u 1001 --gpus all --cap-add SYS_ADMIN | |
| target_devices: 'cuda:gpu' | |
| - arch: 'gen12' | |
| target_devices: 'opencl:gpu' | |
| uses: ./.github/workflows/sycl-linux-run-tests.yml | |
| with: | |
| name: ${{ matrix.arch }} (${{ matrix.target_devices }}) with ${{ matrix.enable_new_offload_model == 'True' && 'New Offload Model' || 'Old Offload Model' }} | |
| runner: '["Linux", "${{ matrix.arch }}"]' | |
| 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' --param enable_new_offload_model=${{ matrix.enable_new_offload_model }}" | |
| 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 }} | |
| ubuntu2204_test_intel_level_zero: | |
| needs: [ubuntu2204_build] | |
| name: E2E L0 with ${{ matrix.enable_new_offload_model == 'True' && 'New Offload Model' || 'Old Offload Model' }} | |
| permissions: | |
| contents: write | |
| packages: read | |
| if: ${{ !cancelled() && needs.ubuntu2204_build.outputs.build_conclusion == 'success' }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| enable_new_offload_model: ['False', 'True'] | |
| arch: ['gen12', 'pvc', 'bmg', 'arc'] | |
| uses: ./.github/workflows/sycl-linux-run-tests.yml | |
| with: | |
| name: Intel L0 ${{ matrix.arch }} with ${{ matrix.enable_new_offload_model == 'True' && 'New Offload Model' || 'Old Offload Model' }} | |
| runner: '["Linux", "${{ matrix.arch }}"]' | |
| 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 | |
| tests_selector: e2e | |
| extra_lit_opts: "--param 'cxx_flags=-D_GLIBCXX_USE_CXX11_ABI=0' --param enable_new_offload_model=${{ matrix.enable_new_offload_model }}" | |
| 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 }} | |
| ubuntu2204_test_intel_amd_opencl_cpu: | |
| needs: [ubuntu2204_build] | |
| name: E2E OpenCL CPU for Intel and AMD with ${{ matrix.enable_new_offload_model == 'True' && 'New Offload Model' || 'Old Offload Model' }} | |
| permissions: | |
| contents: write | |
| packages: read | |
| if: ${{ !cancelled() && needs.ubuntu2204_build.outputs.build_conclusion == 'success' }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| enable_new_offload_model: ['False', 'True'] | |
| arch: ['amdcpu', 'gen12', 'arc'] | |
| include: | |
| - arch: 'gen12' | |
| image_options: --privileged --cap-add SYS_ADMIN | |
| uses: ./.github/workflows/sycl-linux-run-tests.yml | |
| with: | |
| name: ${{ matrix.arch }} with ${{ matrix.enable_new_offload_model == 'True' && 'New Offload Model' || 'Old Offload Model' }} | |
| runner: '["Linux", "${{ matrix.arch }}"]' | |
| image_options: -u 1001 ${{ matrix.image_options }} | |
| target_devices: opencl:cpu | |
| tests_selector: e2e | |
| extra_lit_opts: "--param 'cxx_flags=-D_GLIBCXX_USE_CXX11_ABI=0' --param enable_new_offload_model=${{ matrix.enable_new_offload_model }}" | |
| 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 }} | |
| ubuntu2204_test_preview_mode: | |
| needs: [ubuntu2204_build] | |
| permissions: | |
| contents: write | |
| packages: read | |
| if: ${{ !cancelled() && needs.ubuntu2204_build.outputs.build_conclusion == 'success' }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - name: Preview mode on NVIDIA/CUDA | |
| runner: '["Linux", "cuda"]' | |
| image_options: -u 1001 --gpus all --cap-add SYS_ADMIN | |
| target_devices: cuda:gpu | |
| - name: Preview mode on Intel L0 Battlemage GPU | |
| runner: '["Linux", "bmg"]' | |
| target_devices: level_zero:gpu | |
| - name: Preview mode on SPR/PVC | |
| runner: '["Linux", "pvc"]' | |
| target_devices: level_zero:gpu | |
| 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' --param test-preview-mode=True" | |
| 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: ${{ !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: | |
| 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 | |
| name: E2E win with ${{ matrix.enable_new_offload_model == 'True' && 'New Offload Model' || 'Old Offload Model' }} | |
| # Continue if build was successful. | |
| if: | | |
| !cancelled() | |
| && needs.build-win.outputs.build_conclusion == 'success' | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| enable_new_offload_model: ['False', 'True'] | |
| gpu_type: ['gen12', 'arc', 'bmg'] | |
| include: | |
| - gpu_type: 'gen12' | |
| name: Intel Gen12 GPU | |
| runner: '["Windows", "gen12"]' | |
| - gpu_type: 'arc' | |
| name: Intel Arc GPU | |
| runner: '["Windows", "arc"]' | |
| - gpu_type: 'bmg' | |
| name: Intel Battlemage GPU | |
| runner: '["Windows", "bmg"]' | |
| uses: ./.github/workflows/sycl-windows-run-tests.yml | |
| with: | |
| name: ${{ matrix.name }} | |
| runner: ${{ matrix.runner }} | |
| target_devices: level_zero:gpu | |
| toolchain_artifact_filename: ${{ needs.build-win.outputs.toolchain_artifact_filename }} | |
| extra_lit_opts: --param enable_new_offload_model=${{ matrix.enable_new_offload_model }} | |
| cuda-aws-start: | |
| needs: [ubuntu2204_build] | |
| if: ${{ !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: ${{ !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 }} | |
| # The AWS runner is not set up to use vulkan and it's out of our control. | |
| extra_lit_opts: --filter-out bindless_images/vulkan_interop | |
| cuda-aws-stop: | |
| needs: [cuda-aws-start, cuda-run-tests] | |
| if: ${{ 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: ${{ !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: ${{ !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: ${{ !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: ${{ !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: [get_date, ubuntu2204_build, build-win] | |
| runs-on: ubuntu-latest | |
| permissions: | |
| contents: write | |
| id-token: write | |
| steps: | |
| - uses: actions/download-artifact@v7 | |
| with: | |
| name: sycl_linux_default | |
| - uses: actions/download-artifact@v7 | |
| with: | |
| name: sycl_windows_default | |
| - name: Sign with sigstore/cosign | |
| uses: sigstore/gh-action-sigstore-python@a5caf349bc536fbef3668a10ed7f5cd309a4b53d # v3.2.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=${{ needs.get_date.outputs.date }}" >> "$GITHUB_OUTPUT" | |
| else | |
| # TODO: Use date of the commit? | |
| echo "TAG=${{ needs.get_date.outputs.date }}-${GITHUB_SHA::7}" >> "$GITHUB_OUTPUT" | |
| fi | |
| - name: Upload binaries | |
| uses: softprops/action-gh-release@a06a81a03ee405af7f2048a818ed3f03bbf83c7b # v2.5.0 | |
| 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@v6 | |
| - uses: actions/download-artifact@v7 | |
| 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=latest | |
| tags: | | |
| ghcr.io/${{ github.repository }}/sycl_ubuntu2404_nightly:${{ github.sha }} | |
| ghcr.io/${{ github.repository }}/sycl_ubuntu2404_nightly:latest |