Skip to content

[SYCL][Graph] Add support for enabling Command-Buffer profiling #11324

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

Merged
merged 23 commits into from
Jan 18, 2024

Conversation

mfrancepillois
Copy link
Contributor

@mfrancepillois mfrancepillois commented Sep 27, 2023

Support for graph execution profiling

  • Modifies the urEventGetProfilingInfo function to get the CommandBuffer start time from sync point timestamps.
  • Approximates the submit time if the difference between the estimated device clock (from which the submit time is taken) and the actual device clock is greater than the elapsed time between the command-buffer submission and its start (involving an event sequence issue, i.e. submit time can be after start time)
  • Adds a profiling e2e test.
  • Updates the design doc

…ling (#318)

* [SYCL][Graph] Add e2e test checking profiling info

Adds an e2e test that checks the profiling info from an event returned by a graph submission.

Closes Issue: #96

* [SYCL][Graph] Update the implementation to support Profiling on graph execution

Sycl event impl object contains a flag indicating that this event results from a graph submission.
This flag was not set for every type of graph sumbission. This commit fixes this bug.
Adds a extra event in the first command list associated to the CommandBuffer execution to obtain the start time of the graph execution.
Modifies the urEventGetProfilingInfo function to get the CommandBuffer start time from this new event.
Improves to profiling e2e test.
Removes the test checking for exception throwing (unsupported feature).

* [SYCL][Graph] Add resync of submit time to start time if time shift

* [SYCL][Graph] Adds condition on queue prop before adding the new profiling event to CL
@mfrancepillois mfrancepillois temporarily deployed to WindowsCILock September 27, 2023 14:05 — with GitHub Actions Inactive
CUDA backend support for commandbuffer has not yet been merged, so we are disabling the test using CUDA backend in this PR.
@mfrancepillois mfrancepillois temporarily deployed to WindowsCILock September 27, 2023 14:24 — with GitHub Actions Inactive
@reble reble requested a review from tovinkere September 27, 2023 15:07
@EwanC
Copy link
Contributor

EwanC commented Oct 2, 2023

Hi @tovinkere, could you review this PR?
Although the work needs rebased and has a CI fail, it would be good to know if the overall approach is a good design, and I believe you have some insight on profiling.

@tovinkere
Copy link
Contributor

Hi @tovinkere, could you review this PR? Although the work needs rebased and has a CI fail, it would be good to know if the overall approach is a good design, and I believe you have some insight on profiling.

@EwanC @reble Pablo and I had a quick sync and we will create a table of all the events that must be enabled and should be the input to an implementation and validation plan.

@mfrancepillois mfrancepillois marked this pull request as draft November 3, 2023 09:37
Copy link
Contributor

@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.

Some minor comments on the test

Copy link
Contributor

@kbenzie kbenzie left a comment

Choose a reason for hiding this comment

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

oneapi-src/unified-runtime#1035 has merged, please pull in the latest changes from the sycl branch, update the UR tag as suggested, then make the ready for review.

@kbenzie kbenzie marked this pull request as ready for review January 11, 2024 17:11
@kbenzie kbenzie requested a review from a team as a code owner January 11, 2024 17:11
@aarongreig
Copy link
Contributor

@intel/llvm-reviewers-runtime please review when you can

Copy link
Contributor

@steffenlarsen steffenlarsen left a comment

Choose a reason for hiding this comment

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

Small nit, otherwise LGTM!

Copy link
Contributor

@reble reble left a comment

Choose a reason for hiding this comment

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

LGTM! Small nit.

@EwanC
Copy link
Contributor

EwanC commented Jan 18, 2024

@intel/llvm-gatekeepers I think this is ready to merge

@sarnex sarnex merged commit b04f894 into intel:sycl Jan 18, 2024
EwanC added a commit to reble/llvm that referenced this pull request Mar 26, 2024
Merged PR intel#11324 introduced
the ability to profile an executable graph submission. However,
the specification limitation section was not updated to reflect
this which is addressed in this PR.
ldrumm pushed a commit that referenced this pull request Mar 26, 2024
Merged PR #11324 introduced the
ability to profile an executable graph submission. However, the
specification limitation section was not updated to reflect this, which
is addressed in this PR.
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.

8 participants