Chord's INT4 MoE Kernel: Up to 2.15x per Layer, 4 to 8 Percent for a Self-Hosted LLM
The headline ratio is against an untuned baseline, the tuned one predates Humming's own H200 tuning, and installing Chord gives the humming import root a second owner in a stock vLLM environment.
The vLLM blog announced Chord on 15 September: an open-source CUDA kernel from Novita AI for the INT4 mixture-of-experts layers in Kimi K2.x, headlined at up to 1.3x on H200 and 2.15x on B300. For a team running a self-hosted LLM of that size, the number to plan with sits further down the same post: 4.1 to 8.0 percent more decode throughput on eight H200s. The repository explains most of that gap, and a version history the post never mentions accounts for more of it.
The claim
Chord replaces the expert matrix multiply for BF16 activations, INT4 weights and
group-32 scales. That is the format Moonshot ships: the Kimi-K2.6 config.json
declares 4-bit symmetric integer weights with group size 32, pack-quantized
through compressed-tensors, across 384 routed experts with 8 active per token.
The post reports per-layer speedups against public Humming, the kernel library
vLLM already uses for this path: 1.11 to 1.20x on H200 expert-parallel prefill,
1.17 to 1.33x on H200 tensor-parallel serving, 1.16 to 1.24x on H200 decode, and
1.81 to 2.15x on B300 decode. The code is Apache-2.0, the repository has seven
commits with the first on 2 August, and the indexed path loads through vLLM's
existing --quantization humming flag.
What the measurement covers
Three boundaries are written into the repository itself.
The B300 ratio is against an untuned baseline. Chord's docs/performance.md
says the Blackwell speedups are larger mostly because public Humming ships only
its default configuration strategy on that hardware, and tells readers to treat
the H200 ratios as the fair comparison. The B300 ratio also decays with load,
from 2.15x at 20 tokens per GPU to 1.81x at 50.
The timing covers one operation. The blog's summary table excludes routing, activation and communication. Timing uses the same Triton benchmarking call as upstream Humming, and routing defaults to a random expert assignment rather than production traffic.
There is a point where it flips. On the grouped H200 prefill path at 512 rows per expert, Chord's gate/up stage takes 2318.2 µs against Humming's 2265.0 µs, about 2 percent slower, and the full layer comes out at 1.00x. The blog puts this down to both kernels approaching the same throughput ceiling.
What a self-hosted LLM actually gets
The one end-to-end run served Kimi-K2.6 on 8×H200 with TP8 plus DCP8, an FP8 KV cache and ShareGPT requests. Mean time to first token fell from 2022 ms to 1849 ms, 8.6 percent. Prefill throughput rose 9.6 percent. Decode throughput rose 4.1 percent at batch 8, 5.5 percent at batch 64 and 8.0 percent at batch 128. The post calls this an earlier serving report and gives no vLLM or Humming version for it.
On an eight-GPU node that is worth having. It is not 1.33x, and the distance between a kernel table and a serving bill is the same distance a proof of concept hides, which is why cost control belongs in production terms from day one rather than inherited from a benchmark.
Here is what the announcement does not say. Every kernel table compares against
Humming commit 4351af3, tagged v0.1.10 and published to PyPI as
humming-kernels 0.1.10 on 2 July. Humming's main branch has 82 commits since that commit. One of
them, pull request 57, merged on 14 August, retunes the exact path behind
Chord's fair comparison: indexed A16 MoE scheduling on H100 and H200. It first
shipped in humming-kernels 0.1.13. The kernel tables predate it, and vLLM still
pins an earlier release: version 0.29.0 on PyPI requires humming-kernels 0.1.12.
The claim this post stakes: the H200 per-layer ratios are an upper bound,
and against humming-kernels 0.1.13 or later the gap will be smaller than the 1.11 to
1.33x the H200 tables report. Timing the same shapes on H200 with Humming 0.1.13 or later, using
Humming's benchmarks/bench_humming.py against Chord's
tests/test_w4a16_indexed.py, and getting equal or larger ratios would show
this wrong. That run is not published anywhere I read, and I have not run it, since
it needs H200s.
The install gives a dependency a second owner
Chord's setup.py packages a top-level humming module so vLLM's loader finds
it, and that module's docstring says not to install upstream Humming alongside.
But vLLM 0.29.0 on PyPI declares humming-kernels 0.1.12 as a dependency, and
Humming's own pyproject.toml packages the same humming module. In a stock
vLLM environment, following Chord's instructions leaves two distributions that
both ship humming/__init__.py.
The replacement is also narrow. The same docstring scopes Chord's humming to
the indexed W4A16 MoE contract and says everything outside it raises
NotImplementedError. In an image with Chord installed, any other model
routed to the humming backend gets that error instead of a kernel.
What to check before you believe it applies
Choosing which of these controls matters on your hardware is the core of a private LLM deployment, and none of them needs a vendor to answer:
-
Match the checkpoint. The model's
quantization_configmust shownum_bits4,group_size32 and formatpack-quantized. Anything else fails at load by design. -
Find out who owns
humming. Run this in the serving image:python -m pip show -f humming-kernels chord_kernels | grep -E '^(Name|Version| humming/__init__\.py)'If
humming/__init__.pyprints under both names, two packages own one import root. -
Use two controls, not one. Benchmark end to end on your own traffic against vLLM's pinned Humming 0.1.12, and again against 0.1.13 or later.
-
Set the bar at 4 percent. On H200, adopt only if decode throughput at your production batch size beats the stronger control by at least 4 percent, the lowest end-to-end gain the post reports. Below that you carry a replaced dependency for less than the published floor.
-
On B300, wait. The post lists Blackwell prefill kernels as a future release, and its decode comparison has no tuned baseline.
Sources
- vLLM x Novita AI: Chord, Faster INT4 MoE for Kimi K2.x - vLLM blog
- novitalabs/chord repository and README
- Chord docs/performance.md
- Chord docs/benchmarking.md
- Chord docs/shapes.md
- Chord setup.py
- Chord humming/__init__.py
- inclusionAI/humming pull request 57: Tune SM90 H100/H200 indexed A16 MoE scheduling
- inclusionAI/humming commits since 4351af3
- inclusionAI/humming pyproject.toml at v0.1.12
- humming-kernels release history - PyPI
- vllm 0.29.0 - PyPI
- vllm requirements/cuda.txt at v0.29.0
- moonshotai/Kimi-K2.6 config.json - Hugging Face
Related reading
- AI Engineering
DSpark Speculative Decoding: The 4x Was Measured on Math, and Tool Calls Accept About Half as Many Draft Tokens
By Petru Popa · Read - AI Engineering
The Fastest Local LLM on a Mac Ships From a Repository Two Days Old
By Petru Popa · Read - AI Engineering
WeKnora Is Enterprise RAG. Seven of Its Ten Security Advisories Hit the Agent.
By Petru Popa · Read
Turn this into a plan for your team.
One week, fixed fee: a working session with your team, a prioritized use-case backlog, and an ROI model for the opportunities worth chasing.