• Aucun résultat trouvé

CHAPITRE 3 Op´erateurs de sommation en virgule flottante

3.2 Probl´ematique

3.2.2 Exactitude de la sommation en virgule flottante

Nous appelons sommation l’op´eration de r´eduction de somme de deux op´erandes ou plus. La sommation en virgule flottante souffre de probl`emes d’exactitude dus `a l’accumulation

+1.00 +14.75

Exemple 1

+ +15.75 = +1.010 +1.110110 + +1.111110 = 0 3

Mantisse (binaire) Exposant (décimal)

3 +1.110110 +1.0 + = 3 0

Mantisse (binaire) Exposant (décimal)

+1.110110 +0.001000 + = 3 3

Mantisse (binaire) Exposant (décimal)

+1.110110 +0.001000 + = 3 3

Mantisse (binaire) Exposant (décimal)

+1.111110 3

#1

#2

#3

#4

+1.25 -1.125

Exemple 2

+ +0.125 = +1.010 -1.0010 + +1.0 = 0 0

Mantisse (binaire) Exposant (décimal)

-3

#1

+1.010 -1.0010 + +0.0010 = 0 0

Mantisse (binaire) Exposant (décimal)

0

#2

+1.010 -1.0010 + +1.0 = 0 0

Mantisse (binaire) Exposant (décimal)

-3

#3

Figure 3.2 – Exemples d’addition en virgule flottante.

des erreurs d’arrondis des additions successives qui la composent. Plus sp´ecifiquement, ´etant donn´ee la non associativit´e de l’addition en VF (il est possible pour trois nombres en VF avf, bvf et cvf d’obtenir (avf + bvf) + cvf 6= avf + (bvf + cvf)). En effet, partant du principe

que la norme IEEE de l’arithm´etique flottante [48] impose aux op´erateurs arithm´etiques de base (+, −, ×, ÷) de garantir une erreur absolue inf´erieur `a 1

2ulp(xvf ⊙ yvf), o`u ⊙ est

une op´eration arithm´etique de pr´ecision infinie, et o`u ulp(·) est la fonction unit in the last place (ULP!) [77], il devient clair que chaque nouvelle addition op´er´ee dans l’ex´ecution de la sommation vient accroˆıtre l’erreur totale. C’est pourquoi la normeIEEE´evoque l’exactitude de la sommation (sum) en virgule flottante sans lui imposer de contrainte r´eelle :

Sums are computed in a manner that avoids overflow or underflow in the calcu- lation and the final result is determined from that intermediate result.

Le travail de Higham [39] a permis d’´etablir une borne sup´erieure `a l’erreur relative d’une sommation en virgule flottante. En notant SN le r´esultat exact de la sommation de N

nombres flottants xi (1 ≤ i ≤ N) et en notant ˆSN son approximation, on obtient :

| ˆSN − SN|

SN ≤

(N − 1)u

1 − (N − 1)uRN ≡ γ(N −1)RN (3.1) o`u RN =PNi=1|xi|/|PNi=1xi| est le conditionnement de la somme (une grande valeur de RN

indique un mauvais conditionnement) et u = 1

en double pr´ecision). Si N ≪ 1/u (ce qui est g´en´eralement le cas), alors γ(N )≃ Nu, de sorte

que l’erreur relative soit de l’ordre de Nu fois RN. Il convient de mentionner cependant que

l’´equation 3.1 ne donne qu’une bonne sup´erieure `a l’erreur relative — une borne pessimiste par ailleurs puisque l’erreur relative est g´en´eralement bien moins importante.

Techniques logicielles pour r´eduire l’erreur de la sommation

Il existe diff´erentes techniques permettant d’am´eliorer l’exactitude d’une sommation. La plus connue d’entre elles est certainement la technique de Kahan [55], dont l’erreur relative est born´ee par (2u + O(Nu2))R

N, ce qui signifie que la sommation est aussi exacte que si elle

avait ´etait op´er´ee avec une pr´ecision double de la pr´ecision utilis´ee, puis que le r´esultat avait ´et´e arrondi ”conform´ement”1 : ainsi si le calcul ´etait r´ealis´e en simple pr´ecision, le r´esultat

serait aussi exact que si la sommation avait ´et´e op´er´ee en double pr´ecision, puis arrondie conform´ement `a la simple pr´ecision.

Les techniques modernes dites de distillation sont plus ´elabor´ees que l’algorithme de Ka- han bien qu’elles en respectent l’esprit. On les appelle techniques de distillation car elles pro- c`edent en transformant les op´erandes de d´epart pour des op´erandes aux meilleures propri´et´es. Ainsi, la distillation substitue les op´erandes yj (1 ≤ j ≤ M) aux op´erandes xi (1 ≤ i ≤ N)

de sorte quePN

i=1xi =PMj=1yj = SN, tout en veillant `a ce que le conditionnement du nouvel

ensemble d’op´erandes soit meilleur : PM

j=1|yj|/|PMj=1yj| ≪PNi=1|xi|/|PNi=1xi|.

C’est ainsi qu’une K-tuple exactitude est rendue possible au moyen de la technique de distillation propos´ee dans [80] : une K-tuple signifie ici que le r´esultat de la sommation est aussi exact que s’il avait ´et´e men´e avec K fois la pr´ecision employ´ee, puis arrondi `a la pr´ecision de travail (la technique de Kahan offre une K-tuple exactitude, o`u K = 2). L’algorithme de distillation ultime a par ailleurs ´et´e r´ecemment propos´e dans [103], garantissant une sommation exacte conform´ement arrondie, c.-`a-d. que l’erreur relative est born´ee par 2u, ind´ependamment de RN.

Techniques mat´erielles de sommation

Les approches mat´erielles ne souffrent pas des contraintes que subissent les approches logicielles o`u il n’est possible de faire autrement que d’employer les pr´ecisions disponibles sur la machine. Ainsi, il existe diff´erentes formes d’op´erateurs mat´eriels de sommation. Certaines sont conventionnelles tandis que d’autres pr´esentent des originalit´es topologiques assez frap- pantes. Ainsi, un op´erateur de sommation peut prendre diff´erentes formes. Par exemple. il

1. Arrondi conforme est une traduction libre du concept de faithful rounding pr´esent´e dans [103]. `A toutes fins utile, cela signifie que l’on substitue la contrainte arrondi(x) ≤1

peut se concevoir comme un additionneur `a plusieurs entr´ees dans lequel toutes les op´e- randes sont trait´ees simultan´ement [112,117]. Il peut ´egalement se concevoir comme un ac- cumulateur o`u les op´erandes arrivent s´equentiellement [62, 69, 89]. Il est ´egalement possible de fusionner l’additionneur multi-op´erandes et l’accumulateur afin d’augmenter le d´ebit du sommateur [76,125]. D’autres approches plus ou moins exotiques sont ´egalement rapport´ees dans la litt´erature [56,111].

L’exactitude d’une sommation mat´erielle d´epend bien ´evidemment de la strat´egie adop- t´ee. Ainsi, il est relativement ais´e d’assurer un r´esultat exactement arrondi au prix d’une mantisse interne tr`es large [5, 62, 112]. Il est ´egalement possible de borner l’erreur par des approches topologiques. Par exemple, un arbre binaire d’additionneur a une erreur relative born´ee par γlog2(N )RN [39]. Notre contribution dans cette th`ese est une m´ethode de somma-

tion mat´erielle inspir´ee de la technique dite d’auto-alignement [69, 116] qui se traduit par une exactitude K-tuple, exprim´ee par une logique de contrˆole fort simple tout en permettant la r´ealisation d’une accumulation `a un cycle en simple et en double pr´ecision.

Documents relatifs