Expand description
2026-09-26: L1: GPU time from CUDA event pairs: every serve lane on every step, and every eager kernel launch on one step in N.
SpanRing is the bookkeeping, generic over EventOps so it is tested
here with a scripted event source; the CUDA implementation is
metrale-gpu-runtime’s timing module. A span lands when a later
SpanRing::harvest polls it complete; the ring never waits on the GPU.
Kernels replayed inside a CUDA graph get no per-kernel span; only the lane
span covers a replay.
Owner: telemetry. Invariants: a ring slot is handed out again only after its span landed, failed, or could not start.
Structs§
- Kernel
Instruments - 2026-09-26: Where span durations land.
- Kernel
Time - 2026-09-26: One row of the per-kernel table.
- Span
Ring - 2026-09-26: The in-flight spans over a fixed pool of event pairs.
- Span
Token - 2026-09-26: A span handed out by
SpanRing::begin.
Enums§
- Edge
- 2026-09-26: One edge of a span.
- SpanKey
- 2026-09-26: What a span measured.
- Span
Poll - 2026-09-26: A span’s completion state.
Constants§
- KERNEL_
TABLE_ SLOTS - 2026-09-26: Distinct kernels the per-kernel table can hold.
- LANES
- 2026-09-26: The serve lanes timed on the GPU each step at level
Kernel, indexed as the scheduler’sLane::telemetry_indexnumbers them.
Traits§
- Event
Ops - 2026-09-26: A pool of event pairs addressed by slot.