Skip to main content

ADR-002: One-GPU Serial Priority Scheduling

Status: Accepted

Decision class: Target architecture

Context​

The target machine has one physical GPU. Pretending GPU inference is parallel creates contention, unpredictable latency, and starvation.

Decision​

All GPU-bound work enters one priority-aware broker. At most one GPU job is active. A running job is not preempted by default; after it finishes, the broker selects the highest-priority ready job. Interactive work outranks scheduled and background work. Background screenshot analysis fills otherwise idle capacity.

Bounded CPU preparation and a small feeder window are allowed only when they do not violate serial GPU execution or priority selection.

Consequences​

  • Queue position, active job, priority, age, and degraded state must be visible.
  • Accepted work needs bounded retries, cancellation, and non-starvation rules.
  • Separate feature queues may expose domain state but cannot bypass the broker.

Verification​

Tests must prove mutual exclusion, next-ready priority, eventual background progress, and interactive non-starvation. Runtime proof must show the active and queued GPU work through an operator-visible status surface.