|
<!DOCTYPE html> |
|
<html lang="en"> |
|
<head> |
|
<meta charset="UTF-8"> |
|
<meta name="viewport" content="width=device-width, initial-scale=1.0"> |
|
<title>Fastest LLM Inference — Models Released Nov 2025 – Jul 2026</title> |
|
<style> |
|
:root { |
|
--surface: #ffffff; |
|
--ink: #111111; |
|
--ink-2: #555555; /* secondary text, 7.4:1 on white */ |
|
--ink-3: #757575; /* muted text, 4.6:1 on white */ |
|
--hairline: #e4e4e4; |
|
--wash: #f5f5f5; |
|
--card: #ffffff; |
|
--card-border: #d9d9d9; |
|
} |
|
@media (prefers-color-scheme: dark) { |
|
:root { |
|
--surface: #141414; |
|
--ink: #f0f0f0; |
|
--ink-2: #b5b5b5; |
|
--ink-3: #8f8f8f; |
|
--hairline: #2c2c2c; |
|
--wash: #1d1d1d; |
|
--card: #171717; |
|
--card-border: #333333; |
|
} |
|
} |
|
* { box-sizing: border-box; } |
|
body { |
|
margin: 0; |
|
background: var(--surface); |
|
color: var(--ink); |
|
font: 15px/1.55 system-ui, -apple-system, "Segoe UI", Roboto, sans-serif; |
|
} |
|
main { max-width: 1000px; margin: 0 auto; padding: 40px 24px 80px; } |
|
h1 { font-size: 27px; line-height: 1.25; margin: 0 0 6px; letter-spacing: -0.01em; } |
|
h2 { font-size: 19px; margin: 48px 0 4px; letter-spacing: -0.01em; } |
|
h3 { font-size: 15px; margin: 20px 0 6px; } |
|
.sub { color: var(--ink-2); margin: 0 0 8px; } |
|
.note { color: var(--ink-3); font-size: 13px; } |
|
a { color: var(--ink); text-underline-offset: 2px; } |
|
a:hover { text-decoration-thickness: 2px; } |
|
sup a { text-decoration: none; color: var(--ink-3); font-size: 11px; } |
|
sup a:hover { color: var(--ink); } |
|
|
|
/* KPI row */ |
|
.kpis { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 12px; margin: 26px 0 8px; } |
|
.tile { border: 1px solid var(--card-border); background: var(--card); padding: 14px 16px 12px; } |
|
.tile .label { font-size: 12.5px; color: var(--ink-2); } |
|
.tile .value { font-size: 30px; font-weight: 650; line-height: 1.15; margin: 2px 0 1px; } |
|
.tile .unit { font-size: 14px; font-weight: 500; color: var(--ink-2); } |
|
.tile .detail { font-size: 12.5px; color: var(--ink-3); } |
|
|
|
/* Filter row */ |
|
.filters { |
|
display: flex; flex-wrap: wrap; gap: 18px; align-items: center; |
|
padding: 12px 0; margin: 26px 0 4px; border-top: 1px solid var(--hairline); border-bottom: 1px solid var(--hairline); |
|
font-size: 13.5px; |
|
} |
|
.filters label { color: var(--ink-2); margin-right: 6px; } |
|
.filters select { |
|
font: inherit; color: var(--ink); background: var(--surface); |
|
border: 1px solid var(--card-border); padding: 4px 8px; |
|
} |
|
.filters .count { margin-left: auto; color: var(--ink-3); font-size: 12.5px; } |
|
|
|
figure { margin: 18px 0 0; } |
|
figcaption { font-size: 13px; color: var(--ink-2); margin: 2px 0 12px; } |
|
svg text { font-family: inherit; } |
|
.axis-tick { font-size: 11.5px; fill: var(--ink-3); font-variant-numeric: tabular-nums; } |
|
.axis-title { font-size: 11.5px; fill: var(--ink-3); } |
|
.gridline { stroke: var(--hairline); stroke-width: 1; } |
|
.baseline { stroke: var(--ink-3); stroke-width: 1; } |
|
.mark { fill: var(--ink); } |
|
.mark-vendor { fill: url(#hatch); } |
|
.bar-name { font-size: 13px; fill: var(--ink); font-weight: 550; } |
|
.bar-provider { font-size: 11.5px; fill: var(--ink-2); } |
|
.bar-value { font-size: 12.5px; fill: var(--ink); font-weight: 600; font-variant-numeric: tabular-nums; } |
|
.dot { fill: var(--ink); stroke: var(--surface); stroke-width: 2; } |
|
.dot-vendor { fill: var(--surface); stroke: var(--ink); stroke-width: 2; } |
|
.dot-label { font-size: 11.5px; fill: var(--ink); } |
|
.dot-sublabel { font-size: 10.5px; fill: var(--ink-3); } |
|
.frontier { stroke: var(--ink-3); stroke-width: 1; stroke-dasharray: 2 4; fill: none; } |
|
.frontier-label { font-size: 10.5px; fill: var(--ink-3); } |
|
.hit { fill: transparent; cursor: pointer; } |
|
.hit:focus { outline: none; } |
|
.hit:focus + .focus-ring, g[tabindex]:focus-visible .focus-ring { display: block; } |
|
g[tabindex]:focus-visible { outline: 1px dotted var(--ink-3); outline-offset: 2px; } |
|
|
|
/* Legend */ |
|
.legend { display: flex; gap: 20px; align-items: center; font-size: 12.5px; color: var(--ink-2); margin: 10px 0 0; } |
|
.legend .key { display: inline-flex; align-items: center; gap: 7px; } |
|
.legend svg { display: block; } |
|
|
|
/* Tooltip */ |
|
#tooltip { |
|
position: fixed; z-index: 10; display: none; pointer-events: none; |
|
max-width: 300px; padding: 9px 12px; |
|
background: var(--ink); color: var(--surface); |
|
font-size: 12.5px; line-height: 1.45; |
|
box-shadow: 0 2px 10px rgba(0,0,0,.25); |
|
} |
|
#tooltip .tt-value { font-size: 15px; font-weight: 650; } |
|
#tooltip .tt-muted { opacity: .72; } |
|
|
|
/* Table */ |
|
.tablewrap { overflow-x: auto; margin-top: 14px; border: 1px solid var(--card-border); } |
|
table { border-collapse: collapse; width: 100%; font-size: 13px; min-width: 900px; } |
|
th, td { text-align: left; padding: 8px 11px; border-bottom: 1px solid var(--hairline); vertical-align: top; } |
|
th { |
|
font-size: 12px; color: var(--ink-2); font-weight: 600; background: var(--wash); |
|
white-space: nowrap; cursor: pointer; user-select: none; position: sticky; top: 0; |
|
} |
|
th .arrow { color: var(--ink-3); font-size: 10px; } |
|
td.num, th.num { text-align: right; font-variant-numeric: tabular-nums; } |
|
td .prov { color: var(--ink-2); font-size: 12px; display: block; } |
|
td .meas-vendor { border: 1px solid var(--card-border); padding: 0 5px; font-size: 11px; color: var(--ink-2); } |
|
tr:last-child td { border-bottom: none; } |
|
tbody tr:hover { background: var(--wash); } |
|
|
|
/* Recommendation cards */ |
|
.recs { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 12px; margin-top: 14px; } |
|
.rec { border: 1px solid var(--card-border); background: var(--card); padding: 14px 16px; } |
|
.rec h3 { margin: 0 0 4px; } |
|
.rec p { margin: 4px 0; font-size: 13.5px; color: var(--ink-2); } |
|
.rec .pick { font-size: 16px; font-weight: 650; color: var(--ink); } |
|
|
|
/* Citations */ |
|
ol.cites { padding-left: 24px; font-size: 13px; color: var(--ink-2); } |
|
ol.cites li { margin-bottom: 6px; } |
|
ol.cites .src { color: var(--ink); } |
|
|
|
details { margin-top: 10px; } |
|
summary { cursor: pointer; font-weight: 600; font-size: 14px; } |
|
details p, details li { font-size: 13.5px; color: var(--ink-2); } |
|
|
|
@media print { |
|
.filters { display: none; } |
|
body { background: #fff; color: #000; } |
|
} |
|
</style> |
|
</head> |
|
<body> |
|
<main> |
|
<header> |
|
<h1>The absolute fastest LLM inference, mid-2026</h1> |
|
<p class="sub">Best recorded single-request output speed (tokens/second) per model, restricted to models released |
|
<strong>November 2025 – July 2026</strong> (the past ~6–8 months), with the provider that achieves it.</p> |
|
<p class="note">Data gathered 18 July 2026 from Artificial Analysis, vendor announcements, and press coverage. |
|
Numbered references <sup><a href="#cites">[n]</a></sup> link to sources at the bottom. Speeds are output-generation |
|
throughput for a single request, not batch throughput.</p> |
|
</header> |
|
|
|
<div class="kpis"> |
|
<div class="tile"> |
|
<div class="label">Absolute fastest (any recent model)</div> |
|
<div class="value">1,851 <span class="unit">tok/s</span></div> |
|
<div class="detail">Gemma 4 31B on Cerebras — measured by Artificial Analysis <sup><a href="#c1">[1]</a></sup></div> |
|
</div> |
|
<div class="tile"> |
|
<div class="label">Fastest frontier-class model</div> |
|
<div class="value">750 <span class="unit">tok/s</span></div> |
|
<div class="detail">GPT-5.6 Sol on Cerebras WSE-3 (Intelligence 59) — limited access <sup><a href="#c4">[4]</a><a href="#c5">[5]</a></sup></div> |
|
</div> |
|
<div class="tile"> |
|
<div class="label">Smartest model overall</div> |
|
<div class="value">60 <span class="unit">Intelligence Index</span></div> |
|
<div class="detail">Claude Fable 5, Anthropic API — but only 60.7 tok/s <sup><a href="#c8">[8]</a></sup></div> |
|
</div> |
|
<div class="tile"> |
|
<div class="label">Fastest trillion-parameter model</div> |
|
<div class="value">981 <span class="unit">tok/s</span></div> |
|
<div class="detail">Kimi K2.6 (1T MoE) on Cerebras — AA-verified, 6.7× next-fastest cloud <sup><a href="#c2">[2]</a><a href="#c3">[3]</a></sup></div> |
|
</div> |
|
</div> |
|
|
|
<div class="filters" role="group" aria-label="Filters for all charts and the table"> |
|
<span> |
|
<label for="f-records">Records</label> |
|
<select id="f-records"> |
|
<option value="all">All records</option> |
|
<option value="aa">Independently measured only</option> |
|
</select> |
|
</span> |
|
<span> |
|
<label for="f-intel">Min intelligence</label> |
|
<select id="f-intel"> |
|
<option value="0">Any</option> |
|
<option value="40">40+</option> |
|
<option value="50">50+</option> |
|
<option value="55">55+</option> |
|
</select> |
|
</span> |
|
<span class="count" id="f-count"></span> |
|
</div> |
|
|
|
<h2>Fastest recorded speed per model</h2> |
|
<p class="sub">Each bar is the model's best-known endpoint. Hover or focus a bar for details.</p> |
|
<figure> |
|
<div id="barchart"></div> |
|
<div class="legend" id="bar-legend"></div> |
|
<figcaption>Cerebras wafer-scale hardware holds every record above 750 tok/s. The same models run 6–50× slower |
|
on their first-party GPU APIs (e.g. Gemma 4 31B: 1,851 tok/s on Cerebras vs 35.8 tok/s on Google's API |
|
<sup><a href="#c1">[1]</a><a href="#c21">[21]</a></sup>).</figcaption> |
|
</figure> |
|
|
|
<h2>Smartest model with the fastest inference</h2> |
|
<p class="sub">Intelligence (Artificial Analysis Intelligence Index) vs best-endpoint output speed. Up and to the |
|
right is better; the dotted line is the speed–intelligence frontier.</p> |
|
<figure> |
|
<div id="scatter"></div> |
|
<div class="legend" id="scatter-legend"></div> |
|
<figcaption>Output speed on a log scale. Four models define the frontier: Claude Fable 5 (smartest), GPT-5.6 Sol on |
|
Cerebras (frontier intelligence at 750 tok/s), Kimi K2.6 on Cerebras, and Gemma 4 31B on Cerebras (fastest).</figcaption> |
|
</figure> |
|
|
|
<h2>Where to get it</h2> |
|
<div class="recs"> |
|
<div class="rec"> |
|
<h3>Maximum intelligence, speed secondary</h3> |
|
<p class="pick">Claude Fable 5 — Anthropic API</p> |
|
<p>Intelligence Index 60, ranked #1 of 187 models. 60.7 tok/s with a ~116 s time-to-first-token at max |
|
reasoning effort, so it is the smartest option but nowhere near the fastest.<sup><a href="#c8">[8]</a></sup></p> |
|
</div> |
|
<div class="rec"> |
|
<h3>Frontier intelligence at record speed</h3> |
|
<p class="pick">GPT-5.6 Sol — Cerebras Inference API</p> |
|
<p>Intelligence 59 (#2) at up to 750 tok/s on Cerebras WSE-3 — ~14× faster than the 53.9 tok/s OpenAI's own |
|
API delivers. Initial access limited to ~20 organizations, broader rollout expected from mid-July |
|
2026.<sup><a href="#c4">[4]</a><a href="#c5">[5]</a><a href="#c9">[9]</a></sup></p> |
|
</div> |
|
<div class="rec"> |
|
<h3>Widely available today, best balance</h3> |
|
<p class="pick">Gemini 3.5 Flash — Google API</p> |
|
<p>Intelligence 55 at 280+ tok/s; Artificial Analysis calls it "the clear leader on the Intelligence vs Speed |
|
Pareto frontier" among generally available APIs.<sup><a href="#c19">[19]</a></sup> Open-weight alternative: |
|
GLM-5.2 (Intelligence 51) at 391–431 tok/s on Together, Fireworks or Blackbox.<sup><a href="#c14">[14]</a><a href="#c16">[16]</a></sup></p> |
|
</div> |
|
</div> |
|
|
|
<h2>Full dataset</h2> |
|
<p class="sub">Click a column header to sort. This table is the accessible twin of both charts and always shows every |
|
value the tooltips do.</p> |
|
<div class="tablewrap"> |
|
<table id="datatable" aria-label="Fastest inference speeds by model and provider"> |
|
<thead><tr id="table-head"></tr></thead> |
|
<tbody id="table-body"></tbody> |
|
</table> |
|
</div> |
|
<p class="note">TTFT = time to first token; for reasoning models it includes thinking time at the benchmarked effort |
|
level, which is why frontier reasoning models show 30–130 s. "AA" = measured/verified by Artificial Analysis. |
|
Vendor-claimed figures are stated production rates not yet independently benchmarked on a public endpoint.</p> |
|
|
|
<details> |
|
<summary>Context: records excluded because the model is older than ~8 months</summary> |
|
<p>The all-time single-request record on any model remains <strong>Cerebras running gpt-oss-120B at ~3,000 |
|
tok/s</strong> — but that model shipped in August 2025, ~11 months ago, so it falls outside this page's |
|
window.<sup><a href="#c31">[31]</a></sup> Likewise excluded: Groq's LPU at ~1,200 tok/s sustained on Llama 3.1 70B |
|
(a 2024 model; Groq's catalog still centers on Llama 3.x / Llama 4 Scout / GPT-OSS) |
|
<sup><a href="#c27">[27]</a><a href="#c28">[28]</a></sup>, and SambaNova's 700+ tok/s on 70B-class custom models |
|
(June 2026, older base models). SambaNova's SN50 chip (announced Feb 24, 2026, claiming 5× competitive |
|
speeds) had published no qualifying model record as of this snapshot.<sup><a href="#c29">[29]</a><a href="#c30">[30]</a></sup></p> |
|
</details> |
|
|
|
<h2 id="cites">Sources</h2> |
|
<p class="note">All accessed 18 July 2026. Artificial Analysis figures are live snapshots and drift over time.</p> |
|
<ol class="cites"> |
|
<li id="c1"><span class="src">Cerebras</span> — "Gemma 4 on Cerebras — The Fastest Inference is Now Multimodal" (1,851 tok/s record, measured by Artificial Analysis). <a href="https://www.cerebras.ai/blog/gemma-4-on-cerebras-the-fastest-inference-is-now-multimodal">cerebras.ai/blog/gemma-4-on-cerebras…</a></li> |
|
<li id="c2"><span class="src">Cerebras</span> — "Cerebras Brings Trillion Parameter Inference to Enterprises with Kimi K2.6," May 19, 2026 (981 tok/s, AA-measured May 6, 2026). <a href="https://www.cerebras.ai/blog/cerebras-kimi-k2-Enterprise">cerebras.ai/blog/cerebras-kimi-k2-Enterprise</a></li> |
|
<li id="c3"><span class="src">VentureBeat</span> — "Cerebras says its chips run a trillion-parameter AI model nearly 7 times faster than GPU clouds," May 20, 2026. <a href="https://venturebeat.com/technology/cerebras-says-its-chips-run-a-trillion-parameter-ai-model-nearly-7-times-faster-than-gpu-clouds">venturebeat.com/technology/cerebras-says-its-chips…</a></li> |
|
<li id="c4"><span class="src">Value Add Pulse</span> — "Cerebras Runs OpenAI GPT-5.6 Sol at 750 Tokens per Second, Setting a New Frontier-Model Speed Record," Jun 26, 2026. <a href="https://valueaddvc.com/pulse/cerebras-openai-gpt-5-6-sol-750-tokens-2026">valueaddvc.com/pulse/cerebras-openai-gpt-5-6-sol…</a></li> |
|
<li id="c5"><span class="src">Awesome Agents</span> — "Cerebras Pushes GPT-5.6 Sol to 750 Tokens Per Second," Jul 11, 2026 (production availability, ~20 orgs initially). <a href="https://awesomeagents.ai/news/gpt56-sol-cerebras-wafer-scale-750-tokens/">awesomeagents.ai/news/gpt56-sol-cerebras…</a></li> |
|
<li id="c6"><span class="src">OpenAI</span> — "Previewing GPT-5.6 Sol," Jun 26, 2026. <a href="https://openai.com/index/previewing-gpt-5-6-sol/">openai.com/index/previewing-gpt-5-6-sol</a></li> |
|
<li id="c7"><span class="src">Artificial Analysis</span> — Models leaderboard (intelligence & speed overview). <a href="https://artificialanalysis.ai/models">artificialanalysis.ai/models</a></li> |
|
<li id="c8"><span class="src">Artificial Analysis</span> — Claude Fable 5 (Intelligence 60 #1/187; 60.7 tok/s; TTFT 116.24 s; released Jun 9, 2026). <a href="https://artificialanalysis.ai/models/claude-fable-5">artificialanalysis.ai/models/claude-fable-5</a></li> |
|
<li id="c9"><span class="src">Artificial Analysis</span> — GPT-5.6 Sol (Intelligence 59 #2/187; 53.9 tok/s on OpenAI API; TTFT 129.28 s; released Jul 9, 2026). <a href="https://artificialanalysis.ai/models/gpt-5-6-sol">artificialanalysis.ai/models/gpt-5-6-sol</a></li> |
|
<li id="c10"><span class="src">Artificial Analysis</span> — Kimi K3 (Intelligence 57; 62 tok/s; TTFT 1.99 s). <a href="https://artificialanalysis.ai/models/kimi-k3">artificialanalysis.ai/models/kimi-k3</a></li> |
|
<li id="c11"><span class="src">Artificial Analysis</span> — Mercury 2 (Intelligence 25; 752.2 tok/s on Inception API; TTFT 3.06 s; released Feb 20, 2026). <a href="https://artificialanalysis.ai/models/mercury-2">artificialanalysis.ai/models/mercury-2</a></li> |
|
<li id="c12"><span class="src">Inception</span> — "Introducing Mercury 2" (first reasoning diffusion LLM; 1,009 tok/s on NVIDIA Blackwell claimed). <a href="https://www.inceptionlabs.ai/blog/introducing-mercury-2">inceptionlabs.ai/blog/introducing-mercury-2</a></li> |
|
<li id="c13"><span class="src">Business Wire</span> — "Inception Launches Mercury 2, the Fastest Reasoning LLM — 5x Faster Than Leading Speed-Optimized LLMs," Feb 24, 2026. <a href="https://www.businesswire.com/news/home/20260224034496/en/Inception-Launches-Mercury-2-the-Fastest-Reasoning-LLM-5x-Faster-Than-Leading-Speed-Optimized-LLMs-with-Dramatically-Lower-Inference-Cost">businesswire.com/news/home/20260224034496</a></li> |
|
<li id="c14"><span class="src">Artificial Analysis</span> — GLM-5.2 (Intelligence 51; 177.8 tok/s median across 16 providers; released Jun 16, 2026). <a href="https://artificialanalysis.ai/models/glm-5-2">artificialanalysis.ai/models/glm-5-2</a></li> |
|
<li id="c15"><span class="src">Z.ai</span> — "GLM-5.2: Built for Long-Horizon Tasks" (launch post). <a href="https://z.ai/blog/glm-5.2">z.ai/blog/glm-5.2</a></li> |
|
<li id="c16"><span class="src">Artificial Analysis</span> — API Provider Performance Leaderboard (GLM-5.2: Blackbox 431, Fireworks 412, Together 391 tok/s; DeepSeek V4 Pro: Together 317 tok/s, TTFT 1.02 s). <a href="https://artificialanalysis.ai/leaderboards/providers">artificialanalysis.ai/leaderboards/providers</a></li> |
|
<li id="c17"><span class="src">Artificial Analysis</span> — Gemini 3.1 Pro Preview (Intelligence 46; 117.3 tok/s; TTFT 39.54 s; released Feb 19, 2026). <a href="https://artificialanalysis.ai/models/gemini-3-1-pro-preview">artificialanalysis.ai/models/gemini-3-1-pro-preview</a></li> |
|
<li id="c18"><span class="src">Artificial Analysis</span> — Gemini 3.1 Flash-Lite (Intelligence 25; 289.9 tok/s; TTFT 6.22 s; released Mar 3, 2026). <a href="https://artificialanalysis.ai/models/gemini-3-1-flash-lite-preview">artificialanalysis.ai/models/gemini-3-1-flash-lite-preview</a></li> |
|
<li id="c19"><span class="src">Artificial Analysis</span> — "Gemini 3.5 Flash: The new leader in intelligence versus speed" (Intelligence 55; 280+ tok/s; released May 19, 2026). <a href="https://artificialanalysis.ai/articles/gemini-3-5-flash-everything-you-need-to-know">artificialanalysis.ai/articles/gemini-3-5-flash…</a></li> |
|
<li id="c20"><span class="src">Google</span> — "Gemini 3.5: frontier intelligence with action." <a href="https://blog.google/innovation-and-ai/models-and-research/gemini-models/gemini-3-5/">blog.google/…/gemini-3-5</a></li> |
|
<li id="c21"><span class="src">Artificial Analysis</span> — Gemma 4 31B (Intelligence 29; 35.8 tok/s on Google's API; TTFT 1.17 s; released Apr 2, 2026). <a href="https://artificialanalysis.ai/models/gemma-4-31b">artificialanalysis.ai/models/gemma-4-31b</a></li> |
|
<li id="c22"><span class="src">Google DeepMind</span> — Gemma 4 model page (Apache 2.0, four sizes). <a href="https://deepmind.google/models/gemma/gemma-4/">deepmind.google/models/gemma/gemma-4</a></li> |
|
<li id="c23"><span class="src">DeepSeek</span> — "DeepSeek V4 Preview Release," Apr 24, 2026 (V4-Pro 1.6T/49B active; V4-Flash 284B/13B active; MIT weights). <a href="https://api-docs.deepseek.com/news/news260424/">api-docs.deepseek.com/news/news260424</a></li> |
|
<li id="c24"><span class="src">Artificial Analysis</span> — DeepSeek V4 Pro (Intelligence 44; 61.1 tok/s first-party; released Apr 24, 2026). <a href="https://artificialanalysis.ai/models/deepseek-v4-pro">artificialanalysis.ai/models/deepseek-v4-pro</a></li> |
|
<li id="c25"><span class="src">Artificial Analysis</span> — Kimi K2.6 (Intelligence 44; 48.2 tok/s median across 15 public providers; released Apr 20, 2026). <a href="https://artificialanalysis.ai/models/kimi-k2-6">artificialanalysis.ai/models/kimi-k2-6</a></li> |
|
<li id="c26"><span class="src">Yicai Global</span> — "China's Moonshot AI Releases Kimi K2.6," Apr 2026. <a href="https://www.yicaiglobal.com/news/chinas-moonshot-ai-releases-kimi-k26-pushing-boundaries-in-coding-multi-agent-capabilities">yicaiglobal.com/news/chinas-moonshot-ai-releases-kimi-k26…</a></li> |
|
<li id="c27"><span class="src">Markaicode</span> — "Groq Latency Benchmark: 1,200 Tokens/s vs Cold Start in 0.4 s," May 2026 (Llama 3.1 70B — model outside the window). <a href="https://markaicode.com/benchmarks/groq-production-benchmark-latency/">markaicode.com/benchmarks/groq-production-benchmark-latency</a></li> |
|
<li id="c28"><span class="src">TokenMix</span> — "Groq API Pricing 2026" (catalog: Llama 3.1 8B 840 TPS, GPT-OSS 120B 500 TPS, Llama 3.3 70B 394 TPS). <a href="https://tokenmix.ai/blog/groq-api-pricing">tokenmix.ai/blog/groq-api-pricing</a></li> |
|
<li id="c29"><span class="src">Intel Capital</span> — "SambaNova Unveils Fastest Chip for Agentic AI (SN50), Collaborates with Intel and Raises $350M," Feb 24, 2026. <a href="https://www.intelcapital.com/sambanova-unveils-fastest-chip-for-agentic-ai-collaborates-with-intel-and-raises-350m/">intelcapital.com/sambanova-unveils-fastest-chip…</a></li> |
|
<li id="c30"><span class="src">SambaNova</span> — "Lightning Digest, June 2026" (700+ tok/s on 70B-class custom models). <a href="https://www.linkedin.com/pulse/sambanova-lightning-digest-june-2026-sambanova-e7ytc">linkedin.com/pulse/sambanova-lightning-digest-june-2026</a></li> |
|
<li id="c31"><span class="src">Cerebras / Artificial Analysis</span> — gpt-oss-120B at ~3,000 tok/s on Cerebras (all-time record; model released Aug 2025, outside this page's window). <a href="https://www.cerebras.ai/press-release/cerebras-launches-the-worlds-fastest-ai-inference">cerebras.ai/press-release/cerebras-launches-the-worlds-fastest-ai-inference</a></li> |
|
</ol> |
|
</main> |
|
|
|
<div id="tooltip" role="status" aria-hidden="true"></div> |
|
|
|
<script> |
|
"use strict"; |
|
|
|
/* ---------- data ---------- */ |
|
/* kind: "aa" = independently measured/verified by Artificial Analysis; "vendor" = vendor-claimed production rate */ |
|
const MODELS = [ |
|
{ id:"gemma4", model:"Gemma 4 31B", dev:"Google DeepMind", released:"2026-04-02", provider:"Cerebras", |
|
speed:1851, kind:"aa", intel:29, ttft:"1.5 s (Cerebras)", ttftS:1.5, |
|
fp:"35.8 (Google API)", fpS:35.8, |
|
note:"Public preview on Cerebras Inference Cloud; 35x a typical GPU endpoint.", refs:[1,21,22] }, |
|
{ id:"k26", model:"Kimi K2.6 (1T MoE)", dev:"Moonshot AI", released:"2026-04-20", provider:"Cerebras (enterprise trials)", |
|
speed:981, kind:"aa", intel:44, ttft:"—", ttftS:null, |
|
fp:"48.2 (median, 15 public providers)", fpS:48.2, |
|
note:"AA-verified May 6, 2026; 6.7x the next-fastest GPU cloud, 23x the median provider.", refs:[2,3,25,26] }, |
|
{ id:"mercury2",model:"Mercury 2", dev:"Inception Labs", released:"2026-02-24", provider:"Inception API (NVIDIA Blackwell)", |
|
speed:752, kind:"aa", intel:25, ttft:"3.06 s", ttftS:3.06, |
|
fp:"752.2 (Inception API)", fpS:752.2, |
|
note:"Diffusion LLM. Inception claims 1,009 tok/s on Blackwell; AA measures 752.2.", refs:[11,12,13] }, |
|
{ id:"sol", model:"GPT-5.6 Sol", dev:"OpenAI", released:"2026-07-09", provider:"Cerebras WSE-3 (limited access)", |
|
speed:750, kind:"vendor", intel:59, ttft:"129.3 s (OpenAI API, max effort)", ttftS:129.28, |
|
fp:"53.9 (OpenAI API)", fpS:53.9, |
|
note:"Up to 750 tok/s in production for ~20 orgs initially; previewed Jun 26, GA Jul 9, 2026.", refs:[4,5,6,9] }, |
|
{ id:"glm52", model:"GLM-5.2", dev:"Z.ai (Zhipu)", released:"2026-06-16", provider:"Blackbox AI", |
|
speed:431, kind:"aa", intel:51, ttft:"1.82 s (Blackbox)", ttftS:1.82, |
|
fp:"177.8 (median, 16 providers)", fpS:177.8, |
|
note:"Also Fireworks 412, Together 391, Baseten 344, Databricks 310 tok/s.", refs:[14,15,16] }, |
|
{ id:"dsv4", model:"DeepSeek V4 Pro", dev:"DeepSeek", released:"2026-04-24", provider:"Together AI", |
|
speed:317, kind:"aa", intel:44, ttft:"1.02 s (Together)", ttftS:1.02, |
|
fp:"61.1 (DeepSeek API)", fpS:61.1, |
|
note:"1.6T total / 49B active parameters, MIT open weights.", refs:[16,23,24] }, |
|
{ id:"g31fl", model:"Gemini 3.1 Flash-Lite", dev:"Google", released:"2026-03-03", provider:"Google API", |
|
speed:290, kind:"aa", intel:25, ttft:"6.22 s", ttftS:6.22, |
|
fp:"289.9 (Google API)", fpS:289.9, |
|
note:"Fastest closed-weight model from a major lab at its snapshot.", refs:[18] }, |
|
{ id:"g35f", model:"Gemini 3.5 Flash", dev:"Google", released:"2026-05-19", provider:"Google API", |
|
speed:280, kind:"aa", intel:55, ttft:"—", ttftS:null, |
|
fp:"280+ (Google API)", fpS:280, |
|
note:"AA: 'the clear leader on the Intelligence vs Speed Pareto frontier.'", refs:[19,20] }, |
|
{ id:"g31pro", model:"Gemini 3.1 Pro Preview",dev:"Google", released:"2026-02-19", provider:"Google API", |
|
speed:117, kind:"aa", intel:46, ttft:"39.5 s", ttftS:39.54, |
|
fp:"117.3 (Google API)", fpS:117.3, |
|
note:"", refs:[17] }, |
|
{ id:"k3", model:"Kimi K3", dev:"Moonshot AI", released:"2026-07-16", provider:"Moonshot API", |
|
speed:62, kind:"aa", intel:57, ttft:"1.99 s", ttftS:1.99, |
|
fp:"62 (Moonshot API)", fpS:62, |
|
note:"2.8T MoE, 1M context; #4 on Intelligence Index at launch.", refs:[10] }, |
|
{ id:"fable5", model:"Claude Fable 5", dev:"Anthropic", released:"2026-06-09", provider:"Anthropic API", |
|
speed:60.7, kind:"aa", intel:60, ttft:"116.2 s (max effort)", ttftS:116.24, |
|
fp:"60.7 (Anthropic API)", fpS:60.7, |
|
note:"#1 on Intelligence Index (60/187 models ranked).", refs:[8] }, |
|
]; |
|
|
|
/* scatter label side per point (precomputed to avoid collisions) */ |
|
const LABEL_SIDE = { gemma4:"r", k26:"r", mercury2:"r", sol:"l", glm52:"r", dsv4:"r", |
|
g31fl:"r", g35f:"r", g31pro:"r", k3:"l", fable5:"r" }; |
|
|
|
const state = { records:"all", minIntel:0, sortKey:"speed", sortDir:-1 }; |
|
const fmt = new Intl.NumberFormat("en-US"); |
|
const svgNS = "http://www.w3.org/2000/svg"; |
|
|
|
function visibleModels() { |
|
return MODELS.filter(m => |
|
(state.records === "all" || m.kind === "aa") && m.intel >= state.minIntel); |
|
} |
|
|
|
function el(name, attrs, parent) { |
|
const node = document.createElementNS(svgNS, name); |
|
for (const k in attrs) node.setAttribute(k, attrs[k]); |
|
if (parent) parent.appendChild(node); |
|
return node; |
|
} |
|
|
|
/* ---------- tooltip ---------- */ |
|
const tooltip = document.getElementById("tooltip"); |
|
function showTooltip(m, x, y) { |
|
tooltip.replaceChildren(); |
|
const add = (text, cls) => { |
|
const d = document.createElement("div"); |
|
if (cls) d.className = cls; |
|
d.textContent = text; |
|
tooltip.appendChild(d); |
|
}; |
|
add(fmt.format(m.speed) + " tok/s", "tt-value"); |
|
add(m.model + " — " + m.provider); |
|
add(m.kind === "aa" ? "Measured by Artificial Analysis" : "Vendor-claimed production rate", "tt-muted"); |
|
add("Intelligence " + m.intel + " · released " + m.released, "tt-muted"); |
|
if (m.note) add(m.note, "tt-muted"); |
|
tooltip.style.display = "block"; |
|
tooltip.setAttribute("aria-hidden", "false"); |
|
const rect = tooltip.getBoundingClientRect(); |
|
let left = x + 14, top = y + 14; |
|
if (left + rect.width > window.innerWidth - 8) left = x - rect.width - 14; |
|
if (top + rect.height > window.innerHeight - 8) top = y - rect.height - 14; |
|
tooltip.style.left = Math.max(8, left) + "px"; |
|
tooltip.style.top = Math.max(8, top) + "px"; |
|
} |
|
function hideTooltip() { |
|
tooltip.style.display = "none"; |
|
tooltip.setAttribute("aria-hidden", "true"); |
|
} |
|
function attachTooltip(target, m) { |
|
target.addEventListener("pointermove", e => showTooltip(m, e.clientX, e.clientY)); |
|
target.addEventListener("pointerleave", hideTooltip); |
|
target.addEventListener("focus", () => { |
|
const r = target.getBoundingClientRect(); |
|
showTooltip(m, r.left + r.width / 2, r.top); |
|
}); |
|
target.addEventListener("blur", hideTooltip); |
|
} |
|
|
|
/* ---------- shared defs (hatch pattern for vendor-claimed) ---------- */ |
|
function addHatchDefs(svg, idSuffix) { |
|
const defs = el("defs", {}, svg); |
|
const pat = el("pattern", { id:"hatch" + idSuffix, width:6, height:6, |
|
patternUnits:"userSpaceOnUse", patternTransform:"rotate(45)" }, defs); |
|
el("rect", { width:6, height:6, fill:"var(--surface)" }, pat); |
|
el("line", { x1:0, y1:0, x2:0, y2:6, stroke:"var(--ink)", "stroke-width":2.5 }, pat); |
|
/* also register the generic id used by CSS on first chart */ |
|
return "url(#hatch" + idSuffix + ")"; |
|
} |
|
|
|
/* ---------- legend ---------- */ |
|
function buildLegend(container) { |
|
container.replaceChildren(); |
|
const mk = (label, vendor) => { |
|
const span = document.createElement("span"); |
|
span.className = "key"; |
|
const svg = document.createElementNS(svgNS, "svg"); |
|
svg.setAttribute("width", 18); svg.setAttribute("height", 12); |
|
if (vendor) { |
|
const d = el("defs", {}, svg); |
|
const p = el("pattern", { id:"lg" + Math.random().toString(36).slice(2,7), width:5, height:5, |
|
patternUnits:"userSpaceOnUse", patternTransform:"rotate(45)" }, d); |
|
el("rect", { width:5, height:5, fill:"var(--surface)" }, p); |
|
el("line", { x1:0, y1:0, x2:0, y2:5, stroke:"var(--ink)", "stroke-width":2 }, p); |
|
el("rect", { x:0.5, y:0.5, width:17, height:11, fill:"url(#" + p.id + ")", |
|
stroke:"var(--ink)", "stroke-width":1 }, svg); |
|
} else { |
|
el("rect", { width:18, height:12, fill:"var(--ink)" }, svg); |
|
} |
|
span.appendChild(svg); |
|
span.appendChild(document.createTextNode(label)); |
|
return span; |
|
}; |
|
container.appendChild(mk("Independently measured (Artificial Analysis)", false)); |
|
container.appendChild(mk("Vendor-claimed / limited availability", true)); |
|
} |
|
|
|
/* ---------- bar chart ---------- */ |
|
function renderBars() { |
|
const host = document.getElementById("barchart"); |
|
host.replaceChildren(); |
|
const data = visibleModels().slice().sort((a, b) => b.speed - a.speed); |
|
if (!data.length) { host.textContent = "No models match the current filters."; return; } |
|
|
|
const W = 960, labelW = 208, rightPad = 64, rowH = 46, barH = 20, topPad = 8, axisH = 34; |
|
const H = topPad + data.length * rowH + axisH; |
|
const plotW = W - labelW - rightPad; |
|
const maxV = 1900; |
|
const x = v => labelW + (v / maxV) * plotW; |
|
|
|
const svg = el("svg", { viewBox:`0 0 ${W} ${H}`, width:"100%", role:"img", |
|
"aria-label":"Bar chart of fastest recorded output speed per model" }); |
|
const fill = addHatchDefs(svg, "-bars"); |
|
|
|
/* gridlines + ticks */ |
|
for (const t of [0, 500, 1000, 1500]) { |
|
el("line", { x1:x(t), y1:topPad, x2:x(t), y2:H - axisH, class: t === 0 ? "baseline" : "gridline" }, svg); |
|
const tick = el("text", { x:x(t), y:H - axisH + 16, "text-anchor":"middle", class:"axis-tick" }, svg); |
|
tick.textContent = fmt.format(t); |
|
} |
|
const at = el("text", { x:x(maxV / 2), y:H - 4, "text-anchor":"middle", class:"axis-title" }, svg); |
|
at.textContent = "Output tokens per second (single request, best-known endpoint)"; |
|
|
|
data.forEach((m, i) => { |
|
const y0 = topPad + i * rowH + (rowH - barH) / 2; |
|
const g = el("g", { tabindex:0, role:"img", |
|
"aria-label":`${m.model} on ${m.provider}: ${fmt.format(m.speed)} tokens per second` }, svg); |
|
const name = el("text", { x:labelW - 12, y:y0 + 8, "text-anchor":"end", class:"bar-name" }, g); |
|
name.textContent = m.model; |
|
const prov = el("text", { x:labelW - 12, y:y0 + 21, "text-anchor":"end", class:"bar-provider" }, g); |
|
prov.textContent = m.provider; |
|
|
|
const w = Math.max(2, x(m.speed) - x(0)); |
|
/* 4px rounded data-end, square baseline: rounded rect + square patch at baseline */ |
|
el("rect", { x:x(0), y:y0, width:w, height:barH, rx:4, ry:4, |
|
fill: m.kind === "vendor" ? fill : "var(--ink)", |
|
stroke: m.kind === "vendor" ? "var(--ink)" : "none", "stroke-width": m.kind === "vendor" ? 1 : 0 }, g); |
|
el("rect", { x:x(0), y:y0, width:Math.min(4, w), height:barH, |
|
fill: m.kind === "vendor" ? fill : "var(--ink)" }, g); |
|
|
|
const val = el("text", { x:x(m.speed) + 7, y:y0 + barH / 2 + 4.5, class:"bar-value" }, g); |
|
val.textContent = fmt.format(m.speed); |
|
|
|
/* enlarged hit target */ |
|
const hit = el("rect", { x:0, y:topPad + i * rowH, width:W, height:rowH, class:"hit" }, g); |
|
attachTooltip(g, m); |
|
attachTooltip(hit, m); |
|
}); |
|
|
|
host.appendChild(svg); |
|
} |
|
|
|
/* ---------- scatter ---------- */ |
|
function renderScatter() { |
|
const host = document.getElementById("scatter"); |
|
host.replaceChildren(); |
|
const data = visibleModels(); |
|
if (!data.length) { host.textContent = "No models match the current filters."; return; } |
|
|
|
const W = 960, H = 430, mL = 64, mR = 178, mT = 16, mB = 52; |
|
const plotW = W - mL - mR, plotH = H - mT - mB; |
|
const xMin = 20, xMax = 64; |
|
const yMin = 30, yMax = 2400; /* log scale */ |
|
const x = v => mL + ((v - xMin) / (xMax - xMin)) * plotW; |
|
const y = v => mT + plotH - ((Math.log10(v) - Math.log10(yMin)) / (Math.log10(yMax) - Math.log10(yMin))) * plotH; |
|
|
|
const svg = el("svg", { viewBox:`0 0 ${W} ${H}`, width:"100%", role:"img", |
|
"aria-label":"Scatter plot of intelligence index versus output speed" }); |
|
addHatchDefs(svg, "-scatter"); |
|
|
|
for (const t of [50, 100, 200, 400, 800, 1600]) { |
|
el("line", { x1:mL, y1:y(t), x2:W - mR, y2:y(t), class:"gridline" }, svg); |
|
const tick = el("text", { x:mL - 8, y:y(t) + 3.5, "text-anchor":"end", class:"axis-tick" }, svg); |
|
tick.textContent = fmt.format(t); |
|
} |
|
for (const t of [20, 30, 40, 50, 60]) { |
|
el("line", { x1:x(t), y1:H - mB, x2:x(t), y2:H - mB + 5, class:"baseline" }, svg); |
|
const tick = el("text", { x:x(t), y:H - mB + 19, "text-anchor":"middle", class:"axis-tick" }, svg); |
|
tick.textContent = t; |
|
} |
|
el("line", { x1:mL, y1:H - mB, x2:W - mR, y2:H - mB, class:"baseline" }, svg); |
|
const xt = el("text", { x:mL + plotW / 2, y:H - 8, "text-anchor":"middle", class:"axis-title" }, svg); |
|
xt.textContent = "Artificial Analysis Intelligence Index (higher = smarter)"; |
|
const yt = el("text", { x:14, y:mT + plotH / 2, class:"axis-title", |
|
transform:`rotate(-90 14 ${mT + plotH / 2})` , "text-anchor":"middle"}, svg); |
|
yt.textContent = "Output tok/s (log scale)"; |
|
|
|
/* frontier: models with no other model both smarter and faster */ |
|
const frontier = data.filter(m => |
|
!data.some(o => o !== m && o.intel >= m.intel && o.speed > m.speed && (o.intel > m.intel || o.speed > m.speed))) |
|
.sort((a, b) => a.intel - b.intel); |
|
if (frontier.length > 1) { |
|
const d = frontier.map((m, i) => (i === 0 ? "M" : "L") + x(m.intel) + " " + y(m.speed)).join(" "); |
|
el("path", { d, class:"frontier" }, svg); |
|
const f0 = frontier[0]; |
|
const fl = el("text", { x:x(f0.intel) - 14, y:y(f0.speed) - 8, "text-anchor":"end", class:"frontier-label" }, svg); |
|
fl.textContent = "speed–intelligence frontier"; |
|
} |
|
|
|
data.forEach(m => { |
|
const cx = x(m.intel), cy = y(m.speed); |
|
const g = el("g", { tabindex:0, role:"img", |
|
"aria-label":`${m.model}: intelligence ${m.intel}, ${fmt.format(m.speed)} tokens per second on ${m.provider}` }, svg); |
|
el("circle", { cx, cy, r:24, class:"hit" }, g); |
|
el("circle", { cx, cy, r:5.5, class: m.kind === "vendor" ? "dot-vendor" : "dot" }, g); |
|
const side = LABEL_SIDE[m.id] || "r"; |
|
const lx = side === "l" ? cx - 10 : cx + 10; |
|
const anchor = side === "l" ? "end" : "start"; |
|
const lab = el("text", { x:lx, y:cy - 1, "text-anchor":anchor, class:"dot-label" }, g); |
|
lab.textContent = m.model; |
|
const sub = el("text", { x:lx, y:cy + 11, "text-anchor":anchor, class:"dot-sublabel" }, g); |
|
sub.textContent = m.provider.split(" (")[0]; |
|
attachTooltip(g, m); |
|
}); |
|
|
|
host.appendChild(svg); |
|
} |
|
|
|
/* ---------- table ---------- */ |
|
const COLS = [ |
|
{ key:"model", label:"Model", num:false }, |
|
{ key:"dev", label:"Developer", num:false }, |
|
{ key:"released", label:"Released", num:false }, |
|
{ key:"speed", label:"Best tok/s", num:true }, |
|
{ key:"kind", label:"Measurement", num:false }, |
|
{ key:"fpS", label:"First-party tok/s", num:true }, |
|
{ key:"intel", label:"Intelligence", num:true }, |
|
{ key:"ttftS", label:"TTFT", num:true }, |
|
{ key:"refs", label:"Sources", num:false }, |
|
]; |
|
|
|
function renderTable() { |
|
const head = document.getElementById("table-head"); |
|
const body = document.getElementById("table-body"); |
|
head.replaceChildren(); |
|
body.replaceChildren(); |
|
|
|
COLS.forEach(c => { |
|
const th = document.createElement("th"); |
|
if (c.num) th.className = "num"; |
|
th.textContent = c.label + " "; |
|
const arrow = document.createElement("span"); |
|
arrow.className = "arrow"; |
|
arrow.textContent = state.sortKey === c.key ? (state.sortDir === 1 ? "▲" : "▼") : ""; |
|
th.appendChild(arrow); |
|
th.setAttribute("aria-sort", state.sortKey === c.key ? (state.sortDir === 1 ? "ascending" : "descending") : "none"); |
|
if (c.key !== "refs") { |
|
th.addEventListener("click", () => { |
|
if (state.sortKey === c.key) state.sortDir *= -1; |
|
else { state.sortKey = c.key; state.sortDir = c.num ? -1 : 1; } |
|
renderTable(); |
|
}); |
|
} else { th.style.cursor = "default"; } |
|
head.appendChild(th); |
|
}); |
|
|
|
const data = visibleModels().slice().sort((a, b) => { |
|
const k = state.sortKey; |
|
let va = a[k], vb = b[k]; |
|
if (va == null) return 1; |
|
if (vb == null) return -1; |
|
if (typeof va === "string") { va = va.toLowerCase(); vb = String(vb).toLowerCase(); } |
|
return (va < vb ? -1 : va > vb ? 1 : 0) * state.sortDir; |
|
}); |
|
|
|
data.forEach(m => { |
|
const tr = document.createElement("tr"); |
|
const cell = (content, cls) => { |
|
const td = document.createElement("td"); |
|
if (cls) td.className = cls; |
|
if (typeof content === "string") td.textContent = content; |
|
else if (content) td.appendChild(content); |
|
tr.appendChild(td); |
|
return td; |
|
}; |
|
|
|
const modelTd = cell(m.model); |
|
const prov = document.createElement("span"); |
|
prov.className = "prov"; |
|
prov.textContent = "via " + m.provider; |
|
modelTd.appendChild(prov); |
|
|
|
cell(m.dev); |
|
cell(m.released); |
|
cell(fmt.format(m.speed), "num"); |
|
|
|
if (m.kind === "aa") cell("AA"); |
|
else { |
|
const b = document.createElement("span"); |
|
b.className = "meas-vendor"; |
|
b.textContent = "vendor-claimed"; |
|
cell(b); |
|
} |
|
|
|
cell(m.fp, "num"); |
|
cell(String(m.intel), "num"); |
|
cell(m.ttft, "num"); |
|
|
|
const srcTd = document.createElement("td"); |
|
m.refs.forEach((r, i) => { |
|
const a = document.createElement("a"); |
|
a.href = "#c" + r; |
|
a.textContent = "[" + r + "]"; |
|
srcTd.appendChild(a); |
|
if (i < m.refs.length - 1) srcTd.appendChild(document.createTextNode(" ")); |
|
}); |
|
tr.appendChild(srcTd); |
|
|
|
body.appendChild(tr); |
|
}); |
|
} |
|
|
|
/* ---------- filters ---------- */ |
|
function renderAll() { |
|
const n = visibleModels().length; |
|
document.getElementById("f-count").textContent = |
|
n + " of " + MODELS.length + " model records shown"; |
|
renderBars(); |
|
renderScatter(); |
|
renderTable(); |
|
} |
|
document.getElementById("f-records").addEventListener("change", e => { |
|
state.records = e.target.value; renderAll(); |
|
}); |
|
document.getElementById("f-intel").addEventListener("change", e => { |
|
state.minIntel = Number(e.target.value); renderAll(); |
|
}); |
|
|
|
buildLegend(document.getElementById("bar-legend")); |
|
buildLegend(document.getElementById("scatter-legend")); |
|
renderAll(); |
|
</script> |
|
</body> |
|
</html> |