Skip to content

Commit d1d88f5

Browse files
committed
Merge remote-tracking branch 'intel/sycl' into steffen/fix_external_semaphore_events
2 parents f5fd9a8 + d84a020 commit d1d88f5

File tree

57 files changed

+477
-1024
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

57 files changed

+477
-1024
lines changed

.github/workflows/sycl-docs.yml

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,24 @@ on:
1010
- '.github/workflows/sycl-docs.yml'
1111
- 'clang/docs/**'
1212
- 'sycl/doc/**'
13+
- 'devops/benchmarks/scripts/html/**'
1314
push:
1415
branches:
1516
- sycl
1617
paths:
1718
- '.github/workflows/sycl-docs.yml'
1819
- 'clang/docs/**'
1920
- 'sycl/doc/**'
21+
- 'devops/benchmarks/scripts/html/**'
22+
workflow_dispatch:
23+
inputs:
24+
update_gh_pages:
25+
type: choice
26+
description: Update Github Pages
27+
options:
28+
- true
29+
- false
30+
default: true
2031

2132
permissions:
2233
contents: read
@@ -62,5 +73,5 @@ jobs:
6273
with:
6374
path: ./install_docs
6475
- name: Deploy to GitHub Pages
65-
if: ${{ github.event_name == 'push' }}
76+
if: ${{ github.event_name == 'push' || inputs.update_gh_pages == 'true' }}
6677
uses: actions/deploy-pages@v4

.github/workflows/sycl-nightly.yml

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -332,20 +332,30 @@ jobs:
332332
toolchain_artifact_filename: ${{ needs.build-win.outputs.toolchain_artifact_filename }}
333333
sycl_cts_artifact: sycl_cts_bin_win
334334

335+
# Verification example:
336+
# cosign-windows-amd64.exe verify-blob sycl_linux.tar.gz \
337+
# --bundle sycl_linux.tar.gz.sigstore.json \
338+
# --certificate-oidc-issuer https://token.actions.githubusercontent.com \
339+
# --certificate-identity https://github.com/intel/llvm/.github/workflows/sycl-nightly.yml@refs/heads/sycl
335340
nightly_build_upload:
336341
name: Nightly Build Upload
337342
if: ${{ github.ref_name == 'sycl' }}
338343
needs: [ubuntu2204_build, build-win]
339344
runs-on: ubuntu-latest
340345
permissions:
341346
contents: write
347+
id-token: write
342348
steps:
343349
- uses: actions/download-artifact@v4
344350
with:
345351
name: sycl_linux_default
346352
- uses: actions/download-artifact@v4
347353
with:
348354
name: sycl_windows_default
355+
- name: Sign with sigstore/cosign
356+
uses: sigstore/[email protected]
357+
with:
358+
inputs: sycl_linux.tar.gz sycl_windows.tar.gz
349359
- name: Compute tag
350360
id: tag
351361
run: |
@@ -361,6 +371,8 @@ jobs:
361371
files: |
362372
sycl_linux.tar.gz
363373
sycl_windows.tar.gz
374+
sycl_linux.tar.gz.sigstore.json
375+
sycl_windows.tar.gz.sigstore.json
364376
tag_name: nightly-${{ steps.tag.outputs.TAG }}
365377
name: DPC++ daily ${{ steps.tag.outputs.TAG }}
366378
prerelease: true

devops/compat_ci_exclude.sycl-rel-6_2

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,13 @@ KernelCompiler/opencl.cpp
2828
KernelCompiler/opencl_cache_eviction.cpp
2929
KernelCompiler/opencl_queries.cpp
3030

31+
# https://github.com/intel/llvm/pull/18310 removed fallback assertions, but due
32+
# to a bug in the L0 drivers, one test causes the implementation to continue
33+
# after assertions are triggered. We allow this regression while the drivers bug
34+
# gets addressed.
35+
# See GSD-11097.
36+
Assert/assert_in_kernels.cpp
37+
3138
# Likely OK, but need author to provide justification, get approval/confirmation
3239
# from someone:
3340

devops/compat_ci_exclude.sycl-rel-6_3

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,13 @@
22
Matrix/joint_matrix_bf16_fill_k_cache_arg_dim.cpp
33
Matrix/joint_matrix_bf16_fill_k_cache_runtime_dim.cpp
44

5+
# https://github.com/intel/llvm/pull/18310 removed fallback assertions, but due
6+
# to a bug in the L0 drivers, one test causes the implementation to continue
7+
# after assertions are triggered. We allow this regression while the drivers bug
8+
# gets addressed.
9+
# See GSD-11097.
10+
Assert/assert_in_kernels.cpp
11+
512
# Likely OK, but need author to provide justification, get approval/confirmation
613
# from someone:
714

llvm/include/llvm/SYCLLowerIR/DeviceConfigFile.td

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,9 @@ def AspectExt_oneapi_async_memory_alloc : Aspect<"ext_oneapi_async_memory_alloc"
9494
def AspectExt_intel_device_info_luid : Aspect<"ext_intel_device_info_luid">;
9595
def AspectExt_intel_device_info_node_mask : Aspect<"ext_intel_device_info_node_mask">;
9696
def Aspectext_oneapi_exportable_device_mem : Aspect<"ext_oneapi_exportable_device_mem">;
97+
def Aspectext_oneapi_clock_sub_group : Aspect<"ext_oneapi_clock_sub_group">;
98+
def Aspectext_oneapi_clock_work_group : Aspect<"ext_oneapi_clock_work_group">;
99+
def Aspectext_oneapi_clock_device : Aspect<"ext_oneapi_clock_device">;
97100

98101
// Deprecated aspects
99102
def AspectInt64_base_atomics : Aspect<"int64_base_atomics">;
@@ -168,7 +171,10 @@ def : TargetInfo<"__TestAspectList",
168171
AspectExt_oneapi_async_memory_alloc,
169172
AspectExt_intel_device_info_luid,
170173
AspectExt_intel_device_info_node_mask,
171-
Aspectext_oneapi_exportable_device_mem],
174+
Aspectext_oneapi_exportable_device_mem,
175+
Aspectext_oneapi_clock_sub_group,
176+
Aspectext_oneapi_clock_work_group,
177+
Aspectext_oneapi_clock_device],
172178
[]>;
173179
// This definition serves the only purpose of testing whether the deprecated aspect list defined in here and in SYCL RT
174180
// match.

sycl/doc/PreprocessorMacros.md

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -39,20 +39,6 @@ This file describes macros that have effect on SYCL compiler and run-time.
3939
Disable warning diagnostic issued when including `<sycl/sycl.hpp>` without
4040
`-fsycl` compiler flag.
4141

42-
- **SYCL_FALLBACK_ASSERT**
43-
44-
Defining as non-zero enables the fallback assert feature even on devices
45-
without native support. Be aware that this will add some overhead that is
46-
associated with submitting kernels that call `assert()`. When this macro is
47-
defined as 0 or is not defined, the logic for detecting assertion failures in kernels is
48-
disabled, so a failed assert will not cause a message to be printed and will
49-
not cause the program to abort. Some devices have native support for
50-
assertions. The logic for detecting assertion failures is always enabled on
51-
these devices regardless of whether this macro is defined because that logic
52-
does not add any extra overhead. One can check to see if a device has native
53-
support for `assert()` via `aspect::ext_oneapi_native_assert`.
54-
This macro is undefined by default.
55-
5642
- **SYCL2020_CONFORMANT_APIS (deprecated)**
5743
This macro is used to comply with the SYCL 2020 specification, as some of the current
5844
implementations may be widespread and not conform to it.

sycl/doc/design/Assert.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,8 @@ The following sequence of events describes how user code gets notified:
126126
127127
## Fallback approach
128128
129+
**The fallback approach has been deprecated and will be removed in the future.**
130+
129131
If Device-side Runtime doesn't support `__devicelib_assert_fail` (as reported
130132
via "cl_intel_devicelib_assert" extension query) then a fallback approach comes
131133
in place. The approach doesn't require any support from Device-side Runtime and

sycl/doc/extensions/supported/sycl_ext_oneapi_assert.asciidoc

Lines changed: 7 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -62,18 +62,11 @@ and `+__LINE__+`, and the value of the standard variable `+__func__+`. If the
6262
failing assert comes from an `nd_range` `parallel_for` it will also include the
6363
global ID and the local ID of the failing work item.
6464

65-
Some devices implement `assert()` natively while others use a fallback
66-
implementation, and the two implementations provide different guarantees. The
67-
native implementation is most similar to the way `assert()` works on the host. If
68-
an assertion fails in the native implementation, the assertion message is
69-
immediately printed to stderr and the program terminates by calling
70-
`std::abort()`. If an assertion fails with the fallback implementation, the
71-
failing assert() returns back to its caller and the device code must continue
72-
executing (without deadlocking) until the kernel completes. The implementation
73-
prints the assertion message to stderr and terminates with `std::abort()` only
74-
after the kernel completes execution. An application can determine which of the
75-
two mechanisms a device uses by testing the device aspect
76-
`aspect::ext_oneapi_native_assert`.
65+
Only some devices support `assert()` natively, as determinable by querying the
66+
new `aspect::ext_oneapi_native_assert` aspect. If an assertion fails in devices
67+
that support these natively, the assertion message is immediately printed to
68+
stderr and the program terminates by calling `std::abort()`. Failures in calls
69+
to `assert()` on devices that do not natively support it are ignored.
7770

7871
The `assert()` macro is defined in system include headers, not in SYCL headers.
7972
On most of systems it is `<cassert>` and/or `<assert.h>` header files.
@@ -137,9 +130,8 @@ enum class aspect {
137130
----
138131

139132
If device has the `ext_oneapi_native_assert` aspect, then its Device-Side
140-
Runtime is capable of native support of `assert`. That is, safe implementation
141-
is used. If device doesn't have the aspect, then fallback implementation is
142-
used.
133+
Runtime is capable of native support of `assert`. If device doesn't have the
134+
aspect, then assertions on the device will be silently ignored.
143135

144136
== Version
145137

sycl/include/sycl/detail/assert_happened.hpp

Lines changed: 0 additions & 42 deletions
This file was deleted.

sycl/include/sycl/detail/defines_elementary.hpp

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -99,11 +99,10 @@
9999
static_assert(__cplusplus >= 201703L,
100100
"DPCPP does not support C++ version earlier than C++17.");
101101

102-
// Helper macro to identify if fallback assert is needed
103-
#if defined(SYCL_FALLBACK_ASSERT)
104-
#define __SYCL_USE_FALLBACK_ASSERT SYCL_FALLBACK_ASSERT
105-
#else
106-
#define __SYCL_USE_FALLBACK_ASSERT 0
102+
// MSVC doesn't support #warning and we cannot use other methods to report a
103+
// warning from inside a system header (which SYCL is considered to be).
104+
#if defined(SYCL_FALLBACK_ASSERT) && (!defined(_MSC_VER) || defined(__clang__))
105+
#warning "SYCL_FALLBACK_ASSERT has been removed and no longer has any effect."
107106
#endif
108107

109108
#if defined(_WIN32) && !defined(_DLL) && !defined(__SYCL_DEVICE_ONLY__)

0 commit comments

Comments
 (0)