You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Address issue #16451 , where
property `use_root_sync` is not processed properly. Also revised
`sycl/test-e2e/GroupAlgorithm/root_group.cpp` to not use the deprecated
version of `parallel_for`. (Which was previously blocked by this issue
about `use_root_sync`).
Also here's some explanation for the change in `handler.hpp`:
This is where the previous code doesn't handle `use_root_sync`
correctly: `processLaunchProperties` will be called twice, first for the
property list returned by the kernel functor's `get(properties_tag)`
method, and then for `Props` that is passed in as a parameter to
`parallel_for`. Therefore, if the `get(properties_tag)` method specifies
`use_root_sync` and `Props` is empty or doesn't contain `use_root_sync`,
what will be done is:
- first, the property list returned by the kernel functor's
`get(properties_tag)` method get processed. And since it contains
`use_root_sync`, `setKernelIsCooperative(true)` is called;
- then, the property list `Props` that is passed in as a parameter to
`parallel_for` get processed. And since it doesn't contain
`use_root_sync` (actually for the non-deprecated variants of
`parallel_for`, `Props` should always be an empty property list),
`setKernelIsCooperative(**false**)` is called
And thus in the end the `MKernelIsCooperative` flag will be set to
false, while it actually should be true. Revising the code like this
solve the problem.
Also `MKernelIsCooperative` is false by default, so we don't need to
worry if `setKernelIsCooperative` is not called.
---------
Signed-off-by: Hu, Peisen <[email protected]>
0 commit comments