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

[SYCL][Graph] Support for sycl_ext_oneapi_enqueue_barrier extension #301

Merged
merged 3 commits into from
Aug 22, 2023

Conversation

mfrancepillois
Copy link
Collaborator

Adds support to handle barrier enqueuing with Record&Replay API. Barriers are implemented as empty nodes enforcing the required dependencies.

Adds tests that check 1) correctness of graph structure when barriers have been enqueued, 2) processing behavior, 3) exception throwing if barriers are used within explicit API.

Notes:

  1. Multi-queues barrier is not supported since it does not make sense with asynchronous graph execution.
  2. Barriers can only be used with Record&Replay API, since barriers rely on events to enforce dependencies.

@mfrancepillois mfrancepillois added the Graph Implementation Related to DPC++ implementation and testing label Aug 17, 2023
Copy link
Collaborator

@EwanC EwanC left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, minor comments

sycl/source/handler.cpp Outdated Show resolved Hide resolved
sycl/source/handler.cpp Outdated Show resolved Hide resolved
sycl/unittests/Extensions/CommandGraph.cpp Show resolved Hide resolved
Copy link
Collaborator

@Bensuo Bensuo left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

sycl/source/detail/graph_impl.cpp Outdated Show resolved Hide resolved
mfrancepillois and others added 3 commits August 22, 2023 11:38
Adds support to handle barrier enqueuing with Record&Replay API.
Barriers are implemented as empty nodes enforcing the required dependencies.

Adds tests that check 1) correctness of graph structure when barriers have been enqueued, 2) processing behavior, 3) exception throwing if barriers are used within explicit API.

Notes:
1) Multi-queues barrier is not supported since it does not make sense with asynchronous graph execution.
2) Barriers can only be used with Record&Replay API, since barriers rely on events to enforce dependencies.
Adds unitest with multiple barriers and	test-e2e.
Corrects some typos.
Co-authored-by: Ben Tracy <ben.tracy@codeplay.com>
@mfrancepillois mfrancepillois merged commit adaaaed into sycl-graph-develop Aug 22, 2023
@mfrancepillois mfrancepillois deleted the maxime/enqueue_barrier_support branch August 22, 2023 10:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Graph Implementation Related to DPC++ implementation and testing
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants