Skip to content

Benchmarks

GPU startup time. Timed from the API call.

Seconds from the API call to the first CUDA matmul on five GPU types, and how much of a 7B model start is the download.

Measured

186 sto the first CUDA op

L40S, from the create call to a 4096 x 4096 matmul.

Run 2026-10-26, single runSee the table

On this page

Run 2026-10-26

Launch to first CUDA matmul. Five GPU types.

The L40S was doing math 186 s after the create call returned; the RTX A6000 took 707 s. Billing starts when the machine reports running, which is why each run was billed a cent or two.

Single run: one launch per GPU type, at one time of day. First published 2026-10-26.

The full write-up, with every command

Hardware

Machines
VMs, Ubuntu image, one GPU each, launched within 4 seconds of each other at 09:02 UTC

Software

First CUDA op
Install uv, create a venv, uv pip install torch --torch-backend=cu128, then multiply two 4096x4096 matrices on the GPU and synchronize
Python
Python 3.12

Method

Timestamps
Seconds since the create call returned: API running (status running with an IP), first SSH (retried every 2 s), first CUDA op
Machine clocks
Kernel boot from uptime -s, ssh.service from systemctl show ssh -p ActiveEnterTimestamp
Polling
Every 10 seconds; a first batch polled every 2 s hit the rate limit and was discarded

Price per hour

  • L40S$1.14 on 2026-10-26, from $0.54/hr per GPU on a 2-GPU machine today
  • A100 80GB$1.73 on 2026-10-26, from $1.73/hr per GPU today
  • RTX A4000$1.04 on 2026-10-26, from $1.04/hr per GPU today
  • RTX 6000 Ada$1.08 on 2026-10-26, from $1.04/hr per GPU on an 8-GPU machine today
  • RTX A6000$0.66 on 2026-10-26, from $0.57/hr per GPU today
Seconds from the create call to the first CUDA opFirst CUDA op
Measured on 2026-10-26, from the table below.
Seconds from the create call, and the bill for the whole run
GPU$/hour, run dayAPI runningFirst SSHFirst CUDA opBilled for the whole run
L40S1.14151 s164 s186 s$0.010
A100 80GB1.73303 s319 s337 s$0.016
RTX A40001.04452 s463 s482 s$0.008
RTX 6000 Ada1.08620 s635 s670 s$0.014
RTX A60000.66629 s647 s707 s$0.014
The machines' own clocks, same runs
GPUKernel bootedssh.service up
L40S65 s149 s
A100 80GB116 s293 s
RTX A4000143 s455 s
RTX 6000 Ada76 s97 s
RTX A600095 s121 s

What stood out

  • Over the day, two of 18 create calls came back within 7 seconds with an error, and one type was gone between listing it and launching it. Both failures were fast and cost nothing.
  • A container started 4 seconds after the create call by its own clock, in an earlier batch.

Keep in mind

  • Startup depends on what is in stock at that moment; treat it as a sample, not a promise.
  • "First CUDA op" includes downloading a 900 MB torch wheel. A pre-built image or a volume with a cached venv removes most of it.

Run 2026-10-29

Hugging Face download vs local cache. A 7B model on an L40S.

From a fresh download the first token came 48 to 55 s after the Python process started; with the weights already on local disk, after 18 to 19 s. The download was 30 s of that, and reading 15 GB from disk into GPU memory took 14 s either way.

Single run per start type: two each for the default fresh download and the in-page-cache start, one for the others. First published 2026-10-29.

The full write-up, with every command

Hardware

GPU
One L40S 48 GB, 12 vCPUs, 70 GB RAM

Software

Model
Qwen/Qwen2.5-7B-Instruct, bf16 safetensors, 15.24 GB on disk (4 shards)
Libraries
transformers 4.57.1, huggingface-hub 0.36.2 with hf-xet 1.7.1 (the default download backend), Python 3.12

Method

Phases
One fresh process per measurement: Python imports, snapshot_download, from_pretrained to the GPU in bf16, one generated token
Starts
Two fresh downloads with the defaults, one with HF_XET_HIGH_PERFORMANCE=1, one from local disk after evicting the page cache, two from local disk right after a previous run

Price per hour

  • L40S$0.54 on 2026-10-29, from $0.54/hr per GPU on a 2-GPU machine today
Seconds per phase, and what the wait cost
StartPython imports (s)Download (s)Load to GPU (s)First token (s)Total (s)Cost of the wait, run dayCost of the wait, today
Fresh download, defaults (run 1)10.229.614.00.5754.5$0.0082$0.0082
Fresh download, defaults (run 2)3.729.613.70.5447.6$0.0071$0.0071
Fresh download, HF_XET_HIGH_PERFORMANCE=14.032.514.10.5051.1$0.0077$0.0077
Local disk cache, page cache evicted3.70.113.90.5418.3$0.0027$0.0027
Local disk cache, in page cache (run 1)3.80.114.70.5619.1$0.0029$0.0029
Local disk cache, in page cache (run 2)3.80.114.90.5319.4$0.0029$0.0029

Run day: the price on 2026-10-29, as the run paid it.

Today: the run-day figure times today's price per GPU-hour over the run-day price per GPU-hour. Today's price is the "from" price per GPU-hour shown on /pricing, which can be on a machine with more GPUs than the run used (the list of GPUs below names it). Prices read 2026-11-04 04:00 UTC.

What stood out

  • The download was 60% of a fresh start: 29.6 s in both default runs for 15.24 GB, about 515 MB/s.
  • HF_XET_HIGH_PERFORMANCE=1 did not help here (32.5 s against 29.6 s).
  • Loading to the GPU took 14 s every time, cached or not: 15.24 GB at about 1.1 GB/s, bound by disk reads.

Keep in mind

  • One machine, one day, one model. Network speed to the Hub varies by time of day; disk speed varies by machine.
  • transformers from_pretrained only. vLLM and other servers add their own startup work on top of the load.
  • The page-cache eviction can't be proven, but the load time did not move either way.

Costs

How the costs are worked out. Run day and today, side by side.

Run day

The cost the write-up printed: the hourly price the machine was launched at that day, against what it measured. Prices move daily, so each run-day figure carries its date. Every run was a single run.

Today

The run-day figure moved by today's price: the "from" price per GPU-hour shown on /pricing, over the run-day rate per GPU-hour. A GPU that is not in stock right now reads "Not in stock" rather than a stale price. Prices read 2026-11-04 04:00 UTC.

GPUs

The GPUs on this page. From price per GPU-hour, today.

  • L40Sfrom $0.54/hr per GPU on a 2-GPU machine
  • A100 80GBfrom $1.73/hr per GPU
  • RTX A4000from $1.04/hr per GPU
  • RTX 6000 Adafrom $1.04/hr per GPU on an 8-GPU machine
  • RTX A6000from $0.57/hr per GPU

Benchmarks

More benchmarks.