Fast Trigonometric Functions using the RLIBM Approach
Park, Nagarakatte
This paper describes our experience developing polynomial approximations for trigonometric functions that produce correctly rounded results for multiple representations and rounding modes using the RLIBM approach. A key challenge with trigonometric functions concerns range reduction with "pi", which reduces a given input in the domain of a 32-bit float to a small domain. Any rounding error in the value of "pi" is amplified during range reduction, which can result in wrong results. We describe our experience implementing fast range reduction techniques that maintain a large number of bits of "pi" both with floating-point and integer computations. The resulting implementations for trigonometric functions are fast and produce correctly rounded results for all inputs for multiple representations up to 32-bits with a single implementation.
academic
Schnelle trigonometrische Funktionen mit dem RLIBM-Ansatz
Dieses Paper beschreibt die Erfahrungen bei der Entwicklung von Polynomapproximationen trigonometrischer Funktionen unter Verwendung der RLIBM-Methode, die korrekt gerundete Ergebnisse für verschiedene Darstellungen und Rundungsmodi erzeugt. Die Hauptherausforderung trigonometrischer Funktionen liegt in der Bereichsreduktion, die π beinhaltet und Eingaben aus dem 32-Bit-Gleitkommabereich auf einen kleineren Bereich reduziert. Jeder Rundungsfehler im π-Wert wird während des Bereichsreduktionsprozesses verstärkt und kann zu fehlerhaften Ergebnissen führen. Die Autoren beschreiben ihre Erfahrungen bei der Implementierung schneller Bereichsreduktionstechniken, die eine große Anzahl von π-Bits sowohl in Gleitkomma- als auch in Ganzzahlberechnungen bewahren. Die resultierenden trigonometrischen Funktionsimplementierungen sind sowohl schnell als auch erzeugen für alle Eingaben korrekt gerundete Ergebnisse, unterstützen verschiedene Darstellungen bis zu 32 Bit und benötigen nur eine einzige Implementierung.
Herausforderungen bei korrekter Rundung: Wissenschaftliche Berechnungen verwenden häufig grundlegende Funktionen aus mathematischen Bibliotheken, aber die Erzeugung korrekt gerundeter Ergebnisse für alle Eingaben ist äußerst schwierig (das sogenannte "Tabellierer-Dilemma"), und Mainstream-Mathematikbibliotheken können nicht für alle Eingaben korrekte Ergebnisse liefern.
Portabilität und Reproduzierungsprobleme: Das Fehlen korrekt gerundeter mathematischer Bibliotheken führt dazu, dass Anwendungen auf verschiedenen Maschinen völlig unterschiedliche Ergebnisse liefern, was Portabilität und Reproduzierbarkeit beeinträchtigt.
Anforderungen für mehrere Darstellungsformate: Mit dem Aufkommen benutzerdefinierter Formate (wie bfloat16, tensorfloat32, FP8) besteht die Notwendigkeit einer Referenzbibliothek, die korrekte Ergebnisse für mehrere Darstellungen und Rundungsmodi liefert.
Minimax-Polynomapproximation: Traditionelle Methoden erzeugen Polynomapproximationen, die den maximalen Fehler über alle Eingaben minimieren, aber wenn die reelle Ausgabe sehr nahe an der Rundungsgrenze liegt, wird der Freiheitsgrad erheblich reduziert.
Kompromiss zwischen Leistung und Korrektheit: Bestehende Bibliotheken machen Kompromisse bei der Leistung (wie Payne-Hanek-Implementierungen) oder der Korrektheit (wie GCCs libm).
Effiziente Bereichsreduktionstechniken: Entwicklung effizienter Bereichsreduktionsalgorithmen, die Gleitkomma- und Ganzzahlberechnungen kombinieren und eine ausreichende Anzahl von π-Bits bewahren, um korrekte Ergebnisse zu erzeugen.
Einzelne Implementierung für mehrere Darstellungen: Implementierung einer einzigen Polynomapproximation, die für verschiedene Darstellungen von 10 bis 32 Bit und alle standardmäßigen Rundungsmodi korrekt gerundete Ergebnisse erzeugt.
Leistungsoptimierung: Ganzzahlbasierte Bereichsreduktion zeigt 19% Leistungsverbesserung gegenüber Gleitkommastrategien; die Gesamtleistung ist schneller oder vergleichbar mit Mainstream-Bibliotheken.
Vollständige trigonometrische Funktionsbibliothek: Schnelle und korrekte Implementierungen für sin-, cos- und tan-Funktionen.
Die Schlüsseleinsicht der RLIBM-Methode besteht darin, das korrekt gerundete Ergebnis direkt zu approximieren, anstatt den reellen Wert der Funktion. Für das korrekt gerundete Ergebnis einer gegebenen Eingabe existiert ein reeller Wertebereich, innerhalb dessen jeder Wert zum korrekten Ergebnis rundet. Dies bietet mehr Freiheitsgrad als die Minimax-Methode (1 ULP für alle Eingaben).
Um mehrere Darstellungen zu unterstützen, schlägt das RLIBM-Projekt vor, Polynomapproximationen mit (n+2)-Bit-Darstellung unter Verwendung des round-to-odd-Rundungsmodus zu erzeugen. Die Vorteile dieses Ansatzes sind:
Das round-to-odd-Ergebnis behält alle Informationen, die für die direkte Rundung zur Zieldarstellung erforderlich sind
Nachfolgende Rundungen zu niedrigeren Bitbreiten-Darstellungen erzeugen korrekte Ergebnisse
Dieses Paper zitiert wichtige Literatur aus den Bereichen numerische Analyse, Gleitkommaberechnungen und korrekte Rundung, einschließlich:
Mullers Referenzbuch zu grundlegenden Funktionen
MPFR-Bibliothek mit hoher Präzision
Payne-Hanek-Bereichsreduktionsalgorithmus
Forschung zum IEEE-754-Gleitkommastandard
Dieses Paper leistet einen wichtigen Beitrag im Bereich numerische Berechnung und wandelt theoretische Methoden erfolgreich in praktische Hochleistungsimplementierungen um, wobei es eine effektive Lösung für das Problem der korrekten Rundung in wissenschaftlichen Berechnungen bietet.