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

Post on 14-Sep-2018

223 views 0 download

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

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