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.
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.
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.
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é.
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.
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).
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.
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.
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.
Bibliothèque Complète de Fonctions Trigonométriques: Implémentations rapides et correctes pour les fonctions sin, cos et tan.
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).
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
Preuve de Faisabilité: Démontre qu'il est possible de générer des implémentations rapides et correctes pour les fonctions trigonométriques
Importance de la Réduction de Plage: La réduction de plage efficace est aussi importante que l'approximation polynomiale de bas degré
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
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.