Title: Arithmtique stochastique
1Arithmétique stochastique
- Roselyne CHOTIN, Habib MEHREZ
En collaboration avec LIP6/ANP (J. Vignes, J.-M.
Chesneaux, J.-L. Lamotte)
École d'été ASIM Garchy, 7 septembre 2001
2Plan
- Problématique
- Méthode CESTAC
- Solution logicielle
- Solution matérielle
- Quelques résultats
- Perspectives
3Plan
- Problématique
- Méthode CESTAC
- Solution logicielle
- Solution matérielle
- Quelques résultats
- Perspectives
4Problèmes darrondi
Si (3A) ? 2 alors Procédure1 Sinon Procédure2
Fin si
- Arithmétique exacte
- A2/3, 3A2
- Arithmétique flottante
- A0.6666, 3A1.9998
Arithmétique stochastique Estimation des erreurs
darrondi
5Plan
- Problématique
- Méthode CESTAC
- Solution logicielle
- Solution matérielle
- Quelques résultats
- Perspectives
6Méthode CESTAC
Contrôle et Estimation Stochastique des Arrondis
de Calcul
Idée principale
- On exécute plusieurs fois le même calcul avec un
mode d arrondi différent afin de propager les
erreurs d arrondi. - Le résultat significatif sera la partie commune
des différents résultats
7Arithmétique aléatoire
Tout résultat exact est encadré par 2 flottants
On choisit aléatoirement le mode d arrondi avec
8Estimation de la précision
Le résultat du calcul est
Le nombre de chiffres significatifs de R est
9Zéro informatique
- Une erreur d arrondi peut se répercuter sur un
résultat censé être nul - Zéro informatique
- Résultat nul significatif
- Résultat quelconque mais non significatif
10Exemple d utilisation
Si (3A) ? 2 alors Procédure1 Sinon Procédure2
Fin si
11Plan
- Problématique
- Méthode CESTAC
- Solution logicielle
- Solution matérielle
- Quelques résultats
- Perspectives
12Le logiciel CADNA
Control of Accuracy and Debugging for Numerical
Applications
- pouvoir estimer l'impact des erreurs d'arrondi
dans tout résultat de programmes scientifiques - permettre au programmeur de disposer des types
stochastiques - permettre un véritable débogage numérique
- garantir la fiabilité de l'estimation des erreurs
d'arrondi fournie par la méthode CESTAC - permettre de prendre en compte les erreurs de
données dans l'estimation de la précision
13Exemple d utilisation
Équation du second degré Ce programme calcule les
racines de l équation du second degré
0.3x2 - 2.1x 3.675 0 racine double
x_sol 3.5
SANS CADNA d -3.8146972E-06 Il y a deux
racines complexes conjuguées. z1 0.3499999E01
i 0.9765625E-03 z2 0.3499999E01 i
-.9765625E-03
AVEC CADNA d _at_.0 (zéro informatique) Le
discriminant est nul. La racine double réelle
est 0.3500000E01
L'arithmétique classique ne peut détecter la
valeur non significative du discriminant. Le
programme prend donc le mauvais branchement
14Mise en défaut
- On doit exécuter plusieurs fois (en pratique 3)
le même calcul avec un arrondi différent - Le calcul du nombre de chiffres significatifs est
coûteux en temps CPU - Demande pour de l embarqué
Solution matérielle
15Plan
- Problématique
- Méthode CESTAC
- Solution logicielle
- Solution matérielle
- Quelques résultats
- Perspectives
16Méthode CESTAC
- Exécuter 3 fois le même calcul
- Choisir aléatoirement le mode darrondi
- Calculer le nombre de chiffres (bits)
significatifs - Calculer le résultat moyen
- Détecter les zéros informatiques
17Méthode CESTAC
- Exécuter 3 fois le même calcul
- Choisir aléatoirement le mode darrondi
- Calculer le nombre de chiffres (bits)
significatifs - Calculer le résultat moyen
- Détecter les zéros informatiques
18Opérateurs fottants
- On exécute 3 opérations flottantes à la suite
avec un mode d arrondi différent - Les opérateurs sont pipelinés afin de diminuer le
temps de cycle - Opérateurs implémentés
- addition
- soustraction
- test
- conversions entier?flottant
19Méthode CESTAC
- Exécuter 3 fois le même calcul
- Choisir aléatoirement le mode darrondi
- Calculer le nombre de chiffres (bits)
significatifs - Calculer le résultat moyen
- Détecter les zéros informatiques
20Générateur de nombres aléatoires
- Un générateur de 1 et de 0 pour un arrondi
aléatoire vers ou - Probabilité de ½ davoir 0 (respectivement
davoir 1)
Solution basée sur un LFSR
21Méthode CESTAC
- Exécuter 3 fois le même calcul
- Choisir aléatoirement le mode darrondi
- Calculer le nombre de chiffres (bits)
significatifs - Calculer le résultat moyen
- Détecter les zéros informatiques
22Nombre de bits significatifs
Trop coûteux à implémenter ? autre méthode
- On calcule
- Pour chaque on cherche la position du
premier bit à 1 ( ) - Le nombre de bits significatifs est
23Nombre de bits significatifs
24Méthode CESTAC
- Exécuter 3 fois le même calcul
- Choisir aléatoirement le mode darrondi
- Calculer le nombre de chiffres (bits)
significatifs - Calculer le résultat moyen
- Détecter les zéros informatiques
25Résultat moyen
Le calcul du résultat moyen est donné par
Pas d opérateur dédié ? logiciel
26Méthode CESTAC
- Exécuter 3 fois le même calcul
- Choisir aléatoirement le mode darrondi
- Calculer le nombre de chiffres (bits)
significatifs - Calculer le résultat moyen
- Détecter les zéros informatiques
27Détection des zéros informatiques
- Tous les résultats sont nuls
- ou le nombre de bits significatifs est nul
28Assemblage du tout
29Plan
- Problématique
- Méthode CESTAC
- Solution logicielle
- Solution matérielle
- Quelques résultats
- Perspectives
30Quelques résultats
- Unité flottante IEEE/754 (0.35µm)
- Sans pipeline 20 MHz, 0.71 mm2
- 1 étage 41 MHZ , 0.77 mm2
- 2 étages 59 MHZ , 0.84 mm2
- Bloc CESTAC (0.35 µm)
- 58 MHz , 0.32 mm2 (environ 30 de la taille de
l unité flottante)
31Plan
- Problématique
- Méthode CESTAC
- Solution logicielle
- Solution matérielle
- Quelques résultats
- Perspectives
32Perspectives
- Intégrer lunité flottante stochastique dans un
processeur RISC sur FPGA (processeur Java dAED
?) - Fondre un chip avec unité flottante stochastique
(processeur Java dAED ?) - Développer dautres opérateurs flottant
(multiplication, division)