You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Work stealing, and the heterogeneity tolerance it buys (S33)
Per-lane wake — a dispatch wakes only the lanes it filled (S50 P0b)
Lock-free completion — execute takes no lock; every slice but the last is
one atomic (S50 P2)
Host spin before parking, budget zero when oversubscribed (S50 P1)
One executor per lane, host included (S50 P1)
One-slice tasks run inline, never queued (S50 P3)
Not built / refuted
Spinning workers — REFUTED, do not retry as specified. 0.80–0.93× on real
shapes; handoff_floor over-predicted because it gave every thread work every
wave. See performance/s50c-p1-spinning-workers-refuted.md.
Persistent kernel / static per-lane schedule with a counter barrier — the
structural end state; not designed.
Work still carries an Arc<Run> (one atomic pair per slice); take_any's miss
path still locks every lane.
path_plan_is_acyclic in the backend is still load-bearing — path_plan does not
guarantee a DAG for every shape, only for the sibling-merge class S49 fixed.
Needs work
Item
Where
Note
raptorlake dispatch economics
backend-llvm/profile.rs
owed; box unreachable at S50 close, rule inert there
dispatch_ns tracks the RUNTIME, not the machine
same
re-derive whenever the handoff changes; recipe in performance/s50e-*.md §2
ARCHITECTURE §4 rules have no automated pin
here
rules 1–6 are prose; rule 1 was violated and only found by a spinning host