Expand description
VRAM Reservation Ledger (GPU-SHARE-001).
Uses flock for mutual exclusion and atomic write (write-to-temp, rename) for crash safety.
§Contract C-VRAM-001
CudaTrainer::new() MUST NOT allocate if
ledger.total_reserved() + budget > total_mb × reserve_factor.
§Protocol
- Acquire
flock(LOCK_EX)on ledger file - Read reservations, prune dead PIDs + expired leases
- Check capacity:
sum(active.budget_mb) + my_budget <= total_mb × reserve_factor - Write reservation via atomic rename (write tmp → rename)
- Release lock (close fd / drop)
- On exit: best-effort cleanup via
Drop
Structs§
- Reservation
- A single VRAM reservation.
- Vram
Ledger - VRAM reservation ledger with flock-based mutual exclusion.
Enums§
- Memory
Type - GPU memory type.
Constants§
- DEFAULT_
LEASE_ HOURS - Default lease duration (24 hours).
- RESERVE_
FACTOR_ DISCRETE - Reserve factor for discrete GPUs (15% headroom).
- RESERVE_
FACTOR_ UNIFIED - Reserve factor for unified memory (40% headroom for OS).
Functions§
- auto_
ledger - Create a ledger auto-detecting GPU properties.
- detect_
gpu_ uuid - Detect GPU UUID by shelling out to
nvidia-smi -L. - detect_
memory_ type - Detect whether GPU has unified memory (Jetson) vs discrete.
- detect_
total_ memory_ mb - Detect total GPU memory in MB via
nvidia-smi. - gpu_
status_ display - Human-readable GPU status display.