PXA Network
PXA engine · PXA Control · v3.1

Big models, fast, on the Tesla P100 and V100 cards everyone else stopped tuning for.

A llama.cpp-based engine with its own quant format (PXQN), MTP speculation, expert streaming for models bigger than the card, tensor split and hand-written Pascal and Volta kernels, and PXA Control, the app that runs it. Every number below is a ledger row.

+42.0%
27B decode vs a popular community fork
Qwen3.8-27B on 2x P100: 26.67 vs 18.78 tok/s (tg128), same bracket
msg 21071 · 2026-10-14 · not quiet
138.11tok/s
35B-A3B MoE + MTP on two P100s
+4.5% vs the same fork's 132.06, same bracket, its own client
rows 7409 / 7405 · 2026-10-15 · not quiet
+84.1%
28k-token prompt, one V100
Flash-Next with experts streamed over PCIe x4: 597.3 vs 324.3 tok/s, det 12/12
rows 7402 / 7401 · 2026-10-15
Head to head

Against a popular community fork, on its home turf

The fork is tuned for Pascal. We ran its own build, its own files and its README flags against ours, same box, same bracket. Every P100 cell is now ours, prompt reading included (the +23.2% at 16k is an opt-in lever set).

Qwen3.8-27B dense, 2x P100

tg128 +42.0% vs the fork
tok/s decode · cards 5+6, 2026-10-14 18:12-19:50 EDT, llama-bench -sm layer -ts 1.15/1 -b 4096 -ub 1536 q8_0 KV, r3 twice ABBA
  • Ours: our P100 stack + PXQN4 (15.72 GB)
  • A popular community fork
0102030tg128Ours, tg128: 26.67 tok/s decode (msg 21071)26.67A popular community fork, tg128: 18.78 tok/s decode (msg 21071)18.780102030tg128Ours, tg128: 26.67 tok/s decode (msg 21071)26.67A popular community fork, tg128: 18.78 tok/s decode (msg 21071)18.78
NOT-QUIET box (load 15-22)msg 21071

Qwen3.8-27B dense, 2x P100

pp512 +20.3% vs the fork
tok/s prefill · cards 5+6, 2026-10-14 18:12-19:50 EDT, llama-bench -sm layer -ts 1.15/1 -b 4096 -ub 1536 q8_0 KV, r3 twice ABBA
  • Ours: our P100 stack + PXQN4 (15.72 GB)
  • A popular community fork
0100200300pp512Ours, pp512: 253.4 tok/s prefill (msg 21071)253.4A popular community fork, pp512: 210.5 tok/s prefill (msg 21071)210.50100200300pp512Ours, pp512: 253.4 tok/s prefill (msg 21071)253.4A popular community fork, pp512: 210.5 tok/s prefill (msg 21071)210.5
NOT-QUIET box (load 15-22)msg 21071

Qwen3.6-35B-A3B MoE + MTP, 2x P100

greedy +4.5% · sampled +5.5% vs the fork
tok/s decode · cards 0+1, 2026-10-15 06:05-06:21 EDT (board b3), the fork's own client, 8 prompts x 256, REPS 3
  • Ours: PXA 4.0 optimizations
  • A popular community fork
050100150greedysampledOurs, greedy: 138.11 tok/s decode (row 7409)138.11A popular community fork, greedy: 132.06 tok/s decode (row 7405)132.06Ours, sampled: 131.2 tok/s decode (row 7410)131.2A popular community fork, sampled: 124.27 tok/s decode (row 7406)124.27050100150greedysampledOurs, greedy: 138.11 tok/s decode (row 7409)138.11A popular community fork, greedy: 132.06 tok/s decode (row 7405)132.06Ours, sampled: 131.2 tok/s decode (row 7410)131.2A popular community fork, sampled: 124.27 tok/s decode (row 7406)124.27
NOT-QUIET box (load 11-15)row 7409, row 7410, row 7405, row 7406

Qwen3.6-35B-A3B MoE prompt reading, 2x P100

pp512 +26.1% · pp4096 +24.6% · pp16384 +23.2% vs the fork
tok/s prefill · cards 0+1, 2026-10-15 14:09-14:34 EDT, llama-bench -sm layer -ts 1.15/1 -b 4096 -ub 1536 r3; fork arms at 14:09 and 14:18, ours at 14:30-14:34 (same session)
  • Ours: opt-in long-prefill set: opt-in preset + opt-in preset (d33552b144)
  • A popular community fork
01K2K3Kpp512pp4096pp16384Ours, pp512: 1202.61 tok/s prefill (row 7507)1202.61A popular community fork, pp512: 953.30 tok/s prefill (row 7492, row 7504)953.30Ours, pp4096: 1947.93 tok/s prefill (row 7508)1947.93A popular community fork, pp4096: 1562.48 tok/s prefill (row 7493, row 7505)1562.48Ours, pp16384: 1803.34 tok/s prefill (row 7509)1803.34A popular community fork, pp16384: 1462.83 tok/s prefill (row 7494, row 7506)1462.8301K2K3Kpp512pp4096pp16384Ours, pp512: 1202.61 tok/s prefill (row 7507)1202.61A popular community fork, pp512: 953.30 tok/s prefill (row 7492, row 7504)953.30Ours, pp4096: 1947.93 tok/s prefill (row 7508)1947.93A popular community fork, pp4096: 1562.48 tok/s prefill (row 7493, row 7505)1562.48Ours, pp16384: 1803.34 tok/s prefill (row 7509)1803.34A popular community fork, pp16384: 1462.83 tok/s prefill (row 7494, row 7506)1462.83
NOT-QUIET box (load 30-50)row 7507, row 7508, row 7509, row 7492, row 7504, row 7493, row 7505, row 7494, row 7506
Scoreboard

4.0 against v3.1, same box

Numbers are from the development branches that become 4.0 (the integration branch), not from a published build. Cells measured on a busy box say so; the Speed page has the row ids, brackets and method for each.

CellClassesOursBaselineChangeStatus
V100 1x Overdrive1x Tesla V100 16 GBprose / code38.77 / 47.4732.42 / 36.08prose +19.5% · code +31.5%candidate
V100 27B MTP1x Tesla V100 16 GBprose / code62.43 / 84.3859.50 / 65.45prose +4.9% · code +28.9%gated, opt-in
V100 27B plain decode1x Tesla V100 16 GBprose / code41.81 / 41.82two stepsprose +2.9% · code +3.2%default on
P100 27B1x Tesla P100 16 GBprose / code27.77 / 27.8325.61 / 25.62prose +8.4% · code +8.6%opt-in
2x P100 27B tensor split2x Tesla P100 16 GBprose / code38.0 / 38.0425.74 / 25.76prose +47.6% · code +47.6%default on
P100 MoE 35B-A3B MTP2x Tesla P100 16 GBgreedy / sampled138.11 / 131.299.59 / 96.42greedy +38.6% · sampled +36.0%gated
2x Overdrive2x Tesla V100 16 GBprose / code63.31 / 74.3759.05 / 70.22prose +7.2% · code +5.9%default on
2x P100 Overdrive2x Tesla P100 16 GBprose / code / pp8k / pp16k / pp30k40.94 / 47.29 / 300.0 / 290.0 / 267.038.11 / 44.88 / 250.0 / 235.0 / 208.0prose +7.4% · code +5.3% · pp8k +20.0% · pp16k +23.4% · pp30k +28.3%default on
Flash-Next 28k prefill1x Tesla V100 16 GBpp28k597.3324.3pp28k +84.1%default on
P100 27B MTPP100––––no number yet
GLM6-7 cards––––no number yet
Graphs

Where the time went

Hover or tap a bar for its ledger row. Each chart has its own axis; decode and prompt reading never share one.

2x P100 27B tensor split

prose +47.6% · code +47.6% vs baseline
2x Tesla P100 16 GB · Qwen3.8-27B PXQN4 · tok/s decode
  • Ours: -sm tensor (auto pick)
  • Baseline: -sm layer, same binary
010203040prosecodeOurs, prose: 38.0 tok/s decode (row 7462)38.0Baseline: -sm layer, same binary, prose: 25.74 tok/s decode (row 7464)25.74Ours, code: 38.04 tok/s decode (row 7463)38.04Baseline: -sm layer, same binary, code: 25.76 tok/s decode (row 7465)25.76010203040prosecodeOurs, prose: 38.0 tok/s decode (row 7462)38.0Baseline: -sm layer, same binary, prose: 25.74 tok/s decode (row 7464)25.74Ours, code: 38.04 tok/s decode (row 7463)38.04Baseline: -sm layer, same binary, code: 25.76 tok/s decode (row 7465)25.76
NOT-QUIET box (lane reports every cell of that window as not quiet)row 7462, row 7463, row 7464, row 7465

P100 MoE 35B-A3B MTP

greedy +38.6% · sampled +36.0% vs baseline
2x Tesla P100 16 GB · Qwen3.6-35B-A3B-MTP PXQN4 · tok/s decode
  • Ours: PXA 4.0 optimizations
  • Baseline: our 10-14 stack (c919fc1afb, base recipe)
  • A popular community fork
050100150greedysampledOurs, greedy: 138.11 tok/s decode (row 7409)138.11Baseline: our 10-14 stack (c919fc1afb, base recipe), greedy: 99.59 tok/s decode (row 7407)99.59A popular community fork, greedy: 132.06 tok/s decode (row 7405)132.06Ours, sampled: 131.2 tok/s decode (row 7410)131.2Baseline: our 10-14 stack (c919fc1afb, base recipe), sampled: 96.42 tok/s decode (row 7408)96.42A popular community fork, sampled: 124.27 tok/s decode (row 7406)124.27050100150greedysampledOurs, greedy: 138.11 tok/s decode (row 7409)138.11Baseline: our 10-14 stack (c919fc1afb, base recipe), greedy: 99.59 tok/s decode (row 7407)99.59A popular community fork, greedy: 132.06 tok/s decode (row 7405)132.06Ours, sampled: 131.2 tok/s decode (row 7410)131.2Baseline: our 10-14 stack (c919fc1afb, base recipe), sampled: 96.42 tok/s decode (row 7408)96.42A popular community fork, sampled: 124.27 tok/s decode (row 7406)124.27
NOT-QUIET box (load 11-15)row 7409, row 7410, row 7407, row 7408, row 7405, row 7406

Flash-Next 28k prefill

pp28k +84.1% vs baseline
1x Tesla V100 16 GB · Qwen3.8 Flash-Next PXQN (fn32) · tok/s prefill
  • Ours: opt-in preset: -ub 4096 when experts stream
  • Baseline: same server, today's automatic -ub 2048
0200400600800pp28kOurs, pp28k: 597.3 tok/s prefill (row 7402)597.3Baseline: same server, today's automatic -ub 2048, pp28k: 324.3 tok/s prefill (row 7401)324.30200400600800pp28kOurs, pp28k: 597.3 tok/s prefill (row 7402)597.3Baseline: same server, today's automatic -ub 2048, pp28k: 324.3 tok/s prefill (row 7401)324.3
inside a posted QUIET bracket on cores 54-71; box load not recordedrow 7402, row 7401

V100 27B MTP

prose +4.9% · code +28.9% vs baseline
1x Tesla V100 16 GB · Qwen3.8-27B PXQN4 · tok/s decode
  • Ours: PXA 4.0 optimizations
  • Baseline: shipping MTP ramp (depth 1 below 8k), same engine
0255075100prosecodeOurs, prose: 62.43 tok/s decode (row 7228, row 7240)62.43Baseline: shipping MTP ramp (depth 1 below 8k), same engine, prose: 59.50 tok/s decode (row 7238, row 7244)59.50Ours, code: 84.38 tok/s decode (row 7229, row 7241)84.38Baseline: shipping MTP ramp (depth 1 below 8k), same engine, code: 65.45 tok/s decode (row 7239, row 7245)65.450255075100prosecodeOurs, prose: 62.43 tok/s decode (row 7228, row 7240)62.43Baseline: shipping MTP ramp (depth 1 below 8k), same engine, prose: 59.50 tok/s decode (row 7238, row 7244)59.50Ours, code: 84.38 tok/s decode (row 7229, row 7241)84.38Baseline: shipping MTP ramp (depth 1 below 8k), same engine, code: 65.45 tok/s decode (row 7239, row 7245)65.45
NOT-QUIET box (load 7-24)row 7228, row 7240, row 7229, row 7241, row 7238, row 7244, row 7239, row 7245

2x Overdrive

prose +7.2% · code +5.9% vs baseline
2x Tesla V100 16 GB · PXA 4.0 optimizations · tok/s decode
  • Ours: PXA 4.0 optimizations
  • Baseline: PXA 4.0 optimizations
020406080prosecodeOurs, prose: 63.31 tok/s decode (row 7442)63.31Baseline: PXA 4.0 optimizations, prose: 59.05 tok/s decode (row 7446)59.05Ours, code: 74.37 tok/s decode (row 7443)74.37Baseline: PXA 4.0 optimizations, code: 70.22 tok/s decode (row 7447)70.22020406080prosecodeOurs, prose: 63.31 tok/s decode (row 7442)63.31Baseline: PXA 4.0 optimizations, prose: 59.05 tok/s decode (row 7446)59.05Ours, code: 74.37 tok/s decode (row 7443)74.37Baseline: PXA 4.0 optimizations, code: 70.22 tok/s decode (row 7447)70.22
NOT-QUIET box (load ~20)row 7442, row 7443, row 7446, row 7447

V100 1x Overdrive

prose +19.5% · code +31.5% vs baseline
1x Tesla V100 16 GB · PXA 4.0 optimizations · tok/s decode
  • Ours: PXA 4.0 optimizations
  • Baseline: shipping 1x preset as-is (preset A)
0204060prosecodeOurs, prose: 38.77 tok/s decode (row 7186)38.77Baseline: shipping 1x preset as-is (preset A), prose: 32.42 tok/s decode (row 7052, row 7070)32.42Ours, code: 47.47 tok/s decode (row 7187)47.47Baseline: shipping 1x preset as-is (preset A), code: 36.08 tok/s decode (row 7053, row 7071)36.080204060prosecodeOurs, prose: 38.77 tok/s decode (row 7186)38.77Baseline: shipping 1x preset as-is (preset A), prose: 32.42 tok/s decode (row 7052, row 7070)32.42Ours, code: 47.47 tok/s decode (row 7187)47.47Baseline: shipping 1x preset as-is (preset A), code: 36.08 tok/s decode (row 7053, row 7071)36.08
NOT-QUIET box (load 7-24) for ours; the baseline window was load-controlledrow 7186, row 7187, row 7052, row 7070, row 7053, row 7071

All cells, with method and row ids →

PXQN quants with measured quality classes

Every tier carries a measured KL class on Qwen3.8-27B: PXQN2 behaves like a classic 3-bit file at 2-bit size (9.6 GB, KL 0.161); PXQN4 is 6-bit class in 15.7 GB (KL 0.0079); PXQN5 matches Q6_K (0.0022 vs 0.0023) in 84% of the space.

Kernels written for sm_60, sm_61 and sm_70

P100, GTX 1080 Ti / P40 and V100 get their own decode, verify and attention paths, using the instructions these chips really have.

Settings measured per card and model

Split mode, batch sizes, context, flash attention, speculation and KV type come from one measured table. Every choice prints at boot as a opt-in preset line; a flag you type always wins.

MTP and n-gram speculation, chosen per model

A file with an MTP head uses it where it pays; others get the n-gram drafter. Sampled drafts are accepted with the lossless rule, so the output distribution is the model's own.

Tensor split

Two identical P100s or V100s (or four P100s) split every layer; the residual add, the two-card sum and the next norm run in one launch per card. Falls back to the layer split instead of stopping.

Expert cache for MoE files bigger than the card

Hot experts stay on the card, cold ones run from system RAM on a PXQN CPU matmul; the server profiles the routing once and can learn a better map per session. This is how a 32 GB Flash-Next file runs on one 16 GB card.

Flash-Next Overdrive on one P100

A measured preset: 26.91 to 30.70 t/s prose and 32.28 to 37.96 code (+14% / +18%).

Long context on one card

Checkpoint budgeting lets a 27B fit 131k context on one 16 GB card; a needle test at 125,000 tokens passes on one P100 and one V100.

PXA 4.0 optimizations

144.9 / 155.6 t/s prose / code on one V100 with the assistant drafter (-md).

Hot model swap

they wait in pinned host RAM and the request's model field picks which one is on the cards (Volta and newer).

Runs on old CPUs

No AVX2? The launchers pick a compatibility library on their own; card speed is unchanged.

One tarball, one container, one updater

The tarball carries its own CUDA 12.8 runtime; ghcr.io/poisonxa16/pxa:v3.1 carries the same binaries; pxa-update apply / rollback switches versions and keeps your models.

PXA Control

Your rig, one click from serving

The browser app that finds your cards, reads your models, launches a server with measured settings and shows you every token per second. Real captures from the test box; the theme follows yours.

Every tab, light and dark, desktop and phone →

Platforms

Where it runs

The engine needs NVIDIA Pascal or Volta cards on Linux. Control also runs on machines without them and drives your rig over the network.

available

Linux x86_64

Engine + PXA Control tarball (CUDA 12.8 runtime inside, sm_60/61/70), Ubuntu 24.04 and a 22.04 variant

v3.1 · get it

available

Linux container

ghcr.io/poisonxa16/pxa:v3.1, same binaries, Compose file

v3.1 · get it

4.0

Linux one-file installer

pxa-<version>-linux-x86_64.run: verifies its own sha256, unpacks once, adds a menu entry, opens Control signed in

4.0-pre build (file name still says v3.2pre)

in testing

Windows x64

PXA Control .exe (tray app) + engine zip

4.0-pre build (file name still says v3.2pre)

in testing

macOS (Intel)

PXA Control as one file; drives a rig on your network (no CUDA on a Mac)

4.0-pre build (file name still says v3.2pre)

in testing

Android

PXA Control as an installable PWA and a small APK wrapper for your rig on the LAN

4.0-pre build (file name still says v3.2pre)

Licences

Free to run. Supporters unlock the PXQN tier.

Free

  • The engine and PXA Control
  • Classic PXQ quants and the Free encoder
  • Standard GGUF files

Supporter Ko-fi

  • PXQN quants and the Pro encoder key (/encoder on the Discord)
  • Store credits for plugins and the measured Overdrive presets
  • The #supporters channel

Valued Supporter

  • Everything above, early access and roadmap votes
  • One custom quant request a month, licence permitting
  • Your name in the release notes

Credits come from Ko-fi and show up in PXA Control's Store tab. The engine is MIT-licensed; the PXQN kernels ship compiled.

FAQ

Questions

Which cards does it run on?

Tesla P100 (sm_60) and Tesla V100 (sm_70) are tuned and measured; GTX 1080 Ti and other Pascal sm_61 cards work. RTX 20-series and newer are not in this build.

Do I have to use PXA quants?

No. Standard GGUF files (Q4_K_M, Q8_0 and the rest) load and run on the same server. The speed work targets PXQ and PXQN files, so use a PXA quant when a model has one.

Where do the numbers come from?

Every number on this site is a row in our speed ledger, measured on one box with four P100s and two V100s on PCIe gen3 x4. The Speed page names the row id, the date, the bracket and the method for each one.

Why is my output different from the last version?

New kernels add numbers in a different order, which can flip a near-tie between two words. Our quality test scores the same; every speed lever here is either bit-identical or listed as opt-in.

Do I need NVLink?

No. Plain PCIe works; the engine tests peer copies at start and falls back to a safe route on boards where they misbehave.

What does it cost?

The engine, PXA Control and the classic PXQ quants are free. Supporter credits from Ko-fi unlock the PXQN quants, plugins and Overdrive presets in the Store tab.

Is anything sent off my machine?

No telemetry. The engine runs locally with an OpenAI-style API. Control's benchmark upload and problem reports send only when you press the button, and show the payload first.