-
Notifications
You must be signed in to change notification settings - Fork 768
[SYCL][Bindless][UR][L0][E2E] Fix linear interop memory and L0 V1 adapter leaks. #18353
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
sarnex
merged 16 commits into
intel:sycl
from
codeplaysoftware:przemek/vk-buffer-usm-interop
May 9, 2025
Merged
Changes from 7 commits
Commits
Show all changes
16 commits
Select commit
Hold shift + click to select a range
9ee064e
[SYCL][Bindless][UR][L0][E2E] Fix mapping linear interop memory. Fix …
przemektmalon c67d38b
Fix HIP UR adapter compilation
przemektmalon 0b0e9ad
Add back REQUIRES vulkan directive
przemektmalon 5151982
Rename external mem APIs from to . Clarify spec.
przemektmalon ff997d0
Format
przemektmalon f26ef83
Add linux symbols
przemektmalon cde614d
Add Windows symbols
przemektmalon eb8bb39
Make sycl::queue variants inline, removing SYCL_EXPORT
przemektmalon b4583ed
Use static_cast in UR
przemektmalon 7cd0172
Replace static_cast with reinterpret_cast
przemektmalon 366c783
Merge branch 'sycl' into przemek/vk-buffer-usm-interop
przemektmalon b9e9be7
Format ur_trcddi.cpp
przemektmalon 532932c
Merge branch 'sycl' into przemek/vk-buffer-usm-interop
przemektmalon a85fdc2
Merge branch 'sycl' into przemek/vk-buffer-usm-interop
przemektmalon c5be140
Merge branch 'sycl' into przemek/vk-buffer-usm-interop
przemektmalon 3486511
Merge branch 'sycl' into przemek/vk-buffer-usm-interop
przemektmalon File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or 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
This file contains hidden or 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
This file contains hidden or 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
Oops, something went wrong.
Oops, something went wrong.
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.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Are you sure this needs to be exported and not inlined on the user side?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You're right. The functions taking a
sycl::queue
can be marked asinline
in thebindless_images.hpp
header and just call the variants takingsycl::device
andsycl::context
- instead of being marked as__SYCL_EXPORT
.I've amended the functions introduced in this PR which take a
sycl::queue
to beinline
in thebindless_images.hpp
header, and added definitions in that header that point to the variants taking the SYCL device and context which contain the actual definitions.This should also apply to all of our other APIs, but I think this would be a refactoring change that should belong in a separate PR. We will track this issue internally.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Well, I can have arguments for either approach, that's why I didn't ask for the change :)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I feel that having the
sycl::queue
variants beinginline
should be an improvement. I'm not sure if it will have a large impact on compilation time, but at least the number of exported symbols will be reduced.If you have a better intuition of the impact this might have on compilation time let me know, then we could expedite the change to the other Bindless Images API.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Doing it in headers means we have to create new
device
/context
objects and paystd::shared_ptr
atomic price. If we do that inside the library we can get*_impl
directly without increasing ref counts and also benefit from inlining.I don't know how much is that an issue (if at all). Also, a longer term fix might be to completely avoid ref counting (at least for some types like
device
) so that it would become a non-issue in future.