GPU jobs across 7 providersLambda  ·  CoreWeave  ·  RunPod  ·  AWS  ·  GCP

Training, fine-tuning, batch inference

Run GPU jobs
without picking GPUs.

Tell us how much memory your job needs and how much you want to spend. We find the cheapest machine for it and restart the job if that machine goes away.

How it works

You write the training code.
We deal with the machines.

A job is a container image, a command, a minimum amount of GPU memory and a budget in dollars. You submit it with one API call and poll the same API for status, spend so far and a list of saved checkpoints.

01 / Match

A cheap GPU that keeps
getting killed costs more.

An RTX 4090 at $0.34/hr looks cheaper than an A100 at $1.79/hr. For a 20-hour job with spot interruptions, it often isn't. We estimate the whole bill, including lost work, before choosing. Live estimates for a 40 GB job:

Job spec reference

02 / Cost

Set $100,
spend at most $100.

Spend is updated every few minutes while the job runs. When it reaches your limit the job is stopped and its latest checkpoint is kept, so you can raise the budget and continue.

Before you submitAsk for a quote with the same spec. It lists every matching machine with estimated hours and dollars.
Budget reference

03 / Complete

Spot machine gone
at hour 14?

We move the job to the next machine on the list and start it from the last checkpoint. You lose the minutes since that checkpoint, not the 14 hours.

What your code needs to doSave a checkpoint to the output directory every so often, and load the newest one on start. PyTorch Lightning and the Hugging Face Trainer both have a setting for it.
Checkpoint guide

Python SDK

About ten lines
of Python.

Get an API key from the console, then submit your image. follow() prints status and dollars spent until the job ends.

Quickstart
train.pyPython SDK
Example output waiting…
Ends on succeeded, stopped (budget), failed or cancelled.

No card needed to try it

Submit a
test job.

GPU jobs across 7 providers