• Aucun résultat trouvé

Évaluation de l’erreur et choix d’un oSoP

dernière considérait toujours le pire cas sans prendre en compte les valeurs des constantes et les bornes des intervalles.

L’étape suivante consiste à évaluer les valeurs des décalages détectés afin d’avoir une valeur de la dégradation numérique globale de chaque oSoP.

4.3 Évaluation de l’erreur et choix d’un oSoP

On a vu dans la partie précédente comment propager des intervalles à tra-vers les différents oSoP, et que ces propagations nécessitaient des formatages, dont certains produisaient des arrondis, et donc des erreurs. Nous allons voir maintenant comment évaluer ces erreurs d’arrondis, en utilisant les descrip-tions des erreurs vues en 2.4.2.

Les valeurs des différents formatages apparaissant dans les oSoP suite à la propagation des informations ne sont pas corrélées. En effet, on a vu dans la partie 3.2qu’on pouvait décomposer le filtre implémenté en précision finie en deux filtres indépendants, le filtre exact H et le filtre de l’erreur Hε. Cette décomposition permet de ne calculer que les erreurs de calculs sur le ou les oSoP, et l’erreur finale, comprenant le rebouclage (la corrélation) de ces erreurs de calcul, est ensuite obtenue par le corollaire 3.1. Par conséquent, si l’erreur de calcul globale ε(k) d’un oSoP se calcule comme la somme des valeurs des

erreurs de chaque formatage, il est important de noter que l’erreur finale sur un filtre se calcule en appliquant le corollaire3.1surε(k). On peut également noter

que le filtreHεne dépend que du choix de la réalisation (on a vu qu’on pouvait l’obtenir directement à partir de la forme implicite du filtreH), mais que ε(k)

dépend du choix de l’implémentation (choix de l’oSoP pour représenter un SoP, propagation des formats ou des intervalles).

Pour calculer la valeur d’un formatage, on considère deux approches, celle du traitement du signal utilisant des bruits et celle de l’arithmétique utilisant des intervalles d’erreurs.

4.3.1 Bruit de quantification

On a vu en2.4.2.2que le bruit de quantification est une modélisation sta-tistique d’une erreur d’arrondi, interprétant cette erreur comme un bruit blanc uniformément distribué. Le tableau 2.3donne les formules pour les moments d’ordre un et deux de ce bruit. Dans le cas présent où l’on considère les erreurs d’arrondi dues aux formatages, seul le cas des bruits à amplitude discrète nous intéresse.

On note Fi le formatage d’une variable sur le format (mi, i) impliquant un arrondi de di bits, et µi et σi2 les moments d’ordre un et deux de l’erreur commise par le formatage Fi (déterminés d’après le tableau 2.3). Alors, en notantµs etσ2

4. Implémentation logicielle de filtres et produits scalaires

– dans le cas d’un arrondi par troncature :

µs = nf  i=1 2i−1(1− 2−di) (4.7) σs2 = nf  i=1 22i 12 (1− 2−2di) (4.8) – dans le cas d’un arrondi au plus proche :

µs = nf  i=1 2i−di−1 (4.9) σs2 = nf  i=1 22i 12 (1− 2−2di) (4.10) avecnf le nombre de formatages impliquant des arrondis présents dans l’oSoP. Exemple 4.2. À titre d’exemple, reprenons l’oSoP de la figure4.11 en consi-dérant que les arrondis se font par troncature. Commençons par un seul for-matage : on a dans l’oSoP un forfor-matage pour passer du format (1,−14) au

format (2,−13). En utilisant le tableau 2.3 avec  = −13 et d = 1, on a les

moments d’ordre un et deux, notés respectivementµ et σ2, suivants :

µ = 2−14(1− 2−1) = 2−15 (4.11)

σ2 = 2−26

12 (1− 2−2) = 2−30 (4.12) On applique maintenant cette méthode à chaque formatage de l’oSoP de la figure4.11, on obtient :

µs = 4.57764e-04, (4.13)

σ2s = 7.91624e-08. (4.14)

4.3.2 Intervalle d’erreur

Les intervalles d’erreur (voir2.4.2.3) donnent une plage précise des valeurs que peut prendre l’erreur commise par un formatage. Le tableau2.4donne les formules pour les bornes inférieure et supérieure de l’erreur d’arrondi, selon le mode d’arrondi choisi (on considère ici les arrondis en précision finie, à savoir les arrondis de calcul).

En ré-utilisant les notations précédentes, c’est-à-dire(mi, i) pour le format d’arrivée etdi pour le nombre de bits arrondis, et en notant[ei; ei] l’intervalle de l’erreur commise par le formatageFi, et[es; es] l’intervalle de l’erreur globale surs, on a :

4.3. Évaluation de l’erreur et choix d’un oSoP

– dans le cas d’un arrondi par troncature :

es  nf  i=1 ei = nf  i=1 −2i(1− 2−di) (4.15) es  nf  i=1 ei = 0 (4.16)

– dans le cas d’un arrondi au plus proche :

es  nf  i=1 ei = nf  i=1 −2i−1(1− 2−di) (4.17) es  nf  i=1 ei = nf  i=1 2i−1 (4.18)

avecnf le nombre de formatages impliquant des arrondis présents dans l’oSoP. Exemple 4.3. On applique ces formules pour calculer l’intervalle d’erreur global de l’oSoP de la figure 4.11, en considérant que les arrondis se font par troncature. De la même manière que précédemment, commençons par évaluer l’intervalle d’erreur pour le formatage pour passer du format(1,−14) au format

(2,−13), en utilisant le tableau2.4avec =−13 et d = 1. L’intervalle d’erreur

[e; e] est donné par :

e = −2−13(1− 2−1) =−2−14 (4.19)

e = 0 (4.20)

On applique maintenant cette méthode à chaque formatage de l’oSoP de la figure 4.11, on obtient :

es = −9.15527e-04 (4.21)

es = 0. (4.22)

4.3.3 Autre critère de choix, le parallélisme

Nous venons de voir comment calculer l’impact numérique des arrondis dans un arbre, celui-ci pouvant être vu soit comme un bruit, soit comme l’ajout d’une erreur sous forme d’un intervalle. L’erreur globale calculée sur un oSoP est un critère important pour choisir un oSoP plutôt qu’un autre parmi l’ensemble des oSoP générés. En effet, l’un des enjeux majeurs de l’implémen-tation en virgule fixe est la précision des calculs, on aura donc tendance à vouloir implémenter le calcul le plus précis. Mais si plusieurs oSoP ont exacte-ment le même impact numérique, lequel choisir ? Autreexacte-ment formulé, peut-on déterminer, à partir des oSoP pleinement paramétrés à notre disposition et

4. Implémentation logicielle de filtres et produits scalaires

de l’architecture de la cible visée, un autre critère qui puisse permettre de sélectionner un meilleur oSoP ?

Ce nouveau critère de choix discuté ici est le parallélisme. En effet, si l’archi-tecture de la cible le permet (plusieurs multiplieurs, plusieurs additionneurs), il est possible de paralléliser les calculs, c’est-à-dire d’effectuer plusieurs calculs en même temps. Si les multiplications sont indépendantes les unes des autres et donc toutes parallélisables, la parallélisation des additions quant à elle dé-pend du choix de l’oSoP. En effet, considérons par exemple les deux oSoP de la figure4.12. Celui de gauche est une accumulation séquentielle, chaque terme s’ajoute au résultat précédent l’un après l’autre, il n’y a pas possibilité de cal-culer deux additions en même temps. À l’opposé, dans l’oSoP de droite, les additionsp1+ p2 etp3+ p4 peuvent être exécutées en même temps, la dernière somme nécessitant le résultat des deux premières additions.

S + + + p1 p2 p3 p4 S + + p1 p2 + p3 p4

Figure 4.12 – Deux oSoP de même ordre illustrant la notion de parallélisme. Deux additions d’un même oSoP peuvent s’effectuer en parallèle si elles sont indépendantes l’une de l’autre. En considérant la représentation sous forme d’arbre binaire entier, aucun des deux nœuds additions ne doit être parent ou descendant de l’autre (les deux nœuds doivent se situer sur des branches différentes de l’arbre). On peut en déduire qu’un arbre sera le plus parallélisable possible quand il possédera le plus grand nombre de branches différentes, c’est-à-dire quand sa hauteur sera minimale.

Proposition 4.4. La hauteur minimale d’un arbre binaire entier àn feuilles,

notéeh, est donnée par :

hlog2(n)

(4.23) Pour la hauteur de nos oSoP, on ne considère pas la distance de 1 entre l’addition finale et le résultat S de la somme, cette arête finale ne servant

qu’à rendre visuelle la sortie de l’addition. De même, les noeuds de forma-tages indiqués par unF ne sont pas pris en compte, seules les additions et les

multiplications sont prises en compte pour le calcul de la hauteur.

Exemple 4.4. Reprenons l’exemple fil rouge (voir 4.2), l’un des oSoP qui minimise la hauteur, et donc maximise les possibilités de parallélisation, est illustré par la figure4.13.