Skip to main content

Module ledger

Module ledger 

Source
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

  1. Acquire flock(LOCK_EX) on ledger file
  2. Read reservations, prune dead PIDs + expired leases
  3. Check capacity: sum(active.budget_mb) + my_budget <= total_mb × reserve_factor
  4. Write reservation via atomic rename (write tmp → rename)
  5. Release lock (close fd / drop)
  6. On exit: best-effort cleanup via Drop

Structs§

Reservation
A single VRAM reservation.
VramLedger
VRAM reservation ledger with flock-based mutual exclusion.

Enums§

MemoryType
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.