Governed compute for unified-memory AI hardware — the 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 rather than as a CLI. One binary, no async runtime outside the MCP surface. Apache-2.0. Generated from the internal monorepo by scripts/publish-compute.sh, which refuses to publish a tree it cannot prove clean.
This commit is contained in:
@@ -0,0 +1,34 @@
|
||||
apiVersion: lumbridge/v1
|
||||
version: 1
|
||||
|
||||
# GPU-free demo registry: each "model" is just a tiny HTTP server so you can watch
|
||||
# Lumbridge Compute activates scenes, swap models, and run the watchdog on any Linux box.
|
||||
# Run from the repo root: lumbridge-compute --root examples/demo scene activate two
|
||||
|
||||
models:
|
||||
alpha:
|
||||
name: "Demo Alpha (http.server)"
|
||||
footprint_gb: 1
|
||||
health: "http://127.0.0.1:9101/"
|
||||
serve:
|
||||
kind: exec
|
||||
port: 9101
|
||||
command: ["python3", "-m", "http.server", "9101", "--bind", "127.0.0.1"]
|
||||
|
||||
beta:
|
||||
name: "Demo Beta (http.server)"
|
||||
footprint_gb: 1
|
||||
health: "http://127.0.0.1:9102/"
|
||||
serve:
|
||||
kind: exec
|
||||
port: 9102
|
||||
command: ["python3", "-m", "http.server", "9102", "--bind", "127.0.0.1"]
|
||||
|
||||
gamma:
|
||||
name: "Demo Gamma (http.server)"
|
||||
footprint_gb: 1
|
||||
health: "http://127.0.0.1:9103/"
|
||||
serve:
|
||||
kind: exec
|
||||
port: 9103
|
||||
command: ["python3", "-m", "http.server", "9103", "--bind", "127.0.0.1"]
|
||||
@@ -0,0 +1,12 @@
|
||||
apiVersion: lumbridge/v1
|
||||
kind: Scene
|
||||
metadata:
|
||||
name: one
|
||||
version: 1
|
||||
description: "Demo scene one: alpha + beta."
|
||||
models:
|
||||
- alpha
|
||||
- beta
|
||||
activation:
|
||||
order: footprint-asc
|
||||
wait_healthy: true
|
||||
@@ -0,0 +1,12 @@
|
||||
apiVersion: lumbridge/v1
|
||||
kind: Scene
|
||||
metadata:
|
||||
name: two
|
||||
version: 1
|
||||
description: "Demo scene two: beta + gamma (keeps beta, swaps alpha->gamma)."
|
||||
models:
|
||||
- beta
|
||||
- gamma
|
||||
activation:
|
||||
order: footprint-asc
|
||||
wait_healthy: true
|
||||
Reference in New Issue
Block a user