Upload
dinhminh
View
227
Download
0
Embed Size (px)
Citation preview
Un algorithme de calcul de racine carrée enprécision augmentée
Olivier MartySous la direction de Mioara Joldes, MAC/LAAS-CNRS
École Normale Supérieure de Cachan
Vendredi 5 septembre 2014
Olivier Marty (ENS Cachan) Racine carrée en précision augmentée Vendredi 5 septembre 2014 1 / 21
Introduction
LAAS-CNRS
Le capitole
Olivier Marty (ENS Cachan) Racine carrée en précision augmentée Vendredi 5 septembre 2014 2 / 21
Introduction
Banyuls
Banyuls-sur-Mer
Olivier Marty (ENS Cachan) Racine carrée en précision augmentée Vendredi 5 septembre 2014 3 / 21
Introduction
Plan
1 Les nombres à virgule flottanteNombres machinesOpérations sans erreursBibliothèques
2 La racine carrée sur les FPEMéthodeAlgorithmeDémonstrationImplémentation
Olivier Marty (ENS Cachan) Racine carrée en précision augmentée Vendredi 5 septembre 2014 4 / 21
Les nombres à virgule flottante
Plan
1 Les nombres à virgule flottanteNombres machinesOpérations sans erreursBibliothèques
2 La racine carrée sur les FPEMéthodeAlgorithmeDémonstrationImplémentation
Olivier Marty (ENS Cachan) Racine carrée en précision augmentée Vendredi 5 septembre 2014 5 / 21
Les nombres à virgule flottante Nombres machines
Expression mathématique
Definition
β ∈ N≥2 la basep ∈ N≥1 la précisionemin,emax ∈ Z les bornes de l’exposant
Les nombres à virgule flottante s’écrivent
(−1)s ·m · βe
oùs ∈ {0,1} le signem le significande (1 ≤ m < β et m a un chiffre avant la virgule etau plus p − 1 après)e l’exposant (emin ≤ e ≤ emax )
Olivier Marty (ENS Cachan) Racine carrée en précision augmentée Vendredi 5 septembre 2014 6 / 21
Les nombres à virgule flottante Nombres machines
Expression mathématique
Definition
β ∈ N≥2 la basep ∈ N≥1 la précisionemin,emax ∈ Z les bornes de l’exposant
Les nombres à virgule flottante s’écrivent
(−1)s ·m · βe
oùs ∈ {0,1} le signem le significande (1 ≤ m < β et m a un chiffre avant la virgule etau plus p − 1 après)e l’exposant (emin ≤ e ≤ emax )
Olivier Marty (ENS Cachan) Racine carrée en précision augmentée Vendredi 5 septembre 2014 6 / 21
Les nombres à virgule flottante Nombres machines
Limites
Exemplesu0 = 2u1 = −4un = 111− 1130
un−1+ 3000
un−1un−2
Tend vers 100 au lieu de 6Stabilité à long terme de systèmes
Tout de même...distance Terre-Lune à 1mm prèspeu de constantes physiques très précises
Olivier Marty (ENS Cachan) Racine carrée en précision augmentée Vendredi 5 septembre 2014 7 / 21
Les nombres à virgule flottante Nombres machines
Limites
Exemplesu0 = 2u1 = −4un = 111− 1130
un−1+ 3000
un−1un−2
Tend vers 100 au lieu de 6Stabilité à long terme de systèmes
Tout de même...distance Terre-Lune à 1mm prèspeu de constantes physiques très précises
Olivier Marty (ENS Cachan) Racine carrée en précision augmentée Vendredi 5 septembre 2014 7 / 21
Les nombres à virgule flottante Opérations sans erreurs
2SUM
2SUM(a,b)
s ← RN(a + b)b′ ← RN(s − a)a′ ← RN(s − b′)δb ← RN(b − b′)δa ← RN(a− a′)t ← RN(δa + δb)return (s, t)
Olivier Marty (ENS Cachan) Racine carrée en précision augmentée Vendredi 5 septembre 2014 8 / 21
Les nombres à virgule flottante Opérations sans erreurs
Fast2SUM, Produits
Fast2SUM(a,b) si a ≥ b
s ← RN(a + b)z ← RN(s − a)t ← RN(b − z)return (s, t)
Ces algorithmes sont minimaux en nombre d’opérations, et enprofondeur des dépendances.
ProduitsProduit de Dekker (17 opérations)Instruction Fused Multiply Add :r1 ← RN(a× b)r2 ← RN(a× b − r1)return (r1, r2)
Olivier Marty (ENS Cachan) Racine carrée en précision augmentée Vendredi 5 septembre 2014 9 / 21
Les nombres à virgule flottante Opérations sans erreurs
Fast2SUM, Produits
Fast2SUM(a,b) si a ≥ b
s ← RN(a + b)z ← RN(s − a)t ← RN(b − z)return (s, t)
Ces algorithmes sont minimaux en nombre d’opérations, et enprofondeur des dépendances.
ProduitsProduit de Dekker (17 opérations)Instruction Fused Multiply Add :r1 ← RN(a× b)r2 ← RN(a× b − r1)return (r1, r2)
Olivier Marty (ENS Cachan) Racine carrée en précision augmentée Vendredi 5 septembre 2014 9 / 21
Les nombres à virgule flottante Bibliothèques
QD et MPFR
QDCalcule avec deux/trois/quatre FPIncorrecte mais très rapide
GNU MPFRUtilise plusieurs entiers : significande et exposantPrécision arbitraireTous les modes d’arrondis supportés
Olivier Marty (ENS Cachan) Racine carrée en précision augmentée Vendredi 5 septembre 2014 10 / 21
Les nombres à virgule flottante Bibliothèques
QD et MPFR
QDCalcule avec deux/trois/quatre FPIncorrecte mais très rapide
GNU MPFRUtilise plusieurs entiers : significande et exposantPrécision arbitraireTous les modes d’arrondis supportés
Olivier Marty (ENS Cachan) Racine carrée en précision augmentée Vendredi 5 septembre 2014 10 / 21
Les nombres à virgule flottante Bibliothèques
Campary
Ciblée GPUCalcul haute performancePrécision arbitrairePlus rapide que MPFR
Olivier Marty (ENS Cachan) Racine carrée en précision augmentée Vendredi 5 septembre 2014 11 / 21
Les nombres à virgule flottante Bibliothèques
Nombres manipulés
Definition (Floating Point Expansion)a = a0 + · · ·+ ak
Definition (Non chevauchement selon Priest)
ex et ey sont les exposants de x et y : |ex − ey | ≥ p.
Definition (Non chevauchement selon Bailey)
Si x < y : |x | ≤ 12ulp(y).
Olivier Marty (ENS Cachan) Racine carrée en précision augmentée Vendredi 5 septembre 2014 12 / 21
Les nombres à virgule flottante Bibliothèques
Nombres manipulés
Definition (Floating Point Expansion)a = a0 + · · ·+ ak
Definition (Non chevauchement selon Priest)
ex et ey sont les exposants de x et y : |ex − ey | ≥ p.
Definition (Non chevauchement selon Bailey)
Si x < y : |x | ≤ 12ulp(y).
Olivier Marty (ENS Cachan) Racine carrée en précision augmentée Vendredi 5 septembre 2014 12 / 21
Les nombres à virgule flottante Bibliothèques
Nombres manipulés
Definition (Floating Point Expansion)a = a0 + · · ·+ ak
Definition (Non chevauchement selon Priest)
ex et ey sont les exposants de x et y : |ex − ey | ≥ p.
Definition (Non chevauchement selon Bailey)
Si x < y : |x | ≤ 12ulp(y).
Olivier Marty (ENS Cachan) Racine carrée en précision augmentée Vendredi 5 septembre 2014 12 / 21
Les nombres à virgule flottante Bibliothèques
Addition et multiplication
Olivier Marty (ENS Cachan) Racine carrée en précision augmentée Vendredi 5 septembre 2014 13 / 21
Les nombres à virgule flottante Bibliothèques
Addition et multiplication
Olivier Marty (ENS Cachan) Racine carrée en précision augmentée Vendredi 5 septembre 2014 13 / 21
La racine carrée sur les FPE
Plan
1 Les nombres à virgule flottanteNombres machinesOpérations sans erreursBibliothèques
2 La racine carrée sur les FPEMéthodeAlgorithmeDémonstrationImplémentation
Olivier Marty (ENS Cachan) Racine carrée en précision augmentée Vendredi 5 septembre 2014 14 / 21
La racine carrée sur les FPE Méthode
L’itération de Newton-Raphson
α un+1 un
y
x
un+1 = un −f (un)
f ′(un)
Olivier Marty (ENS Cachan) Racine carrée en précision augmentée Vendredi 5 septembre 2014 15 / 21
La racine carrée sur les FPE Méthode
Suites obtenues
1/a x 7→ 1x − a un+1 = un(2− aun)
√a x 7→ x2 − a un+1 = 1
2
(un + a
un
)(suite de Babylone)
1/√
a x 7→ 1x2 − a un+1 = 1
2un(3− au2
n)
Olivier Marty (ENS Cachan) Racine carrée en précision augmentée Vendredi 5 septembre 2014 16 / 21
La racine carrée sur les FPE Algorithme
Entrée : a = a0 + · · ·+ a2k−1 et la précision cible 2q termes.Sortie : x = x0 + · · ·+ x2q−1 tel que∣∣∣∣x − 1√
a
∣∣∣∣ ≤ 2−2q(p−3)−1√
a
Algorithme
x0 ← 1/√
a0for i ← 1 to q do
v (2i ) ← x (2i−1) × a(2i )
w (2i ) ← x (2i−1) × v (2i )
y (2i ) ← 3 − w (2i )
z(2i ) ← x (2i−1) × y (2i )
x (2i ) ← z(2i ) / 2end forreturn x = x0 + · · ·+ x2q−1
Olivier Marty (ENS Cachan) Racine carrée en précision augmentée Vendredi 5 septembre 2014 17 / 21
La racine carrée sur les FPE Algorithme
Entrée : a = a0 + · · ·+ a2k−1 et la précision cible 2q termes.Sortie : x = x0 + · · ·+ x2q−1 tel que∣∣∣∣x − 1√
a
∣∣∣∣ ≤ 2−2q(p−3)−1√
a
Algorithme
x0 ← 1/√
a0for i ← 1 to q do
v (2i ) ← x (2i−1) × a(2i )
w (2i ) ← x (2i−1) × v (2i )
y (2i ) ← 3 − w (2i )
z(2i ) ← x (2i−1) × y (2i )
x (2i ) ← z(2i ) / 2end forreturn x = x0 + · · ·+ x2q−1
Olivier Marty (ENS Cachan) Racine carrée en précision augmentée Vendredi 5 septembre 2014 17 / 21
La racine carrée sur les FPE Démonstration
Démonstration
Prendre en compte les erreurs de méthode et de calcul.
Idées
Lemme : |ui | ≤ 2−ip|u0|
Avec η =∑+∞
j=0 2−p(j+1) = 12p−1
on a |u − u(i+1)| ≤ 2−ip|u| η1−η
Borne de ε0 : RN
Borne de εi+1 :inégalités triangulaires à chaque calculdécroissance quadratique de la suite
Olivier Marty (ENS Cachan) Racine carrée en précision augmentée Vendredi 5 septembre 2014 18 / 21
La racine carrée sur les FPE Démonstration
Démonstration
Prendre en compte les erreurs de méthode et de calcul.
Idées
Lemme : |ui | ≤ 2−ip|u0|
Avec η =∑+∞
j=0 2−p(j+1) = 12p−1
on a |u − u(i+1)| ≤ 2−ip|u| η1−η
Borne de ε0 : RN
Borne de εi+1 :inégalités triangulaires à chaque calculdécroissance quadratique de la suite
Olivier Marty (ENS Cachan) Racine carrée en précision augmentée Vendredi 5 septembre 2014 18 / 21
La racine carrée sur les FPE Démonstration
Démonstration
Prendre en compte les erreurs de méthode et de calcul.
Idées
Lemme : |ui | ≤ 2−ip|u0|
Avec η =∑+∞
j=0 2−p(j+1) = 12p−1
on a |u − u(i+1)| ≤ 2−ip|u| η1−η
Borne de ε0 : RN
Borne de εi+1 :inégalités triangulaires à chaque calculdécroissance quadratique de la suite
Olivier Marty (ENS Cachan) Racine carrée en précision augmentée Vendredi 5 septembre 2014 18 / 21
La racine carrée sur les FPE Démonstration
Démonstration
Prendre en compte les erreurs de méthode et de calcul.
Idées
Lemme : |ui | ≤ 2−ip|u0|
Avec η =∑+∞
j=0 2−p(j+1) = 12p−1
on a |u − u(i+1)| ≤ 2−ip|u| η1−η
Borne de ε0 : RN
Borne de εi+1 :inégalités triangulaires à chaque calculdécroissance quadratique de la suite
Olivier Marty (ENS Cachan) Racine carrée en précision augmentée Vendredi 5 septembre 2014 18 / 21
La racine carrée sur les FPE Implémentation
Architecture GPU
ContraintesPeu de branchements conditionnelsDéroulement des bouclesTaille des tableaux fixée
DéfautTaille du binaire produit
Olivier Marty (ENS Cachan) Racine carrée en précision augmentée Vendredi 5 septembre 2014 19 / 21
La racine carrée sur les FPE Implémentation
Architecture GPU
ContraintesPeu de branchements conditionnelsDéroulement des bouclesTaille des tableaux fixée
DéfautTaille du binaire produit
Olivier Marty (ENS Cachan) Racine carrée en précision augmentée Vendredi 5 septembre 2014 19 / 21
Conclusion
Conclusion
Équipe très sympa
Algorithme intégré dans la bibliothèque
Travail assez pragmatique mais utileBeaucoup inspiré d’un papier
Olivier Marty (ENS Cachan) Racine carrée en précision augmentée Vendredi 5 septembre 2014 20 / 21
Conclusion
References
[1][2]
Mioara Joldes, Jean-Michel Muller, and Valentina Popescu.On the computation of the reciprocal of floating point expansionsusing an adapted Newton-Raphson iteration.In Proceedings of 25th IEEE International Conference onApplication-specific Systems, Architectures and Processors, pageto appear, Zurich, Suisse, 2014.
Jean-Michel Muller, Nicolas Brisebarre, Florent de Dinechin,Claude-Pierre Jeannerod, Vincent Lefèvre, Guillaume Melquiond,Nathalie Revol, Damien Stehlé, and Serge Torres.Handbook of Floating-Point Arithmetic.Birkhäuser Boston, 2010.
Olivier Marty (ENS Cachan) Racine carrée en précision augmentée Vendredi 5 septembre 2014 21 / 21