NVFP4 在 Volta 上!尽管是为 Blackwell 设计的,我让四个 2017 年的 V100 原生运行 Qwen 3.8 NVFP4,并匹配我的 6000 美元 RTX 5090。
摘要
作者在使用自定义软件优化(如 QPN 内核)进行高效推理时,实现了四个 2017 年 Tesla V100 GPU 与现代 RTX 5090 在运行 Qwen 3.8 模型时的性能均等。
四个 2017 年的 Tesla V100 在单请求 Qwen 3.8 解码上匹配了我的 RTX 5090。仓库:https://github.com/dnv2003/v100-skinny https://i.redd.it/5ws2ak3uqckh1.gif RTX 5090 没有受到限制。它运行 NInfer,这是一个专门为这个模型在 GPU 上加速而构建的专用引擎。(喜欢这个作者的工作)V100 运行的是 Qwen3.8 发布的混合 FP4/FP8 权重,未做更改。这本应是不可能的。NVFP4 是为 Blackwell 构建的。RTX 5090 有原生的 FP4 和 FP8 硅片;V100 没有这些优势。然而,通过我编写的足够快的软件翻译器,我在解码上达到了均等。以下是同一实验室的结果:AIME 2026 问题 1,五个种子 4× V100 / v100-skinny RTX 5090 / NInfer 解码吞吐量 219.1 ± 5.9 tok/s 214.7 ± 9.2 tok/s 正确答案时间 6.90 ± 0.30 s 6.56 ± 1.34 s 完成令牌 1,513 ± 44 1,403 ± 253 正确答案 5/5 5/5 每轮提交令牌 5.89 4.27 轮延迟 26.9 ms 19.9 ms 原生 MTP 深度 k=7 草稿令牌=5 双方使用温度 0.6,top-p 0.95,top-k 20,存在惩罚 1.0,启用思考,并且使用相同的五个种子。V100 系统在解码吞吐量点估计上领先 2%。NInfer 在仅解码正确答案时间上领先约 5%。区间重叠。诚实的结论是均等。这不是 DFlash/EAGLE/n-gram/单独草稿的结果。两个系统都使用 Qwen3.8 内置的 MTP,在此工作负载上各自达到最佳测量深度。NInfer 达到其最大支持深度五;v100-skinny 运行在深度七(得益于 QPN)。有趣的部分是为什么均等会发生。NInfer 每轮耗时 19.9 ms。V100 需要 26.9 ms——长 35%。但 V100 系统每轮提交 5.89 个令牌,而 4.27——多 38%。所以更慢的轮和更深的轮几乎完全抵消:1.38 / 1.35 ≈ 1.02。NInfer 赢得每一轮。v100-skinny 从每轮获得更多的有用工作。这种更深层的验证只有因为 QPN 才能实现,即我编写的内核。我实际构建了什么 V100 没有 FP4 Tensor Core 指令,也没有 FP8 Tensor Core 指令。QPN 在模型从 HBM 读取时保持压缩,然后将每个小片段直接转换为 Volta 现有 Tensor Cores 可以消费的 FP16 寄存器格式。没有巨大的“先解量化模型到 FP16”的步骤。在实际的 Qwen3.8 每秩形状下,针对这些卡上的 879 GB/s 只读上限测量:路径 有效带宽 测量读取上限 QPN2 / NVFP4, M=1 679.5 GB/s 77% QPN2 / NVFP4, M=8 619.8 GB/s 71% QPN8 / FP8, M=1–4 ~719 GB/s 82% 原生 4 位 lm_head 842.9 GB/s 96% 对于与 5090 的比较,重要的一行是 M=8。Volta 的张量指令自然适用于八行平铺。v100-skinny 将 k=7 推测性验证轮映射到正好这八行,因此检查更多候选令牌异常便宜。这就是技巧:我不能给 Volta Blackwell 的 FP4 硬件,但我可以围绕 Volta 实际拥有的硬件重新结构化问题。v1.0 让我们达到了这里。v1.1 消除了它的最后妥协。在 v1.0 中,我通过将这些区域转换为 NVFP4 来解决不支持的 FP8 问题,因为 Volta 没有它们的执行路径。这使得现代 NVFP4 服务在 V100 上变得实用,但意味着服务一个派生检查点。v1.1 也为这些 FP8 区域提供了真正的 SM70 执行路径。模型的发布分配现在可以保持完整:发布的 FP4 区域保持 FP4 → QPN2 发布的 FP8 区域保持 FP8 → QPN8 激活 → FP16 KV 缓存 → FP16 所以不是改变检查点以适应 Volta,执行引擎现在适应检查点。为什么保持模型重要 我之前的所有 FP4 Qwen3.8 路径可能在推测解码下看起来壮观,但原因错误:损坏模型使某些输出更具重复性,而重复输出极其容易预测。在一项 50 项硬件生成测试中:全 FP4 派生 发布混合权重 类别代表 1 12 独立名称 4 / 50 50 / 50 重复品牌条目 50 0 快速无意义仍然是无意义。这就是为什么 v1.1 运行发布混合分配对我来说比另一个合成 tok/s 记录更重要。这是一个服务器,不是 GEMM 截图 标题结果包括实际的 27B 模型、四 GPU 张量并行、注意力、递归状态、原生 MTP、CUDA 图、采样和一个 OpenAI 兼容端点。这项工作还发现了几个完全独立的 SM70 陷阱:检查点的 FP8-KV 指令将 Volta 引入慢标量注意力路径,因此生产使用 FP16 KV;SM70 草稿器默认采样自己的提案而不是使用贪婪/本地 argmax 提案;目标验证路径有不必要的状态同步和复制;声明的最大上下文正在污染解码分区几何。这些在 GEMM 基准测试中都没有出现。它们在你尝试让整个模型快速时重要。长上下文呢?我还发现了固定 k=7 不再是正确选择的点。在大约 65K 活跃上下文时:tok/s MTP k=7 54.7 MTP 关闭 65.5 MTP k=3 76.3 所以教训不是“在长上下文时关闭推测”。而是最佳深度随上下文变化。在约 65K 时,每个额外的草稿步骤必须遍历长 KV 历史,而 k=7 接受的令牌仅比 k=3 稍多。更浅的原生 MTP 仍然获胜。自动每请求深度选择是后续工作;目前测量的长上下文推荐是 k=3 而不是 k=7。单独地,仅声明大上下文窗口不再影响短请求:使用分区修复,轮延迟从 --max-model-len 4096 到 262144 在测量的短上下文单元中平坦在大约 0.25 ms 内。完整的 262K 窗口在我的机器上内存边缘;244,608 令牌是跨两个观察到的内存配置可靠启动的最大配置。明显的注意事项 四个 GPU 对比一个?是的。这是一个能力/采购成本结果,而不是密度胜利。一个 600 美元的计算机?不。我的四张 V100 卡在加速器硬件上总共花费大约 600 美元。服务器、CPU、RAM、冷却和电力是额外的。能效高吗?绝对不是。这些是 300W 数据中心卡。5090 是更优美的拥有机器。V100 在所有地方都胜过 5090 吗?不。NInfer 的预填充快约 4 倍,可能更多。这个结果是关于单请求解码的,其中权重带宽占主导,旧卡仍然可以战斗。两台机器上相同的量化检查点?不。相同的 Qwen3.8 基础模型,但这是一个最佳系统对比最佳系统的比较:v100-skinny 服务 RadixArk 发布的混合检查点;NInfer 工件是基于 Unsloth 的。我没有将其呈现为相同权重的因果引擎 A/B。精选的推测深度?每个引擎显示其在此工作负载上自己最佳测量的原生 MTP 深度,仓库包含深度控制和原始输出。为什么我关心 你现在可以在大约 600 美元的退役 V100 加速器卡上运行一个 27B 现代混合 FP4/FP8 模型,单请求解码约 220 tok/s。这并不使 V100 成为比 5090 更好的产品。它意味着许多被写为“对现代 AI 太旧”的硬件缺少的硅片少于它缺少的软件。5090 从量化格式一直到原生 Blackwell 硅片都获得 NVFP4 支持。V100 没有这些。v100-skinny 在软件中提供了缺失的执行架构。仓库 / 快速开始 / 内核 / 原始结果:https://github.com/dnv2003/v100-skinny 如果还有人有 C4130、DGX-1 或其他四个 V100 盒子,我特别希望有独立复制。准备第一个评论 方法论 / 收据在重复问题之前:仓库:https://github.com/dnv2003/v100-skinny 复制:docs/REPRODUCE.md 同一实验室 5090/V100 结果:results/headtohead_5090_20260819.md AIME + 秒到答案:results/aime_partfix_20260819.md 内核匹配基准:results/kernel_matched_20260819.csv 长上下文/深度扫描:results/ctx_depth_20260819.md 原生混合
相似文章
@TheAhmadOsman: 顺便说一下,Qwen 3.8 27B 的 NVFP4 版本可以在单个 RTX 5090 上运行。
Qwen 3.8 27B 模型已推出 NVFP4 量化版本,使其能在单个 RTX 5090 GPU 上运行,并在编码、智能任务和视觉语言理解方面有所增强。
@witcheer:大家都说NVFP4让黑伟德显卡“更快”。我在我的5090上对Qwen3.6-27B进行了三种方式的基准测试:>NVFP4 >普通Q4_K…
在RTX 5090上对Qwen3.6-27B进行的NVFP4基准测试显示,与同等比特的Q4_K_M相比,预填速度提升32-42%,与Q6_K相比提升52-68%,但解码速度提升有限(相比Q4提升+9%),因为解码受内存带宽限制。与Q6相比,质量损失极小(平均-0.8),使得NVFP4成为本地推理的不错选择。
v100s上Qwen3.6 27B NVFP4达366 t/s
介绍了v100-skinny,一个自定义内核库,支持在V100(sm70)GPU上进行快速NVFP4推理,在最佳情况下的抽取中为Qwen3.6 27B实现366 t/s,而结构化生成和代码生成的速度较低。
@superalesha: 别急着埋葬RTX 3090,先读完这个!@UnslothAI本周发布了qwen3.6-35b的两个新4位量化版本。我花了…
对Qwen3.6-35B在RTX 3090上的nvfp4、nvfp4-fast和AWQ 4位量化进行了基准测试,结果显示性能相近,而MTP头技巧将吞吐量提升了41%。
@hotschmoe: 在阅读了这篇文章后,我决定让 nvfp4 在我的 Intel Arc B70s 上运行看看,12小时后,它的运行速度……
一位用户成功在 Intel Arc B70s GPU 上运行了 nvfp4 量化,相比其最佳的 int4 配置,实现了近乎两倍的速度和更高的精度,挑战了硬件特定的格式假设。