SYCL Nightly #678
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: | ||
ubuntu2204_build: | ||
if: github.repository == 'intel/llvm' | ||
uses: ./.github/workflows/sycl-linux-build.yml | ||
secrets: inherit | ||
with: | ||
build_cache_root: "/__w/" | ||
build_artifact_suffix: default | ||
build_configure_extra_args: '--hip --cuda' | ||
build_image: ghcr.io/intel/llvm/ubuntu2204_build:latest | ||
retention-days: 90 | ||
# We upload the build for people to download/use, override its name and | ||
# prefer widespread gzip compression. | ||
artifact_archive_name: 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_artifact_suffix: sprod_shared | ||
build_configure_extra_args: '--shared-libs --hip --cuda --native_cpu --no-assertions' | ||
artifact_archive_name: 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_artifact_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 | ||
artifact_archive_name: sycl_linux_oneapi.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: NVIDIA/CUDA | ||
runner: '["Linux", "cuda"]' | ||
image_options: -u 1001 --gpus all --cap-add SYS_ADMIN | ||
target_devices: cuda:gpu | ||
- name: Intel L0 Gen12 GPU | ||
runner: '["Linux", "gen12"]' | ||
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 | ||
- name: Intel L0 Ponte Vecchio GPU | ||
runner: '["Linux", "pvc"]' | ||
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 | ||
- name: Intel L0 Battlemage GPU | ||
runner: '["Linux", "bmg"]' | ||
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 | ||
- name: Intel L0 Arc A-Series GPU | ||
runner: '["Linux", "arc"]' | ||
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 | ||
- name: Intel OCL Gen12 GPU | ||
runner: '["Linux", "gen12"]' | ||
image_options: -u 1001 --device=/dev/dri -v /dev/dri/by-path:/dev/dri/by-path --privileged --cap-add SYS_ADMIN | ||
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"]' | ||
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 | ||
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 }} | ||
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 }} | ||
sycl_toolchain_artifact: sycl_linux_default | ||
sycl_toolchain_archive: ${{ needs.ubuntu2204_build.outputs.artifact_archive_name }} | ||
sycl_toolchain_decompress_command: ${{ needs.ubuntu2204_build.outputs.artifact_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 }} | ||
sycl_toolchain_artifact: sycl_linux_oneapi | ||
sycl_toolchain_archive: ${{ needs.ubuntu2404_oneapi_build.outputs.artifact_archive_name }} | ||
sycl_toolchain_decompress_command: ${{ needs.ubuntu2404_oneapi_build.outputs.artifact_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. | ||
artifact_archive_name: 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 | ||
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"]' | ||
sycl_toolchain_archive: ${{ needs.build-win.outputs.artifact_archive_name }} | ||
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 }} | ||
sycl_toolchain_artifact: sycl_linux_default | ||
sycl_toolchain_archive: ${{ needs.ubuntu2204_build.outputs.artifact_archive_name }} | ||
sycl_toolchain_decompress_command: ${{ needs.ubuntu2204_build.outputs.artifact_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 }} | ||
sycl_toolchain_artifact: sycl_linux_default | ||
sycl_toolchain_archive: ${{ needs.ubuntu2204_build.outputs.artifact_archive_name }} | ||
sycl_toolchain_decompress_command: ${{ needs.ubuntu2204_build.outputs.artifact_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 }} | ||
sycl_toolchain_artifact: sycl_linux_default | ||
sycl_toolchain_archive: ${{ needs.ubuntu2204_build.outputs.artifact_archive_name }} | ||
sycl_toolchain_decompress_command: ${{ needs.ubuntu2204_build.outputs.artifact_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-e2e"]' | ||
cts_testing_mode: 'build-only' | ||
tests_selector: cts | ||
repo_ref: ${{ github.sha }} | ||
sycl_toolchain_archive: ${{ needs.build-win.outputs.artifact_archive_name }} | ||
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 }} | ||
sycl_toolchain_archive: ${{ needs.build-win.outputs.artifact_archive_name }} | ||
sycl_cts_artifact: sycl_cts_bin_win | ||
run-sycl-benchmarks: | ||
needs: [ubuntu2204_build] | ||
if: ${{ always() && !cancelled() && needs.ubuntu2204_build.outputs.build_conclusion == 'success' }} | ||
strategy: | ||
matrix: | ||
ref: ${{ github.sha }} | ||
save_name: 'Baseline' | ||
Check failure on line 286 in .github/workflows/sycl-nightly.yml
|
||
runner: ['["PVC_PERF"]', '["BMG_PERF"]'] | ||
backend: ['level_zero:gpu', 'level_zero_v2:gpu'] | ||
preset: 'Minimal' | ||
uses: ./.github/workflows/sycl-linux-run-tests.yml | ||
secrets: inherit | ||
with: | ||
name: Run compute-benchmarks (${{ matrix.runner }}, ${{ matrix.backend }}) | ||
runner: ${{ matrix.runner }} | ||
image: ghcr.io/intel/llvm/sycl_ubuntu2404_nightly:latest | ||
image_options: -u 1001 --device=/dev/dri -v /dev/dri/by-path:/dev/dri/by-path --privileged --cap-add SYS_ADMIN | ||
target_devices: ${{ matrix.backend }} | ||
tests_selector: benchmarks | ||
benchmark_upload_results: true | ||
benchmark_save_name: ${{ matrix.save_name }} | ||
benchmark_preset: ${{ matrix.preset }} | ||
repo_ref: ${{ matrix.ref }} | ||
sycl_toolchain_artifact: sycl_linux_default | ||
sycl_toolchain_archive: ${{ needs.ubuntu2204_build.outputs.artifact_archive_name }} | ||
sycl_toolchain_decompress_command: ${{ needs.ubuntu2204_build.outputs.artifact_decompress_command }} | ||
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 |