-
Notifications
You must be signed in to change notification settings - Fork 794
[SYCL] Address Issue about Unable to Specify Kernel Properties when Reductions are Present #20491
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
base: sycl
Are you sure you want to change the base?
Conversation
Signed-off-by: Hu, Peisen <[email protected]>
Signed-off-by: Hu, Peisen <[email protected]>
|
@slawekptak Just to let you know that my work in this PR might address part of the problem you mentioned in https://github.com/intel/llvm/blame/40a9999b5536ac739e5f850c05d6d9dc1aa6e58b/sycl/include/sycl/ext/oneapi/experimental/enqueue_functions.hpp#L274, and thus pinging you to avoid repetitive work. Also feel free to correct me if I got anything wrong here. TY! |
@HPS-1 Thanks for letting me know. I'm adding @uditagarwal97 who works on properties support for the handler-less path. This patch might not be directly related, as this addresses the handler path, but it is good to be aware of this change. |
Thanks! And just a mention that I believe this is actually related to the handler-less path since the handler-less path implicitly calls the handler path sometimes: as you can see in the Here in the if statement, it actually calls the |
Signed-off-by: Hu, Peisen <[email protected]>
Signed-off-by: Hu, Peisen <[email protected]>
Signed-off-by: Hu, Peisen <[email protected]>
Signed-off-by: Hu, Peisen <[email protected]>
Signed-off-by: Hu, Peisen <[email protected]>
Signed-off-by: Hu, Peisen <[email protected]>
|
You shouldn't be forwarding it at all. Your code looks like auto whatever(T &&...xs) {
const auto &last = get_last(forward(xs)...); // Not really benefiting from any rvalue-refs
// If you forward below (and you do), it means all xs must be
// alive and not moved-out. As such, there should be *no* move
// prior to this. And no move means forward is unnecessary too
// (and even dangerous, because it might result in a move).
foo(forward(xs)...);
} |
Signed-off-by: Hu, Peisen <[email protected]>
Signed-off-by: Hu, Peisen <[email protected]>
Basically to fix this issue. Note: seems that other than certain variants (overloads) of
nd_launchwhich is explicitly mentioned in the issue, some variants ofparallel_forwith reductions are also having the same problem. Furthermore, these problematicnd_launchvariants actually calls the problematicparalle_forvariants, so in the end onlyparallel_forvariants are modified.Also there're some test revisions in this PR. These changes are previously blocked by the aforementioned issue. And as of the revision itself, the key idea here is to get rid of all
parallel_for/single_taskoverloads that take a property list as a parameter (since these overloads are to be deprecated).