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

Fonctions Trigonométriques Rapides utilisant l'Approche RLIBM

Informations Fondamentales

  • ID de l'article: 2510.13426
  • Titre: Fast Trigonometric Functions using the RLIBM Approach
  • Auteurs: Sehyeok Park, Santosh Nagarakatte (Rutgers University)
  • Classification: cs.PL (Langages de Programmation)
  • Conférence de Publication: International Workshop on Verification of Scientific Software (VSS 2025)
  • Lien de l'article: https://arxiv.org/abs/2510.13426

Résumé

Cet article décrit l'expérience du développement d'approximations polynomiales de fonctions trigonométriques utilisant la méthode RLIBM, capable de produire des résultats correctement arrondis pour diverses représentations et modes d'arrondi. Le défi clé des fonctions trigonométriques réside dans la réduction de plage impliquant π, qui réduit les entrées du domaine des nombres flottants 32 bits à un petit domaine. Toute erreur d'arrondi dans la valeur de π est amplifiée lors du processus de réduction de plage, pouvant entraîner des résultats incorrects. Les auteurs décrivent l'expérience de mise en œuvre de techniques rapides de réduction de plage qui maintiennent un grand nombre de chiffres de π dans les calculs en virgule flottante et en nombres entiers. L'implémentation finale des fonctions trigonométriques est à la fois rapide et produit des résultats correctement arrondis pour toutes les entrées, supportant plusieurs représentations jusqu'à 32 bits avec une seule implémentation.

Contexte de Recherche et Motivation

Problèmes Fondamentaux

  1. Défi de l'arrondi correct: Le calcul scientifique utilise largement les fonctions élémentaires fournies par les bibliothèques mathématiques, mais produire des résultats correctement arrondis pour toutes les entrées est extrêmement difficile (le « dilemme du tabulateur »), et les bibliothèques mathématiques courantes ne peuvent pas produire des résultats corrects pour toutes les entrées.
  2. Problèmes de Portabilité et de Reproductibilité: L'absence de bibliothèques mathématiques correctement arrondies entraîne des applications produisant des résultats complètement différents sur différentes machines, affectant la portabilité et la reproductibilité.
  3. Besoin de Multiples Formats de Représentation: Avec l'augmentation des formats personnalisés (tels que bfloat16, tensorfloat32, FP8), il est nécessaire d'avoir une bibliothèque de référence capable de fournir des résultats corrects pour plusieurs représentations et modes d'arrondi.

Limitations des Méthodes Existantes

  • Approximation Polynomiale Minimax: Les méthodes traditionnelles génèrent des approximations polynomiales minimisant l'erreur maximale pour toutes les entrées, mais les degrés de liberté diminuent considérablement lorsque la sortie réelle est très proche de la limite d'arrondi.
  • Compromis Performance-Exactitude: Les bibliothèques existantes font des compromis entre la performance (comme l'implémentation Payne-Hanek) ou l'exactitude (comme libm de GCC).

Contributions Principales

  1. Techniques Efficaces de Réduction de Plage: Développement d'algorithmes efficaces de réduction de plage combinant les calculs en virgule flottante et en nombres entiers, capable de maintenir suffisamment de chiffres de π pour produire des résultats corrects.
  2. Implémentation Unique pour Multiples Représentations: Implémentation d'une approximation polynomiale unique capable de produire des résultats correctement arrondis pour plusieurs représentations de 10 à 32 bits et tous les modes d'arrondi standard.
  3. Optimisation des Performances: La réduction de plage basée sur les nombres entiers améliore les performances de 19% par rapport à la stratégie en virgule flottante, avec des performances globales plus rapides ou comparables aux bibliothèques courantes.
  4. Bibliothèque Complète de Fonctions Trigonométriques: Implémentations rapides et correctes pour les fonctions sin, cos et tan.

Détails de la Méthode

Idée Centrale de la Méthode RLIBM

L'insight clé de la méthode RLIBM est d'approximer directement le résultat correctement arrondi, plutôt que la valeur réelle de la fonction. Pour le résultat correctement arrondi d'une entrée donnée, il existe un intervalle de valeurs réelles dont toute valeur s'arrondirait au résultat correct. Cela fournit plus de degrés de liberté que la méthode minimax (1 ULP pour toutes les entrées).

Mécanisme de Support Multi-Représentation

Pour supporter plusieurs représentations, le projet RLIBM propose de générer des approximations polynomiales pour une représentation (n+2) bits, utilisant le mode d'arrondi round-to-odd. Les avantages de cette approche sont:

  • Le résultat round-to-odd conserve toutes les informations nécessaires pour l'arrondi direct vers la représentation cible
  • L'arrondi ultérieur vers une représentation de largeur inférieure produit des résultats corrects
  • Évite les erreurs d'arrondi double

Algorithme de Réduction de Plage

Principes Fondamentaux

La réduction de plage des fonctions trigonométriques mappe l'entrée x∈-∞,∞ vers l'entrée réduite x'∈-π/2^(t+1), π/2^(t+1), où:

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

Stratégie d'Implémentation en Virgule Flottante

Traitement des Petites Entrées (|x| < 2^30):

  • Utilisation de 256/π sur 80 bits, stocké en deux valeurs double
  • Évite les erreurs d'arrondi intermédiaires
  • Utilise les produits partiels pour calculer précisément k et la partie fractionnaire r

Traitement des Grandes Entrées (2^30 ≤ |x|):

  • Version 1: Division de 256/π en segments de 28 bits stockés dans un tableau double, chaque segment généré en mode troncature
  • Version 2: Utilisation de segments de 53 bits de précision, exploitant les instructions fused-multiply-add pour réduire les erreurs d'arrondi

Stratégie d'Implémentation en Nombres Entiers

Optimisation des Petites Entrées:

  • Utilisation de 256/π sur 80 bits, divisé en deux nombres entiers de 40 bits P1 et P0
  • Identification de l'entier k et des bits fractionnaires par opérations de décalage
  • Évite la perte de précision des calculs en virgule flottante

Traitement des Grandes Entrées:

  • Utilisation de 256/π sur 192 bits, divisé en trois nombres entiers de 64 bits
  • Calcul de produits partiels de 128 bits
  • Extraction des bits pertinents par opérations de décalage

Compensation de Sortie

Utilisation des identités trigonométriques pour la compensation de sortie:

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

Par précalcul de tables et optimisation de la périodicité/symétrie, réduction des valeurs précalculées nécessaires à 512.

Configuration Expérimentale

Environnement de Test

  • Matériel: Serveur Intel Xeon(R) Silver 4310 à 2.10GHz, 256GB RAM
  • Système d'Exploitation: Ubuntu 24.04.1 LTS
  • Outil de Mesure: Compteurs de performance

Bibliothèques de Comparaison

  • GLIBC: libm pour float et double
  • Core-Math: Bibliothèque correctement arrondie
  • Implémentation RLIBM: Variantes avec différentes stratégies de réduction de plage

Indicateurs d'Évaluation

  • Exactitude: Vérification par énumération complète de la correction pour toutes les entrées
  • Performance: Facteur d'accélération par rapport aux autres bibliothèques

Résultats Expérimentaux

Vérification de l'Exactitude

  • Fonctions RLIBM: Produisent des résultats correctement arrondis pour toutes les entrées de toutes les représentations de 10 à 32 bits
  • GLIBC float libm: Contient des milliers de résultats incorrects pour sin, cos, tan sur les entrées float 32 bits
  • GLIBC double libm: Plus précis que la version float mais contient toujours des erreurs
  • Core-Math: Produit des résultats corrects uniquement pour 32 bits, échoue pour la plage 10-32 bits en raison d'erreurs d'arrondi double

Résultats de Performance

Effet de l'Optimisation de Réduction de Plage

La méthode hybride (virgule flottante pour petites entrées, nombres entiers pour grandes entrées) par rapport aux autres stratégies:

  • 19% plus rapide que la méthode flottante initiale (FP V1)
  • Amélioration significative par rapport à la méthode flottante alternative (FP V2)
  • 4% plus rapide que la méthode purement entière

Comparaison avec Autres Bibliothèques

  • En moyenne 10% plus rapide que Core-Math
  • En moyenne 137% plus rapide que les fonctions double de GLIBC
  • L'amélioration de performance provient principalement de la réduction de plage efficace et des avantages de précision des opérations entières

Points d'Innovation Technique

1. Équilibre entre Précision et Performance

  • Les opérations entières offrent une précision supérieure aux double 64 bits (uint64_t et uint128_t)
  • Réduction du nombre de produits partiels nécessaires pour obtenir une précision suffisante pour réduire l'entrée

2. Stratégie Hybride de Réduction de Plage

  • Utilisation de calculs en virgule flottante pour les petites entrées (lorsque la partie entière de 256*x/π est suffisamment petite)
  • Utilisation de calculs en nombres entiers pour les grandes entrées (offrant une précision supérieure et des opérations de bits plus simples)

3. Optimisation des Opérations de Bits

  • Utilisation d'opérations de décalage pour identifier les parties de 256*x/π pertinentes pour l'entrée réduite et les bits bas de k
  • Évite l'accumulation d'erreurs d'arrondi dans les calculs en virgule flottante

Travaux Connexes

Méthodes Traditionnelles

  • Approximation Minimax: Algorithme Remez et autres, mais avec degrés de liberté limités près des limites d'arrondi
  • Algorithme Payne-Hanek: Méthode classique de réduction de plage, mais l'efficacité de mise en œuvre est un défi

Recherche sur l'Arrondi Correct

  • CR-LIBM: Bibliothèque correctement arrondie précoce, mais performance plus lente
  • Core-Math: Implémentation correctement arrondie moderne, mais supportant une seule représentation

Développement du Projet RLIBM

  • Extension des fonctions élémentaires (e^x, log, etc.) aux fonctions trigonométriques
  • Approche innovante pour le support multi-représentation

Conclusion et Discussion

Conclusions Principales

  1. Preuve de Faisabilité: Démontre qu'il est possible de générer des implémentations rapides et correctes pour les fonctions trigonométriques
  2. Importance de la Réduction de Plage: La réduction de plage efficace est aussi importante que l'approximation polynomiale de bas degré
  3. Avantages des Opérations Entières: L'implémentation basée sur les nombres entiers surpasse significativement la méthode en virgule flottante pour les grandes entrées

Limitations

  1. Complexité: La complexité de mise en œuvre est élevée, nécessitant des opérations de bits précises et plusieurs stratégies
  2. Surcharge Mémoire: Nécessite le stockage de tables précalculées et de constantes multi-précision
  3. Scalabilité: L'extension à des représentations de précision supérieure nécessite une reconception

Directions Futures

  1. Plateformes GPU: Exploration de bibliothèques correctement arrondies pour les plateformes GPU
  2. Standardisation: Participation au comité de normalisation IEEE-754 pour promouvoir l'arrondi correct obligatoire
  3. Intégration Mainstream: Collaboration avec les développeurs de bibliothèques mathématiques courantes pour intégrer ces méthodes

Évaluation Approfondie

Points Forts

  1. Combinaison Théorie-Pratique: Application réussie de la théorie RLIBM aux fonctions trigonométriques complexes
  2. Optimisation Complète de l'Ingénierie: Optimisation holistique de l'algorithme à l'implémentation
  3. Vérification Rigoureuse: Vérification de l'exactitude par énumération complète
  4. Valeur Pratique: Résout des problèmes importants dans les applications réelles

Insuffisances

  1. Complexité de Mise en Œuvre: La combinaison de plusieurs stratégies augmente la complexité de mise en œuvre et de maintenance
  2. Lisibilité: La lisibilité et la maintenabilité du code contenant de nombreuses opérations de bits sont à améliorer
  3. Analyse Théorique: Manque d'analyse théorique approfondie sur les raisons pour lesquelles la méthode entière est supérieure

Portée d'Impact

  1. Contribution Académique: Fournit une nouvelle méthode d'implémentation d'arrondi correct pour le domaine du calcul numérique
  2. Valeur Pratique: Peut être directement appliquée au calcul scientifique nécessitant une haute précision numérique
  3. Promotion des Standards: Peut influencer le développement futur des standards de virgule flottante

Scénarios d'Application

  1. Calcul Scientifique: Simulations numériques nécessitant haute précision et reproductibilité
  2. Calcul Financier: Modélisation financière exigeant des résultats précis
  3. Systèmes Embarqués: Systèmes nécessitant le support de multiples formats de virgule flottante
  4. Implémentation de Référence: Comme référence d'exactitude pour d'autres bibliothèques

Références

Cet article cite des travaux importants dans les domaines de l'analyse numérique, de l'arithmétique en virgule flottante et de l'arrondi correct, notamment:

  • Ouvrage de référence de Muller sur les fonctions élémentaires
  • Bibliothèque MPFR de haute précision
  • Algorithme de réduction de plage Payne-Hanek
  • Recherches connexes sur la norme IEEE-754

Cet article apporte une contribution importante au domaine du calcul numérique, transformant avec succès les méthodes théoriques en implémentations pratiques et haute performance, fournissant une solution efficace au problème de l'arrondi correct dans le calcul scientifique.