Festkomma vs. Gleitkomma: die Unterschiede

Bei Festkomma wird die Position des Kommas vorab festgelegt, und Bruchzahlen werden mit denselben Bitfolgen und Rechenwerken wie ganze Zahlen verarbeitet. Die Schaltungen sind klein und sparsam, daher wird Festkomma in DSPs, Mikrocontrollern ohne Gleitkommaeinheit und für Ganzzahlberechnungen bei der KI-Inferenz eingesetzt. Gleitkomma stellt Zahlen aus Vorzeichen, Exponent und Mantisse dar und verschiebt das Komma über den Exponenten; so lassen sich Werte in einem sehr großen Bereich mit nahezu konstanter relativer Genauigkeit verarbeiten. Die Rechenwerke werden größer, doch da man sich nicht um die Stellenausrichtung kümmern muss, ist Gleitkomma der Standard für allgemeine Berechnungen und KI-Training.

MerkmalFestkommaGleitkomma
DarstellungEine ganzzahlige Bitfolge wird mit einem festgelegten Skalierungsfaktor (2 hoch −n) multipliziert gelesen. Notation z. B. Q15Drei Teile – Vorzeichen, Exponent, Mantisse – in der Form (−1)^Vorzeichen × 1,Mantisse × 2^(Exponent − Bias). In IEEE 754 festgelegt
Wertebereich (Beispiel)Bei Q15 (16 Bit) −1 bis 1 − 2⁻¹⁵Bei einfacher Genauigkeit (32 Bit) etwa 10⁻³⁸ bis 10³⁸. Mit denormalisierten Zahlen noch näher an 0
GenauigkeitKonstante Schrittweite (konstanter absoluter Fehler). Je kleiner der Wert, desto größer der relative FehlerNahezu konstante relative Genauigkeit (bei einfacher Genauigkeit etwa 7 Stellen). Je größer der Wert, desto größer die Schrittweite
RechenwerkGanzzahl-Addierer und -Multiplizierer unverändertSchaltungen für Exponentenvergleich, Mantissenausrichtung, Normalisierung und Rundung erforderlich
Schaltungsgröße und LeistungKlein. Bei gleicher Bitbreite weit geringer als GleitkommaGroß. Fläche und Energie sind oft ein Mehrfaches eines Ganzzahl-Rechenwerks gleicher Bitbreite
ÜberlaufverhaltenIm Zweierkomplement Überlauf auf die Gegenseite (Wrap-around). Verhindert durch Sättigungsarithmetik oder Akkumulatoren mit Reservebits (Guard-Bits)Bei Überschreiten des größten darstellbaren Werts ±Unendlich. 0 ÷ 0 usw. ergibt NaN
SkalierungDer Programmierer schätzt die Wertebereiche ab und legt Verschiebungen und Kommapositionen für jede Operation festDer Exponent passt sich automatisch an, man muss kaum darauf achten
ReproduzierbarkeitBitgenau gleiche Ergebnisse sind leicht zu erreichenDas Ergebnis ändert sich je nach Additionsreihenfolge geringfügig (das Assoziativgesetz gilt nicht)
EinsatzbereicheDSPs, kleine Mikrocontroller ohne Gleitkommaeinheit, Signalverarbeitung in FPGAs und ASICs, Ganzzahlberechnungen bei der KI-Inferenz (z. B. INT8)Allgemeine Berechnungen auf PCs und Servern, wissenschaftlich-technisches Rechnen (doppelte Genauigkeit), Grafik, KI-Training (FP32, BF16, FP16, FP8)

Die Zahlenwerte sind typische Größenordnungen und variieren je nach Prozessgeneration und Produkt.

Wann welche Variante?

Festkomma
Wenn Signalverarbeitung mit vorab bekanntem Wertebereich mit kleiner Schaltung und geringer Leistung erfolgen soll. Filter für Audio und Kommunikation, Motorsteuerung, Implementierungen in FPGAs, Inferenz quantisierter KI-Modelle.
Gleitkomma
Berechnungen mit großem oder vorab unbekanntem Wertebereich. Wenn einfache Entwicklung und numerische Stabilität Vorrang haben, etwa bei wissenschaftlich-technischem Rechnen, physikalischen Simulationen, Grafik und KI-Training.
Kombination
In der KI wird zunehmend in Gleitkomma trainiert und für die Inferenz auf skalierte Ganzzahlen (z. B. INT8) quantisiert, die dann mit Ganzzahl-Rechenwerken wie bei Festkomma berechnet werden.

Häufige Fragen

Warum sind Festkomma-Schaltungen klein?

Da die Kommaposition festliegt, können Ganzzahl-Addierer und -Multiplizierer unverändert verwendet werden. Bei Gleitkomma sind bei jeder Addition Schaltungen nötig, die Exponenten vergleichen, die Mantissen ausrichten sowie das Ergebnis normalisieren und runden; das vergrößert Fläche und Leistungsaufnahme.

Was passiert bei einem Überlauf in Festkomma?

Wie bei Ganzzahlen im Zweierkomplement springt der Wert beim Überschreiten des Maximums auf die Seite des Minimums, was große Fehler verursacht, etwa wenn aus einem großen positiven Wert ein negativer wird. DSPs verhindern das durch Sättigungsarithmetik, die den Wert beim Maximum oder Minimum hält, oder durch breite Akkumulatoren mit Guard-Bits.

Ist Gleitkomma fehlerfrei?

Nein. Auch Gleitkomma hat eine endliche Bitzahl, daher entstehen bei Werten wie 0,1, die sich binär nicht exakt darstellen lassen, Rundungsfehler; auch Auslöschung und Absorption kommen vor. Der Vorteil liegt im großen Wertebereich und der nahezu konstanten relativen Genauigkeit.

Ist INT8 bei der KI-Inferenz Festkomma?

Das Prinzip ist ähnlich. Gleitkommawerte werden durch einen Skalierungsfaktor geteilt und in INT8-Ganzzahlen umgewandelt, mit Ganzzahl-Multiply-Accumulate verrechnet und am Ende mit dem Skalierungsfaktor zurückgerechnet. Der Unterschied zu Festkomma: Der Skalierungsfaktor ist nicht auf Zweierpotenzen beschränkt und kann pro Schicht oder Kanal festgelegt werden.

Verständnis prüfen

Was ist der Hauptgrund, warum bei kleinen Mikrocontrollern und DSPs häufig Festkomma- statt Gleitkommaarithmetik verwendet wird?

  1. ASie lässt sich mit Ganzzahlrechenwerken ausführen, die Schaltung ist klein, und der Energieverbrauch gering
  2. BFestkomma kann stets einen größeren Bereich darstellen als Gleitkomma
  3. CBei Festkomma entstehen überhaupt keine Rundungsfehler
Antwort und Erläuterung anzeigen

Antwort: A. Sie lässt sich mit Ganzzahlrechenwerken ausführen, die Schaltung ist klein, und der Energieverbrauch gering

Bei Festkomma wird nur die Lage des Kommas festgelegt und intern mit Ganzzahlen gerechnet, sodass Addition und Multiplikation in Ganzzahlschaltungen erfolgen. Schaltungen zum Angleichen von Exponenten oder zum Normalisieren wie bei Gleitkommarechenwerken entfallen, sodass Chipfläche und Energieverbrauch gering bleiben und es sich für kostengünstige Mikrocontroller und DSPs der Signalverarbeitung eignet. Dafür ist der darstellbare Bereich eng, und beim Entwurf sind Überlauf und mangelnde Genauigkeit zu beachten. Der Bereich ist bei Gleitkomma größer, und auch bei Festkomma entstehen Rundungsfehler.

Welche Kombination aus Schrittweite (Auflösung) und Bereich gilt für das 16-Bit-Festkommaformat Q15 mit Vorzeichen (15 Nachkommabits)?

  1. ASchrittweite 2⁻¹⁶, Bereich 0 bis 1
  2. BSchrittweite 2⁻¹⁵, Bereich −1 bis 1 − 2⁻¹⁵
  3. CSchrittweite 2⁻¹⁵, Bereich −32768 bis 32767
Antwort und Erläuterung anzeigen

Antwort: B. Schrittweite 2⁻¹⁵, Bereich −1 bis 1 − 2⁻¹⁵

Bei Q15 ist von 16 Bit 1 Bit das Vorzeichen und 15 Bit der Nachkommateil; dargestellt wird der als Ganzzahl gelesene Wert geteilt durch 2¹⁵ = 32768. Der Ganzzahlbereich −32768 bis 32767, geteilt durch 32768, ergibt −1 bis 32767/32768 = 1 − 2⁻¹⁵, und die Schrittweite ist 1/32768 = 2⁻¹⁵ ≈ 3.05 × 10⁻⁵. Zu beachten ist, dass genau +1 nicht darstellbar ist. −32768 bis 32767 ist der Bereich, wenn man den Wert ohne Komma als Ganzzahl liest. Das Format wird häufig in der Signalverarbeitung, z. B. von Audio, verwendet.

Wie ist das Ergebnis zu behandeln, wenn zwei Festkommazahlen mit je 8 Nachkommabits mit einem Ganzzahlmultiplizierer multipliziert werden?

  1. ADas Ergebnis hat ebenfalls 8 Nachkommabits, sodass nichts zu tun ist
  2. BDer Nachkommateil des Ergebnisses hat 4 Bit, daher ist um 4 Bit nach links zu schieben
  3. CDer Nachkommateil des Ergebnisses hat 16 Bit, daher ist zur Rückkehr zum ursprünglichen Format um 8 Bit nach rechts zu schieben
Antwort und Erläuterung anzeigen

Antwort: C. Der Nachkommateil des Ergebnisses hat 16 Bit, daher ist zur Rückkehr zum ursprünglichen Format um 8 Bit nach rechts zu schieben

Eine Zahl mit 8 Nachkommabits ist als der mit 2⁸ multiplizierte Wert gespeichert. Das Produkt zweier solcher Zahlen ist um 2⁸ × 2⁸ = 2¹⁶ vergrößert, der Nachkommateil des Ergebnisses hat also 16 Bit. Zur Rückkehr ins ursprüngliche Format mit 8 Nachkommabits ist durch 2⁸ zu teilen, d. h. um 8 Bit nach rechts zu schieben, und gegebenenfalls zu runden. Da bei der Multiplikation die Stellenzahl wächst, wird zwischendurch üblicherweise mit großer Bitbreite gerechnet. Bei der Addition ändert sich die Zahl der Nachkommabits nicht, bei der Multiplikation addieren sie sich.

  1. Welche Kombination der Bitzahlen für Vorzeichen, Exponent und Mantisse gilt bei IEEE-754-Gleitkommazahlen einfacher Genauigkeit (32 Bit)?
  2. Was ist der Hauptgrund, warum bfloat16 beim KI-Training verwendet wird?
  3. Was ist der Hauptvorteil der Umwandlung (Quantisierung) der Gewichte von FP32 in INT8 bei der KI-Inferenz?

Übungsfragen zu Computerarithmetik

Wichtige Begriffe erklärt

Festkommadarstellung
Verfahren, bei dem die Position des Kommas festgelegt ist und Dezimalzahlen mit derselben Bitfolge wie Ganzzahlen dargestellt werden. Berechnung mit Ganzzahl-Rechenwerken, kleine Schaltung und geringe Leistungsaufnahme, aber kleiner darstellbarer Bereich. Sie wird auch durch die Zahl der Nachkommabits angegeben, z. B. Q15.
IEEE 754
Internationaler Standard, der die Darstellung von Gleitkommazahlen und die Rechenregeln festlegt. Er definiert Formate wie einfache (32 Bit) und doppelte Genauigkeit (64 Bit), Rundungsverfahren sowie Sonderwerte wie Unendlich und NaN, sodass Rechenergebnisse unabhängig vom Computer übereinstimmen.
Sättigungsarithmetik
Arithmetik, bei der ein Ergebnis außerhalb des darstellbaren Bereichs nicht durch Überlauf auf die andere Seite umschlägt, sondern bei Maximal- bzw. Minimalwert verbleibt. Sie vermeidet große Fehler in der Audio- und Bildsignalverarbeitung.
bfloat16
16-Bit-Gleitkommaformat mit 1 Vorzeichenbit, 8 Exponentenbits und 7 Mantissenbits. Da der Exponent dem von FP32 entspricht, ist der Wertebereich groß; die Genauigkeit ist gering, aber es wird für KI-Training genutzt. FP16 hat 5 Exponenten- und 10 Mantissenbits, ist genauer, aber im Bereich enger.
INT8
8-Bit-Ganzzahl mit Vorzeichen (−128 bis 127). Bei der KI-Inferenz werden Gewichte und Aktivierungswerte mit einem Skalierungsfaktor in INT8 umgewandelt (Quantisierung); dadurch sinken Rechen- und Speicheraufwand stark, und die Verarbeitung ist mit kleinen Ganzzahlschaltungen schnell.

Verwandte Vergleiche