SYCL Nightly #887
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@v4 | |
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] | |
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] | |
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' | |
uses: ./.github/workflows/sycl-windows-run-tests.yml | |
with: | |
name: Intel GEN12 Graphics with Level Zero | |
runner: '["Windows","gen12"]' | |
target_devices: level_zero:gpu | |
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] | |
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 | |
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"]' | |
cts_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 }} | |
sycl_cts_artifact: sycl_cts_bin_linux | |
run-sycl-cts-linux: | |
needs: [ubuntu2204_build, build-sycl-cts-linux] | |
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 }} | |
cts_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 }} | |
sycl_cts_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"]' | |
cts_testing_mode: 'build-only' | |
tests_selector: cts | |
repo_ref: ${{ github.sha }} | |
toolchain_artifact_filename: ${{ needs.build-win.outputs.toolchain_artifact_filename }} | |
sycl_cts_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 }} | |
cts_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 }} | |
sycl_cts_artifact: sycl_cts_bin_win | |
nightly_build_upload: | |
name: Nightly Build Upload | |
if: ${{ github.ref_name == 'sycl' }} | |
needs: [ubuntu2204_build, build-win] | |
runs-on: ubuntu-latest | |
permissions: | |
contents: write | |
steps: | |
- uses: actions/download-artifact@v4 | |
with: | |
name: sycl_linux_default | |
- uses: actions/download-artifact@v4 | |
with: | |
name: sycl_windows_default | |
- 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/[email protected] | |
with: | |
files: | | |
sycl_linux.tar.gz | |
sycl_windows.tar.gz | |
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@v4 | |
- uses: actions/download-artifact@v4 | |
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 |