Expand description
Concurrent execution of lane-partitioned kernels.
A kernel is a list of tasks. Every task belongs to one lane, and each lane runs its tasks in list order on one thread: lane 0 on the calling thread, the others on persistent worker threads. Before a task starts, its waits require other lanes to have completed a number of their tasks in the current execution. Completion counts are published with release stores and observed with acquire loads, so a consumer sees every state write of the producer tasks it waited for.
Idle workers spin briefly for the next kernel and then park; dispatch unparks only workers that announced they were going to sleep.
Structs§
- Kernel
Selector - Picks a kernel implementation from measured execution times.
- Lane
Pool - Persistent worker threads for one lane-partitioned program.
- Lane
Schedule - Validated execution order of a lane-partitioned kernel.
- Lane
Task Failure - A kernel failure. Non-fatal failures take precedence over combinational fatal captures; within either class the lowest task index wins.
- Lane
Task Spec - One task of a lane-partitioned kernel.
Enums§
- Kernel
Choice - Which implementation of a kernel to run next.
- Kernel
Selection - How a runtime picks between a kernel’s partitioned and sequential code.
- Lane
Schedule Error
Constants§
- LANE_
TASK_ PANICKED - Status reported for a task whose runner panicked.
Traits§
- Lane
Task Runner - Executes the tasks of one kernel.
Functions§
- new_
diagnostic_ id - Process-local identity for diagnostic objects. Never derived from addresses or topology, and never persisted in native images.