-
Notifications
You must be signed in to change notification settings - Fork 124
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
Refactor command update API to take a list of configurations #2666
Closed
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
de05080
to
c14f5ef
Compare
4993b39
to
7c4a9af
Compare
EwanC
commented
Feb 6, 2025
75f908b
to
e9c7851
Compare
e9c7851
to
7d3e81f
Compare
Bensuo
reviewed
Feb 11, 2025
7d3e81f
to
0181e72
Compare
EwanC
added a commit
to reble/llvm
that referenced
this pull request
Feb 14, 2025
Uses PR oneapi-src/unified-runtime#2666 to pass a list of updates to UR in a single host call per UR command-buffer in the graph, rather than making N calls to UR for N nodes to update.
EwanC
added a commit
to reble/llvm
that referenced
this pull request
Feb 14, 2025
Uses PR oneapi-src/unified-runtime#2666 to pass a list of updates to UR in a single host call per UR command-buffer in the graph, rather than making N calls to UR for N nodes to update.
EwanC
added a commit
to reble/llvm
that referenced
this pull request
Feb 14, 2025
Uses PR oneapi-src/unified-runtime#2666 to pass a list of updates to UR in a single host call per UR command-buffer in the graph, rather than making N calls to UR for N nodes to update.
EwanC
added a commit
to reble/llvm
that referenced
this pull request
Feb 17, 2025
Uses PR oneapi-src/unified-runtime#2666 to pass a list of updates to UR in a single host call per UR command-buffer in the graph, rather than making N calls to UR for N nodes to update.
Update the `urCommandBufferUpdateKernelLaunchExp` API for updating commands in a command-buffer to take a list of commands. The current API operates on a single command, this means that the SYCL-Graph `update(std::vector<nodes>)` API needs to serialize the list into N calls to the UR API. Given that both OpenCL `clUpdateMutableCommandsKHR` and Level-Zero `zeCommandListUpdateMutableCommandsExp` can operate on a list of commands, this serialization at the UR layer of the stack introduces extra host API calls. This PR improves the `urCommandBufferUpdateKernelLaunchExp` API so that a list of commands is passed all the way from SYCL to the native backend API.
To workaround oneapi-src#2671 where the spec generator cannot translate handles inside a list of structs, add a special case to the Mako file so that we can handle the new entry-point. This is a temporary measure until the work refactoring handle translation is complete. Co-authored-by: Ross Brunton <[email protected]>
0181e72
to
a4f8daa
Compare
a4f8daa
to
d6e02a1
Compare
EwanC
added a commit
to reble/llvm
that referenced
this pull request
Feb 18, 2025
Uses PR oneapi-src/unified-runtime#2666 to pass a list of updates to UR in a single host call per UR command-buffer in the graph, rather than making N calls to UR for N nodes to update.
Closing this PR as after the UR repo move all changes are in intel/llvm#17019 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
command-buffer
Command Buffer feature addition/changes/specification
conformance
Conformance test suite issues.
cuda
CUDA adapter specific issues
experimental
Experimental feature additions/changes/specification
hip
HIP adapter specific issues
level-zero
L0 adapter specific issues
loader
Loader related feature/bug
native-cpu
Native CPU adapter specific issues
opencl
OpenCL adapter specific issues
specification
Changes or additions to the specification
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Update the
urCommandBufferUpdateKernelLaunchExp
API for updating commands in a command-buffer to take a list of commands.The current API operates on a single command, this means that the SYCL-Graph
update(std::vector<nodes>)
API needs to serialize the list into N calls to the UR API. Given that both OpenCLclUpdateMutableCommandsKHR
and Level-ZerozeCommandListUpdateMutableCommandsExp
can operate on a list of commands, this serialization at the UR layer of the stack introduces extra host API calls.This PR improves the
urCommandBufferUpdateKernelLaunchExp
API so that a list of commands is passed all the way from SYCL to the native backend API.As highlighted in #2671 this patch requires the handle translation auto generated code to be able to handle a list of structs, which is not currently the case. This is PR includes a API specific temporary workaround in the mako file which will unblock this PR until a more permanent solution is completed.
DPC++ PR intel/llvm#17019