-
Notifications
You must be signed in to change notification settings - Fork 795
[UR][L0] Fix Implict Event sync during external semaphore wait/signal #19859
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
Conversation
nrspruit
commented
Aug 22, 2025
- When SYCl Calls the L0 adapter without a signal event, L0 creates an internal event.
- Given in order command queue, the internal event for the wait/signal is implicitly added to the wait list of the next command if executeCommandList is called.
- This ensures that the internal event is properly synchronized with the command queue during that next call given SYCL is failing to create a UR event for tracking the wait/signal.
- When SYCl Calls the L0 adapter without a signal event, L0 creates an internal event. - Given in order command queue, the internal event for the wait/signal is implicitly added to the wait list of the next command if executeCommandList is called. - This ensures that the internal event is properly synchronized with the command queue during that next call given SYCL is failing to create a UR event for tracking the wait/signal. Signed-off-by: Neil R. Spruit <[email protected]>
|
Are there any unit or conformance tests that test the issue this PR fixes? |
https://github.com/intel/llvm/blob/sycl/sycl/test-e2e/bindless_images/vulkan_interop/unsampled_images.cpp will reproduce the issue, however only sporadically so that means a new CTS is needed to validate the sycl side does not get executed before the Vulkan dependency is executed. |
|
it should be noted, that while this is needed to fix the issue for L0 indirect internal events, the root bug is that external semaphores in sycl are not implemented properly. |
|
@intel/bindless-images-reviewers , please review, this addresses the missing support for internal events given external semaphore. I will be working on adding a CTS to cover this gap in another review, but adding that CTS will result in new failures since the larger bug is in the SYCL layer itself. |
|
@intel/llvm-gatekeepers please merge when available, thank you! |
…intel#19859) - When SYCl Calls the L0 adapter without a signal event, L0 creates an internal event. - Given in order command queue, the internal event for the wait/signal is implicitly added to the wait list of the next command if executeCommandList is called. - This ensures that the internal event is properly synchronized with the command queue during that next call given SYCL is failing to create a UR event for tracking the wait/signal. Signed-off-by: Neil R. Spruit <[email protected]>
This is a joined cherry-pick of: --- [UR][L0] Remove Driver Exp Implementation of External Semaphore (#19835) - Intel L0 GPU Driver no longer supports the Driver Exp Implementation of External Semaphore and the code has been removed from the codebase, therefore the support needs to be removed from the adapter to allow compiling with newer ze_intel_gpu.h headers. - L0 Spec implementation is the only version required for customer support. Patch-by: Neil R. Spruit <[email protected]> --- [UR][L0] urBindlessImagesGetImageMemoryHandleTypeSupportExp correction (#19667) VK_FORMAT_R8G8B8A8_UNORM is supported on L0 urt, correction to verifyCommonImagePropertiesSupport. Patch-by: Zhang, Winston <[email protected]> --- [UR][L0][V2] Fixed supported logic for external semaphore (#19863) Patch-by: Neil R. Spruit <[email protected]> --- [UR][L0] Fix Implict Event sync during external semaphore wait/signal (#19859) - When SYCl Calls the L0 adapter without a signal event, L0 creates an internal event. - Given in order command queue, the internal event for the wait/signal is implicitly added to the wait list of the next command if executeCommandList is called. - This ensures that the internal event is properly synchronized with the command queue during that next call given SYCL is failing to create a UR event for tracking the wait/signal. Patch-by: Neil R. Spruit <[email protected]>