A correctly rounded implementationof the exponential function on the Intel Itanium architecture
Résumé
This article presents an efficient implementation of a correctly rounded exponential function in double precision on the Intel Itanium processor family. This work combines advanced processor features (like the double-extended precision fused multiply-and-add units of the Itanium processors) with recent research results giving the worst-case precision needed for correctly rounding the exponential function. We give and prove an algorithm which returns a correctly rounded result (in any of the four IEEE-754 rounding modes) within 172 machine cycles on the 2 processor. This is about four times slower than the less accurate function present in the standard Intel mathematical library. The evaluation is performed in one phase only and is therefore fast even in the worst case, contrary to other implementations which use a multilevel strategy: We show that the worst-case required precision of 157 bits can always be stored in the sum of two double-extended floating-point numbers. Another algorithm is given with a 92 cycles execution time, but its proof has to be formally completed.
Cet article présente une implémentation efficace de la fonction exponentielle en double précision avec arrondi correct sur famille de processeurs Intel Itanium. Ce travail combine les caractéristiques avancées de ces processeurs ( en particulier la présence d'unités de multiplication-accumulation en double précisions étendue) avec les résultats de travaux récents surs les pires cas d'arrondi correct pour l'exponentielle. Nous décrivons et prouvons un algorithme qui calcule le résultat arrondi correctement ( dans l'un quelconque des quatre modes d'arrondis spécifiés par la norme IEEE-754) en 172 cycles sur l'Itanium 2 d'Intel, soit environ quatre fois lus lentement que la fonction exponentielle standard, moins précise. L'évaluation est réalisée en une seule étape, et est donc rapide également au pire cas, au contraire d'autres implémentations qui utilisent une stratégie multi-niveaux : nous montrons que les résultats intermédiaires ( sui ont besoin d'une précision jusqu'à 157 bits) peuvent toujours être représentés somme la somme de deux nombres flottants en double précision étendue. Nous présentons également un algorithme amélioré qui réalise le calcul en 92 cycles, mis sa preuve reste à formaliser complètement
Domaines
Autre [cs.OH]
Fichier principal
RR-5024.pdf (510.68 Ko)
Télécharger le fichier
RR2003-54.pdf (682.82 Ko)
Télécharger le fichier
Loading...