AIREITER

vLLM Humming 性能实测:加速效果到底在哪些场景成立

最后更新: 2026-10-21 19:00:50

如果你要在 Hopper 级别硬件上运行高并发量化 MoE 服务,vLLM Humming 值得优先测试。但从目前公开的基准结果来看,它还不能被视为通用的后端升级方案。H100 上的 group-32 测试结果,以及 Ampere 在 batch-1 解码场景中的表现,都说明最终性能必须结合具体模型、GPU、量化格式和批量形状来验证。

先说结论:Humming 是有条件的升级

Humming 是一个面向量化推理的 JIT 编译 GEMM 内核库,由 vLLM 社区与蚂蚁集团共同发布。它覆盖多种量化格式,并面向不同代际的 NVIDIA GPU,服务于 dense 和混合专家模型(MoE)工作负载。官方公告称,部分内核加速最高可达 5 倍,特定 MoE 场景的端到端收益为 14%–43%。不过,这些数字都来自特定的模型、硬件、量化格式和并发组合(vLLM 公告)。

我的采用原则很简单:

  • 优先测试 Humming:如果你在受支持的 Hopper 或更新架构上运行大批量、高并发的 W4A8/W4A16 MoE 服务,应先把 Humming 纳入对比。
  • 不要默认一定有收益:batch-1 解码、较老的 Ampere GPU,以及特殊的分组缩放方案,都不应直接假设能加速。
  • 保留回退路径:目前已有问题报告涉及形状路由错误和特定后端的慢路径,生产环境不能只准备一个方案。

一份独立的 DeepSeek-V4.1-Flash 测试报告显示:在单台四张 GH200 的节点上,经过调优的 vLLM 基线达到 5,856 output tokens/s,启用 attention 数据并行后达到 12,802,使用修改后的 Humming W4A8 内核后则达到 17,634(工程报告)。不过,这个结果依赖内核修复和额外调优,因此它证明的是某一类工作负载具备潜力,而不是开箱即用的保证。

Humming 会怎样改变 vLLM 部署

Humming 将量化矩阵乘法放入一个灵活的 JIT 内核层,覆盖 dense 和 MoE 的 GEMM 路径。项目面向从 Turing 开始的 NVIDIA GPU 架构,并支持多种低比特量化格式(Humming 代码库)。

在引用的 Hopper 测试中,Marlin 会先把 FP4 权重反量化为 BF16;Humming 则是在 SM 内部将 FP4 权重提升为 FP8,再使用 FP8 Tensor Core 完成矩阵乘法。只有当解码工作负载转为计算受限后,这种差异才真正带来帮助。否则,内存流量、形状分块、缩放因子处理、内核启动开销和寄存器压力,都可能成为主要瓶颈。

哪些场景确实能加速,哪些场景可能适得其反

与其盯着一个 headline 百分比,不如把公开证据看成一张性能边界地图。

高并发 MoE:目前最明确的优势场景

官方 DeepSeek-V4.1-Flash 示例在八张 H20 GPU 上对比了 Marlin W4A16 和 Humming W4A8,报告显示端到端 MoE 吞吐提升了 14%–43%,而且并发度越高,提升越明显。一位转发该基准结果的用户给出了更具体的对比:并发度为 64 时,输出速度从 442 提升到 634 tokens/s,同时也指出量化格式发生了变化(用户讨论)。

这个结果说明 Humming 是一条很有潜力的服务路径,但不能简单理解为在完全相同量化格式下,内核本身就能带来同等幅度的提升。

H100 上的 group-32 W4A8:一个必须重视的警告

Humming issue #38 在 H100 上测试了 MXFP4 权重、MXFP8 激活和 group-32 缩放。所有对比路径在数值上都正确,但在报告中的矩阵形状下,融合路径明显更慢。对于 (4096,3072,4096),融合 Humming 耗时 4.969 ms,而 QDQ 基线为 0.580 ms;对于 (4096,14336,4096),两者分别为 22.298 ms 和 1.256 ms(issue #38)。

该 issue 后续记录了超过 500 TFLOPS 的本地调优结果;一个实验性实现则在增加预处理和权重存储后达到约 580–665 TFLOPS。由此可见,缩放粒度、分块方案、寄存器压力和预处理方式,都可能彻底改变最终结果。

SM80 单请求解码:不要据此推断 Ampere 也能加速

Issue #72 报告称,NVIDIA SM80 在 M=1 解码时的 INT3 利用率偏低。在 CMP 170HX 上,实测 Humming 内核达到约 691 GB/s,而峰值 HBM 带宽约为 1,591 GB/s,利用率为 43.4%。作为对比,RTX 5070 Ti 的 SM120 测试达到约 753 GB/s,峰值带宽为 827 GB/s,利用率约 91%(issue #72)。

同一份报告还引用了 A800 代码库中的结果:在 M=1 时达到 692.4 GB/s,仅相当于标称 2,039.04 GB/s 峰值带宽的 34.0%。在同一对比中,普通 BF16 达到了 1,232.3 GB/s。

“当前 SM80 INT3 Humming 路径是否不适合这个工作负载?”——yangfangyunyun,vLLM Humming issue #72

安装方式,以及最稳妥的首次测试方法

官方资料显示,从 vLLM 0.29.0 开始,CUDA 安装会将 Humming 作为依赖项包含在内。MoE 路径使用 --moe-backend humming,受支持的线性层使用 --linear-backend humming;对于特定模型,也可以按文档配置 Humming 量化路径(vLLM 量化文档)。在跨架构复制参数之前,先确认对应版本和模型文档。

建议从一次可控的对比测试开始:

  1. 记录 vLLM、CUDA、PyTorch、GPU 架构、检查点量化方式以及模型形状。
  2. 固定 prompt 长度、输出长度、并发度和重复测试次数。
  3. 使用同一套服务命令,在现有后端和 Humming 之间进行对比,只添加相关后端参数。
  4. 测量 output tokens/s、TTFT、token 间延迟、GPU 显存,以及启动和 JIT 预热时间。
  5. 等内核缓存预热完成后重复测试,再分别验证 batch 1 和生产环境并发度。
  6. 针对不支持的形状和选择失败情况,保留自动或手动回退方案。

吞吐提升本身并不够。如果 TTFT、尾延迟、预热成本或显存占用变差,整体服务仍可能退化。vLLM 的 perf-eval 项目建议使用 YAML 测试配方、重复执行、以中位数聚合结果,并固定输入和输出长度,以确保测试具备可比性(perf-eval 代码库)。

后端路由问题可能让有效的 Humming 配置无法启动

vLLM 的另一个 issue 说明了为什么必须测试回退路径。在 issue #60700 中,一个 compressed-tensors W4A8 MoE 检查点的中间维度为 640。CUTLASS 要求维度按 256 对齐,而 Humming 可以处理该测试形状;但在选定后端加载之前,一个无条件断言就已经触发,因此即使显式指定 --moe-backend humming 也会启动失败。

报告者提交的补丁将该断言限制在 CUTLASS 路径内。修改后,全部 62 个分片都能在两张 H100 NVL GPU 上加载,测试结果显示,相比其参考 CUTLASS 配置,TTFT 降低了 12%–50%,系统吞吐提升了 2%–13%(issue #60700)。在检查时,该 issue 仍处于开放状态,PR #60711 被提出作为路由修复方案。

因此,Humming 启动失败不一定是内核本身的问题,也可能是 vLLM 的能力检查出了问题。放弃该配置前,应先确认实际选中的后端、形状限制以及相关修复的状态。

给运维人员的决策表

你的工作负载对 Humming 的建议原因
Hopper/GH200 上的高并发 MoE尽早测试独立服务测试在修复和调优后达到 17,634 tok/s。
大批量 DeepSeek 风格解码强烈值得测试当 MoE GEMM 转为计算受限后,FP8 Tensor Core 执行可能带来收益。
SM80 上的 batch-1 或低批量解码不要默认有收益Issue #72 报告的 INT3 路径有效带宽仅为 34%–43%。
H100 上的 group-32 激活缩放针对有限矩阵形状逐一测试Issue #38 显示,某条融合路径可能出现严重退化。
非 256 对齐的 W4A8 MoE 形状检查 vLLM 版本和路由修复共享断言可能在权重加载前就阻止 Humming 运行。
没有源码修改预算的生产环境完成代表性对比测试后再使用部分独立测试中的收益依赖内核或启发式逻辑调整。

常见问题

Humming 支持哪些 GPU?

该项目面向从 Turing 开始的 NVIDIA GPU,并记录了多条量化路径。但支持某种架构,并不意味着所有格式和工作负载都经过同等程度的调优;SM80 以及特殊缩放方案必须单独测试。

使用 Humming 是否需要预量化检查点?

Humming 是推理内核库,而不是通用量化工具。前文提到的工作流使用了带有兼容量化权重和激活方案的检查点,因此在部署前,应根据 vLLM 文档和代码库确认模型所采用的格式。

Humming 是否比其他所有 vLLM 后端都快?

不是。它只是在部分量化工作负载中更快,尤其是目前公开报告中的高并发 MoE 场景。最终结果会受到架构、量化格式、矩阵维度、缩放分组方式和批量大小的共同影响。

实际取舍很明确:对于匹配度高的量化 vLLM 服务,Humming 确实可能带来明显加速;但由于公开结果都依赖具体配置,采用它之前,必须安排一次短周期、可重复的对比测试。