Cloud LLM benchmarks
- Models
- 279
- Providers
- 9
- Samples
- 77,984
- Median tok/s
- 31
- p90 tok/s
- 73
- Max tok/s
- 295
- Median spread
- 183%
- Median TTFT
- 1.22s
Throughput distribution · tok/s
- GPT-oss-safeguard-20b groq295 tok/s
- Qwen3.6-27B groq218 tok/s
- llama-3.1-8b groq215 tok/s
- qwen-3-32b groq174 tok/s
- Google: Nano Banana (Gemini 2.5 Flash Image) google159 tok/s
- llama-3.3-70b groq147 tok/s
- gemma-4-31b cerebras132 tok/s
- nova-micro bedrock118 tok/s
- llama-4-scout groq116 tok/s
- llama-4-maverick bedrock107 tok/s
- LFM2.5-8B-A1B together107 tok/s
- qwen-2-1.5b-instruct together99 tok/s
- GPT-oss-120b fireworks98 tok/s
- qwen-3.5-35b-a3b deepinfra98 tok/s
- llama-3.1-8b bedrock96 tok/s
- llama-4-scout bedrock96 tok/s
- nova-lite bedrock91 tok/s
- nova-pro bedrock89 tok/s
- llama-3.3-70b bedrock85 tok/s
- GPT-5.1-codex-mini openai84 tok/s
- GPT-5 Nano openai83 tok/s
- mistral-7b bedrock82 tok/s
Visible-token throughput, same basis as the table · curves normalised per model · 2 models' tails run past the axis · 257 slower models not drawn, all 279 are in the table below
By provider
| Provider | Models | Median | p90 | Best | Spread | TTFT |
|---|---|---|---|---|---|---|
| groq | 6 | 174 | 295 | 295 | 153% | — |
| cerebras | 1 | 132 | 132 | 132 | 421% | 1.00 |
| bedrock | 22 | 56 | 96 | 118 | 110% | 0.38 |
| together | 20 | 51 | 79 | 107 | 207% | — |
| fireworks | 21 | 49 | 74 | 98 | 196% | — |
| openai via OpenRouter | 6 | 39 | 50 | 50 | 56% | 0.88 |
| openai | 38 | 38 | 61 | 84 | 189% | 1.91 |
| together via OpenRouter | 1 | 34 | 34 | 34 | 105% | 1.11 |
| deepinfra | 124 | 25 | 50 | 98 | 208% | — |
| anthropic | 10 | 24 | 28 | 43 | 152% | 1.48 |
| deepinfra via OpenRouter | 19 | 23 | 43 | 54 | 102% | 0.99 |
| anthropic via OpenRouter | 6 | 22 | 40 | 40 | 31% | 1.47 |
| google via OpenRouter | 1 | 3 | 3 | 3 | 40% | 1.09 |
| 4 | 2 | 159 | 159 | 146% | 0.95 |
Throughput × spread · 279 models
Full results
279 of 279 modelsThroughput over time · shared scale
Method. A cron job calls each model's live API endpoint on a schedule and records what came back. Mean, min and max are over completed samples in the selected window, and n is how many there were. A missing value means the endpoint returned an error or the model was not yet in the catalogue.
Spread is (max − min) ÷ mean, so it measures run-to-run variation rather than absolute speed. TTFT is seconds to the first visible token; runs that emit only reasoning tokens are left out of that average. Mean counts visible output tokens where a provider reports them and falls back to generated throughput where it does not, which is why Gen is higher for models that think before answering.