Open TApplencourt opened 10 months ago
@TApplencourt, thanks for this suggestion. Our current implementation of .wait()
for invalid events throws a SYCL exception: what(): wait method cannot be used for a discarded event.
@Pennycook, do you think this should require a new extension? It doesn't seem like the requested change is compatible with the sycl_ext_oneapi_discard_queue_events
specification.
@0x12CC : I'm not sure. Such a change would permit something that previously wasn't allowed, so I don't think it would count as a "breaking change". But I'm reluctant to change sycl_ext_oneapi_discard_queue_events
at this stage, primarily because I don't think people should be writing new code that uses it. sycl_ext_oneapi_enqueue_functions
is our preferred solution to enqueuing commands without events. @gmlueck, do you agree?
Yes, I was thinking that we would probably deprecate and then remove "sycl_ext_oneapi_discard_queue_events" now that we have "sycl_ext_oneapi_enqueue_functions"
@TApplencourt, the sycl_ext_oneapi_enqueue_functions extension allows you to enqueue work without creating an event
object. It doesn't require a special queue so it's compatible with libraries like oneMKL. Is this acceptable for what you're trying to do?
The barrier of entry is not the same. For big applications, sycl_ext_oneapi_discard_queue_events
is a one-line change, porting all their submissions to sycl_ext_oneapi_enqueue_functions
is a monthly effort.
The barrier of entry is not the same. For big applications,
sycl_ext_oneapi_discard_queue_events
is a one-line change, porting all their submissions tosycl_ext_oneapi_enqueue_functions
is a monthly effort.
Is it really that big of a change? Porting to sycl_ext_oneapi_enqueue_functions
is still a localized change in the code, affecting just the few lines that submit a kernel. Th ere is no need to change the entire application, either. You can just change one kernel submission if you want, leaving the remaining submissions to use the old API.
True, It's just that people have more kernels (100+) than queues. The implementation cost seems low to me and has a high reward, but that makes sense if you prefer to wait for the "official" fix. @abagusetty, what do you think? You where the one looking for this :)
@TApplencourt That should work as well, Thanks will give it a try.
Hi! There have been no updates for at least the last 60 days, though the issue has assignee(s).
@0x12CC, could you please take one of the following actions:
Thanks!
Hi! There have been no updates for at least the last 60 days, though the issue has assignee(s).
@0x12CC, could you please take one of the following actions:
Thanks!
Is your feature request related to a problem? Please describe
Discard event ( sycl_ext_oneapi_discard_queue_events is really useful.
Sadly, it restricts any usage of the event. Meaning that, I cannot create a queue with this property and then pass it to oneMKL for example.
Pseudocode
Describe the solution you would like
It's easy. Just implement
discard_event
like HipSYCL is doing it. Meaning when using theevent
(either for.wait
ordepend_on
) just submit aQ.wait()
.This will solve the composability issue.
Additional context
See more info here: https://github.com/KhronosGroup/SYCL-Docs/issues/404).
(@abagusetty)