@@ -4150,6 +4150,10 @@ device.
4150
4150
On a kernel error, this <<command-group-function-object>> may be scheduled for
4151
4151
execution on the secondary queue [code]#secondaryQueue# as described in
4152
4152
<<sec::fallback-mechanism>>.
4153
+ The implementation may elect to not use the secondary queue
4154
+ [code]#secondaryQueue#, in which case the secondary queue is not considered
4155
+ associated with the enqueued <<command-group>> and any <<handler>> object passed
4156
+ to it.
4153
4157
4154
4158
_Returns:_ An event which represents the <<command>> which is submitted to the
4155
4159
queue.
@@ -5533,10 +5537,10 @@ via the SYCL [code]#device# class info query
5533
5537
the implementation to throw an [code]#exception# with the [code]#errc::invalid#
5534
5538
error code from the [code]#accessor# constructor (if the accessor is not a
5535
5539
placeholder) or from [code]#handler::require()# (if the accessor is a
5536
- placeholder). If the accessor is bound to a <<command-group>> with a secondary
5537
- queue, the sub-buffer's alignment must be compatible with both the primary
5538
- queue's device and the secondary queue's device, otherwise this exception is
5539
- thrown.
5540
+ placeholder). If the accessor is bound to a <<command-group>> with an
5541
+ associated secondary queue, the sub-buffer's alignment must be compatible with
5542
+ both the primary queue's device and the secondary queue's device, otherwise this
5543
+ exception is thrown.
5540
5544
5541
5545
Must throw an [code]#exception# with the [code]#errc::invalid# error code if
5542
5546
[code]#b# is a sub-buffer.
@@ -14600,7 +14604,8 @@ implicitly uses the kernel bundle that contains the [code]#kernelObject#.
14600
14604
Throws an [code]#exception# with the [code]#errc::kernel_not_supported# error
14601
14605
code if the [code]#kernelObject# is not compatible with either the device
14602
14606
associated with the primary queue of the <<command-group>> or with the device
14603
- associated with the secondary queue (if specified).
14607
+ associated with the secondary queue (if one is associated with the
14608
+ <<command-group>>).
14604
14609
14605
14610
a@
14606
14611
[source]
@@ -14622,7 +14627,8 @@ implicitly uses the kernel bundle that contains the [code]#kernelObject#.
14622
14627
Throws an [code]#exception# with the [code]#errc::kernel_not_supported# error
14623
14628
code if the [code]#kernelObject# is not compatible with either the device
14624
14629
associated with the primary queue of the <<command-group>> or with the device
14625
- associated with the secondary queue (if specified).
14630
+ associated with the secondary queue (if one is associated with the
14631
+ <<command-group>>).
14626
14632
14627
14633
a@
14628
14634
[source]
@@ -14649,7 +14655,8 @@ implicitly uses the kernel bundle that contains the [code]#kernelObject#.
14649
14655
Throws an [code]#exception# with the [code]#errc::kernel_not_supported# error
14650
14656
code if the [code]#kernelObject# is not compatible with either the device
14651
14657
associated with the primary queue of the <<command-group>> or with the device
14652
- associated with the secondary queue (if specified).
14658
+ associated with the secondary queue (if one is associated with the
14659
+ <<command-group>>).
14653
14660
14654
14661
|====
14655
14662
@@ -15280,10 +15287,10 @@ If the <<command-group>> attempts to invoke a kernel that is not contained by a
15280
15287
compatible device image in [code]#execBundle#, the <<kernel-invocation-command>>
15281
15288
throws a synchronous [code]#exception# with the
15282
15289
[code]#errc::kernel_not_supported# error code.
15283
- If the <<command-group>> has a secondary queue, then the [code]#execBundle# must
15284
- contain a kernel that is compatible with both the primary queue's device and the
15285
- secondary queue's device, otherwise the <<kernel-invocation-command>> throws
15286
- this exception.
15290
+ If the <<command-group>> has an associated secondary queue, then the
15291
+ [code]#execBundle# must contain a kernel that is compatible with both the
15292
+ primary queue's device and the secondary queue's device, otherwise the
15293
+ <<kernel-invocation-command>> throws this exception.
15287
15294
15288
15295
Since the handler method for setting specialization constants is incompatible
15289
15296
with the kernel bundle method, applications should not call this function if
@@ -15295,8 +15302,9 @@ _Throws:_
15295
15302
* An [code]#exception# with the [code]#errc::invalid# error code if the
15296
15303
<<context>> associated with the <<handler>> via its associated primary
15297
15304
<<queue>> or the <<context>> associated with the secondary <<queue>> (if
15298
- provided) is different from the <<context>> associated with the
15299
- <<kernel-bundle>> specified by [code]#execBundle#.
15305
+ (if one is associated with the <<handler>>) is different from the
15306
+ <<context>> associated with the <<kernel-bundle>> specified by
15307
+ [code]#execBundle#.
15300
15308
15301
15309
* An [code]#exception# with the [code]#errc::invalid# error code if
15302
15310
[code]#handler::set_specialization_constant()# has been called for this
@@ -15727,8 +15735,8 @@ code if [code]#Backend != get_backend()#.
15727
15735
--
15728
15736
_Returns:_ The <<native-backend-object>> associated with the <<queue>> that the
15729
15737
<<host-task>> was submitted to.
15730
- If the <<command-group>> was submitted with a secondary <<queue>> and the
15731
- fall-back was triggered, the <<queue>> that is associated with the
15738
+ If the <<command-group>> was submitted with an associated secondary <<queue>>
15739
+ and the fall-back was triggered, the <<queue>> that is associated with the
15732
15740
[code]#interop_handle# must be the fall-back <<queue>>.
15733
15741
The <<native-backend-object>> returned must be in a state where it is capable of
15734
15742
being used in a way appropriate for the associated <<backend>>.
@@ -17468,7 +17476,7 @@ then:
17468
17476
==== Asynchronous errors with a secondary queue
17469
17477
17470
17478
If an <<async-error>> occurs when running or enqueuing a command group which has
17471
- a secondary queue specified , then the command group may be enqueued to the
17479
+ a secondary queue associated , then the command group may be enqueued to the
17472
17480
secondary queue instead of the primary queue.
17473
17481
The error handling in this case is also configured using the <<async-handler>>
17474
17482
provided for both queues.
@@ -17480,10 +17488,10 @@ If the primary queue fails and there is an <<async-handler>> given at this
17480
17488
queue's construction, which populates the [code]#exception_list# parameter, then
17481
17489
any errors will be added and can be thrown whenever the user chooses to handle
17482
17490
those exceptions.
17483
- Since there were errors on the primary queue and a secondary queue was given,
17484
- then the execution of the kernel is re-scheduled to the secondary queue and any
17485
- error reporting for the kernel execution on that queue is done through that
17486
- queue, in the same way as described above.
17491
+ Since there were errors on the primary queue and a secondary queue was
17492
+ associated, then the execution of the kernel is re-scheduled to the secondary
17493
+ queue and any error reporting for the kernel execution on that queue is done
17494
+ through that queue, in the same way as described above.
17487
17495
The secondary queue may fail as well, and the errors will be thrown if there is
17488
17496
an <<async-handler>> and either [code]#wait_and_throw()# or [code]#throw()# are
17489
17497
called on that queue.
0 commit comments