Karti Tripathi 2584ea908e
ci / rust (push) Successful in 2m27s
Lumbridge Compute
Governed compute for unified-memory AI hardware — machines where CPU and GPU
share one pool and there is no separate VRAM allocation to bounce off.
Over-commit that pool and the box thrashes and wedges, SSH and ping included,
before the OOM killer gets a turn.

Compute does not run inference. It supervises the servers that do:

- Admission control against two ceilings — a declared budget, and what the
  machine actually has free. The refusal is the feature.
- A 1 Hz watchdog on MemAvailable that stops the newest model before thrash,
  and defers to a Scene transition rather than racing it.
- Scenes: named sets of models activated as one transactional unit, with
  pre-flight validation and rollback to the previously active Scene on
  failure. Scenes reference model ids, never weight paths or commands, so a
  Scene obtained from elsewhere cannot introduce code.
- Process ownership bound to (boot_id, pid, start_time_ticks, pgid == pid),
  so a reused PID can never be group-killed.
- A protocol-transparent TCP gateway, so clients keep one address while model
  runtimes move behind it.
- An MCP server, so agents drive the node as tools.
- A read-only HTTP API for dashboards: loopback by default, CORS off unless an
  origin is named, and it never mutates.

One binary, six direct dependencies, no async runtime outside the MCP and API
surfaces. Apache-2.0.

Generated from the internal monorepo by scripts/publish-compute.sh, which
refuses to publish a tree it cannot prove clean.
2026-08-03 20:39:56 -07:00
2026-08-03 20:39:56 -07:00
2026-08-03 20:39:56 -07:00
2026-08-03 20:39:56 -07:00
2026-08-03 20:39:56 -07:00
2026-08-03 20:39:56 -07:00
2026-08-03 20:39:56 -07:00
2026-08-03 20:39:56 -07:00
2026-08-03 20:39:56 -07:00
2026-08-03 20:39:56 -07:00
2026-08-03 20:39:56 -07:00
2026-08-03 20:39:56 -07:00
2026-08-03 20:39:56 -07:00
2026-08-03 20:39:56 -07:00
2026-08-03 20:39:56 -07:00
2026-08-03 20:39:56 -07:00
2026-08-03 20:39:56 -07:00

Lumbridge Compute

The AI compute layer for Lumbridge clusters. Safe models, scenes, and evals on your own hardware.

Run many models on one box — safely — on NVIDIA DGX Spark (GB10), DGX Station (GB300), and RTX.


Lumbridge Compute is the tool you install the minute you open your DGX Spark. Boxes like the DGX Spark (GB10), DGX Station (GB300), and RTX workstations share one memory pool between CPU and GPU with little swap. On that hardware, over-committing memory doesn't fail gracefully — the whole machine thrashes and wedges (SSH and ping included) before the OOM killer acts. Lumbridge Compute makes that impossible, and turns the box into something you can load with different workloads on a schedule.

exo runs one model across many boxes. Lumbridge Compute runs many models on one box — safely. They're orthogonal; you can run Lumbridge Compute on each node of an exo cluster.

Three layers

Layer Analogous to Job
Governor kernel / memory cgroup + OOM policy Nothing starts unless it fits a hard budget; a watchdog kills the newest model before the box wedges.
Scenes systemd targets Named, shareable, activatable bundles of models (studio, darkroom).
lumbridge-compute (the shell) the CLI you install Onboard a fresh box, manage models, activate/schedule scenes.

The Governor (why Lumbridge Compute exists)

Unified memory means no separate VRAM pool to bounce off. vLLM, diffusers, and friends will happily reserve past 100% of the shared pool, and the box wedges. The Governor prevents this with two mechanisms:

  1. Admission control — a model starts only if its declared footprint fits the budget given what's already running, plus a safety margin.
  2. Watchdog — a 1 Hz thread on MemAvailable; if it dips below a critical floor, it kills the most-recently-started model before thrash. A backstop for a wrong estimate.

Scenes

A scene is a named set of models brought up together — the unit you activate, publish, and schedule. A single unified-memory box can't hold every model at once, so scenes let you time-multiplex it: run a live voice assistant by day, then switch to an overnight image farm at 3am. One box, the utilization of several.

Scenes reference model ids, never weight paths — so requantizing or upgrading a model never breaks a published scene. See docs/scene-spec.md, and docs/positioning.md for how Lumbridge Compute relates to Ollama / llama-swap / exo.

Evals

Lumbridge Compute ships a native, model-server-agnostic evaluation runner. Versioned YAML suites measure streamed TTFT, client-observed prefill throughput, decode throughput, and deterministic capability assertions against any OpenAI-compatible endpoint.

lumbridge-compute eval ls
lumbridge-compute eval run smoke
lumbridge-compute eval run performance --repeat 5
lumbridge-compute eval run finance-core

Every run writes a portable JSON artifact for regression tracking and future eval registries. See docs/evals.md.

Install

# from source (single static binary, no runtime deps)
cargo install --path .

Usage

lumbridge-compute status                    # Governor: memory, budget, running set, headroom
lumbridge-compute model ls                  # registry: footprints + live state + which port
lumbridge-compute scene ls                  # scenes with total footprint
lumbridge-compute scene show darkroom       # models + footprints + admission verdict
lumbridge-compute scene adopt voice-qwen    # one-time identity capture for a legacy live node
lumbridge-compute scene resume              # desired Scene, then last-known-good fallback
lumbridge-compute gateway                   # stable streaming endpoint -> local model server
lumbridge-compute agent                     # resident resume + gateway + memory supervisor

# planned:
lumbridge-compute model pull <hf-id>        # footprint-aware; warns if no scene can hold it
lumbridge-compute scene schedule darkroom 03:00 04:00   # time-multiplex the box

By default Lumbridge Compute reads registry/ and scenes/ from the current directory (override with --root <dir>, $LUMBRIDGE_COMPUTE_ROOT, or the compatibility variable $KUDA_ROOT).

Status

The Governor, identity-bound process ownership, transactional Scene switching, persistent desired state, last-known-good recovery, resident agent, streaming gateway, eval runner, and watchdog work today. Next: the model artifact manager (pull), fleet API, and scheduler. See node operations and the stable scene spec.

Compatibility

Lumbridge Compute grew out of an earlier prototype named Kuda. The rename is complete: the executable is lumbridge-compute, manifests declare apiVersion: lumbridge/v1, and the root is $LUMBRIDGE_COMPUTE_ROOT.

Two compatibility surfaces are kept deliberately, so a node that predates the rename keeps running without a flag day:

  • $KUDA_ROOT is still read if $LUMBRIDGE_COMPUTE_ROOT is unset.
  • .kuda/ remains the on-disk state directory name, and apiVersion: kuda/v1 is still accepted on eval suites.

Both are inert aliases — nothing new should use them.

Lumbridge Compute runs on NVIDIA hardware but is independent and is not affiliated with or endorsed by NVIDIA.

License

MIT — see LICENSE.

S
Description
Lumbridge Compute — governed compute for unified-memory AI hardware. Admission control, Scenes, a memory watchdog, and an MCP server. Apache-2.0.
Readme Apache-2.0 172 KiB
Languages
Rust 100%