Skip to content

[SYCL][Graph] Initial implementation of graph-owned device allocations #385

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

Closed
wants to merge 62 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
62 commits
Select commit Hold shift + click to select a range
06290b2
[SYCL][Coverity] Fix invalid iterator coverity hit (#17944)
ianayl Apr 11, 2025
92121c9
[SYCL][Driver] Revert -O0 as the default SYCL device optimization if …
srividya-sundaram Apr 11, 2025
b1051b6
[CI][Benchmarks] fix compute-benchmarks compilation (#17993)
pbalcer Apr 14, 2025
010c310
[UR][HIP] Enable usm pools (#17972)
npmiller Apr 14, 2025
02d4a8d
[UR] Retain and release device handles for sub-devices (#17977)
RossBrunton Apr 14, 2025
f531ef3
[UR] Move native cpu device code cts skip to LoadSource. (#17973)
aarongreig Apr 14, 2025
9433a80
[SYCL][NativeCPU] Process nativecpu_utils with prepare_builtins (#17850)
hvdijk Apr 14, 2025
c11bb9c
[UR][CUDA][HIP] Remove unnecessary device retain/release (#17937)
npmiller Apr 14, 2025
81b09d0
[UR][CUDA][HIP] Remove umf pool tracking ifdefs (#17997)
npmiller Apr 14, 2025
3439c78
[UR][CUDA][HIP] Cleanup and share queue interop code (#17927)
npmiller Apr 14, 2025
507679a
[SYCL] Correct spec about constness of get(properties_tag) member and…
HPS-1 Apr 14, 2025
3543603
[CI] Fix the workflow name (#17994)
KornevNikita Apr 14, 2025
3758172
[SYCL][E2E][JM] Enable tests passing on PVC (#17932)
dkhaldi Apr 14, 2025
b38eb60
[SYCL][E2E] Fix CUDA/HIP options on Windows (#17985)
sarnex Apr 14, 2025
07d8bab
[SYCL][NativeCPU] Unify definitions of __spirv_* functions. (#18010)
hvdijk Apr 14, 2025
63f96dc
[UR][L0] Fix Barrier Event Cleanup (#17989)
nrspruit Apr 14, 2025
2cbb3da
[UR][UMF] Cleanup UMF build flags (#18003)
bratpiorka Apr 14, 2025
384025f
[SYCL][E2E] Enable is_compatible_nvptx64.cpp on Windows (#18008)
sarnex Apr 14, 2025
f90ca8e
[CI][Benchmark] Add comparison script to benchmark scripts + benchmar…
ianayl Apr 14, 2025
8a5462d
[SYCL] Clean up excessive kernel name string copying (#17340)
sergey-semenov Apr 14, 2025
085d07e
[SYCL][Test] Replace multi-device kernel_bundle e2e tests with unit t…
againull Apr 14, 2025
db8fda2
[SYCL][NFCI] More refactoring around "kernel wrapping" (#18015)
aelovikov-intel Apr 14, 2025
858539a
[SYCL][E2E] Use `%{run-aux}` when removing `%t/cache_dir` (#18014)
aelovikov-intel Apr 14, 2025
1f71d16
[CI] Don't use prereleases for Level Zero (#18016)
sarnex Apr 14, 2025
6c291d2
[NFC][UR] Cleanup Python generator scripts (#18006)
kbenzie Apr 15, 2025
e9544da
[DeviceSanitizer][Coverity] Fix uncaught exception issue (#17992)
yingcong-wu Apr 15, 2025
df87c03
[UR][CUDA][HIP] Remove unnecessary USM exception wrapper (#18013)
npmiller Apr 15, 2025
3d8550c
[UR][CUDA][HIP] Remove duplicated parameter checking (#17984)
npmiller Apr 15, 2025
62e74fa
[NFC][SYCL][Graph][Doc] Clarify aspect relationship (#17996)
EwanC Apr 15, 2025
da6b33a
[SYCL] Avoid saving code location if XPTI is disabled (#18005)
slawekptak Apr 15, 2025
f899fb3
[SYCL] sycl::handler_impl keeps pointers to queue_impl, not shared_pt…
Alexandr-Konovalov Apr 15, 2025
071f940
[UR][CUDA][HIP] Fixup UMF error mapping (#18011)
npmiller Apr 15, 2025
eb1bc28
[SYCL][UR] Ignore errors in logger callback (#18025)
kbenzie Apr 15, 2025
5ce93be
[UR][HIP] Delete unnecessary ReleaseGuard (#18028)
npmiller Apr 15, 2025
567c077
[SYCL][NFCI] Don't go through variadic for `parallel_for(range<N>, kr…
aelovikov-intel Apr 15, 2025
c238cf7
[UR][L0v2] Remove host synchronize around cmdbuf enqueue (#18027)
pbalcer Apr 15, 2025
7033592
[UR] Fix platform search logic (#18033)
RossBrunton Apr 15, 2025
97d56c1
[SYCL][NFCI] Remove `single_task_lambda_impl` helper (#18020)
aelovikov-intel Apr 15, 2025
60531f9
[SYCL] Remove OoO Emulation (#17943)
jbrodman Apr 15, 2025
21a5987
[CI] Bump L0 version and fix dpkg dep issue (#18036)
sarnex Apr 15, 2025
2c7aa07
[CI] Revert Level Zero bump yet again (#18040)
sarnex Apr 15, 2025
82d8ed7
Don't use `std::ignore` for unused parameters (#17219)
ldrumm Apr 15, 2025
51ce490
[CI] Hopefully successfully update Level Zero to 1.21.9 (#18043)
sarnex Apr 15, 2025
08d11bc
[SYCL] Remove secondary submission queue from handler (#17967)
uditagarwal97 Apr 15, 2025
a7f5e93
[SYCL] Optimize handler::setNDRangeDescriptor (#17969)
slawekptak Apr 16, 2025
8f2510f
[SYCL] Use urGetDeviceInfo to check bfloat16 native conversion extens…
jinge90 Apr 16, 2025
bad4e55
[SYCL] Add test for free function kernels extension that checks emitt…
dyniols Apr 16, 2025
c71d4ca
[DevSanitizer] Fix several misc issues in device memory sanitizer (#1…
zhaomaosu Apr 16, 2025
d958440
[UR] Fix logger_validation test (#18037)
RossBrunton Apr 16, 2025
38bed82
[DeviceSanitizer][NFC] Remove unnecessary warning for asan libdevice …
jinge90 Apr 16, 2025
1008730
[UR] Fixes for using `ONEAPI_DEVICE_SELECTOR` with linear ids (#18029)
RossBrunton Apr 16, 2025
b6af150
[CI] Disable some workflows in forks (#18038)
KornevNikita Apr 16, 2025
d466092
[Clang][Doc][NFC] Improve `-offload-compress` documentation and error…
uditagarwal97 Apr 16, 2025
37fd1cc
[SYCL] Remove secondary queue from submit info DS (#18045)
uditagarwal97 Apr 16, 2025
4009536
[SYCL] Deprecate overloads accepting both `sycl::kernel` and lambda (…
aelovikov-intel Apr 16, 2025
6d64961
[SYCL][NFCI] Use `wrap_kernel` directly in the user-facing API (#18065)
aelovikov-intel Apr 16, 2025
8f7792b
[DeviceMSAN] Use device usm to allocate LaunchInfo (#17948)
AllanZyne Apr 17, 2025
e1f523c
[DevTSAN] Disable checks for vtable and atomics (#18074)
zhaomaosu Apr 17, 2025
dd59886
[SYCL] Remove fusion implemention and refactor `sycl-jit` library (#1…
jopperm Apr 17, 2025
018679f
[UR] Implement `getProviderNativeError` in CUDA adptr. tests (#18055)
RossBrunton Apr 17, 2025
599a9e3
[UR] Fixed bug with zero depth ur_rect_region which must be checked b…
GermanAizek Apr 17, 2025
3d6204f
[SYCL][Graph] Initial implementation of graph-owned device allocations
Bensuo Apr 10, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
1 change: 1 addition & 0 deletions .github/workflows/bandit.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ permissions:

jobs:
bandit:
if: github.repository == 'intel/llvm'
name: Bandit
runs-on: ubuntu-latest
permissions:
Expand Down
6 changes: 6 additions & 0 deletions .github/workflows/sycl-docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,13 @@ jobs:
mkdir clang
mv $GITHUB_WORKSPACE/build/tools/sycl/doc/html/* .
mv $GITHUB_WORKSPACE/build/tools/clang/docs/html/* clang/
cp -r $GITHUB_WORKSPACE/repo/devops/scripts/benchmarks/html benchmarks
touch .nojekyll
# Update benchmarking dashboard configuration
cat << EOF > benchmarks/config.js
remoteDataUrl = 'https://raw.githubusercontent.com/intel/llvm-ci-perf-results/refs/heads/unify-ci/data.json';
defaultCompareNames = ["Baseline_PVC_L0"];
EOF
# Upload the generated docs as an artifact and deploy to GitHub Pages.
- name: Upload artifact
uses: actions/upload-pages-artifact@v3
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/sycl-issues-ping-assignee.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ permissions: read-all

jobs:
run:
if: github.repository == 'intel/llvm'
permissions:
issues: write
runs-on: ubuntu-latest
Expand Down
38 changes: 34 additions & 4 deletions .github/workflows/sycl-linux-run-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ on:
required: False
tests_selector:
description: |
Three possible options: "e2e", "cts", and "compute-benchmarks".
Three possible options: "e2e", "cts", and "benchmarks".
type: string
default: "e2e"

Expand Down Expand Up @@ -111,6 +111,33 @@ on:
default: ''
required: False

benchmark_upload_results:
description: |
Set to true to upload results to git repository storing benchmarking
results.
type: string
default: 'false'
required: False
benchmark_save_name:
description: |
Save name to use for benchmark results: Save names are stored in
metadata of result file, and are used to identify benchmark results in
the same series (e.g. same configuration, same device, etc.).

Note: Currently, benchmark result filenames are in the format of
<benchmark_save_name>_<Device>_<Backend>_YYYYMMDD_HHMMSS.json
type: string
default: ''
required: False
benchmark_preset:
description: |
Name of benchmark preset to run.

See /devops/scripts/benchmarks/presets.py for all presets available.
type: string
default: 'Minimal'
required: False

workflow_dispatch:
inputs:
runner:
Expand Down Expand Up @@ -150,7 +177,7 @@ on:
options:
- e2e
- cts
- compute-benchmarks
- benchmarks

env:
description: |
Expand Down Expand Up @@ -303,11 +330,14 @@ jobs:
target_devices: ${{ inputs.target_devices }}
retention-days: ${{ inputs.retention-days }}

- name: Run compute-benchmarks on SYCL
if: inputs.tests_selector == 'compute-benchmarks'
- name: Run benchmarks
if: inputs.tests_selector == 'benchmarks'
uses: ./devops/actions/run-tests/benchmark
with:
target_devices: ${{ inputs.target_devices }}
upload_results: ${{ inputs.benchmark_upload_results }}
save_name: ${{ inputs.benchmark_save_name }}
preset: ${{ inputs.benchmark_preset }}
env:
RUNNER_TAG: ${{ inputs.runner }}
GITHUB_TOKEN: ${{ secrets.LLVM_SYCL_BENCHMARK_TOKEN }}
33 changes: 14 additions & 19 deletions .github/workflows/sycl-nightly.yml
Original file line number Diff line number Diff line change
Expand Up @@ -277,35 +277,30 @@ jobs:
sycl_toolchain_archive: ${{ needs.build-win.outputs.artifact_archive_name }}
sycl_cts_artifact: sycl_cts_bin_win

aggregate_benchmark_results:
if: github.repository == 'intel/llvm' && !cancelled()
name: Aggregate benchmark results and produce historical averages
uses: ./.github/workflows/sycl-benchmark-aggregate.yml
secrets:
LLVM_SYCL_BENCHMARK_TOKEN: ${{ secrets.LLVM_SYCL_BENCHMARK_TOKEN }}
with:
lookback_days: 100

run-sycl-benchmarks:
needs: [ubuntu2204_build, aggregate_benchmark_results]
needs: [ubuntu2204_build]
if: ${{ always() && !cancelled() && needs.ubuntu2204_build.outputs.build_conclusion == 'success' }}
strategy:
fail-fast: false
matrix:
include:
- name: Run compute-benchmarks on L0 PVC
- ref: ${{ github.sha }}
save_name: Baseline
runner: '["PVC_PERF"]'
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
backend: 'level_zero:gpu'
preset: Minimal
uses: ./.github/workflows/sycl-linux-run-tests.yml
secrets: inherit
with:
name: ${{ matrix.name }}
name: Run compute-benchmarks (${{ matrix.runner }}, ${{ matrix.backend }})
runner: ${{ matrix.runner }}
image_options: ${{ matrix.image_options }}
target_devices: ${{ matrix.target_devices }}
tests_selector: compute-benchmarks
repo_ref: ${{ github.sha }}
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 }}
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/sycl-rel-nightly.yml
Original file line number Diff line number Diff line change
Expand Up @@ -167,7 +167,7 @@ jobs:

cuda-aws-stop:
needs: [cuda-aws-start, cuda-run-tests]
if: always()
if: always() && ${{ needs.cuda-aws-start.result != 'skipped' }}
uses: ./.github/workflows/sycl-aws.yml
secrets: inherit
with:
Expand Down Expand Up @@ -230,7 +230,7 @@ jobs:
&& !cancelled()
&& needs.ubuntu2204_build.outputs.build_conclusion == 'success'
&& needs.build-win.outputs.build_conclusion == 'success'
uses: ./.github/workflows/hardening-check.yml
uses: ./.github/workflows/sycl-hardening-check.yml
with:
sycl_linux_artifact: sycl_linux_release
sycl_linux_archive: ${{ needs.ubuntu2204_build.outputs.artifact_archive_name }}
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/sycl-stale-issues.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ permissions: read-all

jobs:
close-issues:
if: github.repository == 'intel/llvm'
permissions:
issues: write # for actions/stale to close stale issues
pull-requests: write # for actions/stale to close stale PRs
Expand Down
140 changes: 133 additions & 7 deletions .github/workflows/sycl-ur-perf-benchmarking.yml
Original file line number Diff line number Diff line change
@@ -1,12 +1,138 @@
name: Benchmarks
name: Run Benchmarks

# This workflow is a WIP: this workflow file acts as a placeholder.
on:
workflow_call:
inputs:
preset:
type: string
description: |
Benchmark presets to run: See /devops/scripts/benchmarks/presets.py
required: false
default: 'Minimal' # Only compute-benchmarks
pr_no:
type: string
description: |
PR no. to build SYCL from if specified: SYCL will be built from HEAD
of incoming branch used by the specified PR no.

on: [ workflow_dispatch ]
If both pr_no and commit_hash are empty, the latest SYCL nightly build
will be used.
required: false
default: ''
commit_hash:
type: string
description: |
Commit hash (within intel/llvm) to build SYCL from if specified.

If both pr_no and commit_hash are empty, the latest commit in
deployment branch will be used.
required: false
default: ''
upload_results:
type: string # true/false: workflow_dispatch does not support booleans
required: true
runner:
type: string
required: true
backend:
type: string
required: true

workflow_dispatch:
inputs:
preset:
type: choice
description: |
Benchmark presets to run, See /devops/scripts/benchmarks/presets.py. Hint: Minimal is compute-benchmarks only.
options:
- Full
- SYCL
- Minimal
- Normal
- Test
default: 'Minimal' # Only compute-benchmarks
pr_no:
type: string
description: |
PR no. to build SYCL from:

SYCL will be built from HEAD of incoming branch.
required: false
default: ''
commit_hash:
type: string
description: |
Commit hash (within intel/llvm) to build SYCL from:

Leave both pr_no and commit_hash empty to use latest commit.
required: false
default: ''
upload_results:
description: 'Save and upload results'
type: choice
options:
- false
- true
default: true
runner:
type: choice
options:
- '["PVC_PERF"]'
backend:
description: Backend to use
type: choice
options:
- 'level_zero:gpu'
- 'level_zero_v2:gpu'
# As of #17407, sycl-linux-build now builds v2 by default

permissions: read-all

jobs:
do-nothing:
runs-on: ubuntu-latest
steps:
- run: echo 'This workflow is a WIP.'
build_sycl:
name: Build SYCL
uses: ./.github/workflows/sycl-linux-build.yml
with:
build_ref: |
${{
inputs.commit_hash != '' && inputs.commit_hash ||
inputs.pr_no != '' && format('refs/pull/{0}/head', inputs.pr_no) ||
github.ref
}}
build_cache_root: "/__w/"
build_artifact_suffix: "prod_noassert"
build_cache_suffix: "prod_noassert"
build_configure_extra_args: "--no-assertions"
build_image: "ghcr.io/intel/llvm/sycl_ubuntu2404_nightly:latest"
cc: clang
cxx: clang++
changes: '[]'

run_benchmarks_build:
name: Run Benchmarks on Build
needs: [ build_sycl ]
strategy:
matrix:
include:
- ref: ${{ inputs.commit_hash != '' && inputs.commit_hash || format('refs/pull/{0}/head', inputs.pr_no) }}
save_name: ${{ inputs.commit_hash != '' && format('Commit{0}', inputs.commit_hash) || format('PR{0}', inputs.pr_no) }}
# Set default values if not specified:
runner: ${{ inputs.runner || '["PVC_PERF"]' }}
backend: ${{ inputs.backend || 'level_zero:gpu' }}
uses: ./.github/workflows/sycl-linux-run-tests.yml
secrets: inherit
with:
name: Run compute-benchmarks (${{ matrix.save_name }}, ${{ 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: ${{ inputs.upload_results }}
benchmark_save_name: ${{ matrix.save_name }}
benchmark_preset: ${{ inputs.preset }}
repo_ref: ${{ matrix.ref }}
devops_ref: ${{ github.ref }}
sycl_toolchain_artifact: sycl_linux_prod_noassert
sycl_toolchain_archive: ${{ needs.build_sycl.outputs.artifact_archive_name }}
sycl_toolchain_decompress_command: ${{ needs.build_sycl.outputs.artifact_decompress_command }}
1 change: 0 additions & 1 deletion .github/workflows/ur-precommit.yml
Original file line number Diff line number Diff line change
Expand Up @@ -110,7 +110,6 @@ jobs:
-DCMAKE_BUILD_TYPE=Release
-DUR_BUILD_TESTS=ON
-DUR_FORMAT_CPP_STYLE=ON
-DUMF_ENABLE_POOL_TRACKING=ON

- name: Build
run: cmake --build ${{github.workspace}}/build -j $(sysctl -n hw.logicalcpu)
6 changes: 6 additions & 0 deletions buildbot/configure.py
Original file line number Diff line number Diff line change
Expand Up @@ -134,6 +134,9 @@ def do_configure(args, passthrough_args):
if args.use_lld:
llvm_enable_lld = "ON"

if args.use_zstd:
llvm_enable_zstd = "FORCE_ON"

# CI Default conditionally appends to options, keep it at the bottom of
# args handling
if args.ci_defaults:
Expand Down Expand Up @@ -417,6 +420,9 @@ def main():
"--native-cpu-libclc-targets",
help="Target triples for libclc, used by the Native CPU backend",
)
parser.add_argument(
"--use-zstd", action="store_true", help="Force zstd linkage while building."
)
args, passthrough_args = parser.parse_known_intermixed_args()

print("args:{}".format(args))
Expand Down
Loading
Loading