Un algorithme de calcul de racine carrée en précision ... · Un algorithme de calcul de racine...

33
Un algorithme de calcul de racine carrée en précision augmentée Olivier Marty Sous 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

Transcript of Un algorithme de calcul de racine carrée en précision ... · Un algorithme de calcul de racine...

Page 1: Un algorithme de calcul de racine carrée en précision ... · Un algorithme de calcul de racine carrée en ... 1gle signe m le significande (1 m < et m a un chiffre avant la virgule

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

Page 2: Un algorithme de calcul de racine carrée en précision ... · Un algorithme de calcul de racine carrée en ... 1gle signe m le significande (1 m < et m a un chiffre avant la virgule

Introduction

LAAS-CNRS

Le capitole

Olivier Marty (ENS Cachan) Racine carrée en précision augmentée Vendredi 5 septembre 2014 2 / 21

Page 3: Un algorithme de calcul de racine carrée en précision ... · Un algorithme de calcul de racine carrée en ... 1gle signe m le significande (1 m < et m a un chiffre avant la virgule

Introduction

Banyuls

Banyuls-sur-Mer

Olivier Marty (ENS Cachan) Racine carrée en précision augmentée Vendredi 5 septembre 2014 3 / 21

Page 4: Un algorithme de calcul de racine carrée en précision ... · Un algorithme de calcul de racine carrée en ... 1gle signe m le significande (1 m < et m a un chiffre avant la virgule

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

Page 5: Un algorithme de calcul de racine carrée en précision ... · Un algorithme de calcul de racine carrée en ... 1gle signe m le significande (1 m < et m a un chiffre avant la virgule

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

Page 6: Un algorithme de calcul de racine carrée en précision ... · Un algorithme de calcul de racine carrée en ... 1gle signe m le significande (1 m < et m a un chiffre avant la virgule

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

Page 7: Un algorithme de calcul de racine carrée en précision ... · Un algorithme de calcul de racine carrée en ... 1gle signe m le significande (1 m < et m a un chiffre avant la virgule

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

Page 8: Un algorithme de calcul de racine carrée en précision ... · Un algorithme de calcul de racine carrée en ... 1gle signe m le significande (1 m < et m a un chiffre avant la virgule

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

Page 9: Un algorithme de calcul de racine carrée en précision ... · Un algorithme de calcul de racine carrée en ... 1gle signe m le significande (1 m < et m a un chiffre avant la virgule

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

Page 10: Un algorithme de calcul de racine carrée en précision ... · Un algorithme de calcul de racine carrée en ... 1gle signe m le significande (1 m < et m a un chiffre avant la virgule

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

Page 11: Un algorithme de calcul de racine carrée en précision ... · Un algorithme de calcul de racine carrée en ... 1gle signe m le significande (1 m < et m a un chiffre avant la virgule

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

Page 12: Un algorithme de calcul de racine carrée en précision ... · Un algorithme de calcul de racine carrée en ... 1gle signe m le significande (1 m < et m a un chiffre avant la virgule

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

Page 13: Un algorithme de calcul de racine carrée en précision ... · Un algorithme de calcul de racine carrée en ... 1gle signe m le significande (1 m < et m a un chiffre avant la virgule

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

Page 14: Un algorithme de calcul de racine carrée en précision ... · Un algorithme de calcul de racine carrée en ... 1gle signe m le significande (1 m < et m a un chiffre avant la virgule

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

Page 15: Un algorithme de calcul de racine carrée en précision ... · Un algorithme de calcul de racine carrée en ... 1gle signe m le significande (1 m < et m a un chiffre avant la virgule

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

Page 16: Un algorithme de calcul de racine carrée en précision ... · Un algorithme de calcul de racine carrée en ... 1gle signe m le significande (1 m < et m a un chiffre avant la virgule

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

Page 17: Un algorithme de calcul de racine carrée en précision ... · Un algorithme de calcul de racine carrée en ... 1gle signe m le significande (1 m < et m a un chiffre avant la virgule

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

Page 18: Un algorithme de calcul de racine carrée en précision ... · Un algorithme de calcul de racine carrée en ... 1gle signe m le significande (1 m < et m a un chiffre avant la virgule

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

Page 19: Un algorithme de calcul de racine carrée en précision ... · Un algorithme de calcul de racine carrée en ... 1gle signe m le significande (1 m < et m a un chiffre avant la virgule

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

Page 20: Un algorithme de calcul de racine carrée en précision ... · Un algorithme de calcul de racine carrée en ... 1gle signe m le significande (1 m < et m a un chiffre avant la virgule

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

Page 21: Un algorithme de calcul de racine carrée en précision ... · Un algorithme de calcul de racine carrée en ... 1gle signe m le significande (1 m < et m a un chiffre avant la virgule

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

Page 22: Un algorithme de calcul de racine carrée en précision ... · Un algorithme de calcul de racine carrée en ... 1gle signe m le significande (1 m < et m a un chiffre avant la virgule

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

Page 23: Un algorithme de calcul de racine carrée en précision ... · Un algorithme de calcul de racine carrée en ... 1gle signe m le significande (1 m < et m a un chiffre avant la virgule

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

Page 24: Un algorithme de calcul de racine carrée en précision ... · Un algorithme de calcul de racine carrée en ... 1gle signe m le significande (1 m < et m a un chiffre avant la virgule

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

Page 25: Un algorithme de calcul de racine carrée en précision ... · Un algorithme de calcul de racine carrée en ... 1gle signe m le significande (1 m < et m a un chiffre avant la virgule

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

Page 26: Un algorithme de calcul de racine carrée en précision ... · Un algorithme de calcul de racine carrée en ... 1gle signe m le significande (1 m < et m a un chiffre avant la virgule

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

Page 27: Un algorithme de calcul de racine carrée en précision ... · Un algorithme de calcul de racine carrée en ... 1gle signe m le significande (1 m < et m a un chiffre avant la virgule

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

Page 28: Un algorithme de calcul de racine carrée en précision ... · Un algorithme de calcul de racine carrée en ... 1gle signe m le significande (1 m < et m a un chiffre avant la virgule

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

Page 29: Un algorithme de calcul de racine carrée en précision ... · Un algorithme de calcul de racine carrée en ... 1gle signe m le significande (1 m < et m a un chiffre avant la virgule

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

Page 30: Un algorithme de calcul de racine carrée en précision ... · Un algorithme de calcul de racine carrée en ... 1gle signe m le significande (1 m < et m a un chiffre avant la virgule

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

Page 31: Un algorithme de calcul de racine carrée en précision ... · Un algorithme de calcul de racine carrée en ... 1gle signe m le significande (1 m < et m a un chiffre avant la virgule

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

Page 32: Un algorithme de calcul de racine carrée en précision ... · Un algorithme de calcul de racine carrée en ... 1gle signe m le significande (1 m < et m a un chiffre avant la virgule

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

Page 33: Un algorithme de calcul de racine carrée en précision ... · Un algorithme de calcul de racine carrée en ... 1gle signe m le significande (1 m < et m a un chiffre avant la virgule

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