SYCL Nightly #711
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"]' | ||
target_devices: level_zero:gpu | ||
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' }} | ||
# Normally these jobs take less than 10m. But sometimes the job hangs up and | ||
# reaches the 360m limit. Set a lower limit to free up the runner earlier. | ||
timeout-minutes: 35 | ||
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 | ||
Check failure on line 236 in .github/workflows/sycl-nightly.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"]' | ||
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: | ||
include: | ||
- ref: ${{ github.sha }} | ||
save_name: Baseline | ||
runner: '["PVC_PERF"]' | ||
backend: 'level_zero: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/action-gh-release@v2.2.2 | ||
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 |