Zum Inhalt springen
senn-techsenn-tech
Zurück zum Blog
KI & Entwicklung
KI im Betrieb2026-10-21· Von Franz Senn

vLLM führt Humming ein: neue Quant-Kernel, im eigenen Produktivbild nachgesehen

Am 21. Oktober 2026 hat Ant Group gemeinsam mit der vLLM-Community Humming veröffentlicht, eine Kernel-Bibliothek für quantisierte Inferenz. Der Beitrag auf dem vLLM-Blog nennt ausdrücklich die Workstation-Linie SM120, zu der auch unsere RTX 5090 gehört. Wir haben deshalb zwei Dinge geprüft: was das Projekt selbst belegt, und was in unserem laufenden Produktivbild davon ankommt. Die Bibliothek steckt dort bereits, ohne dass wir sie bestellt hätten.

Humming ist eine Open-Source-Bibliothek (Apache-2.0) von Ant Group und der vLLM-Community. Sie erzeugt GPU-Kernel für Matrixmultiplikation mit quantisierten Gewichten erst zur Laufzeit per Just-in-Time-Kompilierung. Unterstützt werden NVIDIA-Karten ab Turing, ganzzahlige und Gleitkomma-Formate von INT1 bis FP8 sowie dichte und Mixture-of-Experts-Schichten. In vLLM ab 0.29.0 wählt man sie mit den Optionen --linear-backend und --moe-backend.

Stand vom 5. November 2026

Dieser Beitrag wurde am 5. November inhaltlich überarbeitet, deshalb steht ein updated-Datum im Kopf. Die Erstfassung vom 21. Oktober enthielt eine Durchsatztabelle (13,1 bis 33,4 Tokens pro Sekunde, "vLLM 0.29.1 gegen 0.33.0") mit Zuschreibung an den vLLM-Blog. Diese Zahlen finden wir in der heutigen Fassung der Blogseite nicht. Die dortige End-zu-End-Tabelle vergleicht zwei MoE-Backends mit anderen Werten; sie steht unten. Die Erstfassung nannte 0.33.0 außerdem eine unveröffentlichte Entwicklungsversion. Das ist überholt: vLLM 0.33.0 erschien am 2. November und pinnt humming-kernels==0.1.19. Weitere Korrekturen: Der Vorsprung von 19 und 9 Prozent gilt für SM121 (GB10, DGX Spark), nicht für die RTX-5090-Linie SM120. Drei Aussagen ohne Beleg (eine Konfigurationszahl, eine Windows-Pipeline, eine Hacker-News-Diskussion) haben wir gestrichen.

Was das Projekt belegt, und was nicht

Alle Messungen stammen vom Projekt, also von dem Team, das die Bibliothek bewirbt. Unabhängige Nachmessungen haben wir nicht gefunden.

Ausgabe-Durchsatz in Tokens pro Sekunde, 8× H20, DeepSeek-V4.1-Flash, Herstellermessung1 Anfrage Marlin W4A16881 Anfrage Humming W4A8101 · +14,1 %8 Anfragen Marlin W4A162878 Anfragen Humming W4A8383 · +33,4 %32 Anfragen Marlin W4A1639932 Anfragen Humming W4A8560 · +40,5 %64 Anfragen Marlin W4A1644264 Anfragen Humming W4A8634 · +43,3 %0700
Werte auf ganze Tokens pro Sekunde gerundet, Rohwerte in der Tabelle darunter. Messung des vLLM-Projekts auf acht H20-Karten mit Tensor-Parallelität 8: MoE-Schichten von Marlin W4A16 auf Humming W4A8 umgestellt, Gewichte unverändert MXFP4. Die vLLM-Version nennt der Beitrag nicht. Von uns nicht nachgemessen. (Quelle: vLLM-Blog vom 21.10.2026, Abschnitt End-to-End Inference Performance)
Gleichzeitige AnfragenMarlin W4A16 (tok/s)Humming W4A8 (tok/s)ÄnderungZeit bis zum ersten Token
188,30100,77+14,1 %543 ms auf 384 ms
8287,04383,04+33,4 %2.050 ms auf 1.387 ms
32398,83560,49+40,5 %3.547 ms auf 2.465 ms
64442,37633,94+43,3 %5.467 ms auf 3.883 ms

Einheit: Ausgabe-Tokens pro Sekunde und Millisekunden. Messdatum: Veröffentlichung am 21.10.2026. Messträger: acht H20-Karten, DeepSeek-V4.1-Flash, Tensor-Parallelität 8. Herstellerzahlen, von uns nicht nachgemessen.

Drei Einschränkungen gehören dazu. Erstens läuft die Tabelle auf Rechenzentrumskarten ohne Blackwell, mit einem Modell, das wir nicht betreiben. Zweitens ist der Vorsprung bei vielen gleichzeitigen Anfragen am größten: Eine einzelne Anfrage gewinnt 14 Prozent, bei 64 gleichzeitigen sind es 43. Wer einen persönlichen Assistenten auf einer Karte betreibt, liegt eher bei der ersten Zeile, wer eine Firma bedient, eher bei der letzten. Drittens vergleicht die Tabelle zwei Backends für dieselben Gewichte und sagt nichts über ein anderes Quantformat.

Für die Linien SM120 und SM121 steht im Beitrag: Humming liegt bei MoE-Schichten mit W4A8 (MXFP4 × MXFP8) und W4A4 (NVFP4 × NVFP4) an den meisten gemessenen Punkten vor FlashInfer CUTLASS. Die genannten Spitzen von etwa 19 Prozent (W4A8) und 9 Prozent (W4A4) bei kleinen Stapeln gelten für SM121. Laut Diagrammbeschriftung ist das ein GB10 (DGX Spark); für SM120 wurde eine RTX PRO 6000 gemessen. Die Achse des SM120-Diagramms für W4A4 reicht nur von 0,99 bis 1,04, der Vorsprung liegt dort also im niedrigen einstelligen Prozentbereich. Die Diagramme sind Bilddateien, Zahlen daraus übernehmen wir nur, wo sie im Text stehen. Eine RTX 5090 ist in keinem Diagramm gemessen.

Zur Kompilierzeit: Auf einem H200-Server mit CUDA 13.4 braucht ein W4A16-Kernel laut Beitrag 1,82 Sekunden mit Humming gegen 23,35 Sekunden mit CUTLASS und NVCC, bei abgeschalteten Zwischenspeichern. Den Kernelsatz einer Schicht kompiliert Humming nach Angabe des Projekts in etwa 2 bis 4 Sekunden parallel zum Warmup. Der Beitrag nennt außerdem zwei bislang ungenutzte Blackwell-Formate (float4e0m3 und float8e3m4), die Humming anspricht. Rubin trägt sie nicht mit; wer darauf aufbaut, baut auf eine einzelne Kartengeneration.

Die Bibliothek ist jung. Die erste PyPI-Version stammt vom 13. Mai 2026. Am 5. November stand das GitHub-Repo bei 349 Sternen, und auf PyPI lag die Version 0.1.19 vom 30. Oktober. Fünf Punkte sind im Issue-Tracker offen. Der älteste (#31) meldet, dass der Indexed-StreamK-Pfad für MXFP4A8 über eine BF16-Ausgabe Genauigkeit verliert. Ein Punkt (#72) nennt für INT3 auf SM80 nur etwa 43 Prozent der Speicherbandbreite bei einer Anfrage, ein weiterer (#69) ein FP8-Modell, das bei Tensor-Parallelität 16 nicht lädt. Am 4. November kam #190 dazu: NVRTC lässt beim NVFP4-MoE-Kernel eine Reduktion fallen, NVCC behält sie. Ein Nutzungssignal außerhalb des Kernelsatzes liefert der vLLM-Blog vom 15. September: Novita AI stellt seinen Chord-Kernel für Kimi-K2.x-Modelle mit einem Humming-kompatiblen Indexed-Pfad vor.

Im eigenen Bild nachgesehen

Am Morgen des 21. Oktober 2026 haben wir nur lesend in unser laufendes Produktivbild geschaut und nichts verändert. Messträger ist der Host 192.168.180.3 mit vier RTX 5090, Container fn-port, Bild vllm-flashnext-hybrid:v032-nvfp4port.

BefundWertQuelle
Installierte Humming-Versionhumming-kernels 0.1.17pip show im Container, 21.10.2026
Backend-Auswahl in vLLMhumming wählbar für --linear-backend und --moe-backend, Voreinstellung autovllm serve --help im Bild, 21.10.2026
Unsere Startargumente--moe-backend flashinfer_cutlass fest gesetztStartkommando der Lane, 21.10.2026
Karten4× Compute Capability 12.0Treiberabfrage, 21.10.2026
Gewichte und CacheModelopt-Quantisierung, KV-Cache NVFP4, MTP-Spekulation mit drei TokenModellkonfiguration, 21.10.2026

Das sind eigene Messungen der Erstfassung, wir haben sie am 5. November nicht wiederholt. Die Herkunft der Bibliothek lässt sich öffentlich belegen. Wir haben am 5. November die Anforderungsdateien der vLLM-Tags gelesen:

vLLM-TagVeröffentlichtGepinnte Humming-Version
v0.29.09.9.20260.1.12
v0.30.022.9.20260.1.12
v0.31.05.10.20260.1.16
v0.32.018.10.20260.1.17
v0.33.02.11.20260.1.19

Einheit: Versionspin in requirements/cuda.txt (Extra cu13). Messdatum: 5.11.2026. Quelle: die Dateien im vLLM-Repository, Veröffentlichungsdaten laut PyPI.

Für uns folgt daraus: Die Bibliothek ist seit 0.29.0 im Bild, rechnet aber an der Stelle, an der die Diagramme Gewinne zeigen, nicht mit. Die Expertenschichten laufen über das von uns fest gesetzte FlashInfer CUTLASS. In den linearen Schichten entscheidet auto; welcher Kernel dort gewinnt, wäre nur mit einem Messlauf nachweisbar und bleibt offen.

Was Betreiber daraus mitnehmen

Wer vLLM ab 0.29.0 mit CUDA betreibt, hat die Bibliothek bereits installiert. Wer Backend-Optionen wie wir von Hand gesetzt hat, sollte die Zeile --moe-backend prüfen, denn sie bestimmt, ob Humming für diesen Schichttyp überhaupt zur Wahl steht. Für Besitzer einer RTX-5090-Maschine bleibt der Rat, im Wartungsfenster dieselben Anfragen einmal mit dem bisherigen Backend und einmal mit Humming zu fahren und nur bei messbarem Vorteil bei gleichen Antworten umzustellen. So haben wir bereits zwei vLLM-Builds für Qwen3.8-Flash-Next verglichen; die Versionsfrage rund um 0.33.0 steht in vLLM 0.33.0 ohne CUDA 12.9. Weitere Beiträge zu Betrieb und Grenzen eigener Modelle sammelt das Thema KI im Betrieb. Wer wissen will, ob sich ein eigenes Sprachmodell im Haus lohnt, findet die Beratung zum Unternehmens-LLM.

Der Stand bei uns: Bibliothek installiert, Schalter vorhanden, Vorteil auf unserer Konfiguration ungemessen, MoE-Pfad bewusst anders verdrahtet. Der Durchsatzlauf gegen Humming steht aus. Ein Termin ist nicht beschlossen.

Weiterführende Quellen

Fragen?
Muss ich etwas umstellen, damit Humming in meinem vLLM läuft?+

Installiert wird die Bibliothek ohne Zutun: Die CUDA-Installationen von vLLM bündeln humming-kernels seit 0.29.0 als Abhängigkeit (vLLM-Blog, Anforderungsdatei des Tags v0.29.0). Ob sie rechnet, hängt von den Backend-Optionen ab. In unserem 0.32-Bild steht die Voreinstellung von --moe-backend und --linear-backend auf auto; wie auto zwischen den Backends wählt, haben wir nicht gemessen. Wer ein Backend fest in den Startargumenten stehen hat, wie wir bei den MoE-Schichten, umgeht die Auswahl.

Sind die genannten Beschleunigungen Messwerte von einer RTX 5090?+

Nein. Die End-zu-End-Tabelle des vLLM-Projekts entstand auf acht H20-Karten mit DeepSeek-V4.1-Flash und vergleicht Marlin W4A16 mit Humming W4A8. Die Kernel-Diagramme für die Workstation-Linie SM120 messen laut Beschriftung eine RTX PRO 6000, die für SM121 einen GB10 (DGX Spark). Eine RTX 5090 ist in keinem dieser Diagramme gemessen, auch wenn sie zur selben Architekturlinie SM120 gehört.

Warum stellt ihr nicht einfach auf Humming um?+

Weil für unsere Konfiguration keine Messung existiert, weder vom Projekt noch von uns. Die Herstellertabelle gilt für ein anderes Modell, andere Karten und ein anderes Gewichtsformat als unser Modelopt-Quant. Ein Backend-Wechsel kostet außerdem einen Neustart der Lane. Das gehört in ein Wartungsfenster mit Durchsatzlauf und Vergleich echter Anfragen, der Erscheinungstag eines Herstellerbeitrags ist dafür kein Grund.