2025-11-17T19:07:12.711716

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

Grundinformationen

  • Paper-ID: 2510.13426
  • Titel: Fast Trigonometric Functions using the RLIBM Approach
  • Autoren: Sehyeok Park, Santosh Nagarakatte (Rutgers University)
  • Klassifizierung: cs.PL (Programmiersprachen)
  • Veröffentlichungskonferenz: International Workshop on Verification of Scientific Software (VSS 2025)
  • Paper-Link: https://arxiv.org/abs/2510.13426

Zusammenfassung

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.

Forschungshintergrund und Motivation

Kernprobleme

  1. 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.
  2. 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.
  3. 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.

Einschränkungen bestehender Methoden

  • 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).

Kernbeiträge

  1. Effiziente Bereichsreduktionstechniken: Entwicklung effizienter Bereichsreduktionsalgorithmen, die Gleitkomma- und Ganzzahlberechnungen kombinieren und eine ausreichende Anzahl von π-Bits bewahren, um korrekte Ergebnisse zu erzeugen.
  2. 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.
  3. Leistungsoptimierung: Ganzzahlbasierte Bereichsreduktion zeigt 19% Leistungsverbesserung gegenüber Gleitkommastrategien; die Gesamtleistung ist schneller oder vergleichbar mit Mainstream-Bibliotheken.
  4. Vollständige trigonometrische Funktionsbibliothek: Schnelle und korrekte Implementierungen für sin-, cos- und tan-Funktionen.

Methodische Details

Kernidee des RLIBM-Ansatzes

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).

Mechanismus zur Unterstützung mehrerer Darstellungen

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
  • Vermeidung von Doppelrundungsfehlern

Bereichsreduktionsalgorithmus

Grundprinzipien

Die Bereichsreduktion trigonometrischer Funktionen bildet Eingaben x∈-∞,∞ auf reduzierte Eingaben x'∈-π/2^(t+1), π/2^(t+1) ab, wobei:

x = x' + kπ/2^t
k = [2^t * x/π]
x' = π/2^t * r, wobei r = 2^t*x/π - k

Gleitkomma-Implementierungsstrategie

Behandlung kleiner Eingaben (|x| < 2^30):

  • Verwendung von 80-Bit 256/π, gespeichert als zwei double-Werte
  • Vermeidung von Zwischenrundungsfehlern
  • Nutzung von Teilprodukten zur genauen Berechnung von k und Bruchteil r

Behandlung großer Eingaben (2^30 ≤ |x|):

  • Version 1: Aufteilung von 256/π in 28-Bit-Segmente, gespeichert in double-Arrays, jedes Segment mit Trunkierungsmodus erzeugt
  • Version 2: Verwendung von 53-Bit-Präzisions-Segmenten, Nutzung von fused-multiply-add-Befehlen zur Reduzierung von Rundungsfehlern

Ganzzahl-Implementierungsstrategie

Optimierung für kleine Eingaben:

  • Verwendung von 80-Bit 256/π, aufgeteilt in zwei 40-Bit-Ganzzahlen P1 und P0
  • Identifikation von Ganzzahl k und Bruchbits durch Bitverschiebungsoperationen
  • Vermeidung von Präzisionsverlust durch Gleitkommaberechnungen

Behandlung großer Eingaben:

  • Verwendung von 192-Bit 256/π, aufgeteilt in drei 64-Bit-Ganzzahlen
  • Berechnung von 128-Bit-Teilprodukten
  • Extraktion relevanter Bits durch Bitverschiebungsoperationen

Ausgabekompensation

Verwendung trigonometrischer Identitäten für Ausgabekompensation:

sin(x) = sin(k'π/2^t)cos(x') + cos(k'π/2^t)sin(x')
cos(x) = cos(k'π/2^t)cos(x') - sin(k'π/2^t)sin(x')

Durch Vorbereitung von Tabellen und Optimierung durch Periodizität und Symmetrie wird die Anzahl erforderlicher Vorberechtungswerte auf 512 reduziert.

Experimentelle Einrichtung

Testumgebung

  • Hardware: 2,10 GHz Intel Xeon(R) Silver 4310 Server, 256 GB RAM
  • Betriebssystem: Ubuntu 24.04.1 LTS
  • Messinstrument: Performance-Counter

Vergleichsbibliotheken

  • GLIBC: float und double libm
  • Core-Math: Korrekt gerundete Bibliothek
  • RLIBM-Implementierung: Varianten verschiedener Bereichsreduktionsstrategien

Bewertungskriterien

  • Korrektheit: Verifikation der Korrektheit aller Eingaben durch vollständige Enumeration
  • Leistung: Beschleunigungsverhältnis relativ zu anderen Bibliotheken

Experimentelle Ergebnisse

Korrektheitsprüfung

  • RLIBM-Funktionen: Erzeugen korrekt gerundete Ergebnisse für alle Eingaben aller Darstellungen von 10 bis 32 Bit
  • GLIBC float libm: Tausende fehlerhafter Ergebnisse für sin, cos, tan bei 32-Bit-float-Eingaben
  • GLIBC double libm: Genauer als float-Version, aber immer noch mit Fehlern
  • Core-Math: Erzeugt nur für 32-Bit korrekte Ergebnisse, schlägt für den 10-32-Bit-Bereich aufgrund von Doppelrundungsfehlern fehl

Leistungsergebnisse

Optimierungseffekte der Bereichsreduktion

Hybridmethode (Gleitkomma für kleine Eingaben, Ganzzahl für große Eingaben) im Vergleich zu anderen Strategien:

  • 19% schneller als initiale Gleitkomma-Methode (FP V1)
  • Signifikante Verbesserung gegenüber alternativer Gleitkomma-Methode (FP V2)
  • 4% schneller als reine Ganzzahl-Methode

Vergleich mit anderen Bibliotheken

  • Durchschnittlich 10% schneller als Core-Math
  • Durchschnittlich 137% schneller als GLIBC double-Funktionen
  • Leistungsverbesserungen hauptsächlich auf effiziente Bereichsreduktion und Präzisionsvorteil von Ganzzahloperationen zurückzuführen

Technische Innovationen

1. Ausgleich zwischen Präzision und Leistung

  • Ganzzahloperationen bieten höhere Präzision als 64-Bit double (uint64_t und uint128_t)
  • Reduzierung der Anzahl von Teilprodukten, die erforderlich sind, um ausreichende Präzision zur Bereichsreduktion zu erhalten

2. Hybride Bereichsreduktionsstrategie

  • Gleitkommaoperationen für kleine Eingaben (wenn der Ganzzahlteil von 256*x/π ausreichend klein ist)
  • Ganzzahloperationen für große Eingaben (bieten höhere Präzision und einfachere Bitoperationen)

3. Bitoperations-Optimierung

  • Verwendung von Bitverschiebungsoperationen zur Identifikation von Teilen in 256*x/π, die mit reduzierter Eingabe und niedrigen Bits von k korrelieren
  • Vermeidung von Rundungsakkumulation in Gleitkommaberechnungen

Verwandte Arbeiten

Traditionelle Methoden

  • Minimax-Approximation: Remez-Algorithmus usw., aber begrenzte Freiheitsgrade in der Nähe von Rundungsgrenzen
  • Payne-Hanek-Algorithmus: Klassische Bereichsreduktionsmethode, aber Implementierungseffizienz ist eine Herausforderung

Forschung zur korrekten Rundung

  • CR-LIBM: Frühe korrekt gerundete Bibliothek, aber langsamere Leistung
  • Core-Math: Moderne korrekt gerundete Implementierung, aber nur Unterstützung für einzelne Darstellung

Entwicklung des RLIBM-Projekts

  • Erweiterung von grundlegenden Funktionen (e^x, log usw.) auf trigonometrische Funktionen
  • Innovative Methoden zur Unterstützung mehrerer Darstellungen

Schlussfolgerungen und Diskussion

Hauptschlussfolgerungen

  1. Machbarkeitsbeweis: Nachweis, dass die Erzeugung schneller und korrekter Implementierungen für trigonometrische Funktionen möglich ist
  2. Kritikalität der Bereichsreduktion: Effiziente Bereichsreduktion ist genauso wichtig wie Polynomapproximation niedriger Ordnung
  3. Vorteile von Ganzzahloperationen: Ganzzahlbasierte Implementierungen sind bei großen Eingaben erheblich überlegen gegenüber Gleitkommamethoden

Einschränkungen

  1. Komplexität: Hohe Implementierungskomplexität, erfordert präzise Bitoperationen und mehrere Strategien
  2. Speicheraufwand: Erfordert Vorberechtungstabellen und Speicherung von Konstanten mit mehrfacher Präzision
  3. Skalierbarkeit: Erweiterung auf höhere Präzisions-Darstellungen erfordert Neugestaltung

Zukünftige Richtungen

  1. GPU-Plattformen: Erkundung korrekt gerundeter Bibliotheken für GPU-Plattformen
  2. Standardisierung: Teilnahme am IEEE-754-Standardkomitee zur Förderung obligatorischer korrekter Rundung
  3. Mainstream-Integration: Zusammenarbeit mit Mainstream-Mathematikbibliothek-Entwicklern zur Integration dieser Methoden

Tiefgreifende Bewertung

Stärken

  1. Kombination von Theorie und Praxis: Erfolgreiche Anwendung der RLIBM-Theorie auf die herausfordernden trigonometrischen Funktionen
  2. Umfassende technische Optimierung: Ganzheitliche Optimierung von Algorithmus bis Implementierung
  3. Strenge Verifikation: Korrektheitsprüfung durch vollständige Enumeration
  4. Praktischer Wert: Lösung wichtiger Probleme in realen Anwendungen

Mängel

  1. Implementierungskomplexität: Die Kombination mehrerer Strategien erhöht die Implementierungs- und Wartungskomplexität
  2. Lesbarkeit: Lesbarkeit und Wartbarkeit von Code mit vielen Bitoperationen sind verbesserungsbedürftig
  3. Theoretische Analyse: Mangelnde tiefgreifende theoretische Analyse, warum Ganzzahlmethoden überlegen sind

Einfluss

  1. Akademischer Beitrag: Bietet neue Methoden zur Implementierung korrekter Rundung im Bereich numerische Berechnung
  2. Praktischer Wert: Kann direkt auf wissenschaftliche Berechnungen mit hoher Präzision angewendet werden
  3. Standardförderung: Kann die Entwicklung zukünftiger Gleitkommastandards beeinflussen

Anwendungsszenarien

  1. Wissenschaftliche Berechnungen: Numerische Simulationen, die hohe Präzision und Reproduzierbarkeit erfordern
  2. Finanzberechnungen: Finanzmodellierung, die genaue Ergebnisse erfordert
  3. Eingebettete Systeme: Systeme, die mehrere Gleitkommaformate unterstützen müssen
  4. Referenzimplementierung: Als Korrektheitsbenchmark für andere Bibliotheken

Literaturverzeichnis

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.