Skip to content

[SYCL] Don't remove the command from leaves list when adding empty command #2542

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

Closed
wants to merge 15 commits into from

Conversation

s-kanaev
Copy link
Contributor

@s-kanaev s-kanaev commented Sep 25, 2020

Let's have this part of dependency graph:

  EC2 -> C2 -> EC1 -> C1

EC1 and EC2 are of helper type EmptyCommand. Both are blocked.
C1 and C2 are of any other type which represents some meaningful operation i.e. the one that actually does something useful, like ExecCGCommand with a host task or UpdateHostReqCommand for host accessor.
This part of graph is result of two submissions: the first one adds EC1 -> C1 and the second adds EC2 -> C2 -> EC1.
The submission process in both cases adds the corresponding Cx command in first place and then adds the empty command ECx. When Cx is added to the graph it's also added to list of leaves for corresponding memory record. Now, when ECx is added to graph it removes corresponding Cx from list of leaves. ECx is added to the list instead of Cx. Blocked state of ECx prevents it from being enqueued.

Upon the second submission, C2 isn't going to be enqueued right away as it depends on blocked EC1.

When C1 finishes (whether it is a host task or host accessor's update command) SYCL RT will unblock EC1 and trigger enqueue process for leaves of memory records C1 was depending by. Eventually, RT will enqueue the EC1 which will set its event into complete state. Though, EC2 isn't going to be enqueued due to it's blocked state. Neither does its dependencies.

PR with test: #2540
PR with comment fix: #2541

A more convenient way is available at #2543

Sergey Kanaev added 6 commits September 25, 2020 12:10
Signed-off-by: Sergey Kanaev <sergey.kanaev@intel.com>
Signed-off-by: Sergey Kanaev <sergey.kanaev@intel.com>
Signed-off-by: Sergey Kanaev <sergey.kanaev@intel.com>
Signed-off-by: Sergey Kanaev <sergey.kanaev@intel.com>
Signed-off-by: Sergey Kanaev <sergey.kanaev@intel.com>
…mmand

Signed-off-by: Sergey Kanaev <sergey.kanaev@intel.com>
@s-kanaev s-kanaev force-pushed the private/s-kanaev/ht-workaround branch from 9eac4b6 to 4a76c3a Compare September 25, 2020 14:24
Sergey Kanaev added 8 commits September 25, 2020 17:29
Signed-off-by: Sergey Kanaev <sergey.kanaev@intel.com>
Signed-off-by: Sergey Kanaev <sergey.kanaev@intel.com>
Signed-off-by: Sergey Kanaev <sergey.kanaev@intel.com>
Signed-off-by: Sergey Kanaev <sergey.kanaev@intel.com>
Signed-off-by: Sergey Kanaev <sergey.kanaev@intel.com>
@s-kanaev s-kanaev marked this pull request as ready for review September 25, 2020 14:45
@s-kanaev s-kanaev requested a review from a team as a code owner September 25, 2020 14:45
@DenisBakhvalov
Copy link
Contributor

DenisBakhvalov commented Sep 26, 2020

Do you prefer #2543 over the current (#2542) solution?

@s-kanaev
Copy link
Contributor Author

In this patch we start to store not only leaves for memory record. Hence, I prefer #2543 instead of this workaround.

@s-kanaev
Copy link
Contributor Author

Too much of a workaround here.

Won't really work if leaf limit is exceeded.

@s-kanaev s-kanaev closed this Sep 28, 2020
@s-kanaev s-kanaev deleted the private/s-kanaev/ht-workaround branch September 28, 2020 13:21
kbenzie pushed a commit to kbenzie/intel-llvm that referenced this pull request Feb 17, 2025
[L0 v2] implement urKernelGetSuggestedLocalWorkSize
Chenyang-L pushed a commit that referenced this pull request Feb 18, 2025
[L0 v2] implement urKernelGetSuggestedLocalWorkSize
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.

2 participants