Skip to content

[NFC][SYCL] Better "managed" ur_program_handle_t #19536

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 2 commits into from
Jul 21, 2025

Conversation

aelovikov-intel
Copy link
Contributor

There was ProgramManager::ProgramPtr alias over std::unique_ptr with a custom deleter to RAII-manage ur_program_handle_t lifetime but it was applied in just a few places with the rest of the usage left with C-style explicit management.

This PR introduce a dedicated helper class to manage all UR handle types that I think is more convenient than ProgramManager::ProgramPtr. I'm also switching all the objects that stored ur_program_handle_t and then urProgramReleased them to use that new helper, while leaving the full refactoring (i.e., create those Managed objects at urProgramCreate*/urProgramRetain point) to a subsequent PRs to ease review process.

Other ur*_handle_ts are left to subsequent changes as well.

@aelovikov-intel aelovikov-intel requested a review from a team as a code owner July 21, 2025 17:07
@aelovikov-intel aelovikov-intel requested a review from againull July 21, 2025 17:07
There was `ProgramManager::ProgramPtr` alias over `std::unique_ptr` with
a custom deleter to RAII-manage `ur_program_handle_t` lifetime but it
was applied in just a few places with the rest of the usage left with
C-style explicit management.

This PR introduce a dedicated helper class to manage all UR handle types
that I think is more convenient than `ProgramManager::ProgramPtr`. I'm
also switching all the objects that stored `ur_program_handle_t` and
then `urProgramRelease`d them to use that new helper, while leaving the
full refactoring (i.e., create those `Managed` objects at
`urProgramCreate*`/`urProgramRetain` point) to a subsequent PRs to ease
review process.

Other `ur*_handle_t`s are left to subsequent changes as well.
@aelovikov-intel
Copy link
Contributor Author

Latest update was non-trivial, so another round of review is necessary.

@againull againull merged commit 3fa14e0 into intel:sycl Jul 21, 2025
39 of 41 checks passed
@aelovikov-intel aelovikov-intel deleted the managed_ur_program branch July 21, 2025 23:08
aelovikov-intel added a commit that referenced this pull request Jul 23, 2025
…el (#19557)

Started in #19536.

Non-NFC because fixes a few resource leaks as can be seen in the updated
test.
aelovikov-intel added a commit to aelovikov-intel/llvm that referenced this pull request Jul 23, 2025
Similar to what's been done with `ur_program_handle_t` in
intel#19536
intel#19557
aelovikov-intel added a commit to aelovikov-intel/llvm that referenced this pull request Jul 24, 2025
Similar to what's been done with `ur_program_handle_t` in
intel#19536
intel#19557
aelovikov-intel added a commit to aelovikov-intel/llvm that referenced this pull request Jul 24, 2025
Similar to what's been done with `ur_program_handle_t` in
intel#19536
intel#19557
aelovikov-intel added a commit that referenced this pull request Jul 25, 2025
Similar to what's been done with `ur_program_handle_t` in
#19536
#19557
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