Spaces:
Running
Running
Download index.html from capyctl/benchmarks: direct link, hf CLI and curl.
- Browser
- Download file 49.7 kB
-
https://huggingface.co/spaces/capyctl/benchmarks/resolve/main/index.html
- Command line
-
hf download hf://spaces/capyctl/benchmarks/index.html
-
curl -L -o index.html https://huggingface.co/spaces/capyctl/benchmarks/resolve/main/index.html
49.7 kB
| <html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"> | |
| <title>CapyCTL benchmarks</title> | |
| <link rel="preconnect" href="https://fonts.googleapis.com"> | |
| <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=IBM+Plex+Mono:wght@400;500&display=swap"> | |
| <style> | |
| :root{--bg:#fafaf9;--fg:#1c1917;--muted:#57534e;--line:#e7e5e4;--card:#ffffff;--accent:#c2410c;--chip:#f5f5f4;--code:#f5f5f4} | |
| @media (prefers-color-scheme:dark){:root{--bg:#1c1917;--fg:#e7e5e4;--muted:#a8a29e;--line:#292524;--card:#232120;--accent:#fb923c;--chip:#292524;--code:#292524}} | |
| *{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--fg);font:15px/1.55 Inter,system-ui,sans-serif} | |
| main{max-width:1180px;margin:0 auto;padding:32px 20px 64px} | |
| .brand img{height:44px;display:block}.brand .d{display:none}@media (prefers-color-scheme:dark){.brand .l{display:none}.brand .d{display:block}} | |
| h1{font-size:30px;line-height:1.2;letter-spacing:-.015em;margin:20px 0 8px} | |
| .lede{color:var(--muted);max-width:52em;margin:0 0 6px}.meta{font:12.5px "IBM Plex Mono",monospace;color:var(--muted);margin:10px 0 0} | |
| a{color:var(--accent)}code{font:12.5px "IBM Plex Mono",monospace;background:var(--code);padding:1px 4px;border-radius:4px} | |
| .bar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:26px 0 18px;position:sticky;top:0;background:var(--bg);padding:10px 0;z-index:2} | |
| .bar button{font:500 13px Inter,sans-serif;border:1px solid var(--line);background:var(--chip);color:var(--fg);border-radius:999px;padding:6px 12px;cursor:pointer} | |
| .bar button[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:#fff} | |
| .bar input{flex:1 1 220px;min-width:180px;font:14px Inter,sans-serif;padding:7px 12px;border-radius:8px;border:1px solid var(--line);background:var(--card);color:var(--fg)} | |
| .sep{width:1px;height:22px;background:var(--line);margin:0 4px} | |
| .count{font:12.5px "IBM Plex Mono",monospace;color:var(--muted);margin:0 0 12px} | |
| .grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:16px} | |
| .card{background:var(--card);border:1px solid var(--line);border-radius:12px;overflow:hidden;display:flex;flex-direction:column} | |
| .thumb{display:block;aspect-ratio:2/1;background:var(--chip);overflow:hidden}.thumb img{width:100%;height:100%;object-fit:cover;object-position:top;display:block} | |
| .body{padding:14px 16px 16px;display:flex;flex-direction:column;gap:8px;flex:1} | |
| .tags{display:flex;flex-wrap:wrap;gap:6px}.tag{font:500 11.5px "IBM Plex Mono",monospace;padding:2px 8px;border-radius:999px;background:var(--chip);color:var(--muted)} | |
| .tag.k{color:var(--accent)} | |
| .card h3{font-size:16px;line-height:1.35;margin:0}.eng{color:var(--muted);font-size:13.5px;margin:0} | |
| .res{font-size:13.5px;margin:0}.links{display:flex;flex-wrap:wrap;gap:6px 14px;margin-top:auto;padding-top:6px;font-size:13.5px;font-weight:500} | |
| footer{color:var(--muted);font-size:13.5px;margin-top:40px;border-top:1px solid var(--line);padding-top:16px} | |
| </style></head><body><main> | |
| <a class="brand" href="https://huggingface.co/capyctl" target="_top"><img class="l" src="https://raw.githubusercontent.com/edurdias/capyctl/main/docs/brand/horizontal-light.png" alt="CapyCTL"><img class="d" src="https://raw.githubusercontent.com/edurdias/capyctl/main/docs/brand/horizontal-dark.png" alt="CapyCTL"></a> | |
| <h1>Benchmarks</h1> | |
| <p class="lede">Every recipe and comparison in <a href="https://github.com/edurdias/capyctl-recipes" target="_blank" rel="noopener">capyctl-recipes</a>, measured through <a href="https://github.com/edurdias/capyctl" target="_blank" rel="noopener">CapyCTL</a> on the hardware it names. Open a card to read its full <a href="https://github.com/edurdias/capyctl-recipes/tree/main/tools/capyctl-bench" target="_blank" rel="noopener">capyctl-bench</a> report: context sweeps, concurrency curves, time to first token, memory, and for decision models latency, reliability and quality. Every point is also in the <a href="https://huggingface.co/datasets/capyctl/bench-results" target="_top">bench-results dataset</a>.</p> | |
| <p class="meta">38 recipes · 12 comparisons · 53 reports · capyctl-recipes <a href="https://github.com/edurdias/capyctl-recipes/commit/1829ae0b0e6c4731016965eafdeea0ee0bc2a225" target="_blank" rel="noopener">1829ae0</a></p> | |
| <div class="bar" role="toolbar"> | |
| <button data-k="all" aria-pressed="true">All</button><button data-k="comparison" aria-pressed="false">Comparisons</button><button data-k="recipe" aria-pressed="false">Recipes</button> | |
| <span class="sep"></span> | |
| <button data-f="all" aria-pressed="true">Any engine</button><button data-f="vllm" aria-pressed="false">vLLM</button><button data-f="sglang" aria-pressed="false">SGLang</button><button data-f="tensorfold" aria-pressed="false">TensorFold</button><button data-f="llamacpp" aria-pressed="false">llama.cpp</button><button data-f="custom" aria-pressed="false">Custom</button> | |
| <input type="search" id="q" placeholder="Filter: model, GPU, engine version…" aria-label="Filter"> | |
| </div> | |
| <p class="count" id="count"></p> | |
| <div class="grid" id="grid"></div> | |
| <footer>Numbers come from one machine each and the dates shown; they are not qualification of an engine recipe on your hardware. Each recipe names the exact CapyCTL, engine, model and drafter revisions it was measured with. Comparisons that use their own harness (the native TP2 and concurrency studies) link to their evidence on GitHub. Licensed Apache-2.0.</footer> | |
| </main> | |
| <script> | |
| const DATA=[{"path": "comparisons/native-tp2-direct-vs-capyctl-qwen3-30b-a3b-a6000", "kind": "comparison", "family": "comparisons", "engine": "vLLM 0.32.0, SGLang 0.5.22; direct vs CapyCTL", "model": "Qwen3-30B-A3B, native TP2", "hardware": "2x RTX A6000 48 GB", "result": "Matched concurrency 1/4/8: CapyCTL throughput changes -5.76% to +3.22% versus direct launch in this sampled run; separate deep/host-backed parking evidence", "measured": "2026-10-27 UTC", "github": "https://github.com/edurdias/capyctl-recipes/tree/main/comparisons/native-tp2-direct-vs-capyctl-qwen3-30b-a3b-a6000", "thumb": null, "reports": [], "h1": "Native TP2: direct engine vs CapyCTL on two RTX A6000s", "models": ["Qwen/Qwen3-30B-A3B"]}, {"path": "comparisons/concurrency-batching-qwen3-gb10", "kind": "comparison", "family": "comparisons", "engine": "SGLang 0.5.22, vLLM 0.32.0", "model": "Qwen3-4B-Instruct-2507 and Qwen3-30B-A3B BF16", "hardware": "1x GB10", "result": "313 attempts; doubling short-prompt concurrency roughly doubled throughput in screening; 12 operating points confirmed three times; experimental admission builds, no default change", "measured": "2026-10-26–27 UTC", "github": "https://github.com/edurdias/capyctl-recipes/tree/main/comparisons/concurrency-batching-qwen3-gb10", "thumb": null, "reports": [], "h1": "Concurrency and native batching on one GB10", "models": ["Qwen/Qwen3-4B-Instruct-2507"]}, {"path": "custom/basal-2.0-4.5b-gb10", "kind": "recipe", "family": "custom", "engine": "basal-serve 2.2.0 (custom engine)", "model": "basal-2.0-4.5B (decision model), bf16", "hardware": "1x GB10, 38 GiB", "result": "Decisions: 90 ms for one question about a 200-token text; 1.2 decisions/s; ready in about 12 minutes", "measured": "2026-10-21", "github": "https://github.com/edurdias/capyctl-recipes/tree/main/custom/basal-2.0-4.5b-gb10", "thumb": "r/custom/basal-2.0-4.5b-gb10/bench/summary/summary-wide.png", "reports": [{"href": "r/custom/basal-2.0-4.5b-gb10/bench/report.html", "title": "basal-2.0-4.5B on basal-serve 2.2.0 (custom engine), 1x GB10", "sub": "bench"}], "h1": "basal-2.0-4.5B on basal-serve 2.2.0 (custom engine), one GB10", "models": ["Remek/basal-2.0-4.5B"]}, {"path": "llamacpp/clef-flash-gb10", "kind": "recipe", "family": "llamacpp", "engine": "llama.cpp v0.7.0", "model": "Clef-Flash (decision model), Q8_0 GGUF", "hardware": "1x GB10, 18 GiB", "result": "Decisions: 203 ms for one question about a 200-token text; 1.3 decisions/s", "measured": "2026-10-18", "github": "https://github.com/edurdias/capyctl-recipes/tree/main/llamacpp/clef-flash-gb10", "thumb": "r/llamacpp/clef-flash-gb10/bench/summary/summary-wide.png", "reports": [{"href": "r/llamacpp/clef-flash-gb10/bench/report.html", "title": "Clef-Flash on llama.cpp v0.7.0", "sub": "bench"}], "h1": "Clef-Flash (Q8_0 GGUF) on llama.cpp v0.7.0, one GB10", "models": ["ggml-org/Clef-Flash-GGUF"]}, {"path": "llamacpp/clef-gb10", "kind": "recipe", "family": "llamacpp", "engine": "llama.cpp v0.7.0", "model": "Clef (decision model), Q8_0 GGUF", "hardware": "1x GB10, 38 GiB", "result": "Decisions: 560 ms; 0.43 decisions/s", "measured": "2026-10-18", "github": "https://github.com/edurdias/capyctl-recipes/tree/main/llamacpp/clef-gb10", "thumb": "r/llamacpp/clef-gb10/bench/summary/summary-wide.png", "reports": [{"href": "r/llamacpp/clef-gb10/bench/report.html", "title": "Clef on llama.cpp v0.7.0", "sub": "bench"}], "h1": "Clef (Q8_0 GGUF) on llama.cpp v0.7.0, one GB10", "models": ["ggml-org/Clef-GGUF"]}, {"path": "llamacpp/kev-4b-gb10", "kind": "recipe", "family": "llamacpp", "engine": "llama.cpp v0.7.0", "model": "Kev-4B (decision model), Q8_0 GGUF", "hardware": "1x GB10, 28 GiB", "result": "Decisions: 88 ms; 1.5 decisions/s", "measured": "2026-10-18", "github": "https://github.com/edurdias/capyctl-recipes/tree/main/llamacpp/kev-4b-gb10", "thumb": "r/llamacpp/kev-4b-gb10/bench/summary/summary-wide.png", "reports": [{"href": "r/llamacpp/kev-4b-gb10/bench/report.html", "title": "Kev-4B on llama.cpp v0.7.0", "sub": "bench"}], "h1": "Kev-4B (Q8_0 GGUF) on llama.cpp v0.7.0, one GB10", "models": ["ggml-org/Kev-4B-GGUF"]}, {"path": "llamacpp/julia-1-gb10", "kind": "recipe", "family": "llamacpp", "engine": "llama.cpp v0.7.0", "model": "Julia-1 (decision model), Q8_0 GGUF", "hardware": "1x GB10, 2 GiB", "result": "Decisions: 20 ms; 4.4 decisions/s", "measured": "2026-10-18", "github": "https://github.com/edurdias/capyctl-recipes/tree/main/llamacpp/julia-1-gb10", "thumb": "r/llamacpp/julia-1-gb10/bench/summary/summary-wide.png", "reports": [{"href": "r/llamacpp/julia-1-gb10/bench/report.html", "title": "Julia-1 on llama.cpp v0.7.0", "sub": "bench"}], "h1": "Julia-1 (Q8_0 GGUF) on llama.cpp v0.7.0, one GB10", "models": ["ggml-org/Julia-1-GGUF"]}, {"path": "sglang/clef-flash-gb10", "kind": "recipe", "family": "sglang", "engine": "SGLang 0.5.22", "model": "Clef-Flash (decision model), BF16", "hardware": "1x GB10, 52 GiB", "result": "Decisions: 155 ms; 1.6 decisions/s", "measured": "2026-10-18", "github": "https://github.com/edurdias/capyctl-recipes/tree/main/sglang/clef-flash-gb10", "thumb": "r/sglang/clef-flash-gb10/bench/summary/summary-wide.png", "reports": [{"href": "r/sglang/clef-flash-gb10/bench/report.html", "title": "Clef-Flash on SGLang 0.5.22", "sub": "bench"}], "h1": "Clef-Flash (BF16) on SGLang 0.5.22, one GB10", "models": ["Cloudflare/clef-flash"]}, {"path": "sglang/clef-gb10", "kind": "recipe", "family": "sglang", "engine": "SGLang 0.5.22", "model": "Clef (decision model), BF16", "hardware": "1x GB10, managed limit 108 GiB", "result": "Decisions: 395 ms; 0.58 decisions/s", "measured": "2026-10-18", "github": "https://github.com/edurdias/capyctl-recipes/tree/main/sglang/clef-gb10", "thumb": "r/sglang/clef-gb10/bench/summary/summary-wide.png", "reports": [{"href": "r/sglang/clef-gb10/bench/report.html", "title": "Clef on SGLang 0.5.22", "sub": "bench"}], "h1": "Clef (BF16) on SGLang 0.5.22, one GB10", "models": ["Cloudflare/clef"]}, {"path": "comparisons/decision-models-gb10", "kind": "comparison", "family": "comparisons", "engine": "llama.cpp v0.7.0, SGLang 0.5.22", "model": "Six decision models: Clef, Clef-Flash, Kev-4B, lev, Julia-1, Laya", "hardware": "1x GB10", "result": "Clef-Flash the pick: 15 GiB and 203 ms on llama.cpp, within 3 points of Clef 27B on every test; published scores reproduced (Clef 91.9% API-Bank, Julia-1 73.0% Typed Decisions); Julia-1 20 ms but narrow and overconfident; SGLang reads 8k inputs twice as fast for 3x the memory; more users add no throughput; CapyCTL adds 12 to 26 ms per request", "measured": "2026-10-18", "github": "https://github.com/edurdias/capyctl-recipes/tree/main/comparisons/decision-models-gb10", "thumb": "r/comparisons/decision-models-gb10/bench/summary/summary-wide.png", "reports": [{"href": "r/comparisons/decision-models-gb10/bench/report.html", "title": "Decision models on one GB10", "sub": "bench"}, {"href": "r/comparisons/decision-models-gb10/bench/overhead/report.html", "title": "CapyCTL overhead on decisions: llama.cpp v0.7.0 directly and through CapyCTL", "sub": "bench/overhead"}], "h1": "Decision models on one GB10", "models": ["Cloudflare/clef", "Cloudflare/clef-flash", "ggml-org/Clef-Flash-GGUF", "ggml-org/Clef-GGUF", "ggml-org/Julia-1-GGUF", "ggml-org/Kev-4B-GGUF"]}, {"path": "vllm/nemotron-3.5-super-vl-120b-a12b-nvfp4-gb10", "kind": "recipe", "family": "vllm", "engine": "vLLM 0.31.0", "model": "Nemotron 3.5 Super VL 120B-A12B NVFP4, LiLiCorr drafts, 4 running requests", "hardware": "1x GB10, managed limit 108 GiB", "result": "42.7 tokens/s (70.7 tokens/s at 4 streams)", "measured": "2026-10-16", "github": "https://github.com/edurdias/capyctl-recipes/tree/main/vllm/nemotron-3.5-super-vl-120b-a12b-nvfp4-gb10", "thumb": "r/vllm/nemotron-3.5-super-vl-120b-a12b-nvfp4-gb10/bench/summary/summary-wide.png", "reports": [{"href": "r/vllm/nemotron-3.5-super-vl-120b-a12b-nvfp4-gb10/bench/report.html", "title": "Nemotron 3.5 Super VL 120B-A12B NVFP4 on vLLM 0.31.0, one GB10", "sub": "bench"}], "h1": "Nemotron 3.5 Super VL 120B-A12B NVFP4 on vLLM 0.31.0, one GB10", "models": ["nvidia/NVIDIA-Nemotron-3.5-Super-VL-120B-A12B-NVFP4"]}, {"path": "llamacpp/nemotron-3.5-bolt-74b-a9b-24gb-gb10", "kind": "recipe", "family": "llamacpp", "engine": "llama.cpp v0.7.0", "model": "Nemotron 3.5 Bolt 74B-A9B 24GB (2-bit GGUF), LiLiCorr drafts, 262,144-token context", "hardware": "1x GB10, 35 GiB", "result": "78.8 tokens/s (one request at a time)", "measured": "2026-10-16", "github": "https://github.com/edurdias/capyctl-recipes/tree/main/llamacpp/nemotron-3.5-bolt-74b-a9b-24gb-gb10", "thumb": "r/llamacpp/nemotron-3.5-bolt-74b-a9b-24gb-gb10/bench/summary/summary-wide.png", "reports": [{"href": "r/llamacpp/nemotron-3.5-bolt-74b-a9b-24gb-gb10/bench/report.html", "title": "Nemotron 3.5 Bolt 74B-A9B 24GB on llama.cpp v0.7.0, one GB10", "sub": "bench"}, {"href": "r/llamacpp/nemotron-3.5-bolt-74b-a9b-24gb-gb10/bench/tuning/report.html", "title": "Bolt 24GB tuning on llama.cpp v0.7.0, one GB10", "sub": "bench/tuning"}], "h1": "Nemotron 3.5 Bolt 74B-A9B 24GB on llama.cpp v0.7.0, one GB10", "models": ["nvidia/NVIDIA-Nemotron-3.5-Bolt-74B-A9B-24GB-GGUF"]}, {"path": "llamacpp/nemotron-3.5-bolt-74b-a9b-24gb-8x32k-gb10", "kind": "recipe", "family": "llamacpp", "engine": "llama.cpp v0.7.0", "model": "Nemotron 3.5 Bolt 74B-A9B 24GB (2-bit GGUF), 8 slots of 32,768 tokens, no drafts", "hardware": "1x GB10, 30 GiB", "result": "37.8 tokens/s (97.2 tokens/s at 8 streams)", "measured": "2026-10-16", "github": "https://github.com/edurdias/capyctl-recipes/tree/main/llamacpp/nemotron-3.5-bolt-74b-a9b-24gb-8x32k-gb10", "thumb": "r/llamacpp/nemotron-3.5-bolt-74b-a9b-24gb-8x32k-gb10/bench/summary/summary-wide.png", "reports": [{"href": "r/llamacpp/nemotron-3.5-bolt-74b-a9b-24gb-8x32k-gb10/bench/report.html", "title": "Bolt 24GB for several users on llama.cpp v0.7.0, one GB10", "sub": "bench"}], "h1": "Nemotron 3.5 Bolt 74B-A9B 24GB for several users, llama.cpp v0.7.0, one GB10", "models": ["nvidia/NVIDIA-Nemotron-3.5-Bolt-74B-A9B-24GB-GGUF"]}, {"path": "comparisons/nemotron-3.5-super-vl-engines-gb10", "kind": "comparison", "family": "comparisons", "engine": "vLLM 0.31.0, llama.cpp v0.7.0, SGLang 0.5.21", "model": "Nemotron 3.5 Super VL 120B-A12B: NVFP4 on vLLM, NVFP4 and Q4_0 GGUF on llama.cpp; LiLiCorr, MTP and no drafts", "hardware": "1x GB10", "result": "vLLM wins: 34 to 45 tokens/s for one user (1k to 32k prompts) and about 3,000 tokens/s of prompt processing, against 26 to 37 and about 800 on llama.cpp (a 32k prompt: 11 s against 40 s to the first token); LiLiCorr beats MTP on vLLM; 4 running requests cost one user nothing; SGLang 0.5.21 does not start it; deep parking fails CapyCTL's wake canary, so the recipe restarts instead", "measured": "2026-10-16", "github": "https://github.com/edurdias/capyctl-recipes/tree/main/comparisons/nemotron-3.5-super-vl-engines-gb10", "thumb": "r/comparisons/nemotron-3.5-super-vl-engines-gb10/bench/summary/summary-wide.png", "reports": [{"href": "r/comparisons/nemotron-3.5-super-vl-engines-gb10/bench/report.html", "title": "Nemotron 3.5 Super VL 120B-A12B on one GB10: vLLM 0.31.0 against llama.cpp v0.7.0", "sub": "bench"}, {"href": "r/comparisons/nemotron-3.5-super-vl-engines-gb10/bench/llamacpp-tuning/report.html", "title": "Super VL NVFP4 on llama.cpp v0.7.0: drafters and prompt batch", "sub": "bench/llamacpp-tuning"}, {"href": "r/comparisons/nemotron-3.5-super-vl-engines-gb10/bench/vllm-drafters/report.html", "title": "Super VL NVFP4 on vLLM 0.31.0: LiLiCorr and MTP, 1 and 4 running", "sub": "bench/vllm-drafters"}], "h1": "Nemotron 3.5 Super VL 120B-A12B on one GB10: vLLM, llama.cpp, SGLang", "models": ["nvidia/NVIDIA-Nemotron-3.5-Super-VL-120B-A12B-NVFP4"]}, {"path": "sglang/qwen3.8-27b-nvfp4-dflash2-mix-gb10", "kind": "recipe", "family": "sglang", "engine": "SGLang 0.5.21", "model": "Qwen3.8-27B NVFP4, DFlash2 drafts, mixed chunked prefill, 12 running requests", "hardware": "1x GB10, managed limit above 75 GiB", "result": "28.6 tokens/s (155 tokens/s at 22 streams)", "measured": "2026-10-15", "github": "https://github.com/edurdias/capyctl-recipes/tree/main/sglang/qwen3.8-27b-nvfp4-dflash2-mix-gb10", "thumb": "r/sglang/qwen3.8-27b-nvfp4-dflash2-mix-gb10/bench/summary/summary-wide.png", "reports": [{"href": "r/sglang/qwen3.8-27b-nvfp4-dflash2-mix-gb10/bench/report.html", "title": "Qwen3.8-27B NVFP4, DFlash2 + mixed chunks, SGLang 0.5.21, GB10", "sub": "bench"}], "h1": "Qwen3.8-27B NVFP4 on SGLang 0.5.21 with DFlash2 drafts and mixed chunked prefill, 12 running requests, one GB10", "models": ["nvidia/Qwen3.8-27B-NVFP4"]}, {"path": "sglang/qwen3.8-27b-nvfp4-mtp-eagle-gb10", "kind": "recipe", "family": "sglang", "engine": "SGLang 0.5.21", "model": "Qwen3.8-27B NVFP4, MTP drafts (EAGLE), 22 running requests", "hardware": "1x GB10, managed limit 100 GiB", "result": "24.9 tokens/s (337 tokens/s at 22 streams)", "measured": "2026-10-15", "github": "https://github.com/edurdias/capyctl-recipes/tree/main/sglang/qwen3.8-27b-nvfp4-mtp-eagle-gb10", "thumb": "r/sglang/qwen3.8-27b-nvfp4-mtp-eagle-gb10/bench/summary/summary-wide.png", "reports": [{"href": "r/sglang/qwen3.8-27b-nvfp4-mtp-eagle-gb10/bench/report.html", "title": "Qwen3.8-27B NVFP4, EAGLE MTP, SGLang 0.5.21, GB10", "sub": "bench"}], "h1": "Qwen3.8-27B NVFP4 on SGLang 0.5.21 with MTP drafts (EAGLE), 22 running requests, one GB10", "models": ["nvidia/Qwen3.8-27B-NVFP4"]}, {"path": "comparisons/qwen3.8-27b-sglang-dflash2-vs-mtp-eagle-gb10", "kind": "comparison", "family": "comparisons", "engine": "SGLang 0.5.21", "model": "Qwen3.8-27B NVFP4: DFlash2 drafts against MTP/EAGLE drafts; BF16 and NVFP4 LM heads; five variants between them", "hardware": "1x GB10", "result": "No single sweet spot: DFlash2 for 1 to 4 users (28 against 24 tokens/s at one stream), MTP/EAGLE at 12 running for about 8 to 12 (163 tokens/s at 8), at 22 running for 16 to 22 (344 tokens/s at 22); mixed chunks cut DFlash2's long-prompt stall from 56 s to 9 s; CapyCTL matches SGLang launched directly; the NVFP4 LM head 41% faster at one stream with GSM8K 93.2% against 93.6%; every variant parks and wakes", "measured": "2026-10-15", "github": "https://github.com/edurdias/capyctl-recipes/tree/main/comparisons/qwen3.8-27b-sglang-dflash2-vs-mtp-eagle-gb10", "thumb": "r/comparisons/qwen3.8-27b-sglang-dflash2-vs-mtp-eagle-gb10/bench/summary/summary-wide.png", "reports": [{"href": "r/comparisons/qwen3.8-27b-sglang-dflash2-vs-mtp-eagle-gb10/bench/report.html", "title": "Qwen3.8-27B on SGLang 0.5.21: DFlash2 vs MTP/EAGLE, one GB10", "sub": "bench"}, {"href": "r/comparisons/qwen3.8-27b-sglang-dflash2-vs-mtp-eagle-gb10/bench-experiment/report.html", "title": "Qwen3.8-27B on SGLang 0.5.21: direct SGLang, BF16 and NVFP4 heads, DFlash2 mix", "sub": "bench-experiment"}, {"href": "r/comparisons/qwen3.8-27b-sglang-dflash2-vs-mtp-eagle-gb10/bench-sweetspot/report.html", "title": "Qwen3.8-27B on SGLang 0.5.21 through CapyCTL: DFlash2 and MTP/EAGLE variants", "sub": "bench-sweetspot"}], "h1": "SGLang 0.5.21, Qwen3.8-27B: DFlash2 drafter against the MTP/EAGLE recipe, one GB10", "models": ["RadixArk/Qwen3.8-27B-NVFP4-BF16-LMHead", "nvidia/Qwen3.8-27B-NVFP4"]}, {"path": "sglang/qwen3.8-flash-next-nvfp4-gb10", "kind": "recipe", "family": "sglang", "engine": "SGLang 0.5.21", "model": "Qwen3.8-Flash-Next NVFP4, MTP drafts, n-gram table on disk", "hardware": "1x GB10, managed limit 110 GiB", "result": "21.3 tokens/s (77.8 tokens/s at 8 streams)", "measured": "2026-10-09", "github": "https://github.com/edurdias/capyctl-recipes/tree/main/sglang/qwen3.8-flash-next-nvfp4-gb10", "thumb": "r/sglang/qwen3.8-flash-next-nvfp4-gb10/bench/summary/summary-wide.png", "reports": [{"href": "r/sglang/qwen3.8-flash-next-nvfp4-gb10/bench/report.html", "title": "Qwen3.8-Flash-Next NVFP4 on SGLang 0.5.21, one GB10", "sub": "bench"}], "h1": "Qwen3.8-Flash-Next NVFP4 on SGLang 0.5.21 with MTP drafts, n-gram table on disk, one GB10", "models": ["RadixArk/Qwen3.8-Flash-Next-NVFP4"]}, {"path": "tensorfold/qwen3.8-flash-next-mlx-4bit-gb10", "kind": "recipe", "family": "tensorfold", "engine": "TensorFold 0.6.5", "model": "Qwen3.8-Flash-Next MLX 4-bit, MTP drafts, n-gram table on disk", "hardware": "1x GB10, managed limit 110 GiB", "result": "54.7 tokens/s (122 tokens/s at 8 streams)", "measured": "2026-10-09", "github": "https://github.com/edurdias/capyctl-recipes/tree/main/tensorfold/qwen3.8-flash-next-mlx-4bit-gb10", "thumb": "r/tensorfold/qwen3.8-flash-next-mlx-4bit-gb10/bench/summary/summary-wide.png", "reports": [{"href": "r/tensorfold/qwen3.8-flash-next-mlx-4bit-gb10/bench/report.html", "title": "Qwen3.8-Flash-Next MLX 4-bit on TensorFold 0.6.5, one GB10", "sub": "bench"}], "h1": "Qwen3.8-Flash-Next MLX 4-bit on TensorFold 0.6.5 with MTP drafts, n-gram table on disk, one GB10", "models": ["TensorFold/Qwen3.8-Flash-Next-MLX-4bit-MTP"]}, {"path": "vllm/gpt-oss-120b-gb10", "kind": "recipe", "family": "vllm", "engine": "vLLM 0.30.0", "model": "gpt-oss-120b, MXFP4 experts", "hardware": "1x GB10, managed limit 96 GiB", "result": "34.2 tokens/s (107 tokens/s at 8 streams)", "measured": "2026-10-09", "github": "https://github.com/edurdias/capyctl-recipes/tree/main/vllm/gpt-oss-120b-gb10", "thumb": "r/vllm/gpt-oss-120b-gb10/bench/summary/summary-wide.png", "reports": [{"href": "r/vllm/gpt-oss-120b-gb10/bench/report.html", "title": "gpt-oss-120b on vLLM 0.30.0, one GB10", "sub": "bench"}], "h1": "gpt-oss-120b on vLLM 0.30.0, one GB10", "models": ["openai/gpt-oss-120b"]}, {"path": "tensorfold/nemotron-3.5-lightning-30b-a3b-mlx-4bit-32gib-gb10", "kind": "recipe", "family": "tensorfold", "engine": "TensorFold 0.6.5", "model": "Nemotron 3.5 Lightning 30B-A3B MLX 4-bit, MTP drafts", "hardware": "1x GB10, sized for 32 GiB", "result": "137 tokens/s (one request at a time)", "measured": "2026-10-07", "github": "https://github.com/edurdias/capyctl-recipes/tree/main/tensorfold/nemotron-3.5-lightning-30b-a3b-mlx-4bit-32gib-gb10", "thumb": "r/tensorfold/nemotron-3.5-lightning-30b-a3b-mlx-4bit-32gib-gb10/bench/summary/summary-wide.png", "reports": [{"href": "r/tensorfold/nemotron-3.5-lightning-30b-a3b-mlx-4bit-32gib-gb10/bench/report.html", "title": "Nemotron 3.5 Lightning 30B-A3B MLX 4-bit on TensorFold 0.6.5, sized for 32 GiB", "sub": "bench"}], "h1": "Nemotron 3.5 Lightning 30B-A3B MLX 4-bit on TensorFold 0.6.5 with MTP drafts, sized for 32 GiB, one GB10", "models": ["TensorFold/NVIDIA-Nemotron-3.5-Lightning-30B-A3B-MLX-4bit"]}, {"path": "vllm/nemotron-3.5-lightning-30b-a3b-nvfp4-32gib-gb10", "kind": "recipe", "family": "vllm", "engine": "vLLM 0.30.0", "model": "Nemotron 3.5 Lightning 30B-A3B NVFP4", "hardware": "1x GB10, sized for 32 GiB", "result": "69.9 tokens/s (164 tokens/s at 4 streams)", "measured": "2026-10-07", "github": "https://github.com/edurdias/capyctl-recipes/tree/main/vllm/nemotron-3.5-lightning-30b-a3b-nvfp4-32gib-gb10", "thumb": "r/vllm/nemotron-3.5-lightning-30b-a3b-nvfp4-32gib-gb10/bench/summary/summary-wide.png", "reports": [{"href": "r/vllm/nemotron-3.5-lightning-30b-a3b-nvfp4-32gib-gb10/bench/report.html", "title": "Nemotron 3.5 Lightning 30B-A3B NVFP4 on vLLM 0.30.0, sized for 32 GiB", "sub": "bench"}], "h1": "Nemotron 3.5 Lightning 30B-A3B NVFP4 on vLLM 0.30.0, sized for 32 GiB, one GB10", "models": ["nvidia/NVIDIA-Nemotron-3.5-Lightning-30B-A3B-NVFP4"]}, {"path": "sglang/nemotron-3.5-lightning-30b-a3b-nvfp4-32gib-gb10", "kind": "recipe", "family": "sglang", "engine": "SGLang 0.5.21", "model": "Nemotron 3.5 Lightning 30B-A3B NVFP4", "hardware": "1x GB10, sized for 32 GiB", "result": "69.9 tokens/s (163 tokens/s at 4 streams)", "measured": "2026-10-07", "github": "https://github.com/edurdias/capyctl-recipes/tree/main/sglang/nemotron-3.5-lightning-30b-a3b-nvfp4-32gib-gb10", "thumb": "r/sglang/nemotron-3.5-lightning-30b-a3b-nvfp4-32gib-gb10/bench/summary/summary-wide.png", "reports": [{"href": "r/sglang/nemotron-3.5-lightning-30b-a3b-nvfp4-32gib-gb10/bench/report.html", "title": "Nemotron 3.5 Lightning 30B-A3B NVFP4 on SGLang 0.5.21, sized for 32 GiB", "sub": "bench"}], "h1": "Nemotron 3.5 Lightning 30B-A3B NVFP4 on SGLang 0.5.21, sized for 32 GiB, one GB10", "models": ["nvidia/NVIDIA-Nemotron-3.5-Lightning-30B-A3B-NVFP4"]}, {"path": "tensorfold/qwen3.6-35b-a3b-mlx-4bit-32gib-gb10", "kind": "recipe", "family": "tensorfold", "engine": "TensorFold 0.6.5", "model": "Qwen3.6-35B-A3B MLX 4-bit, MTP drafts", "hardware": "1x GB10, sized for 32 GiB", "result": "164 tokens/s (368 tokens/s at 8 streams)", "measured": "2026-10-07", "github": "https://github.com/edurdias/capyctl-recipes/tree/main/tensorfold/qwen3.6-35b-a3b-mlx-4bit-32gib-gb10", "thumb": "r/tensorfold/qwen3.6-35b-a3b-mlx-4bit-32gib-gb10/bench/summary/summary-wide.png", "reports": [{"href": "r/tensorfold/qwen3.6-35b-a3b-mlx-4bit-32gib-gb10/bench/report.html", "title": "Qwen3.6-35B-A3B MLX 4-bit with MTP drafts on TensorFold 0.6.5, sized for 32 GiB", "sub": "bench"}], "h1": "Qwen3.6-35B-A3B MLX 4-bit on TensorFold 0.6.5 with MTP drafts, sized for 32 GiB, one GB10", "models": ["TensorFold/Qwen3.6-35B-A3B-MLX-4bit-MTP"]}, {"path": "vllm/qwen3.6-35b-a3b-nvfp4-32gib-gb10", "kind": "recipe", "family": "vllm", "engine": "vLLM 0.30.0", "model": "Qwen3.6-35B-A3B NVFP4", "hardware": "1x GB10, sized for 32 GiB", "result": "76.7 tokens/s (180 tokens/s at 4 streams)", "measured": "2026-10-07", "github": "https://github.com/edurdias/capyctl-recipes/tree/main/vllm/qwen3.6-35b-a3b-nvfp4-32gib-gb10", "thumb": "r/vllm/qwen3.6-35b-a3b-nvfp4-32gib-gb10/bench/summary/summary-wide.png", "reports": [{"href": "r/vllm/qwen3.6-35b-a3b-nvfp4-32gib-gb10/bench/report.html", "title": "Qwen3.6-35B-A3B NVFP4 on vLLM 0.30.0, sized for 32 GiB", "sub": "bench"}], "h1": "Qwen3.6-35B-A3B NVFP4 on vLLM 0.30.0, sized for 32 GiB, one GB10", "models": ["nvidia/Qwen3.6-35B-A3B-NVFP4"]}, {"path": "sglang/qwen3.6-35b-a3b-nvfp4-32gib-gb10", "kind": "recipe", "family": "sglang", "engine": "SGLang 0.5.21", "model": "Qwen3.6-35B-A3B NVFP4", "hardware": "1x GB10, sized for 32 GiB", "result": "83.5 tokens/s (186 tokens/s at 4 streams)", "measured": "2026-10-07", "github": "https://github.com/edurdias/capyctl-recipes/tree/main/sglang/qwen3.6-35b-a3b-nvfp4-32gib-gb10", "thumb": "r/sglang/qwen3.6-35b-a3b-nvfp4-32gib-gb10/bench/summary/summary-wide.png", "reports": [{"href": "r/sglang/qwen3.6-35b-a3b-nvfp4-32gib-gb10/bench/report.html", "title": "Qwen3.6-35B-A3B NVFP4 on SGLang 0.5.21, sized for 32 GiB", "sub": "bench"}], "h1": "Qwen3.6-35B-A3B NVFP4 on SGLang 0.5.21, sized for 32 GiB, one GB10", "models": ["nvidia/Qwen3.6-35B-A3B-NVFP4"]}, {"path": "vllm/gpt-oss-20b-32gib-gb10", "kind": "recipe", "family": "vllm", "engine": "vLLM 0.30.0", "model": "gpt-oss-20b, MXFP4 experts", "hardware": "1x GB10, sized for 32 GiB", "result": "46.7 tokens/s (195 tokens/s at 8 streams)", "measured": "2026-10-07", "github": "https://github.com/edurdias/capyctl-recipes/tree/main/vllm/gpt-oss-20b-32gib-gb10", "thumb": "r/vllm/gpt-oss-20b-32gib-gb10/bench/summary/summary-wide.png", "reports": [{"href": "r/vllm/gpt-oss-20b-32gib-gb10/bench/report.html", "title": "gpt-oss-20b on vLLM 0.30.0, sized for 32 GiB", "sub": "bench"}], "h1": "gpt-oss-20b on vLLM 0.30.0, sized for 32 GiB, one GB10", "models": ["openai/gpt-oss-20b"]}, {"path": "sglang/gpt-oss-20b-32gib-gb10", "kind": "recipe", "family": "sglang", "engine": "SGLang 0.5.21", "model": "gpt-oss-20b, MXFP4 experts", "hardware": "1x GB10, sized for 32 GiB", "result": "45.8 tokens/s (191 tokens/s at 8 streams)", "measured": "2026-10-07", "github": "https://github.com/edurdias/capyctl-recipes/tree/main/sglang/gpt-oss-20b-32gib-gb10", "thumb": "r/sglang/gpt-oss-20b-32gib-gb10/bench/summary/summary-wide.png", "reports": [{"href": "r/sglang/gpt-oss-20b-32gib-gb10/bench/report.html", "title": "gpt-oss-20b on SGLang 0.5.21, sized for 32 GiB", "sub": "bench"}], "h1": "gpt-oss-20b on SGLang 0.5.21, sized for 32 GiB, one GB10", "models": ["openai/gpt-oss-20b"]}, {"path": "vllm/gemma-4-26b-a4b-nvfp4-32gib-gb10", "kind": "recipe", "family": "vllm", "engine": "vLLM 0.30.0", "model": "Gemma 4 26B-A4B NVFP4", "hardware": "1x GB10, sized for 32 GiB", "result": "30.3 tokens/s (105 tokens/s at 4 streams)", "measured": "2026-10-07", "github": "https://github.com/edurdias/capyctl-recipes/tree/main/vllm/gemma-4-26b-a4b-nvfp4-32gib-gb10", "thumb": "r/vllm/gemma-4-26b-a4b-nvfp4-32gib-gb10/bench/summary/summary-wide.png", "reports": [{"href": "r/vllm/gemma-4-26b-a4b-nvfp4-32gib-gb10/bench/report.html", "title": "Gemma 4 26B-A4B NVFP4 on vLLM 0.30.0, sized for 32 GiB", "sub": "bench"}], "h1": "Gemma 4 26B-A4B NVFP4 on vLLM 0.30.0, sized for 32 GiB, one GB10", "models": ["nvidia/Gemma-4-26B-A4B-NVFP4"]}, {"path": "sglang/gemma-4-26b-a4b-nvfp4-32gib-gb10", "kind": "recipe", "family": "sglang", "engine": "SGLang 0.5.21", "model": "Gemma 4 26B-A4B NVFP4", "hardware": "1x GB10, sized for 32 GiB", "result": "30.0 tokens/s (103 tokens/s at 4 streams)", "measured": "2026-10-07", "github": "https://github.com/edurdias/capyctl-recipes/tree/main/sglang/gemma-4-26b-a4b-nvfp4-32gib-gb10", "thumb": "r/sglang/gemma-4-26b-a4b-nvfp4-32gib-gb10/bench/summary/summary-wide.png", "reports": [{"href": "r/sglang/gemma-4-26b-a4b-nvfp4-32gib-gb10/bench/report.html", "title": "Gemma 4 26B-A4B NVFP4 on SGLang 0.5.21, sized for 32 GiB", "sub": "bench"}], "h1": "Gemma 4 26B-A4B NVFP4 on SGLang 0.5.21, sized for 32 GiB, one GB10", "models": ["nvidia/Gemma-4-26B-A4B-NVFP4"]}, {"path": "vllm/gemma-4-31b-w4a16-32gib-gb10", "kind": "recipe", "family": "vllm", "engine": "vLLM 0.30.0", "model": "Gemma 4 31B QAT INT4 W4A16", "hardware": "1x GB10, sized for 32 GiB", "result": "10.8 tokens/s (22.3 tokens/s at 2 streams)", "measured": "2026-10-07", "github": "https://github.com/edurdias/capyctl-recipes/tree/main/vllm/gemma-4-31b-w4a16-32gib-gb10", "thumb": "r/vllm/gemma-4-31b-w4a16-32gib-gb10/bench/summary/summary-wide.png", "reports": [{"href": "r/vllm/gemma-4-31b-w4a16-32gib-gb10/bench/report.html", "title": "Gemma 4 31B QAT W4A16 on vLLM 0.30.0, sized for 32 GiB", "sub": "bench"}], "h1": "Gemma 4 31B QAT W4A16 on vLLM 0.30.0, sized for 32 GiB, one GB10", "models": ["google/gemma-4-31B-it-qat-w4a16-ct"]}, {"path": "comparisons/qwen3.6-35b-a3b-three-engines-gb10", "kind": "comparison", "family": "comparisons", "engine": "TensorFold 0.6.5, vLLM 0.30.0, SGLang 0.5.21", "model": "Qwen3.6-35B-A3B: TensorFold MLX 4-bit with MTP drafts, vLLM and SGLang NVFP4 without drafts", "hardware": "1x GB10", "result": "The three 32 GiB recipes as served (vLLM and SGLang run 4 requests, TensorFold 8): TensorFold about twice the one-stream decode (162 against 77 and 84 tokens/s) and 368 against 180 and 187 tokens/s at 8 streams; vLLM fastest prefill and time to first token up to 2k; TensorFold least memory", "measured": "2026-10-07", "github": "https://github.com/edurdias/capyctl-recipes/tree/main/comparisons/qwen3.6-35b-a3b-three-engines-gb10", "thumb": "r/comparisons/qwen3.6-35b-a3b-three-engines-gb10/bench/summary/summary-wide.png", "reports": [{"href": "r/comparisons/qwen3.6-35b-a3b-three-engines-gb10/bench/report.html", "title": "Qwen3.6-35B-A3B on one GB10", "sub": "bench"}], "h1": "TensorFold, vLLM and SGLang: Qwen3.6-35B-A3B sized for 32 GiB, one GB10", "models": ["TensorFold/Qwen3.6-35B-A3B-MLX-4bit-MTP", "nvidia/Qwen3.6-35B-A3B-NVFP4"]}, {"path": "tensorfold/qwen3.8-27b-nvfp4-32gib-gb10", "kind": "recipe", "family": "tensorfold", "engine": "TensorFold 0.6.5", "model": "Qwen3.8-27B NVFP4, DFlash2 drafts", "hardware": "1x GB10, sized for 32 GiB", "result": "41.5 tokens/s (73.5 tokens/s at 2 streams)", "measured": "2026-10-06", "github": "https://github.com/edurdias/capyctl-recipes/tree/main/tensorfold/qwen3.8-27b-nvfp4-32gib-gb10", "thumb": "r/tensorfold/qwen3.8-27b-nvfp4-32gib-gb10/bench/summary/summary-wide.png", "reports": [{"href": "r/tensorfold/qwen3.8-27b-nvfp4-32gib-gb10/bench/report.html", "title": "Qwen3.8-27B NVFP4 on TensorFold 0.6.5, DFlash2 drafts, within 32 GiB", "sub": "bench"}], "h1": "Qwen3.8-27B NVFP4 on TensorFold 0.6.5 with DFlash2 drafts, sized for 32 GiB, one GB10", "models": ["nvidia/Qwen3.8-27B-NVFP4"]}, {"path": "vllm/qwen3.8-27b-nvfp4-32gib-gb10", "kind": "recipe", "family": "vllm", "engine": "vLLM 0.30.0", "model": "Qwen3.8-27B NVFP4", "hardware": "1x GB10, sized for 32 GiB", "result": "12.5 tokens/s (46.2 tokens/s at 4 streams)", "measured": "2026-10-06", "github": "https://github.com/edurdias/capyctl-recipes/tree/main/vllm/qwen3.8-27b-nvfp4-32gib-gb10", "thumb": "r/vllm/qwen3.8-27b-nvfp4-32gib-gb10/bench/summary/summary-wide.png", "reports": [{"href": "r/vllm/qwen3.8-27b-nvfp4-32gib-gb10/bench/report.html", "title": "Qwen3.8-27B NVFP4 on vLLM 0.30.0, sized for 32 GiB", "sub": "bench"}], "h1": "Qwen3.8-27B NVFP4 on vLLM 0.30.0, sized for 32 GiB, one GB10", "models": ["nvidia/Qwen3.8-27B-NVFP4"]}, {"path": "sglang/qwen3.8-27b-nvfp4-32gib-gb10", "kind": "recipe", "family": "sglang", "engine": "SGLang 0.5.21", "model": "Qwen3.8-27B NVFP4", "hardware": "1x GB10, sized for 32 GiB", "result": "13.0 tokens/s (one request at a time)", "measured": "2026-10-06", "github": "https://github.com/edurdias/capyctl-recipes/tree/main/sglang/qwen3.8-27b-nvfp4-32gib-gb10", "thumb": "r/sglang/qwen3.8-27b-nvfp4-32gib-gb10/bench/summary/summary-wide.png", "reports": [{"href": "r/sglang/qwen3.8-27b-nvfp4-32gib-gb10/bench/report.html", "title": "Qwen3.8-27B NVFP4 on SGLang 0.5.21, sized for 32 GiB", "sub": "bench"}], "h1": "Qwen3.8-27B NVFP4 on SGLang 0.5.21, sized for 32 GiB, one GB10", "models": ["nvidia/Qwen3.8-27B-NVFP4"]}, {"path": "sglang/frognano-4b-rtx4090", "kind": "recipe", "family": "sglang", "engine": "SGLang 0.5.21", "model": "FrogNano-4B-2609, bf16", "hardware": "1x RTX 4090 Laptop GPU 16 GB", "result": "62.5 tokens/s (381 tokens/s at 7 streams)", "measured": "2026-10-04", "github": "https://github.com/edurdias/capyctl-recipes/tree/main/sglang/frognano-4b-rtx4090", "thumb": "r/sglang/frognano-4b-rtx4090/bench/summary/summary-wide.png", "reports": [{"href": "r/sglang/frognano-4b-rtx4090/bench/report.html", "title": "FrogNano-4B-2609 BF16 on SGLang 0.5.21, one RTX 4090 Laptop GPU", "sub": "bench"}], "h1": "FrogNano-4B-2609 on SGLang 0.5.21, one RTX 4090 Laptop GPU", "models": ["microsoft/FrogNano-4B-2609"]}, {"path": "tensorfold/nemotron-3.5-lightning-30b-a3b-4bit-gb10", "kind": "recipe", "family": "tensorfold", "engine": "TensorFold 0.6.5", "model": "Nemotron 3.5 Lightning 30B-A3B 4-bit, MTP drafts", "hardware": "1x GB10", "result": "135 tokens/s (one request at a time on CUDA)", "measured": "2026-10-04", "github": "https://github.com/edurdias/capyctl-recipes/tree/main/tensorfold/nemotron-3.5-lightning-30b-a3b-4bit-gb10", "thumb": "r/tensorfold/nemotron-3.5-lightning-30b-a3b-4bit-gb10/bench/summary/summary-wide.png", "reports": [{"href": "r/tensorfold/nemotron-3.5-lightning-30b-a3b-4bit-gb10/bench/report.html", "title": "Nemotron 3.5 Lightning 30B-A3B 4-bit on TensorFold 0.6.5", "sub": "bench"}], "h1": "Nemotron 3.5 Lightning 30B-A3B 4-bit on TensorFold 0.6.5, one GB10", "models": ["TensorFold/NVIDIA-Nemotron-3.5-Lightning-30B-A3B-MLX-4bit"]}, {"path": "tensorfold/qwen3.8-27b-nvfp4-gb10", "kind": "recipe", "family": "tensorfold", "engine": "TensorFold 0.6.5", "model": "Qwen3.8-27B NVFP4, DFlash2 drafts", "hardware": "1x GB10", "result": "38.9 tokens/s (195 tokens/s at 8 streams)", "measured": "2026-10-04", "github": "https://github.com/edurdias/capyctl-recipes/tree/main/tensorfold/qwen3.8-27b-nvfp4-gb10", "thumb": "r/tensorfold/qwen3.8-27b-nvfp4-gb10/bench/summary/summary-wide.png", "reports": [{"href": "r/tensorfold/qwen3.8-27b-nvfp4-gb10/bench/report.html", "title": "Qwen3.8-27B NVFP4 on TensorFold 0.6.5, DFlash2 drafts", "sub": "bench"}], "h1": "Qwen3.8-27B NVFP4 on TensorFold 0.6.5 with DFlash2 drafts, one GB10", "models": ["nvidia/Qwen3.8-27B-NVFP4"]}, {"path": "vllm/qwen3-4b-gb10", "kind": "recipe", "family": "vllm", "engine": "vLLM 0.30.0", "model": "Qwen3-4B, bf16", "hardware": "1x GB10", "result": "22.1 tokens/s (205 tokens/s at 8 streams)", "measured": "2026-10-04", "github": "https://github.com/edurdias/capyctl-recipes/tree/main/vllm/qwen3-4b-gb10", "thumb": "r/vllm/qwen3-4b-gb10/bench/summary/summary-wide.png", "reports": [{"href": "r/vllm/qwen3-4b-gb10/bench/report.html", "title": "Qwen3-4B on vLLM 0.30.0", "sub": "bench"}], "h1": "Qwen3-4B on vLLM 0.30.0, one GB10", "models": ["Qwen/Qwen3-4B"]}, {"path": "vllm/qwen3.8-27b-nvfp4-gb10", "kind": "recipe", "family": "vllm", "engine": "vLLM 0.30.0", "model": "Qwen3.8-27B NVFP4, DFlash2 drafts", "hardware": "1x GB10", "result": "23.7 tokens/s (141 tokens/s at 8 streams)", "measured": "2026-10-04", "github": "https://github.com/edurdias/capyctl-recipes/tree/main/vllm/qwen3.8-27b-nvfp4-gb10", "thumb": "r/vllm/qwen3.8-27b-nvfp4-gb10/bench/summary/summary-wide.png", "reports": [{"href": "r/vllm/qwen3.8-27b-nvfp4-gb10/bench/report.html", "title": "Qwen3.8-27B NVFP4 on vLLM 0.30.0, DFlash2 drafts", "sub": "bench"}], "h1": "Qwen3.8-27B NVFP4 on vLLM 0.30.0 with DFlash2 drafts, one GB10", "models": ["nvidia/Qwen3.8-27B-NVFP4"]}, {"path": "sglang/qwen3.8-27b-nvfp4-gb10", "kind": "recipe", "family": "sglang", "engine": "SGLang 0.5.21", "model": "Qwen3.8-27B NVFP4, DFlash2 drafts", "hardware": "1x GB10", "result": "28.2 tokens/s (120 tokens/s at 8 streams)", "measured": "2026-10-04", "github": "https://github.com/edurdias/capyctl-recipes/tree/main/sglang/qwen3.8-27b-nvfp4-gb10", "thumb": "r/sglang/qwen3.8-27b-nvfp4-gb10/bench/summary/summary-wide.png", "reports": [{"href": "r/sglang/qwen3.8-27b-nvfp4-gb10/bench/report.html", "title": "Qwen3.8-27B NVFP4 on SGLang 0.5.21, DFlash2 drafts", "sub": "bench"}], "h1": "Qwen3.8-27B NVFP4 on SGLang 0.5.21 with DFlash2 drafts, one GB10", "models": ["nvidia/Qwen3.8-27B-NVFP4"]}, {"path": "comparisons/tensorfold-0.6.3-vs-0.6.5-qwen3.8-27b-nvfp4-gb10", "kind": "comparison", "family": "comparisons", "engine": "TensorFold 0.6.3, 0.6.5", "model": "Qwen3.8-27B NVFP4, DFlash2 drafts; Nemotron 3.5 Lightning one stream", "hardware": "1x GB10", "result": "Quick check (1, 4, 8 streams; 2k, 32k, 128k): throughput and prefill within 0.4% except one slower one-stream round; identical outputs except the 32k and 128k replies (0.6.4 attention sums); Nemotron one stream 3.4% faster", "measured": "2026-10-04", "github": "https://github.com/edurdias/capyctl-recipes/tree/main/comparisons/tensorfold-0.6.3-vs-0.6.5-qwen3.8-27b-nvfp4-gb10", "thumb": "r/comparisons/tensorfold-0.6.3-vs-0.6.5-qwen3.8-27b-nvfp4-gb10/bench/summary/summary-wide.png", "reports": [{"href": "r/comparisons/tensorfold-0.6.3-vs-0.6.5-qwen3.8-27b-nvfp4-gb10/bench/report.html", "title": "Qwen3.8-27B: TensorFold 0.6.3 vs 0.6.5", "sub": "bench"}], "h1": "TensorFold 0.6.3 vs 0.6.5: Qwen3.8-27B NVFP4 with DFlash2 drafts, one GB10", "models": ["TensorFold/NVIDIA-Nemotron-3.5-Lightning-30B-A3B-MLX-4bit", "nvidia/Qwen3.8-27B-NVFP4"]}, {"path": "comparisons/frognano-4b-nvfp4-three-engines-gb10", "kind": "comparison", "family": "comparisons", "engine": "TensorFold 0.6.3, vLLM 0.30.0, SGLang 0.5.21", "model": "FrogNano-4B-2609 NVFP4, no drafts", "hardware": "1x GB10", "result": "8 running requests on each: vLLM and SGLang 10% to 18% higher decode at 1 to 8 streams (414 and 416 against 352 tokens/s at 8); TensorFold fastest prefill, lowest time to first token at 1 to 5 streams, least memory (10 GiB at 8 streams) and a 5 s warm start", "measured": "2026-10-04", "github": "https://github.com/edurdias/capyctl-recipes/tree/main/comparisons/frognano-4b-nvfp4-three-engines-gb10", "thumb": "r/comparisons/frognano-4b-nvfp4-three-engines-gb10/bench/summary/summary-wide.png", "reports": [{"href": "r/comparisons/frognano-4b-nvfp4-three-engines-gb10/bench/report.html", "title": "FrogNano-4B NVFP4 on three engines", "sub": "bench"}], "h1": "TensorFold, vLLM and SGLang: FrogNano-4B-2609 NVFP4, one GB10", "models": ["capyctl/FrogNano-4B-2609-NVFP4"]}, {"path": "tensorfold/frognano-4b-mlx-4bit-rtx4090", "kind": "recipe", "family": "tensorfold", "engine": "TensorFold 0.6.3", "model": "FrogNano-4B-2609, MLX 4-bit", "hardware": "1x RTX 4090 Laptop GPU 16 GB", "result": "52.4 tokens/s (319 tokens/s at 8 streams)", "measured": "2026-10-03", "github": "https://github.com/edurdias/capyctl-recipes/tree/main/tensorfold/frognano-4b-mlx-4bit-rtx4090", "thumb": "r/tensorfold/frognano-4b-mlx-4bit-rtx4090/bench/summary/summary-wide.png", "reports": [{"href": "r/tensorfold/frognano-4b-mlx-4bit-rtx4090/bench/report.html", "title": "FrogNano-4B-2609 MLX 4-bit on TensorFold 0.6.3, one RTX 4090 Laptop GPU", "sub": "bench"}], "h1": "FrogNano-4B-2609 MLX 4-bit on TensorFold 0.6.3, one RTX 4090 Laptop GPU", "models": ["capyctl/FrogNano-4B-2609-MLX-4bit"]}, {"path": "vllm/frognano-4b-rtx4090", "kind": "recipe", "family": "vllm", "engine": "vLLM 0.30.0", "model": "FrogNano-4B-2609, bf16", "hardware": "1x RTX 4090 Laptop GPU 16 GB", "result": "59.9 tokens/s", "measured": "2026-10-03", "github": "https://github.com/edurdias/capyctl-recipes/tree/main/vllm/frognano-4b-rtx4090", "thumb": "r/vllm/frognano-4b-rtx4090/bench/summary/summary-wide.png", "reports": [{"href": "r/vllm/frognano-4b-rtx4090/bench/report.html", "title": "FrogNano-4B-2609 BF16 on vLLM 0.30.0, one RTX 4090 Laptop GPU", "sub": "bench"}], "h1": "FrogNano-4B-2609 on vLLM 0.30.0, one RTX 4090 Laptop GPU", "models": ["microsoft/FrogNano-4B-2609"]}, {"path": "comparisons/qwen3.8-27b-nvfp4-three-engines-gb10", "kind": "comparison", "family": "comparisons", "engine": "TensorFold 0.6.3, vLLM 0.30.0, SGLang 0.5.21", "model": "Qwen3.8-27B NVFP4, DFlash2 drafts", "hardware": "1x GB10", "result": "8 running requests on each: TensorFold highest aggregate at 1 to 8 streams (194 against 136 and 122 tokens/s at 8) and fastest prefill; SGLang lowest time to first token at 5, 6 and 8 streams; vLLM fastest one-stream decode at 2k and 256k and flat ~51 GiB memory", "measured": "2026-10-03", "github": "https://github.com/edurdias/capyctl-recipes/tree/main/comparisons/qwen3.8-27b-nvfp4-three-engines-gb10", "thumb": "r/comparisons/qwen3.8-27b-nvfp4-three-engines-gb10/bench/summary/summary-wide.png", "reports": [{"href": "r/comparisons/qwen3.8-27b-nvfp4-three-engines-gb10/bench/report.html", "title": "Qwen3.8-27B NVFP4 on three engines", "sub": "bench"}], "h1": "TensorFold, vLLM and SGLang: Qwen3.8-27B NVFP4 with DFlash2 drafts, one GB10", "models": ["nvidia/Qwen3.8-27B-NVFP4"]}, {"path": "sglang/qwen3-4b-gb10", "kind": "recipe", "family": "sglang", "engine": "SGLang 0.5.20", "model": "Qwen3-4B, bf16", "hardware": "1x GB10", "result": "22.4 tokens/s", "measured": "2026-10-02", "github": "https://github.com/edurdias/capyctl-recipes/tree/main/sglang/qwen3-4b-gb10", "thumb": null, "reports": [], "h1": "Qwen3-4B on SGLang 0.5.20, one GB10", "models": ["Qwen/Qwen3-4B"]}, {"path": "comparisons/tensorfold-0.6.1-vs-0.6.2-nemotron-3.5-lightning-gb10", "kind": "comparison", "family": "comparisons", "engine": "TensorFold 0.6.1, 0.6.2", "model": "Nemotron 3.5 Lightning 30B-A3B 4-bit, MTP drafts", "hardware": "1x GB10", "result": "Identical outputs; one-stream speed within 1% (one stream only: neither version batches this model on CUDA)", "measured": "2026-10-02", "github": "https://github.com/edurdias/capyctl-recipes/tree/main/comparisons/tensorfold-0.6.1-vs-0.6.2-nemotron-3.5-lightning-gb10", "thumb": "r/comparisons/tensorfold-0.6.1-vs-0.6.2-nemotron-3.5-lightning-gb10/bench/summary/summary-wide.png", "reports": [{"href": "r/comparisons/tensorfold-0.6.1-vs-0.6.2-nemotron-3.5-lightning-gb10/bench/report.html", "title": "Nemotron 3.5 Lightning 30B-A3B 4-bit: TensorFold 0.6.1 vs 0.6.2", "sub": "bench"}], "h1": "TensorFold 0.6.1 vs 0.6.2: Nemotron 3.5 Lightning 30B-A3B 4-bit, one GB10", "models": ["TensorFold/NVIDIA-Nemotron-3.5-Lightning-30B-A3B-MLX-4bit"]}, {"path": "comparisons/tensorfold-0.6.1-vs-0.6.2-qwen3.8-27b-nvfp4-gb10", "kind": "comparison", "family": "comparisons", "engine": "TensorFold 0.6.1, 0.6.2", "model": "Qwen3.8-27B NVFP4, DFlash2 drafts", "hardware": "1x GB10", "result": "Identical outputs; 0.6.2 0.5% to 2.0% higher aggregate at 1 to 8 streams; context sweep to 128k within about 1%", "measured": "2026-10-02", "github": "https://github.com/edurdias/capyctl-recipes/tree/main/comparisons/tensorfold-0.6.1-vs-0.6.2-qwen3.8-27b-nvfp4-gb10", "thumb": "r/comparisons/tensorfold-0.6.1-vs-0.6.2-qwen3.8-27b-nvfp4-gb10/bench/summary/summary-wide.png", "reports": [{"href": "r/comparisons/tensorfold-0.6.1-vs-0.6.2-qwen3.8-27b-nvfp4-gb10/bench/report.html", "title": "Qwen3.8-27B: TensorFold 0.6.1 vs 0.6.2", "sub": "bench"}], "h1": "TensorFold 0.6.1 vs 0.6.2: Qwen3.8-27B NVFP4 with DFlash2 drafts, one GB10", "models": ["nvidia/Qwen3.8-27B-NVFP4"]}, {"path": "comparisons/tensorfold-0.6.2-vs-0.6.3-qwen3.8-27b-nvfp4-gb10", "kind": "comparison", "family": "comparisons", "engine": "TensorFold 0.6.2, 0.6.3", "model": "Qwen3.8-27B NVFP4, DFlash2 drafts", "hardware": "1x GB10", "result": "Quick check (1, 4, 8 streams; 2k, 32k, 128k): identical outputs; throughput and decode within 1% at every point", "measured": "2026-10-02", "github": "https://github.com/edurdias/capyctl-recipes/tree/main/comparisons/tensorfold-0.6.2-vs-0.6.3-qwen3.8-27b-nvfp4-gb10", "thumb": "r/comparisons/tensorfold-0.6.2-vs-0.6.3-qwen3.8-27b-nvfp4-gb10/bench/summary/summary-wide.png", "reports": [{"href": "r/comparisons/tensorfold-0.6.2-vs-0.6.3-qwen3.8-27b-nvfp4-gb10/bench/report.html", "title": "Qwen3.8-27B: TensorFold 0.6.2 vs 0.6.3", "sub": "bench"}], "h1": "TensorFold 0.6.2 vs 0.6.3: Qwen3.8-27B NVFP4 with DFlash2 drafts, one GB10", "models": ["nvidia/Qwen3.8-27B-NVFP4"]}]; | |
| const ENG={vllm:/vllm/i,sglang:/sglang/i,tensorfold:/tensorfold/i,llamacpp:/llama\.cpp/i,custom:/custom/i}; | |
| const P=new URLSearchParams(location.search);let kind="all",fam="all",model=P.get("model");const grid=document.getElementById("grid"),q=document.getElementById("q"),count=document.getElementById("count"); | |
| function strip(s){const d=document.createElement("div");d.innerHTML=s;return d.textContent} | |
| function render(){const t=q.value.trim().toLowerCase();let n=0;grid.innerHTML=""; | |
| for(const d of DATA){if(model&&!d.models.includes(model))continue;if(kind!=="all"&&d.kind!==kind)continue; | |
| if(fam!=="all"&&!(d.family===fam||(d.kind==="comparison"&&ENG[fam].test(strip(d.engine)))))continue; | |
| const hay=(d.path+" "+strip(d.engine)+" "+strip(d.model)+" "+strip(d.hardware)+" "+strip(d.result)).toLowerCase();if(t&&!t.split(/\s+/).every(w=>hay.includes(w)))continue;n++; | |
| const main=d.reports[0];const c=document.createElement("article");c.className="card"; | |
| c.innerHTML=(d.thumb?`<a class="thumb" href="${main.href}" target="_blank" rel="noopener"><img loading="lazy" src="${d.thumb}" alt=""></a>`:"")+ | |
| `<div class="body"><div class="tags"><span class="tag k">${d.kind}</span><span class="tag">${d.hardware}</span><span class="tag">${d.measured}</span></div>`+ | |
| `<h3>${d.kind==="comparison"?d.h1:d.model}</h3><p class="eng">${d.kind==="comparison"?d.model+" · ":""}${d.engine}</p><p class="res">${d.result}</p><div class="links">`+ | |
| d.reports.map((r,i)=>`<a href="${r.href}" target="_blank" rel="noopener" title="${r.title}">${i===0?"Report":r.sub.replace(/^bench\//,"")}</a>`).join("")+ | |
| `<a href="${d.github}" target="_blank" rel="noopener">${d.kind==="recipe"?"Recipe":"Method and evidence"} on GitHub</a></div></div>`;grid.appendChild(c)} | |
| count.textContent=n+" of "+DATA.length+" shown"+(model?", measured with "+model+" · ":"");if(model){const a=document.createElement("a");a.href="?";a.textContent="show all";a.onclick=e=>{e.preventDefault();model=null;history.replaceState(null,"","?");render()};count.appendChild(a)}} | |
| document.querySelectorAll("[data-k]").forEach(b=>b.onclick=()=>{kind=b.dataset.k;document.querySelectorAll("[data-k]").forEach(x=>x.setAttribute("aria-pressed",x===b));render()}); | |
| document.querySelectorAll("[data-f]").forEach(b=>b.onclick=()=>{fam=b.dataset.f;document.querySelectorAll("[data-f]").forEach(x=>x.setAttribute("aria-pressed",x===b));render()}); | |
| if(P.get("q"))q.value=P.get("q");q.oninput=render;render(); | |
| </script></body></html> |