Skip to content

[UR][L0v2] Fork-join pattern - #22333

Merged
kswiecicki merged 8 commits into
intel:syclfrom
KFilipek:worktree-urt-1059-fork-join
Aug 12, 2026
Merged

[UR][L0v2] Fork-join pattern#22333
kswiecicki merged 8 commits into
intel:syclfrom
KFilipek:worktree-urt-1059-fork-join

Conversation

@KFilipek

Copy link
Copy Markdown
Contributor

The L0v2 out-of-order queue uses 4 command list managers but records graph capture only on manager 0. Two paths broke the fork-join pattern:

  1. Routing — getNextCommandListId() round-robined operations to an arbitrary command list. An op waiting on an event from a capturing queue could land on a non-capture list, escaping
    capture, so queueIsGraphCaptureEnabledExp returned false. Fixed by routing such ops to the capture command list when any wait event comes from a capturing queue.
  2. Barrier — enqueueEventsWaitWithBarrier() cross-links all command lists via per-list barrier events. During capture this would fork the other lists without joining them back, producing a
    capture error. Fixed by applying the barrier on the capture list only while capture is active.

Removes the UUR_KNOWN_FAILURE_ON(LevelZeroV2) guard from the ForkJoinPattern conformance test.

@KFilipek
KFilipek marked this pull request as ready for review June 22, 2026 12:48
@KFilipek
KFilipek requested review from a team as code owners June 22, 2026 12:48
@KFilipek
KFilipek force-pushed the worktree-urt-1059-fork-join branch from be5b21e to ebf611a Compare June 23, 2026 13:22
@KFilipek
KFilipek marked this pull request as draft June 23, 2026 13:30
@KFilipek
KFilipek force-pushed the worktree-urt-1059-fork-join branch 3 times, most recently from 3b32879 to 581b5f4 Compare June 24, 2026 10:59
@KFilipek
KFilipek marked this pull request as ready for review July 10, 2026 09:33
@KFilipek
KFilipek marked this pull request as draft July 10, 2026 09:33
@KFilipek
KFilipek force-pushed the worktree-urt-1059-fork-join branch from 581b5f4 to c6910cc Compare July 13, 2026 14:20
Route operations waiting on an event from a capturing queue to the capture
command list instead of an arbitrary one, so the fork is recorded.
Avoids forking the other command lists, which would never join back.
@KFilipek
KFilipek force-pushed the worktree-urt-1059-fork-join branch from c6910cc to 79d17f9 Compare August 4, 2026 11:59
@KFilipek
KFilipek force-pushed the worktree-urt-1059-fork-join branch 2 times, most recently from 65639fc to afaab9d Compare August 6, 2026 14:16
@KFilipek
KFilipek force-pushed the worktree-urt-1059-fork-join branch from afaab9d to 7b8a4d8 Compare August 6, 2026 14:52
@KFilipek
KFilipek force-pushed the worktree-urt-1059-fork-join branch 2 times, most recently from cd6b6d4 to c308c47 Compare August 10, 2026 10:30
@KFilipek
KFilipek force-pushed the worktree-urt-1059-fork-join branch from c308c47 to 0913f40 Compare August 10, 2026 10:50
@KFilipek
KFilipek marked this pull request as ready for review August 10, 2026 12:21
@kswiecicki

kswiecicki commented Aug 12, 2026

Copy link
Copy Markdown
Contributor

OpenCL and Native CPU jobs are stuck waiting for runner, but this change is specific to L0v2 adapter. I'll merge this without waiting for those 3 jobs.

@kswiecicki
kswiecicki merged commit 6072230 into intel:sycl Aug 12, 2026
39 checks passed
@KFilipek
KFilipek deleted the worktree-urt-1059-fork-join branch August 13, 2026 10:59
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