Which sandboxes give AI agents GPUs: Modal, E2B or Nodus?
Modal, Daytona and Nodus offer GPU sandboxes for agents; E2B is CPU-only. Preemption, lifetimes, H100 prices and when to hand GPU work to a job.
Modal, Daytona and Nodus all let an AI agent open a sandbox with a GPU attached, while E2B sandboxes are CPU-only. Nodus GPU Sandboxes run on dedicated on-demand machines that are never preempted and stop at a dollar cap, while Modal GPU sandboxes can be preempted. For GPU work that should simply run to completion, such as a fine-tune, a checkpointed Nodus Job costs less per H100-hour than Modal or Daytona on-demand sandboxes and resumes after a reclaim.
We build Nodus. Every competitor fact here links to that company’s own docs or pricing page, and prices were checked on November 3, 2026. Daytona, which sells both on-demand and spot GPU sandboxes, is included, and so is a section on where the others are the better choice. For CPU-only agent sandboxes, see which sandbox is best for running AI agent code.
Which agent sandboxes actually support GPUs?
Section titled “Which agent sandboxes actually support GPUs?”Three of the four do, and they differ most on preemption and on what survives a stop. E2B answers the question in its own FAQ: E2B sandboxes are CPU-only, with no GPU option in the SDKs, CLI, API or templates, and bring-your-own-cloud does not change that.
| Nodus Sandboxes | Modal Sandboxes | Daytona | E2B | |
|---|---|---|---|---|
| GPU sandboxes | Yes, by type and count (L4, H100:8) |
Yes, same GPU types as Modal Functions | Yes, up to 8 GPUs | No, CPU-only |
| Preemption | Never: dedicated on-demand machine | GPU sandboxes are subject to preemption | On-demand, or spot with no warning | Not applicable |
| Files after a stop | GPU sandboxes start empty; use an external filesystem | Kept only through filesystem snapshots | Gone: GPU sandboxes are ephemeral | Not applicable |
| Longest lifetime | maxLifetime up to 720 hours |
timeout up to 24 hours |
Ephemeral: deleted when stopped | Not applicable |
| H100 price | Shown by a dry-run quote before you create | $0.001097/s for the GPU, plus CPU and memory | $3.95/hr on-demand, $2.27/hr spot | Not applicable |
| Spending limit | maxCostUSD per sandbox |
Environment budgets on Team plans | Org GPU quota (spot: capacity only) | Not applicable |
Prices checked November 3, 2026. Sources: Nodus Sandboxes guide, nodus create sandbox, Modal sandbox resources, Modal sandboxes, Modal GPUs, Modal pricing, Daytona sandboxes, Daytona pricing, E2B GPU FAQ.
Can an agent’s GPU sandbox be preempted?
Section titled “Can an agent’s GPU sandbox be preempted?”On Modal and on Daytona spot it can, and that decides which agent tasks belong there. Modal’s docs say CPU sandboxes are not preempted, but GPU sandboxes are subject to preemption, so workloads should handle interruptions. Daytona’s spot GPU sandboxes can be terminated at any time without notice, with no preemption warning or webhook. Its on-demand GPU sandboxes are not spot capacity.
Nodus GPU Sandboxes take the other side of that trade. Per the Sandboxes guide, they run on a dedicated on-demand GPU machine, are non-interruptible, and are never placed on spot capacity. The cost of that promise is storage: a stopped Nodus GPU Sandbox starts empty, so datasets and results belong in an external filesystem. The guide includes a JuiceFS recipe that mounts your own filesystem with fuseMount: true and runs a small CUDA check before the agent gets the sandbox.
Our rule from reading all three docs sets concerns tight loops. If the agent edits, runs and profiles on a GPU, as when writing a CUDA kernel, a preemption mid-loop costs it its context. Pick a sandbox that is not preempted for that work, or accept retries.
What does an hour of agent GPU time cost?
Section titled “What does an hour of agent GPU time cost?”For one NVIDIA H100, Modal and Daytona on-demand cost about the same, and Daytona spot is the cheapest sandbox. Modal lists the H100 at $0.001097 per second on its pricing page, about $3.95 an hour, and its sandbox section points GPUs to those standard rates. Sandbox CPU and memory are billed on top, at Modal’s non-preemptible rate of 3x list price.
Daytona lists the H100 at $3.95/hr on-demand and $2.27/hr spot on its pricing page.
On Nodus, send the sandbox request with ?dryRun=All (or nodus create sandbox --dry-run) and the estimate returns the hourly price, funding hold and selected offering when capacity is available, before anything starts. For comparison, a Nodus Job on an H100 SXM is listed at $2.600/hr on the Nodus pricing page.
For one H100, spot sandboxes and Nodus Jobs both come in well under on-demand sandbox rates.
A 3-hour agent session on one H100 shows the gap. The GPU line alone is 3 x $3.95 = $11.85 on Modal or Daytona on-demand, and 3 x $2.27 = $6.81 on Daytona spot.
Is a spot GPU sandbox worth the risk?
Section titled “Is a spot GPU sandbox worth the risk?”Usually yes for retryable work, because the discount is large. Daytona spot is 43% below its on-demand H100 price, since 1 - 2.27 / 3.95 = 0.43. Spot only loses on cost if preemptions make you redo more than 74% extra GPU time, because 3.95 / 2.27 = 1.74.
The real cost is wall-clock time and what dies with the sandbox. Daytona GPU sandboxes are ephemeral and spot ones get no warning, so a 6-hour run killed at hour 5 throws away 5 x $2.27 = $11.35 of work. Rerun in full, that job costs $11.35 + $13.62 = $24.97, more than the $23.70 on-demand price. Spot sandboxes suit short, independent tasks such as evals and tests, not one long job without checkpoints.
When should an agent use a GPU sandbox, and when a GPU job?
Section titled “When should an agent use a GPU sandbox, and when a GPU job?”Use a GPU sandbox when the agent needs to run many small commands against a live GPU, and a job when it needs a GPU for hours. That is the split Nodus draws in its compute guide: a Job is for a command that should run to completion, with recovery built in.
Take a 6-hour LoRA fine-tune on one H100 that an agent launches. Inside an on-demand GPU sandbox on Modal or Daytona, the GPU line is 6 x $3.95 = $23.70. On Daytona spot it is 6 x $2.27 = $13.62 if nothing is reclaimed. As a Nodus Job at the listed H100 SXM rate it is 6 x $2.60 = $15.60.
That job also survives a reclaim. With checkpointed continuity, the program writes its checkpoints to the checkpoint directory (/nodus/state by default), and Nodus restores that directory on new capacity.
Spot is cheapest until one late preemption; the checkpointed job only repeats work since its last save.
The agent can hand the run off in one command and keep its sandbox on CPU, per the nodus run reference:
nodus run --gpu H100 --max-cost 20 -d -- python train.py--max-cost 20 caps the job at $20, above the $15.60 estimate, and -d returns as soon as the Job is created, so the agent can poll instead of holding a GPU open. Our post on what infrastructure background coding agents need covers that pattern end to end.
How do you keep an idle GPU sandbox from running up a bill?
Section titled “How do you keep an idle GPU sandbox from running up a bill?”Put the limit on the sandbox, because idle GPUs bill at full price. An H100 sandbox left open overnight for 14 hours costs 14 x $3.95 = $55.30 at Modal or Daytona on-demand rates.
On Nodus, maxCostUSD stops a sandbox once it has cost that much, and maxLifetime deletes it 24 hours after creation by default. The guide warns that a prepared GPU sandbox keeps billing while idle, so its own example pairs --max-lifetime 20m with --max-cost 5.00. For limits across a whole agent fleet, see how to cap the GPU spending of an AI coding agent.
Where are Modal, Daytona and E2B the better choice?
Section titled “Where are Modal, Daytona and E2B the better choice?”Each wins a real case, and we would point you to them for it.
- Modal is the better fit if your team already runs Modal Functions. Sandboxes share the account, images and GPU types, including T4 and A10, and Modal supports up to 8 GPUs per container with ordered GPU fallbacks. Filesystem snapshots carry state past the 24-hour limit.
- Daytona is the better fit for cheap, retryable GPU tasks. Spot H100 sandboxes are $2.27/hr, it offers AMD Instinct MI355X, and a sandbox can list preferred GPU types in order, per its sandbox docs.
- E2B is the better fit when the agent only needs CPU code execution and calls GPUs elsewhere, for example a model API from inside the sandbox.
Nodus has limits too. GPU Sandboxes are on-demand only, start empty after a stop, and the docs scope them to accounts with that offering. The Python SDK does not accept volumes or port tunnels in a sandbox yet, per the Python Sandboxes guide.
How do you start a GPU sandbox on Nodus?
Section titled “How do you start a GPU sandbox on Nodus?”Install the SDK, sign in, then create a sandbox with a GPU type and a cap:
pip install nodus-computenodus loginnodus create sandbox gpu-dev --gpu L4 --max-cost 5 --dry-run=server -o estimateThe dry run prints the estimate without creating anything; drop --dry-run to create it. From Python, the Python Sandboxes guide shows the GPU form:
sb = nodus.Sandbox.create( name="gpu-work", gpu="A100", fuse_mount=True, regions=["us"],)regions=["us"] keeps placement in the US, and fuse_mount=True only enables FUSE for your own filesystem client. For a head-to-head on CPU sandboxes, read Nodus vs Daytona and Nodus vs E2B.
Can E2B still be part of a GPU training loop?
Section titled “Can E2B still be part of a GPU training loop?”Yes, as the code-execution side. E2B’s TRL guide shows a GRPO setup where the GPU training host calls E2B sandboxes to run model-written code and score it. The GPU never lives in the sandbox.
How many GPUs can one sandbox have?
Section titled “How many GPUs can one sandbox have?”Daytona GPU sandboxes support up to 8 GPUs, each adding up to 16 vCPUs and 192 GB of RAM. Modal allows up to 8 on most GPU types and 4 on A10. Nodus takes a TYPE:COUNT such as H100:8.
Where do Daytona GPU sandboxes run?
Section titled “Where do Daytona GPU sandboxes run?”On Daytona’s shared regions they run in a region it reports as earth, and it ignores the requested target. Running GPU sandboxes in a specific location means contacting Daytona support.
What happens to a Nodus GPU Sandbox when credits run out?
Section titled “What happens to a Nodus GPU Sandbox when credits run out?”It stops, and it stays stopped until the balance, Budget or maxCostUSD allows the next period of compute. GPU Sandboxes default to Ephemeral continuity and the guide says a stopped one starts empty, so keep results on external storage.
More from the blog
gpu7 min read
A100 vs H100: is the H100 worth it for LLM training?
A100 vs H100 for LLM training: the H100 is cheaper per finished job only when it runs at least 2.39x faster on Nodus. Spec ratios, worked costs, a quick test.
Read the postinference6 min read
How do you choose an output token limit for LLM inference?
A smaller output cap can save tokens while making more answers unusable. Compare caps against task acceptance criteria before choosing one.
Read the post