gpubox

Jul 2026 to present · Python, Vast.ai, S3

A control plane for renting marketplace GPUs for unattended training runs: it health-probes a box before trusting it, and it is built to destroy the box at a deadline even after the laptop that started the job has closed.

Why it exists

Renting GPUs by the hour on a marketplace is cheap and unreliable. Hosts are consumer machines with variable disks and networks, offers get taken between search and rent, and a box you forget to destroy bills until someone notices. gpubox is the set of primitives that let several independent projects share one account for multi-hour training jobs without stepping on each other or leaking money.

What it does

What the data says

Two months of the event log (July 18 to September 11, 2026): 791 create calls, 524 rentals, 360 probe verdicts.

The proof it works: a 1B-parameter training run to step 2000, detached, with about 2 GB of checkpoints synced to S3, delivered in 1 hour 57 minutes with the box destroyed afterward and zero instances leaked.

The leak it did not catch

On September 20 a watcher on an always-on Raspberry Pi kept crashing and restarting, and each restart rented a fresh RTX 4090. Nothing destroyed them: ten boxes, about $4.40 an hour, until it was found and stopped. The post-mortem from the event log found four defects. The worst: three timing constants in three different modules disagreed, so every guardian decided it had been superseded and exited cleanly without destroying anything. Its exit code counted that as success, so the backstop had never once fired and nothing looked wrong. A second: the Pi's SSH key was not registered with the account, so most probes failed on authentication and innocent hosts were quarantined while the race burned through offers. All four are fixed, and a test now pins the three constants together.

What was hard

Most of the bugs that cost money lived in the seam between the code's assumptions and the provider's actual behaviour, and none of them were caught by the 236 mutation-tested unit tests. They were caught by renting one box for a cent and printing the raw output. The method that came out of it: capture real output before writing any parser, and mutation-test every load-bearing behaviour so a green suite cannot certify a bug.