Die stille Reserve: Subnormale Zahlen, gradueller Unterlauf und der wahre Preis der lückenlosen Null
Stellen Sie sich vor, Sie subtrahieren zwei Zahlen, die sich nur in der billionsten Nachkommastelle unterscheiden. Das Ergebnis ist winzig, aber nicht null. In der Gleitkommaarithmetik nach IEEE 754 ist dieser Unterschied keineswegs selbstverständlich. Ohne eine besondere Konstruktion – die subnormalen Zahlen – würde der Computer die Differenz kurzerhand zu null erklären. Zwei verschiedene Zahlen wären plötzlich gleich, und die Algebra, auf die sich unzählige Algorithmen verlassen, bräche in sich zusammen. Gradual Underflow ist die Antwort des Standards auf dieses Problem. Sie rettet die mathematische Integrität an der unteren Grenze des Zahlbereichs – doch der Preis dafür ist bis heute spürbar, und er ist höchst ungleich verteilt: Auf manchen Prozessoren kostet eine einzige subnormale Multiplikation das Fünfzigfache einer normalen Operation, auf anderen ist gar nichts zu spüren .
Die Architektur der Lücke
Um zu verstehen, warum subnormale Zahlen überhaupt existieren, muss man einen Blick auf den Aufbau einer normalen Gleitkommazahl werfen. Eine Double-Precision-Zahl nach IEEE 754 besteht aus einem Vorzeichenbit, einem Exponenten und einer Mantisse. Bei normalen Zahlen wird das führende Bit der Mantisse als implizit 1 angenommen und nicht gespeichert – ein Trick, der ein zusätzliches Bit Präzision schenkt. Der Exponent ist mit einem Bias versehen, sodass auch negative Exponenten dargestellt werden können. Die kleinste positive normale Double-Zahl liegt bei etwa 2,2×10−308 .
Was aber geschieht, wenn eine Berechnung ein Ergebnis liefert, das noch kleiner ist? Die Antwort des Standards: Der Exponent wird auf den reservierten Wert null gesetzt, und das implizite führende Bit der Mantisse wechselt von 1 auf 0 . Die Zahl wird subnormal. Der darstellbare Bereich erweitert sich dadurch bis hinunter zu etwa 4,9×10−324 bei Double-Precision . Der entscheidende Punkt ist nicht die schiere Existenz dieser winzigen Zahlen, sondern die Struktur der Lücken zwischen ihnen. Im normalen Bereich wächst der Abstand zwischen zwei benachbarten darstellbaren Zahlen proportional zu ihrem Betrag. Bei subnormalen Zahlen hingegen bleibt der absolute Abstand konstant – er entspricht genau dem Abstand zwischen der Null und der kleinsten subnormalen Zahl . Diese gleichmäßige „Teppichstruktur“ am unteren Rand des Zahlbereichs ist es, die den Übergang von normalen Zahlen zur Null fließend gestaltet, statt ihn als abrupten Absturz zu inszenieren.
Was auf dem Spiel steht: Die Äquivalenz, die alles trägt
Die vielleicht wichtigste Eigenschaft, die Gradual Underflow bewahrt, klingt so banal, dass man sie leicht übersieht: x=y⟺x−y=0. Für reelle Zahlen ist das eine Selbstverständlichkeit. Für Gleitkommazahlen mit „Flush to Zero“ – also der alternativen Strategie, underflowende Ergebnisse einfach auf null zu setzen – ist sie es nicht. Oracle dokumentiert in seiner Numerical Computation Guide ausdrücklich, dass Store 0 diese erste Eigenschaft verletzt, sobald x−y unterläuft . Zwei verschiedene Zahlen, deren Differenz unterhalb der Darstellbarkeitsgrenze liegt, würden als identisch erscheinen. Der Computer würde eine Gleichheit behaupten, die mathematisch falsch ist.
Diese scheinbar triviale Eigenschaft hat weitreichende Konsequenzen. Sie ist die Grundlage für Vergleichsoperationen, für Sortieralgorithmen, für die Lösung linearer Gleichungssysteme. Oracle führt ein konkretes Beispiel an: die Berechnung eines inneren Produkts in einer Schleife. Mit Gradual Underflow ist das Ergebnis so genau, wie es die Rundung erlaubt. Mit Store 0 kann eine kleine, aber von null verschiedene Summe geliefert werden, die „plausibel aussieht, aber in fast jeder Ziffer falsch ist“ . Das ist der theoretische Kern: Subnormale Zahlen sind kein Luxus für exotische Randfälle, sondern eine Versicherung gegen stille, systematische Fehler, die sich durch ganze Berechnungsketten fressen können. Der relativen Genauigkeit sind nahe der Null zwar Grenzen gesetzt – je kleiner die subnormale Zahl, desto weniger signifikante Bits hat sie –, aber der absolute Fehler überschreitet nie den Abstand zum nächsten darstellbaren Nachbarn .
Der Preis: Eine Frage der Architektur
Doch die Theorie hat einen Haken, und er sitzt tief in der Hardware. Wie hoch der Preis tatsächlich ist, hängt allerdings so stark vom Prozessor ab, dass pauschale Aussagen in die Irre führen. Daniel Lemire hat im September 2026 Benchmarks auf fünf aktuellen Prozessorgenerationen veröffentlicht, die ein differenziertes Bild zeichnen .
Auf Intel-Prozessoren – getestet wurden Granite Rapids (Xeon 6975P-C) und Emerald Rapids (Xeon Gold 6548N) – sind die Einbrüche dramatisch. Eine Multiplikation mit subnormalen Zahlen ist etwa 45- bis 50-mal langsamer als eine Multiplikation mit normalen Zahlen. Eine Division ist etwa 18-mal langsamer. Besonders aufschlussreich ist die Latenz in einer abhängigen Kette: Eine normale Multiplikation benötigt 4 Zyklen, eine subnormale 128 Zyklen . Dabei ist es gleichgültig, ob die subnormale Zahl ein Eingabewert ist oder das Ergebnis der Operation – beides führt zu derselben Verlangsamung. Eine wichtige Ausnahme bilden Addition und Subtraktion: Sie laufen auf Intel-Prozessoren auch mit subnormalen Operanden mit voller Geschwindigkeit . Und selbst wenn nur ein Prozent der Werte subnormal ist, kann die Verlangsamung erheblich sein, weil der Compiler die Berechnung vektorisiert und ein einziger subnormaler Wert einen ganzen Block ausbremst .
Auf AMD Zen 5 hingegen zeigt sich ein anderes Bild. Multiplikationen und Additionen laufen unabhängig von den Eingaben mit voller Geschwindigkeit. Die abhängige Multiplikationskette ist um etwa ein Drittel langsamer (von 0,66 auf 0,88 Nanosekunden pro Schritt), Divisionen etwa doppelt so langsam. Interessanterweise ist bei Divisionen bereits ein einziger subnormaler Wert unter hundert fast so langsam wie ausschließlich subnormale Werte .
Auf ARM-Prozessoren – getestet wurden der AWS Graviton 5 (Neoverse V3) und der Apple M4 Max – zeigt sich überhaupt kein Leistungsunterschied. Subnormale Zahlen werden mit voller Geschwindigkeit verarbeitet .
Diese Diskrepanz erklärt, warum viele Compiler und Betriebssysteme standardmäßig „Flush-to-Zero“ (FTZ) und „Denormals-Are-Zero“ (DAZ) aktivieren – nicht aus Missachtung der mathematischen Integrität, sondern weil die Leistungseinbußen auf bestimmten Plattformen schlicht inakzeptabel sind. In der Spieleprogrammierung, der Echtzeitgrafik oder bei bestimmten Machine-Learning-Workloads mag das vertretbar sein. In der wissenschaftlichen Simulation, wo die Korrektheit von Differenzen über die Validität eines gesamten Ergebnisses entscheidet, ist es ein riskantes Spiel.
| Prozessor | Multiplikation (subnormal vs. normal) | Division | Addition/Subtraktion | Abhängige Kette (Latenz) |
|---|---|---|---|---|
| Intel Granite/Emerald Rapids | ~45–50× langsamer | ~18× langsamer | Keine Verlangsamung | 4 → 128 Zyklen |
| AMD Zen 5 | Keine Verlangsamung | ~2× langsamer | Keine Verlangsamung | ~33 % langsamer |
| ARM Graviton 5 / Apple M4 Max | Keine Verlangsamung | Keine Verlangsamung | Keine Verlangsamung | Keine Verlangsamung |
Zwischen den Welten: Der Kompromiss als Dauerzustand
Die Geschichte der subnormalen Zahlen ist keine Erfolgsgeschichte im naiven Sinne. Es ist die Geschichte eines Kompromisses, der sich als robuster erwiesen hat als seine Alternativen, aber dessen Kosten nie ganz verschwunden sind – und der heute auf verschiedenen Architekturen radikal unterschiedlich ausfällt. Die IEEE-754-Norm von 1985 legte Gradual Underflow als verbindlich fest, und die Debatte darüber verzögerte die Verabschiedung des Standards erheblich . Die Gegner argumentierten, Arithmetik mit subnormalen Zahlen sei zu kompliziert für eine Hardware-Operation, die nur gelegentlich gebraucht werde. Die Befürworter setzten sich durch, weil die mathematischen Garantien schwerer wogen.
Doch die Norm kann nicht vorschreiben, wie schnell ein Prozessor subnormale Operationen ausführt. Sie kann nur verlangen, dass das Ergebnis korrekt ist. Die Frage, ob diese Korrektheit den Preis der Langsamkeit wert ist, bleibt eine Frage des Kontexts – und der Hardware. Dass ARM-Prozessoren heute subnormale Zahlen ohne jeden Leistungsverlust verarbeiten, zeigt, dass die technischen Hürden überwindbar sind. Dass Intel-Prozessoren im Jahr 2026 immer noch mit einem Faktor von 45 bis 50 bei subnormaler Multiplikation zu kämpfen haben, zeigt, dass die Prioritäten anders liegen.
Fazit: Die Null ist nicht genug
Subnormale Zahlen sind der Beweis dafür, dass die Gleitkommaarithmetik mehr ist als eine technische Konvention. Sie ist ein mathematisches Modell mit expliziten Garantien, und zu diesen Garantien gehört, dass die Null nicht als black box fungiert, in der alle kleinen Werte unterschiedslos verschwinden. Gradual Underflow bewahrt die Struktur des Zahlenraums bis an seine äußerste Grenze – um den Preis, dass diese Grenze auf mancher Hardware unwegsam bleibt.
Die Frage, die sich daraus ergibt, ist keine rein technische mehr. Sie lautet: Wie viel Korrektheit sind wir bereit zu bezahlen, und auf welcher Architektur? In einer Zeit, in der numerische Simulationen Klimamodelle, medizinische Bildgebung und Finanzrisiken tragen, ist die Antwort nicht trivial. Flush to Zero ist schnell, aber es lügt. Gradual Underflow ist ehrlich, aber es bremst – auf Intel-Prozessoren jedenfalls. Wer die Wahl hat, sollte wissen, was auf dem Spiel steht: nicht weniger als die Zuverlässigkeit der Unterscheidung zwischen „fast null“ und „wirklich null“. Und diese Unterscheidung kann über die Validität eines gesamten Ergebnisses entscheiden.
Quellen
- Lemire, D. (2026): Subnormal floating-point numbers are expensive… on Intel processors. Daniel Lemire’s Blog, 15. September 2026. https://lemire.me/blog/2026/09/15/subnormal-floating-point-numbers-are-expensive-on-intel-processors/
- Oracle: Numerical Computation Guide – What Every Computer Scientist Should Know About Floating-Point Arithmetic. Kapitel zu Gradual Underflow, Store 0 und den drei arithmetischen Eigenschaften
- Oracle Help Center: 2.3.2 How Does IEEE Arithmetic Treat Underflow? (2015). Darstellung der subnormalen Repräsentation und der Erweiterung des Exponentenbereichs
- Overton, M. L.: Numerical Computing with IEEE Floating Point Arithmetic. Kapitel zu Gradual Underflow und der Kontroverse um subnormale Zahlen
- CERN Indico: Floating Point – Subnormal Floating-Point Numbers. Schulungsunterlagen zur IEEE-754-Klassifikation und zur Eigenschaft a=b⇔a−b=0
Post Comment