
27B BF16 要 54GB,塞不进任何一张消费卡——除非你的卡是 8 年没人再调的 V100 或 P100。PXA(10/2 刚发版,MIT)就是为这批"别人都放弃"的洋垃圾做的量化推理引擎:单张 V100 跑 27B 代码 61.2 t/s、双卡 107.6 t/s、16GB 单卡塞下 131K 上下文。本文把它的量化格式 PXQN 精度表、多卡速度表、v2026.10.1 修复数据全部拆开,附本站 R9700 实测的横向对照。
引擎仓库:poisonxa16/pxa(61★,MIT,2026-09-07 创建,2026-10-02 发版 v2026.10,10-03 仍在推送)。
PXA 解决什么问题
Pascal(GTX 10 系、P100、V100)和 Volta(V100)的 compute capability 是 6.0/6.1/7.0。这批卡二手价格极低(V100 32GB 千元级、P100 16GB 几百元),但主流引擎对它们的调优早已停滞——llama.cpp 能跑,但速度远没有榨干。PXA 是专攻这批卡的引擎:PXQN 量化格式 + 针对 sm60/61/70 的手写 kernel + tensor split 多卡 + MTP 投机解码 + 一键浏览器 GUI(PXA Control)。
零配置上手:解包 release tarball(CUDA 12.8 构建)→ ./pxa-launch --gui → 选卡选模型按 Start。不需要 Docker、不需要编译工具链、不回传任何数据。
PXQN 量化格式:29% 的体积,97% 的保真
PXQN 是 PXA 自研的量化格式(Pascal/Volta 专用,只能在这批卡上加载,旧版 PXQ 文件仍兼容)。精度用 KL 散度对 Q8_0 参照物打分(chat 格式测试集 15,065 个 assistant token,越低越接近原模型):
| 文件(Qwen3.8-27B) | 体积 | 占 BF16 | KL 散度 | 同 top token | 同体积经典 PXQ |
|---|---|---|---|---|---|
| PXQN3 | 12.6 GB | 23% | 0.0360 | 94.0% | PXQ3: 0.2033 |
| PXQN3bal | 13.5 GB | 25% | 0.0248 | 94.9% | PXQ3bal: 0.0711 |
| 单卡 27B | 13.6 GB | 25% | 0.0213 | 95.1% | — |
| PXQN4 | 15.7 GB | 29% | 0.0079 | 97.1% | PXQ4U: 0.0192 |
| PXQN4S8 | 16.5 GB | 31% | 0.0076 | 97.0% | PXQ4-HQ: 0.0153 |
| PXQN5 | 18.8 GB | 35% | 0.0022 | 98.4% | PXQ6: 0.0076 |
| K-quant Q4_K_S(参照) | 15.4 GB | 28% | 0.0163 | 96.2% | — |
| K-quant Q6_K(参照) | 22.4 GB | 42% | 0.0023 | 98.3% | — |
三个结论(官方表直接读数):
- PXQN4(15.7GB)的保真度 = 经典 PXQ6(18.8GB)——省 3GB 下载;
- PXQN5(18.8GB)与 Q6_K(22.4GB)打平(0.0022 vs 0.0023),体积只有 84%;
- K-quant 有占优处:Q4_K_S 比 PXQN3bal 更保真但更大;PXQN4 比 Q4_K_S 保真度高约一倍,只贵 2% 的字节。
单卡 27B 文件 12.6–13.6GB,一张 16GB 卡装下模型 + 131K 上下文——这是 8 年前没人调过的那批卡给不出来的。
多卡速度表(v2026.10+ 首测口径,greedy,无 prompt cache)
| 卡 | 文件 | Prefill | 普通 decode | MTP 散文 | MTP 代码 |
|---|---|---|---|---|---|
| 2× V100 | PXQN4 (15.7GB) | 924 | 56.4 | 77.1 | 107.6 |
| 1× V100 | 单卡 27B (13.6GB) | 1000 | 35.1 | 55.6 | 61.2 |
| 2× P100 | PXQN4 (15.7GB) | 345 | 37.8 | 47.1 | 66.2 |
| 4× P100 | PXQN4 (15.7GB) | 440 | 30.7 | — | — |
| 1× P100 | 单卡 27B (13.6GB) | 252 | 24.2 | 31.6 | 35.2 |
MTP 用的是模型自带的 MTP head(不是外挂草稿模型):多卡 tensor split 下自动开启;单卡加 --spec-type mtp:n_max=1。4×P100 的测试机每张卡都跑 x4 PCIe 链路——所以 27B 上 2 卡 decode 最快、4 卡换 prefill 和更大模型空间(Flash-Next 98.7GB 需要 4 卡 tensor split:36.3 t/s / prefill 510)。
v2026.10.1 修复(重要坑,版本旧的用户注意):单卡 V100/P100 的 decode 在 v2026.10 有 bug——单 V100 从 22.7 修到 34.0、单 P100 从 19.9 修到 24.0;双卡组合(56.4 / 37.8)从未受影响。用 v2026.10 测出"单卡慢"的,先升级 v2026.10.1 再下结论。
其他模型(同一批卡)
| 模型 | 部署 | Decode | Prefill |
|---|---|---|---|
| Ornith 1.5 35B-A3B (PXQ4) | 2×P100 layer split | ~67 | — |
| Ornith 1.5 35B-A3B | 1×V100 expert cache(模型大于卡) | 56.3 | — |
| Gemma 4 26B-A4B(Google QAT q4_0) | 1×V100 普通 | 115 | 2044 (4k) |
| Gemma 4 26B-A4B | 1×V100 MTP 上游 drafter | 135 散文 / 134 代码(n_max=2 约 150) | — |
Gemma 4 26B-A4B 的单 V100 135 t/s 是整张表里最亮的一格——MoE 小激活模型正好是洋垃圾卡的主场。
横向对照:PXA(V100/P100) vs 本站 R9700 实测
| 配置 | 27B 代码 decode | 来源 |
|---|---|---|
| 2× V100 PXA MTP | 107.6 t/s | PXA README 首测 |
| 1× V100 PXA MTP | 61.2 t/s | PXA README 首测 |
| 1× R9700 vllm-radiance | 161 t/s 峰值 | 本站单卡实测 |
| 1× R9700 SGLang(锁 250W) | 96.4 t/s | 本站实测 |
| 1× R9700 原生 ROCm vLLM | 32 t/s | 本站实测 |
读法(标注:跨引擎跨卡对比,非同卡同引擎):一张二手 V100 32GB 的钱能拿到 R9700 原生 ROCm 的 2 倍速度;而 R9700 走 vllm-radiance 的单卡速度约是 2×V100 的 1.5 倍、显存翻倍还多出 RDNA4 的 NVFP4 原生算力——洋垃圾赢在价格,新卡赢在能效和算力上限。预算几百到千元、要 27B 日常可用,PXA + V100 是性价比最暴力的一档;要长期跑 + 后续上更大模型,单张 R9700 更划算。
结论
- PXA 是洋垃圾卡用户 2026 年目前最完整的方案:自研量化格式(PXQN,精度/体积双优)+ 老卡专用 kernel + MTP 投机(单卡 35→61 t/s)+ 一键 GUI。
- 量化选型:单卡用"单卡 27B"文件(25% 体积 95.1% 保真);双卡上 PXQN4(97.1% 保真,只比 Q6_K 差一点、省 29% 体积)。
- 坑:v2026.10 单卡 decode 有 bug,用 v2026.10.1+;PXQN 文件只能在 Pascal/Volta 上加载,跨卡不通用。
- 横向:二手 V100 32GB ≈ 千元级,27B 代码 61–108 t/s;比本站 R9700 原生 ROCm 快 2 倍,是 R9700 vllm-radiance 峰值的 44–67%。预算档位决定选择:千元级选 PXA,长期选新卡。
(速数据与精度表来自 PXA 官方 README v2026.10.1,首测口径;R9700 数据为本站实测,详见《R9700 单卡实测基线》《SGLang 魔改双卡实测》。)