Skip to content
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

Efficiently use both in-order and out-of-order sycl queues. #59

Merged
merged 6 commits into from
Sep 14, 2023

Conversation

kris-rowe
Copy link

Closes #58

@kris-rowe kris-rowe linked an issue Jul 18, 2023 that may be closed by this pull request
@kris-rowe kris-rowe requested a review from uumesh July 18, 2023 22:58
@uumesh
Copy link
Collaborator

uumesh commented Jul 20, 2023

Could the return value of sycl_queue.is_in_order() be stored as a variable in Ceed_Sycl to avoid repeated evaluation of this function? Not sure if it will have any benefits.

@kris-rowe
Copy link
Author

Could the return value of sycl_queue.is_in_order() be stored as a variable in Ceed_Sycl to avoid repeated evaluation of this function? Not sure if it will have any benefits.

This is a good point. I'm assuming the overhead of sycl::queue::is_in_order is negligible, but we could measure this.

My rational for not storing the value was:

  • Calling the function each time avoids any errors that could be caused by a queue being updated without also updating a stored is_in_order flag.
  • Some functions take a reference to a sycl::queue as an argument (e.g., as opposed to a Ceed_Sycl), so we would need to pass in an extra flag argument or else query the queue anyway.

If overhead of the function call turns out to be an issue, we can implement the alternative in the future.

@uumesh uumesh closed this Sep 14, 2023
@uumesh uumesh reopened this Sep 14, 2023
@uumesh uumesh merged commit 8013861 into sycl-main Sep 14, 2023
36 of 40 checks passed
@kris-rowe kris-rowe deleted the sycl/queue-ordering branch September 14, 2023 16:17
uumesh pushed a commit that referenced this pull request Dec 19, 2023
* Default to in-order queues.

* Only order queue as necessary.

* Only order queue as necessary.

* Only order queue as necessary.

* Use the same queue recursively through a hierarchy of Ceed objects,
uumesh pushed a commit that referenced this pull request Jan 2, 2024
* Default to in-order queues.

* Only order queue as necessary.

* Only order queue as necessary.

* Only order queue as necessary.

* Use the same queue recursively through a hierarchy of Ceed objects,
uumesh pushed a commit that referenced this pull request Apr 3, 2024
* Default to in-order queues.

* Only order queue as necessary.

* Use the same queue recursively through a hierarchy of Ceed objects,
uumesh pushed a commit that referenced this pull request Apr 3, 2024
* Default to in-order queues.

* Only order queue as necessary.

* Use the same queue recursively through a hierarchy of Ceed objects,
uumesh added a commit that referenced this pull request Apr 5, 2024
…CEED#1456)

* Efficiently use both in-order and out-of-order sycl queues. (#59)

* Default to in-order queues.

* Only order queue as necessary.

* Use the same queue recursively through a hierarchy of Ceed objects,

* Adds missing changes from previous git-cherry-pick

* Efficiently use both in-order and out-of-order sycl queues. (#59)

* Default to in-order queues.

* Only order queue as necessary.

* Use the same queue recursively through a hierarchy of Ceed objects,

* Adds missing changes from previous git-cherry-pick

* fix formatting errors

* further formatting corrections

* fix formatting errors for merge

* fix errors

* fix errors

---------

Co-authored-by: Kris Rowe <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Reset SYCL queue to in-order for PETSc and add query for queue type
2 participants