PXA 洋垃圾老卡量化引擎

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% —

三个结论(官方表直接读数):

单卡 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 官方 README v2026.10.1,首测口径;R9700 数据为本站实测,详见《R9700 单卡实测基线》《SGLang 魔改双卡实测》。)