Skip to content

[SYCL-MLIR] Merge from intel/llvm sycl branch #10724

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 25 commits into from
Aug 11, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
0c51f60
[SYCL] Switch SPIR-V offload target to opaque pointers (#9828)
bader Aug 8, 2023
e020f69
[SYCL] Ignore vec_type_hint attribute in SYCL 2020 (#10619)
elizabethandrews Aug 8, 2023
39506e4
[CI] Remove Nightly build configuration for opaque pointers (#10723)
bader Aug 8, 2023
319f067
[CI] Switch pre-commit to a new scheme (#10720)
aelovikov-intel Aug 8, 2023
5eef8c7
[SYCL][InvokeSimd] Allow callables to return uniform (#10714)
sarnex Aug 8, 2023
bd81fc4
[SYCL] Use pair of native::sin/cos for sincos under __FAST_MATH__ (#1…
aelovikov-intel Aug 8, 2023
d075bd0
[SYCL] Fix check-all after #10635 (#10744)
aelovikov-intel Aug 8, 2023
4b44182
[CI] Add run-name for sycl_precommit_aws.yml
aelovikov-intel Aug 8, 2023
a2265a6
[SYCL][Bindless] Fix Mipmap Tests (#10713)
isaacault Aug 9, 2023
180a92a
[SYCL][COMPAT][Doc] Add SYCLcompat documentation (#9646)
Alcpz Aug 9, 2023
f7b00b7
[SYCL] Fix sycl::vec unary ops (#10722)
cperkinsintel Aug 9, 2023
aab5d74
[SYCL][NATIVECPU] Support multiple SYCL targets in the same compiler …
PietroGhg Aug 9, 2023
bedd818
[SYCL][COMPAT] SYCLcompat dim and defs headers (#9976)
Alcpz Aug 9, 2023
0119790
[SYCL][Clang][NFC] Fix static analyzer concern (#10747)
elizabethandrews Aug 9, 2023
bf97252
[SYCL] Propagate explicitly declared aspects even if excluded (#10650)
jzc Aug 9, 2023
a5a5e03
[SYCL] Skip alloca commands when checking for leaves completion (#10740)
againull Aug 9, 2023
aa5722c
[CI] Fix install_drivers/reset_gpu in pre-commit task (#10759)
aelovikov-intel Aug 9, 2023
17a053e
[CI] Try to sync aws cuda e2e tests in pre-commit with the build
aelovikov-intel Aug 9, 2023
56946aa
[CI] Use separate Linux build/test jobs and no matrix generator in ni…
aelovikov-intel Aug 9, 2023
f26df80
[CI] Use separate build/test in post-commit + add pull_request trigge…
aelovikov-intel Aug 9, 2023
c6f82ed
[SYCL][E2E] Enable USM/memops2d on PVC (#10746)
aelovikov-intel Aug 9, 2023
c4db251
[SYCL] Add missing Intel archs to sycl_ext_oneapi_device_architecture…
dm-vodopyanov Aug 9, 2023
5072621
Merge remote-tracking branch 'upstream/sycl' into sycl-mlir
whitneywhtsang Aug 10, 2023
479c2cc
[SYCL-MLIR] Revert [SYCL] Switch SPIR-V offload target to opaque poin…
whitneywhtsang Aug 10, 2023
d0ff1ac
[SYCL-MLIR] Fix merge
whitneywhtsang Aug 10, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
93 changes: 0 additions & 93 deletions .github/workflows/sycl_exp_precommit.yml

This file was deleted.

60 changes: 34 additions & 26 deletions .github/workflows/sycl_linux_build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ on:
changes:
type: string
description: 'Filter matches for the changed files in the PR'
default: '[llvm, clang, sycl, llvm_spirv, xptifw, libclc, libdevice]'
default: '[mlir_sycl, polygeist, cgeist, clang]'
required: false
merge_ref:
description: |
Expand All @@ -52,6 +52,8 @@ on:
default: 3

outputs:
build_conclusion:
value: ${{ jobs.build.outputs.build_conclusion }}
artifact_archive_name:
value: ${{ jobs.build.outputs.artifact_archive_name }}
artifact_decompress_command:
Expand Down Expand Up @@ -148,6 +150,7 @@ jobs:
ref: ${{ inputs.build_ref || github.sha }}
merge_ref: ${{ inputs.merge_ref }}
cache_path: "/__w/repo_cache/"
default_branch: sycl-mlir
- name: Configure
env:
CC: ${{ inputs.cc }}
Expand All @@ -168,38 +171,43 @@ jobs:
- name: Compile
id: build
run: cmake --build $GITHUB_WORKSPACE/build
- name: check-llvm
if: always() && !cancelled() && contains(inputs.changes, 'llvm')
- name: mlir-sycl-doc
if: always() && !cancelled() && contains(inputs.changes, 'mlir_sycl')
run: |
cmake --build $GITHUB_WORKSPACE/build --target check-llvm
- name: check-clang
if: always() && !cancelled() && contains(inputs.changes, 'clang')
cmake --build $GITHUB_WORKSPACE/build --target mlir-sycl-doc
- name: polygeist-doc
if: always() && !cancelled() && contains(inputs.changes, 'polygeist')
run: |
# Can we move this to Dockerfile? Hopefully, noop on Windows.
export XDG_CACHE_HOME=$GITHUB_WORKSPACE/os_cache
cmake --build $GITHUB_WORKSPACE/build --target check-clang
- name: check-sycl
if: always() && !cancelled() && contains(inputs.changes, 'sycl')
cmake --build $GITHUB_WORKSPACE/build --target polygeist-doc
# TODO allow to optionally disable in-tree checks
- name: check-mlir-sycl
shell: bash
if: always() && !cancelled() && contains(inputs.changes, 'mlir_sycl')
run: |
# TODO consider moving this to Dockerfile.
export LD_LIBRARY_PATH=/usr/local/cuda/compat/:/usr/local/cuda/lib64:$LD_LIBRARY_PATH
cmake --build $GITHUB_WORKSPACE/build --target check-sycl
- name: check-llvm-spirv
if: always() && !cancelled() && contains(inputs.changes, 'llvm_spirv')
cmake --build $GITHUB_WORKSPACE/build --target check-mlir-sycl
- name: check-polygeist
shell: bash
if: always() && !cancelled() && contains(inputs.changes, 'polygeist')
run: |
cmake --build $GITHUB_WORKSPACE/build --target check-llvm-spirv
- name: check-xptifw
if: always() && !cancelled() && contains(inputs.changes, 'xptifw')
cmake --build $GITHUB_WORKSPACE/build --target check-polygeist
- name: check-polygeist-unit
shell: bash
if: always() && !cancelled() && contains(inputs.changes, 'polygeist')
run: |
cmake --build $GITHUB_WORKSPACE/build --target check-xptifw
- name: check-libclc
if: always() && !cancelled() && contains(inputs.changes, 'libclc')
cmake --build $GITHUB_WORKSPACE/build --target check-polygeist-unit
- name: check-cgeist
shell: bash
if: always() && !cancelled() && contains(inputs.changes, 'cgeist')
run: |
cmake --build $GITHUB_WORKSPACE/build --target check-libclc
- name: check-libdevice
if: always() && !cancelled() && contains(inputs.changes, 'libdevice')
if [ -e /runtimes/oneapi-tbb/env/vars.sh ]; then
source /runtimes/oneapi-tbb/env/vars.sh;
fi
cmake --build $GITHUB_WORKSPACE/build --target check-cgeist
- name: check-clang-driver
shell: bash
if: always() && !cancelled() && contains(inputs.changes, 'clang')
run: |
cmake --build $GITHUB_WORKSPACE/build --target check-libdevice
cmake --build $GITHUB_WORKSPACE/build --target check-clang-driver
- name: Install
if: ${{ always() && !cancelled() && steps.build.conclusion == 'success' }}
# TODO replace utility installation with a single CMake target
Expand Down
90 changes: 67 additions & 23 deletions .github/workflows/sycl_nightly.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,42 +6,86 @@ on:
- cron: '0 3 * * *'

jobs:
test_matrix:
if: github.repository == 'intel/llvm'
name: Generate Test Matrix
uses: ./.github/workflows/sycl_gen_test_matrix.yml
with:
lts_config: "hip_amdgpu;ocl_gen12;ocl_x64;l0_gen12;esimd_emu;cuda_aws;win_l0_gen12"

ubuntu2204_build_test:
ubuntu2204_build:
if: github.repository == 'intel/llvm'
uses: ./.github/workflows/sycl_linux_build_and_test.yml
needs: test_matrix
uses: ./.github/workflows/sycl_linux_build.yml
secrets: inherit
with:
build_cache_root: "/__w/"
build_artifact_suffix: default
build_configure_extra_args: '--hip --cuda --enable-esimd-emulator'
merge_ref: ''
retention-days: 90
lts_matrix: ${{ needs.test_matrix.outputs.lts_lx_matrix }}
lts_aws_matrix: ${{ needs.test_matrix.outputs.lts_aws_matrix }}

# 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_opaque_pointers_build_test:
if: github.repository == 'intel/llvm'
uses: ./.github/workflows/sycl_linux_build_and_test.yml
needs: test_matrix
secrets: inherit
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

- name: Intel L0 GPU
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: ext_oneapi_level_zero:gpu
reset_gpu: true

- name: Intel OCL GPU
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:gpu
reset_gpu: true

- name: OCL CPU
runner: '["Linux", "x86-cpu"]'
image: ghcr.io/intel/llvm/ubuntu2204_intel_drivers:latest
image_options: -u 1001
target_devices: opencl:cpu

- name: ESIMD Emu
runner: '["Linux", "x86-cpu"]'
image: ghcr.io/intel/llvm/ubuntu2204_intel_drivers:latest
image_options: -u 1001
target_devices: ext_intel_esimd_emulator:gpu

- name: Self-hosted CUDA
runner: '["Linux", "cuda"]'
image: ghcr.io/intel/llvm/ubuntu2204_build:latest
image_options: -u 1001 --gpus all --cap-add SYS_ADMIN
target_devices: ext_oneapi_cuda:gpu
uses: ./.github/workflows/sycl_linux_run_tests.yml
with:
build_cache_root: "/__w/"
build_cache_suffix: opaque_pointers
build_artifact_suffix: opaque_pointers
build_configure_extra_args: "--hip --cuda --enable-esimd-emulator --cmake-opt=-DSPIRV_ENABLE_OPAQUE_POINTERS=TRUE"
name: ${{ matrix.name }}
runner: ${{ matrix.runner }}
image: ${{ matrix.image }}
image_options: ${{ matrix.image_options }}
target_devices: ${{ matrix.target_devices }}
reset_gpu: ${{ matrix.reset_gpu }}
ref: ${{ github.sha }}
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 }}


test_matrix:
if: github.repository == 'intel/llvm'
name: Generate Test Matrix
uses: ./.github/workflows/sycl_gen_test_matrix.yml
with:
lts_config: "win_l0_gen12"

windows_default:
name: Windows
Expand All @@ -59,7 +103,7 @@ jobs:
nightly_build_upload:
name: Nightly Build Upload
if: ${{ github.ref_name == 'sycl' }}
needs: [ubuntu2204_build_test, windows_default]
needs: [ubuntu2204_build, windows_default]
runs-on: ubuntu-latest
steps:
- uses: actions/download-artifact@v3
Expand Down Expand Up @@ -92,7 +136,7 @@ jobs:
ubuntu2204_docker_build_push:
if: github.repository == 'intel/llvm'
runs-on: [Linux, build]
needs: ubuntu2204_build_test
needs: ubuntu2204_build
steps:
- uses: actions/checkout@v3
- uses: actions/download-artifact@v3
Expand Down
50 changes: 37 additions & 13 deletions .github/workflows/sycl_post_commit.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,19 +7,22 @@ on:
- sycl-devops-pr/**
- llvmspirv_pulldown

pull_request:
branches:
- sycl
- sycl-devops-pr/**
paths:
- .github/workflow/sycl_post_commit.yml
- .github/workflow/sycl_linux_build.yml
- .github/workflow/sycl_linux_run_tests.yml
- ./devops/actions/cleanup
- ./devops/actions/cached_checkout

jobs:
# This job generates matrix of tests for SYCL End-to-End tests
test_matrix:
name: Generate Test Matrix
if: github.repository == 'intel/llvm'
uses: ./.github/workflows/sycl_gen_test_matrix.yml
with:
lts_config: "l0_gen12;win_l0_gen12"
linux_self_prod:
build:
name: Linux (Self build + shared libraries + no-assertions)
if: github.repository == 'intel/llvm'
needs: test_matrix
uses: ./.github/workflows/sycl_linux_build_and_test.yml
uses: ./.github/workflows/sycl_linux_build.yml
with:
build_cache_root: "/__w/llvm"
build_cache_suffix: sprod_shared
Expand All @@ -29,11 +32,32 @@ jobs:
build_image: "ghcr.io/intel/llvm/sycl_ubuntu2204_nightly:build"
cc: clang
cxx: clang++
lts_matrix: ${{ needs.test_matrix.outputs.lts_lx_matrix }}
cts_matrix: ${{ needs.test_matrix.outputs.cts_matrix }}
lts_aws_matrix: ${{ needs.test_matrix.outputs.lts_aws_matrix }}
merge_ref: ''

test:
needs: [build]
if: ${{ always() && !cancelled() && needs.build.outputs.build_conclusion == 'success' }}
uses: ./.github/workflows/sycl_linux_run_tests.yml
with:
name: SYCL E2E on Intel Linux L0
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: ext_oneapi_level_zero:gpu
ref: ${{ github.sha }}
merge_ref: ''
sycl_toolchain_artifact: sycl_linux_sprod_shared
sycl_toolchain_archive: ${{ needs.build.outputs.artifact_archive_name }}
sycl_toolchain_decompress_command: ${{ needs.build.outputs.artifact_decompress_command }}

# This job generates matrix of tests for SYCL End-to-End tests on Windows
test_matrix:
name: Generate Test Matrix
if: github.repository == 'intel/llvm'
uses: ./.github/workflows/sycl_gen_test_matrix.yml
with:
lts_config: "win_l0_gen12"

windows_default:
name: Windows
needs: test_matrix
Expand Down
Loading