@@ -62,18 +62,11 @@ and `+__LINE__+`, and the value of the standard variable `+__func__+`. If the
62
62
failing assert comes from an `nd_range` `parallel_for` it will also include the
63
63
global ID and the local ID of the failing work item.
64
64
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.
77
70
78
71
The `assert()` macro is defined in system include headers, not in SYCL headers.
79
72
On most of systems it is `<cassert>` and/or `<assert.h>` header files.
@@ -137,9 +130,8 @@ enum class aspect {
137
130
----
138
131
139
132
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.
143
135
144
136
== Version
145
137
0 commit comments