@superalesha: https://x.com/superalesha/status/2077437741915312221

X AI KOLs Timeline 工具

摘要

作者分享了在四张RTX 3090本地设备上六个月的测量数据,结果表明对于适配较少显卡的模型,数据并行通常优于张量并行,吞吐量差异可达3.4倍。

https://t.co/P1Mt5TY4hX
查看原文
查看缓存全文

缓存时间: 2026/07/16 00:01

六个月的四个 RTX 3090:我测量的一切

为什么有这个盒子

白天,我在银行管理 AI 基础设施。那里的集群由超过 200 张 H200 卡组成,我能够接触并使用其中的 10–12 张。到了晚上,我回到家,面对四张二手 RTX 3090 卡,它们安装在一个开放式机箱里,机箱上用我家厨房烤箱的烤架固定着。

整个配置大约花了我 6000 美元。四张显卡,每张约 900 美元,再加上约 2000 美元的平台:一块 AMD EPYC 处理器搭配国产华南金牌 Huananzhi H12D-8D 主板(带 BMC)、128 GB DDR4 内存、转接卡、硬盘和电源。这相当于租用一块高端云 GPU 几个月的费用,但我的系统就在我桌子底下,无需向任何人报备。

EPYC FURY

EPYC FURY

我不是照着购物清单一次性搭建的。它是逐渐成长起来的。最初是我旧家庭实验室里的一块 3090,配上一颗 Xeon——只是为了看看本地配置能做什么。然后加了第二块。有很长一段时间,我用两块卡凑合着,直到发现旧 Xeon 无法为四张卡提供足够的 PCIe 通道,于是我把 GPU 搬到了 EPYC 平台上。然后又加了两张卡。有一次,我和妻子花了整整一个晚上,试图把四张卡连同转接卡塞进一个完全不适合的机箱里。她从厨房拿来了一个烤箱烤架。居然能用。直到今天它还在那里。

是的,鸡蛋盒还在

是的,鸡蛋盒还在

经过六个月的实验,本文总结了我从这个配置中学到的一切。只有真实数据。下面列出的每个数字都基于在该系统上进行的测量,而且大多数数字至少让我惊讶过一次。

96 GB 在这种情况下是“神奇”的数字。它足以运行 122B 模型,上下文长度接近 200K,这重新定义了“本地”这个概念。而你只需花一台高端游戏 PC 的钱就能实现这一点。

最大的教训:如何拆分 4 张卡比其他任何事都重要

几个月来,我用张量并行(TP4)在所有四张卡上运行每个模型,因为大家都是这么做的。TP4,搞定,下一个问题。对于任何可以在更少卡上运行的模型,这个习惯导致我损失了大部分吞吐量。

以下是同一模型(Gemma 4 12B AWQ, vLLM)在四张 3090 卡上的所有负载分布选项,在 220 W 下的综合每秒 Token 数指标:

布局tok/s4 个独立副本,每张卡 1 个,通过路由器转发3,425原生数据并行 –data-parallel-size 43,308流水线并行 2 x 22,619TP2 + DP22,433两个 TP2 副本2,364流水线并行 = 41,428张量并行 = 41,007

同一硬件,同一模型,最佳选项与最流行选项之间的差距却高达 3.4 倍。

原因一目了然。TP4 会在每一层同步所有四张卡,而在消费级显卡上,这是通过 PCIe 接口完成的。12B 模型不需要这个。四个独立副本之间完全不交互。

实际的答案甚至比我用路由器做的实验更简单:原生数据并行(--data-parallel-size 4)的吞吐量仅比路由器方案低不到 3.4%,而首 Token 延迟却好 2.3 倍(178 毫秒 vs. 411 毫秒)——而且这一切都在单个进程内完成,无需管理负载均衡器。因此,我现在遵循的规则是:

尽可能将模型复制到最少的卡上。只有当单个用户的延迟是唯一目标时,才拆分成更宽的并行。

公平地说,单用户场景是完全现实的。Gemma 4 31B 在 300 W 下供单个用户使用:TP4 提供 78 tok/s,而 TP2 提供 57 tok/s。如果你只关心单线程,宽 TP 配置是值得的。但一旦多个用户开始共享系统,复制就变得明显更优:当 Qwen3.6-27B 上有 64 个并发线程时,TP4 配置提供 606 tok/s,而两个 TP2 副本提供 1,273 tok/s。用同样的四张卡,这是 2.1 倍的提升。

我发表后另一个让人惊讶的发现:即使不需要显存,额外增加卡也能带来纯算力收益。Gemma 4 31B 完美适合两张卡,但从 TP2 切换到 TP4 在 220 W 下将单线程性能从 46 提升到 73 tok/s。两张额外的卡增加了我不需要的 VRAM,以及 58% 的加速。

解锁 P2P,或收回部分 TP 开销

消费级显卡上 TP 速度慢的一个原因是 NVIDIA 在 3090 上禁用了点对点 DMA,因此卡之间的每次同步都经过系统内存。GPU 位于同一块主板上,本可以直接交换数据,但驱动程序不允许。

有一个社区开发的补丁专门针对此问题:启用 P2P 支持的开源内核模块,可在 aikitoria/open-gpu-kernel-modules 仓库中找到。我在驱动 595.71.05 之上安装了它们,启用了 Resizable BAR,并为每个 GPU 获得了 32 GB 的 BAR1。nvidia-smi topo -p2p r 的输出从“不支持”变为所有四张卡的“OK”。

首先看合成结果。应用补丁前,GPU 间的带宽为 5–6 GB/s,延迟为 14–18 微秒。之后:单向 13.2 GB/s,双向 25.5 GB/s,延迟 1.5 微秒。卡间延迟因内核模块替换而降低了十倍。

在实际负载下,增益较小,这总是如此。Qwen3.5-122B AWQ,TP4,长上下文运行(4096 输入,256 输出),并发度为 2:补丁前总 tok/s 为 65.5,补丁后为 74.3。+13.5%。还有我自己笔记中的一个公平警告:我们讨论的是并发度为 2 时的总吞吐量,而不是“每个请求变快了 13.5%”,并且这远非 P2P 讨论中有时承诺的两倍提升。

这恰恰就是为什么本节更像是对“章”规则的备注,而非例外。P2P 减少了张量并行带来的开销,但并未完全消除。上表显示 TP4 与复制之间的差异是 3.4 倍,尽管复制根本不使用 P2P。如果你的模型仍需要你使用 TP,那么打上驱动补丁并获取额外的 13%。但首先,选择正确的放置 布局。

第八种拆分方式:prefill/decode 分离

还有另一种不适合上表的配置:将 prefill 和解码分别分配到不同的 GPU 上。Prefill 需要密集计算,而解码需要密集内存访问,在一台服务器上,单个重的输入提示会周期性地阻塞所有人的流。你可能已经以延迟尖峰的形式遇到过这种现象,在使用某些大型托管模型进行数据流传输时观察到的。

我在两张 3090 卡上测试了这种分离(SGLang + Mooncake,使用标准 TCP 传输,没有 RDMA,在家用系统上),并将结果与使用轮询算法的同一两张卡进行了比较。吞吐量相同:统一配置为 913 tok/s,分离配置为 903 tok/s,查询速率相同。关键在于其他指标:

指标,2 张卡统一P/D 分离Token 间延迟,p9959 毫秒12 毫秒最差单次卡顿132 毫秒15 毫秒首 Token 时间~86 毫秒~216 毫秒

解码 GPU 永远不会看到 prefill,因此 Token 流的稳定性提高了五到九倍。代价是 TTFT:键值(KV)缓存必须在卡之间传输,而使用 TCP 回环时,每次请求大约需要 130 毫秒。在具有 NVLink 或 RDMA 的数据中心硬件上,这一开销几乎消失,这正是大型推理服务提供商使用分离式架构的原因。

对本地 AI 系统的结论:如果你的用户正在监控 Token 流并且无法容忍延迟,那么即使在两张消费级卡上,P/D 分离也是一种非常有效的工具。如果你只是批量处理任务,复制仍然是最佳方案。

你可能没有利用的免费加速

三件事让我在不添加新硬件的情况下实现了真正的速度提升。

带有内置 draft head 的推测解码。Qwen3.6-27B 自带 MTP 模块,vLLM 利用它进行推测解码。在两张卡的单线程模式下,代码生成速度从 56 提升到 101 tok/s。相同的权重,相同的卡,仅凭一个标志就提高了 79%。工作原理:draft head 提前预测几个 token,完整模型在单次传递中检查整个预测,每个被接受的 token 几乎都是免费获得的。代码接受很多 token,因为它可预测。散文接受的较少——从 56 到 83——但它们仍然是免费的。如果你的模型带有 draft head,在考虑购买任何东西之前先启用它。

并发——这才是这个系统真正发光的地方。一个带有四张 3090 卡的系统,并行线程设置从 1 到 32:Gemma 4 31B 在所有四张卡上的性能从 78 提升到 522 tok/s。在 Qwen3.6-27B 测试中,仅使用两张卡,性能从 65 提升到 656。每个线程的速度随着用户数量增加而下降,因此要根据实际工作负载选择并行度,而不是根据最令人印象深刻的测试数字。但如果你的用例涉及智能体或一个小团队,消费级系统整天都能处理每秒数百个 token。

功耗——或者更准确地说,省电。我将每张卡的功率上限从 220W 扫描到 300W,并用同一模型重复测试。解码结果分别为 73、77 和 78 tok/s。换句话说,功耗增加了 37%,而速度只增加了 7%。每 100 W 的 token 数从 8.4 下降到 6.5。3090 的性能曲线在 220 W 之后立即变平,因此这些系统全天以 220 W 的限值运行,我将保留这个差异。如果你只从本文中采纳一条建议,那就限制显卡的功耗吧。

Ampere 上的量化:实际可行的选择

3090 是 Ampere 芯片,sm_86。它缺乏内置 FP8 支持。这一事实本身就决定了这一代大多数位宽选择,而你读到的一半建议都默认假设使用 Hopper。

在这个平台上有效的方法:

  • 4 位 AWQ 或 GPTQ 风格的 int4 是日常工作的标准选择。Marlin 内核在 Ampere 上提供高 int4 性能;4 位格式的质量对于服务来说完全足够,本文中的所有其他内容都基于它运行。

  • FP8 权重在这里是一个陷阱。在实际负载下,在我的 Qwen3.6-27B 测试中,3090 上的 FP8 在吞吐量上输给了 INT8-W8A8,而且“直接在线提供 FP8”的方法在 Ampere 上根本行不通。如果某人推荐 FP8 而不问你运行的是哪个芯片,那就关掉那个标签页。

  • 另一方面,FP8 KV 缓存是一个免费的奖励。更多内容见 122B 一节:它将我的可用上下文翻了一番,且不影响解码速度。一个公平的观点:我测量了 KV 的速度表现,而不是精度(同一模型上 fp16、fp8 和 q8 KV 的质量)。因此,关于 fp8-KV 的建议在速度方面已验证;如果你的工作负载对精度敏感,在部署到生产环境之前请自行进行质量检查。

3090 上的 NVFP4:它能运行,这就是新闻

七月初,vLLM 0.24 悄悄增加了对 Ampere 架构(包括 sm_86)上 NVFP4 的支持。你可以使用 --quantization modelopt 参数启用它。这不是原生支持:3090 缺乏 FP4 单元,因此权重通过 Marlin 内核并以 W4A16 模式执行。但模型能够加载并运行,这完全出乎我的意料。

既然 AWQ 已经存在,为什么这很重要?越来越多的模型现在出厂时就带有官方的 NVFP4 版本。直接运行这些模型无需在社区中寻找合适的量化版本,下一章讨论的其中一个模型正是因为这一点才能在这台计算机上运行。

NVFP4 能取代 AWQ 吗?我分析了同一 Qwen3.6-27B 模型的三种 int4 量化选项,GSM8K 用 200 个样本,每次运行 5 轮:

AWQNVFP4AutoRoundGSM8K0.950.890.52Zero-shot0.720.710.385

AWQ 在 GSM8K 上比 NVIDIA 自己的混合精度检查点高出 6 分。注意此表底部的 AutoRound:其校准尚不支持该模型的混合注意力机制(门控 DeltaNet 层),因此三种量化中最快的一种(85.7 tok/s)伴随着你无法忽视的质量差距。在下面的“122B”部分,AutoRound 在另一个模型上赢得了同样的比较。同一工具的矛盾结果表明量化排名不可跨架构迁移。务必在你打算用于生产环境的具体模型上进行测试。

因此,截至 2026 年中,对于 Ampere 架构的经验法则是:AWQ 仍然是日常使用的默认标准,NVFP4 是确保与以此格式发布的模型兼容的选项,并且每种新架构都需要自己的比较测试。

核心:122B 模型作为日常驱动

这是我真的希望你记住的内容。一台价值 6000 美元的消费级设备正在运行 Qwen3.5-122B-A10B 模型——一个拥有 1220 亿参数的 MoE 模型——以阅读速度,接近 200K 上下文。而这不仅仅是演示。它是一个持续运行的工具。

首先,数字——全部在 vLLM 上测量,TP4,220 W:

什么数字单流,代码92.7 tok/s单流,散文90.2 tok/s首 Token 时间,短提示~120ms16 个并发流468 tok/s 总吞吐量可容纳的最大上下文(默认 KV)130K tokens带 fp8 KV 的最大上下文198.6K tokensPrefill,60K token 提示35 秒Prefill,191K token 提示163 秒

其中一些值得特别提及。

来自一个 1220 亿参数模型超过 90 tok/s——比阅读还快。正是 MoE 架构使得这成为可能,即使在消费级显卡上:总共有 1220 亿参数,每个 token 大约激活 100 亿,因此每个 token 的计算负载很低,而知识容量却很高。密集模型(700 亿参数)在这台计算机上表现不如这个 1220 亿参数模型。

上下文并不那么简单。使用默认设置,你得到 130K KV 缓存 token,仅此而已——权重占用剩余的 96GB。将 KV 缓存切换到 fp8,上限增加到 198.6K token;在我的测试中,这对性能没有影响:之前 92.7 tok/s,之后 93.2。半精度 KV 缓存是此硬件上最便宜的上下文改进。

而这是没有人提到过的真正数字:处理一个 191K token 的请求需要 2 分 44 秒的 prefill,然后才会出现第一个输出 token。每会话加载一次代码库——之后一切运行流畅。对于 190K token 的“冷”上下文,你不能像那样随意聊天。

我用它做什么?测试和实验,当然,这是这个账号存在的一半原因。我的工作代码由 Claude 编写。桌下的这台设备处理其他一切。它回答云模型拒绝回答的问题,在凌晨两点,无需请求任何人许可。它永远不会对我说“不”。

AWQ vs. Intel AutoRound:同一模型,两种 int4 量化

每个人都以 4 位模式运行这个模型,因此我比较了两种流行的 int4 版本:我使用了几个月的社区 AWQ 量化,以及 Intel AutoRound 版本(那个已被下载百万次的版本)。同一引擎,同一配置,同一序列进行测试。

我们继续翻译剩下的内容。文章还有一段关于AWQ vs AutoRound的对比,以及结尾。需要完整翻译。# 六个月的四个 RTX 3090:我测量的一切

为什么有这个盒子

白天,我在银行管理 AI 基础设施。那里的集群由超过 200 张 H200 卡组成,我能够接触并使用其中的 10–12 张。到了晚上,我回到家,面对四张二手 RTX 3090 卡,它们安装在一个开放式机箱里,机箱上用我家厨房烤箱的烤架固定着。

整个配置大约花了我 6000 美元。四张显卡,每张约 900 美元,再加上约 2000 美元的平台:一块 AMD EPYC 处理器搭配国产华南金牌 Huananzhi H12D-8D 主板(带 BMC)、128 GB DDR4 内存、转接卡、硬盘和电源。这相当于租用一块高端云 GPU 几个月的费用,但我的系统就在我桌子底下,无需向任何人报备。

EPYC FURY

EPYC FURY

我不是照着购物清单一次性搭建的。它是逐渐成长起来的。最初是我旧家庭实验室里的一块 3090,配上一颗 Xeon——只是为了看看本地配置能做什么。然后加了第二块。有很长一段时间,我用两块卡凑合着,直到发现旧 Xeon 无法为四张卡提供足够的 PCIe 通道,于是我把 GPU 搬到了 EPYC 平台上。然后又加了两张卡。有一次,我和妻子花了整整一个晚上,试图把四张卡连同转接卡塞进一个完全不适合的机箱里。她从厨房拿来了一个烤箱烤架。居然能用。直到今天它还在那里。

是的,鸡蛋盒还在

是的,鸡蛋盒还在

经过六个月的实验,本文总结了我从这个配置中学到的一切。只有真实数据。下面列出的每个数字都基于在该系统上进行的测量,而且大多数数字至少让我惊讶过一次。

96 GB 在这种情况下是“神奇”的数字。它足以运行 122B 模型,上下文长度接近 200K,这重新定义了“本地”这个概念。而你只需花一台高端游戏 PC 的钱就能实现这一点。

最大的教训:如何拆分 4 张卡比其他任何事都重要

几个月来,我用张量并行(TP4)在所有四张卡上运行每个模型,因为大家都是这么做的。TP4,搞定,下一个问题。对于任何可以在更少卡上运行的模型,这个习惯导致我损失了大部分吞吐量。

以下是同一模型(Gemma 4 12B AWQ, vLLM)在四张 3090 卡上的所有负载分布选项,在 220 W 下的综合每秒 Token 数指标:

布局tok/s4 个独立副本,每张卡 1 个,通过路由器转发3,425原生数据并行 –data-parallel-size 43,308流水线并行 2 x 22,619TP2 + DP22,433两个 TP2 副本2,364流水线并行 = 41,428张量并行 = 41,007

同一硬件,同一模型,最佳选项与最流行选项之间的差距却高达 3.4 倍。

原因一目了然。TP4 会在每一层同步所有四张卡,而在消费级显卡上,这是通过 PCIe 接口完成的。12B 模型不需要这个。四个独立副本之间完全不交互。

实际的答案甚至比我用路由器做的实验更简单:原生数据并行(--data-parallel-size 4)的吞吐量仅比路由器方案低不到 3.4%,而首 Token 延迟却好 2.3 倍(178 毫秒 vs. 411 毫秒)——而且这一切都在单个进程内完成,无需管理负载均衡器。因此,我现在遵循的规则是:

尽可能将模型复制到最少的卡上。只有当单个用户的延迟是唯一目标时,才拆分成更宽的并行。

公平地说,单用户场景是完全现实的。Gemma 4 31B 在 300 W 下供单个用户使用:TP4 提供 78 tok/s,而 TP2 提供 57 tok/s。如果你只关心单线程,宽 TP 配置是值得的。但一旦多个用户开始共享系统,复制就变得明显更优:当 Qwen3.6-27B 上有 64 个并发线程时,TP4 配置提供 606 tok/s,而两个 TP2 副本提供 1,273 tok/s。用同样的四张卡,这是 2.1 倍的提升。

我发表后另一个让人惊讶的发现:即使不需要显存,额外增加卡也能带来纯算力收益。Gemma 4 31B 完美适合两张卡,但从 TP2 切换到 TP4 在 220 W 下将单线程性能从 46 提升到 73 tok/s。两张额外的卡增加了我不需要的 VRAM,以及 58% 的加速。

解锁 P2P,或收回部分 TP 开销

消费级显卡上 TP 速度慢的一个原因是 NVIDIA 在 3090 上禁用了点对点 DMA,因此卡之间的每次同步都经过系统内存。GPU 位于同一块主板上,本可以直接交换数据,但驱动程序不允许。

有一个社区开发的补丁专门针对此问题:启用 P2P 支持的开源内核模块,可在 aikitoria/open-gpu-kernel-modules 仓库中找到。我在驱动 595.71.05 之上安装了它们,启用了 Resizable BAR,并为每个 GPU 获得了 32 GB 的 BAR1。nvidia-smi topo -p2p r 的输出从“不支持”变为所有四张卡的“OK”。

首先看合成结果。应用补丁前,GPU 间的带宽为 5–6 GB/s,延迟为 14–18 微秒。之后:单向 13.2 GB/s,双向 25.5 GB/s,延迟 1.5 微秒。卡间延迟因内核模块替换而降低了十倍。

在实际负载下,增益较小,这总是如此。Qwen3.5-122B AWQ,TP4,长上下文运行(4096 输入,256 输出),并发度为 2:补丁前总 tok/s 为 65.5,补丁后为 74.3。+13.5%。还有我自己笔记中的一个公平警告:我们讨论的是并发度为 2 时的总吞吐量,而不是“每个请求变快了 13.5%”,并且这远非 P2P 讨论中有时承诺的两倍提升。

这恰恰就是为什么本节更像是对“章”规则的备注,而非例外。P2P 减少了张量并行带来的开销,但并未完全消除。上表显示 TP4 与复制之间的差异是 3.4 倍,尽管复制根本不使用 P2P。如果你的模型仍需要你使用 TP,那么打上驱动补丁并获取额外的 13%。但首先,选择正确的放置 布局。

第八种拆分方式:prefill/decode 分离

还有另一种不适合上表的配置:将 prefill 和解码分别分配到不同的 GPU 上。Prefill 需要密集计算,而解码需要密集内存访问,在一台服务器上,单个重的输入提示会周期性地阻塞所有人的流。你可能已经以延迟尖峰的形式遇到过这种现象,在使用某些大型托管模型进行数据流传输时观察到的。

我在两张 3090 卡上测试了这种分离(SGLang + Mooncake,使用标准 TCP 传输,没有 RDMA,在家用系统上),并将结果与使用轮询算法的同一两张卡进行了比较。吞吐量相同:统一配置为 913 tok/s,分离配置为 903 tok/s,查询速率相同。关键在于其他指标:

指标,2 张卡统一P/D 分离Token 间延迟,p9959 毫秒12 毫秒最差单次卡顿132 毫秒15 毫秒首 Token 时间~86 毫秒~216 毫秒

解码 GPU 永远不会看到 prefill,因此 Token 流的稳定性提高了五到九倍。代价是 TTFT:键值(KV)缓存必须在卡之间传输,而使用 TCP 回环时,每次请求大约需要 130 毫秒。在具有 NVLink 或 RDMA 的数据中心硬件上,这一开销几乎消失,这正是大型推理服务提供商使用分离式架构的原因。

对本地 AI 系统的结论:如果你的用户正在监控 Token 流并且无法容忍延迟,那么即使在两张消费级卡上,P/D 分离也是一种非常有效的工具。如果你只是批量处理任务,复制仍然是最佳方案。

你可能没有利用的免费加速

三件事让我在不添加新硬件的情况下实现了真正的速度提升。

带有内置 draft head 的推测解码。Qwen3.6-27B 自带 MTP 模块,vLLM 利用它进行推测解码。在两张卡的单线程模式下,代码生成速度从 56 提升到 101 tok/s。相同的权重,相同的卡,仅凭一个标志就提高了 79%。工作原理:draft head 提前预测几个 token,完整模型在单次传递中检查整个预测,每个被接受的 token 几乎都是免费获得的。代码接受很多 token,因为它可预测。散文接受的较少——从 56 到 83——但它们仍然是免费的。如果你的模型带有 draft head,在考虑购买任何东西之前先启用它。

并发——这才是这个系统真正发光的地方。一个带有四张 3090 卡的系统,并行线程设置从 1 到 32:Gemma 4 31B 在所有四张卡上的性能从 78 提升到 522 tok/s。在 Qwen3.6-27B 测试中,仅使用两张卡,性能从 65 提升到 656。每个线程的速度随着用户数量增加而下降,因此要根据实际工作负载选择并行度,而不是根据最令人印象深刻的测试数字。但如果你的用例涉及智能体或一个小团队,消费级系统整天都能处理每秒数百个 token。

功耗——或者更准确地说,省电。我将每张卡的功率上限从 220W 扫描到 300W,并用同一模型重复测试。解码结果分别为 73、77 和 78 tok/s。换句话说,功耗增加了 37%,而速度只增加了 7%。每 100 W 的 token 数从 8.4 下降到 6.5。3090 的性能曲线在 220 W 之后立即变平,因此这些系统全天以 220 W 的限值运行,我将保留这个差异。如果你只从本文中采纳一条建议,那就限制显卡的功耗吧。

Ampere 上的量化:实际可行的选择

3090 是 Ampere 芯片,sm_86。它缺乏内置 FP8 支持。这一事实本身就决定了这一代大多数位宽选择,而你读到的一半建议都默认假设使用 Hopper。

在这个平台上有效的方法:

  • 4 位 AWQ 或 GPTQ 风格的 int4 是日常工作的标准选择。Marlin 内核在 Ampere 上提供高 int4 性能;4 位格式的质量对于服务来说完全足够,本文中的所有其他内容都基于它运行。

  • FP8 权重在这里是一个陷阱。在实际负载下,在我的 Qwen3.6-27B 测试中,3090 上的 FP8 在吞吐量上输给了 INT8-W8A8,而且“直接在线提供 FP8”的方法在 Ampere 上根本行不通。如果某人推荐 FP8 而不问你运行的是哪个芯片,那就关掉那个标签页。

  • 另一方面,FP8 KV 缓存是一个免费的奖励。更多内容见 122B 一节:它将我的可用上下文翻了一番,且不影响解码速度。一个公平的观点:我测量了 KV 的速度表现,而不是精度(同一模型上 fp16、fp8 和 q8 KV 的质量)。因此,关于 fp8-KV 的建议在速度方面已验证;如果你的工作负载对精度敏感,在部署到生产环境之前请自行进行质量检查。

3090 上的 NVFP4:它能运行,这就是新闻

七月初,vLLM 0.24 悄悄增加了对 Ampere 架构(包括 sm_86)上 NVFP4 的支持。你可以使用 --quantization modelopt 参数启用它。这不是原生支持:3090 缺乏 FP4 单元,因此权重通过 Marlin 内核并以 W4A16 模式执行。但模型能够加载并运行,这完全出乎我的意料。

既然 AWQ 已经存在,为什么这很重要?越来越多的模型现在出厂时就带有官方的 NVFP4 版本。直接运行这些模型无需在社区中寻找合适的量化版本,下一章讨论的其中一个模型正是因为这一点才能在这台计算机上运行。

NVFP4 能取代 AWQ 吗?我分析了同一 Qwen3.6-27B 模型的三种 int4 量化选项,GSM8K 用 200 个样本,每次运行 5 轮:

AWQNVFP4AutoRoundGSM8K0.950.890.52Zero-shot0.720.710.385

AWQ 在 GSM8K 上比 NVIDIA 自己的混合精度检查点高出 6 分。注意此表底部的 AutoRound:其校准尚不支持该模型的混合注意力机制(门控 DeltaNet 层),因此三种量化中最快的一种(85.7 tok/s)伴随着你无法忽视的质量差距。在下面的“122B”部分,AutoRound 在另一个模型上赢得了同样的比较。同一工具的矛盾结果表明量化排名不可跨架构迁移。务必在你打算用于生产环境的具体模型上进行测试。

因此,截至 2026 年中,对于 Ampere 架构的经验法则是:AWQ 仍然是日常使用的默认标准,NVFP4 是确保与以此格式发布的模型兼容的选项,并且每种新架构都需要自己的比较测试。

核心:122B 模型作为日常驱动

这是我真的希望你记住的内容。一台价值 6000 美元的消费级设备正在运行 Qwen3.5-122B-A10B 模型——一个拥有 1220 亿参数的 MoE 模型——以阅读速度,接近 200K 上下文。而这不仅仅是演示。它是一个持续运行的工具。

首先,数字——全部在 vLLM 上测量,TP4,220 W:

什么数字单流,代码92.7 tok/s单流,散文90.2 tok/s首 Token 时间,短提示~120ms16 个并发流468 tok/s 总吞吐量可容纳的最大上下文(默认 KV)130K tokens带 fp8 KV 的最大上下文198.6K tokensPrefill,60K token 提示35 秒Prefill,191K token 提示163 秒

其中一些值得特别提及。

来自一个 1220 亿参数模型超过 90 tok/s——比阅读还快。正是 MoE 架构使得这成为可能,即使在消费级显卡上:总共有 1220 亿参数,每个 token 大约激活 100 亿,因此每个 token 的计算负载很低,而知识容量却很高。密集模型(700 亿参数)在这台计算机上表现不如这个 1220 亿参数模型。

上下文并不那么简单。使用默认设置,你得到 130K KV 缓存 token,仅此而已——权重占用剩余的 96GB。将 KV 缓存切换到 fp8,上限增加到 198.6K token;在我的测试中,这对性能没有影响:之前 92.7 tok/s,之后 93.2。半精度 KV 缓存是此硬件上最便宜的上下文改进。

而这是没有人提到过的真正数字:处理一个 191K token 的请求需要 2 分 44 秒的 prefill,然后才会出现第一个输出 token。每会话加载一次代码库——之后一切运行流畅。对于 190K token 的“冷”上下文,你不能像那样随意聊天。

我用它做什么?测试和实验,当然,这是这个账号存在的一半原因。我的工作代码由 Claude 编写。桌下的这台设备处理其他一切。它回答云模型拒绝回答的问题,在凌晨两点,无需请求任何人许可。它永远不会对我说“不”。

AWQ vs. Intel AutoRound:同一模型,两种 int4 量化

每个人都以 4 位模式运行这个模型,因此我比较了两种流行的 int4 版本:我使用了几个月的社区 AWQ 量化,以及 Intel AutoRound 版本(那个已被下载百万次的版本)。同一引擎,同一配置,同一序列进行测试。

相似文章

4090 + 5060 Ti + 64GB RAM:35B-A3B 达 206 t/s,122B 达 37 t/s

Reddit r/LocalLLaMA

一位用户分享了在双 GPU(RTX 4090 和 RTX 5060 Ti)上运行大语言模型(Qwen 27B-122B)的基准测试结果,实现了极高的 token 生成速度(例如 35B-A3B 达到 206 t/s,122B 达到 37-41 t/s)。帖子包含配置详情以及指向 GitHub 仓库的链接,其中包含脚本和原始数据。