Skip to content

Commit

Permalink
Merge branch 'intel:sycl' into add_xfail_trackers
Browse files Browse the repository at this point in the history
  • Loading branch information
lbushi25 authored Dec 17, 2024
2 parents f5816a4 + 2a97b05 commit 49fd4d4
Show file tree
Hide file tree
Showing 107 changed files with 1,718 additions and 691 deletions.
4 changes: 4 additions & 0 deletions .github/workflows/sycl-aws.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,9 @@ on:
description: "JSON string with array of objects with aws-type, runs-on, aws-ami, aws-spot, aws-disk, aws-timebomb, one-job properties"
type: string
default: '[{"runs-on":"aws_cuda-${{ github.run_id }}-${{ github.run_attempt }}","aws-ami":"ami-01cb0573cb039ab24","aws-type":["g5.2xlarge","g5.4xlarge"],"aws-disk":"/dev/sda1:64","aws-spot":"false"}]'
ref:
type: string
required: false

jobs:
aws:
Expand All @@ -24,6 +27,7 @@ jobs:
- uses: actions/checkout@v4
with:
sparse-checkout: devops/actions/aws-ec2
ref: ${{ inputs.ref || github.sha }}
- run: npm install ./devops/actions/aws-ec2
- uses: ./devops/actions/aws-ec2
with:
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/sycl-containers-igc-dev.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,13 @@ on:
- sycl
paths:
- 'devops/actions/build_container/**'
- 'devops/scripts/**'
- 'devops/dependencies-igc-dev.json'
- '.github/workflows/sycl-containers-igc-dev.yaml'
pull_request:
paths:
- 'devops/actions/build_container/**'
- 'devops/scripts/**'
- 'devops/dependencies-igc-dev.json'
- '.github/workflows/sycl-containers-igc-dev.yaml'

Expand Down
5 changes: 5 additions & 0 deletions .github/workflows/sycl-containers.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,10 @@ jobs:
file: ubuntu2204_build
tag: latest
build_args: ""
- name: Build Ubuntu 24.04 oneAPI Docker image
file: ubuntu2404_build_oneapi
tag: latest
build_args: ""
- name: Intel Drivers Ubuntu 22.04 Docker image
file: ubuntu2204_intel_drivers
tag: latest
Expand Down Expand Up @@ -74,6 +78,7 @@ jobs:
file: ${{ matrix.file }}
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
sycl_ci_passwd: ${{ secrets.DOCKER_SUDO_PASSWORD }}
tags: |
ghcr.io/${{ github.repository }}/${{ matrix.file }}:${{ matrix.tag }}-${{ github.sha }}
ghcr.io/${{ github.repository }}/${{ matrix.file }}:${{ matrix.tag }}
Expand Down
4 changes: 4 additions & 0 deletions .github/workflows/sycl-linux-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,9 @@ on:
description: 'Artifacts retention period'
type: string
default: 3
ref:
type: string
required: false

outputs:
build_conclusion:
Expand Down Expand Up @@ -143,6 +146,7 @@ jobs:
with:
sparse-checkout: |
devops/actions
ref: ${{ inputs.ref || github.sha }}
# Cleanup will be run after all actions are completed.
- name: Register cleanup after job is finished
uses: ./devops/actions/cleanup
Expand Down
3 changes: 2 additions & 1 deletion .github/workflows/sycl-linux-precommit.yml
Original file line number Diff line number Diff line change
Expand Up @@ -134,7 +134,8 @@ jobs:
install_dev_igc_driver: >-
${{ !contains(matrix.target_devices, 'ext_oneapi_cuda') &&
!contains(matrix.target_devices, 'ext_oneapi_hip') &&
matrix.use_igc_dev && contains(needs.detect_changes.outputs.filters, 'devigccfg') ||
matrix.use_igc_dev &&
(contains(needs.detect_changes.outputs.filters, 'devigccfg') || contains(needs.detect_changes.outputs.filters, 'drivers')) ||
'false' }}
# Run only if the PR does not have the 'ci-no-devigc' label.
skip_run: ${{matrix.use_igc_dev && contains(github.event.pull_request.labels.*.name, 'ci-no-devigc') || 'false'}}
Expand Down
7 changes: 6 additions & 1 deletion .github/workflows/sycl-post-commit.yml
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,11 @@ jobs:
&& success()
&& github.repository == 'intel/llvm'
uses: ./.github/workflows/sycl-windows-build.yml

with:
compiler: icx
build_configure_extra_args: --cmake-opt=-DCMAKE_C_FLAGS="/clang:-Wno-nonportable-include-path /clang:-Wno-cast-function-type-mismatch" --cmake-opt=-DCMAKE_CXX_FLAGS="/clang:-Wno-nonportable-include-path /clang:-Wno-cast-function-type-mismatch" --cmake-opt="-DCMAKE_EXE_LINKER_FLAGS=/manifest:no" --cmake-opt="-DCMAKE_MODULE_LINKER_FLAGS=/manifest:no" --cmake-opt="-DCMAKE_SHARED_LINKER_FLAGS=/manifest:no"
build_cache_suffix: icx

e2e-win:
needs: build-win
# Continue if build was successful.
Expand All @@ -117,6 +121,7 @@ jobs:
runner: '["Windows","gen12"]'
sycl_toolchain_archive: ${{ needs.build-win.outputs.artifact_archive_name }}
extra_lit_opts: --param gpu-intel-gen12=True
compiler: icx

macos_default:
name: macOS
Expand Down
174 changes: 174 additions & 0 deletions .github/workflows/sycl-rel-nightly.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,174 @@
name: SYCL Release Branch Nightly

on:
workflow_dispatch:
schedule:
- cron: '0 3 * * *'

permissions: read-all

jobs:
# To avoid unnecessary scheduled runs this job checks if there are new commits
# since the last run. More precisely, it checks if the last commit is older
# than 24h. That means the previous Nightly already tested this commit.
check_for_new_commits:
runs-on: ubuntu-latest
name: Check for new commits
outputs:
is_new_commit: ${{ steps.is_new_commit.outputs.is_new_commit }}
steps:
- uses: actions/checkout@v4
with:
ref: draft-sycl-rel-6_0_0
- run: git show --quiet | tee -a $GITHUB_STEP_SUMMARY

- id: is_new_commit
if: ${{ github.event_name == 'schedule' }}
run: |
if [ -z "$(git rev-list --after="24 hours" HEAD)" ]; then
echo "is_new_commit=false" >> $GITHUB_OUTPUT
fi
ubuntu2204_build:
needs: [check_for_new_commits]
if: ${{ github.repository == 'intel/llvm' && needs.check_for_new_commits.outputs.is_new_commit != 'false' }}
uses: ./.github/workflows/sycl-linux-build.yml
secrets: inherit
with:
build_cache_root: "/__w/"
build_artifact_suffix: v6
build_configure_extra_args: '--hip --cuda'
merge_ref: ''
ref: draft-sycl-rel-6_0_0

# We upload the build for people to download/use, override its name and
# prefer widespread gzip compression.
artifact_archive_name: sycl_linux.tar.gz

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: ghcr.io/intel/llvm/ubuntu2204_build:latest
image_options: -u 1001 --device=/dev/dri --device=/dev/kfd
target_devices: ext_oneapi_hip:gpu
tests_selector: e2e

- name: Intel L0 GPU
runner: '["Linux", "gen12"]'
image: ghcr.io/intel/llvm/ubuntu2204_intel_drivers:latest
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
reset_intel_gpu: true
tests_selector: e2e
extra_lit_opts: --param gpu-intel-gen12=True

- name: Intel OCL GPU
runner: '["Linux", "gen12"]'
image: ghcr.io/intel/llvm/ubuntu2204_intel_drivers:latest
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
reset_intel_gpu: true
tests_selector: e2e
extra_lit_opts: --param gpu-intel-gen12=True

- name: Intel OCL CPU
runner: '["Linux", "gen12"]'
image: ghcr.io/intel/llvm/ubuntu2204_intel_drivers:latest
image_options: -u 1001 --privileged --cap-add SYS_ADMIN
target_devices: opencl:cpu
tests_selector: e2e

- name: SYCL-CTS on OCL CPU
runner: '["Linux", "gen12"]'
image: ghcr.io/intel/llvm/ubuntu2204_intel_drivers:latest
image_options: -u 1001 --device=/dev/dri --privileged --cap-add SYS_ADMIN
target_devices: opencl:cpu
tests_selector: cts

- name: SYCL-CTS on L0 gen12
runner: '["Linux", "gen12"]'
image: ghcr.io/intel/llvm/ubuntu2204_intel_drivers:latest
image_options: -u 1001 --device=/dev/dri --privileged --cap-add SYS_ADMIN
target_devices: level_zero:gpu
tests_selector: cts
uses: ./.github/workflows/sycl-linux-run-tests.yml
with:
name: ${{ matrix.name }}
runner: ${{ matrix.runner }}
image: ${{ matrix.image }}
image_options: ${{ matrix.image_options }}
target_devices: ${{ matrix.target_devices }}
tests_selector: ${{ matrix.tests_selector }}
extra_lit_opts: ${{ matrix.extra_lit_opts }}
reset_intel_gpu: ${{ matrix.reset_intel_gpu }}
ref: draft-sycl-rel-6_0_0
merge_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 }}

build-win:
needs: [check_for_new_commits]
if: ${{ github.repository == 'intel/llvm' && needs.check_for_new_commits.outputs.is_new_commit != 'false' }}
uses: ./.github/workflows/sycl-windows-build.yml
with:
# 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
build_ref: draft-sycl-rel-6_0_0

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 }}
extra_lit_opts: --param gpu-intel-gen12=True
ref: draft-sycl-rel-6_0_0

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
ref: draft-sycl-rel-6_0_0

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-0300ac924620a51f76c4929794637b82790f12ab
image_options: -u 1001 --gpus all --cap-add SYS_ADMIN --env NVIDIA_DISABLE_REQUIRE=1
target_devices: ext_oneapi_cuda:gpu
ref: draft-sycl-rel-6_0_0
merge_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 }}

cuda-aws-stop:
needs: [cuda-aws-start, cuda-run-tests]
if: always()
uses: ./.github/workflows/sycl-aws.yml
secrets: inherit
with:
mode: stop
ref: draft-sycl-rel-6_0_0
Loading

0 comments on commit 49fd4d4

Please sign in to comment.