CE46 - Modèles numériques, simulation, applications 2018

Améliorer la prédictibilité des calculs numériques – ImPreNum

Remettre la qualité numérique au coeur du calcul

Les systèmes de calculs actuels sont basés sur un choix limité de précision (32 ou 64 bits). Les langages, les compilateurs et les bibliothèques offrent peu de contrôle de la précision. En conséquence la qualité numérique est souvent une considération secondaire et les calculs soit faux, soit au contraire trop précis avec un coût plus élevé que nécessaire.

Remettre la question de la précision au coeur du calcul numérique

L'objectif de ce projet est d'ajouter des considérations de précision à tous les niveaux d'un système de calcul numérique (du matériel vers les langages et leur compilateurs, et les bibliothèques numériques)

Le projet s'attaque à deux défis:
1/ améliorer le contrôle de la précision dans les niveaux bas de la pile numérique (matériel et compilateur)
2/ comprendre et formaliser les besoins d'exactitude (accuracy) pour permettre aux algorithmes d'exploiter ce contrôle de la précision, de l'application jusqu'à l'opérateur matériel.

Un démonstrateur basé sur un RISC-V étendu d'un accélérateur pour la précision variable, avec des extensions correspondantes au langage C et à son compilateur.

Des études de cas et des publications.

Automatiser le contrôle de la précision, distinguer la spécification d'un calcul sur les réels de son implémentation en précision finie, analyser les problèmes/programmes pour faire la part du contrôle de précision statique (à la compilation) et dynamique (à l'exécution)

11 articles, 1 brevet

Le calcul numérique utilise pour représenter les réels essentiellement la virgule flottante. Les formats standard supportés en matériel sont la double précision (un format de 64 bits offrant l'équivalent de 15 chiffres significatifs), la simple précision (32 bits, 7 chiffres) et depuis peu la demi-precision (16 bits, 3 chiffres). La raison d'être d'un format à 15 chiffres n'est en général pas que les programmeurs ont besoin de cette précision en sortie: cette précision le protège de l'accumulation des erreurs d'arrondis dans son calcul. Pourtant, on lui demande de faire un choix entre ces trois précisions, et il est rare que ce choix tombe juste. Souvent, la précision choisie sera surdimensionnée, avec à la clé un gâchis de temps, de mémoire et d'énergie. Parfois, elle sera insuffisante, avec des conséquences possiblement dramatiques dans un monde où les calculateurs embarqués interagissent de plus en plus avec nos vies.

Face à ce constat, nous affirmons que la qualité numérique (traduction du mot anglais accuracy) devrait devenir une préoccupation de premier ordre dans les systèmes de calcul. Ceci permettra une meilleur confiance dans les calculateurs mais aussi une meilleure performance et une moindre consommation d'énergie lorsque les besoins de qualité numérique sont limités.

L'objectif de ce projet est donc d'ajouter des considération de précision et/ou de qualité numérique à tous les niveaux d'un calculateur:

1. au niveau matériel, avec un meilleur support des grandes et petites précisions et un support matériel pour la précision adaptative
2. au niveau du runtime, avec en particulier la nécessité d'optimiser la gestion mémoire pour la précision adaptative
3. dans les couches basses des logiciels mathématiques (par exemple les BLAS), en enrichissant les interfaces standard de ces bibliothèques avec du contrôle de la précision et de la qualité numérique
4 dans les couches plus hautes des logiciels mathématiques (telles que LAPACK, les solveurs de systèmes d'équations différentelles ordinaires, les logiciels de triangularization, etc). Ces couches sont itératives, et s'appuient sur le contrôle de la précision des couches plus basses pour offrir des propriétés de plus haut niveau telles que stabilité ou convergence.
5. au niveau des compilateurs, que l'on souhaite enrichir avec des optimisations liées au contrôle de la précision
6. au niveau des langages, qui devront pouvoir expliciter les besoins et les prérequis de précision, parfois d'une manière complètement spécifique à un domaine.

Le défi principal, dans les couches basses, est d'offrir du contrôle de précision à un coût acceptable. Pour ceci, le projet peut s'appuyer sur l'expertise du coordinateur en calcul au plus juste (en matériel comme en logiciel), mais aussi sur l'expertise du LETI en intégration de processeurs, et sur l'expertise en analyse de programme et en compilation à l'ENS.
Dans les couches supérieures, le défi est de comprendre et de formaliser les besoins de précision à chaque niveau. Même la définition des bonnes interfaces est loin d'être triviale. Il faut aussi séparer les choix de précision qui peuvent être statiques de ceux qui doivent être décidés à l'exécution. Nous pensons pouvoir répondre à ce défi grâce à l'expérience complémentaire des membres du projet dans différents domaines d'application.

Le projet construira un démonstrateur basé sur un système RISC-V amélioré avec du matériel supportant la précison adaptative, et une pile logicielle couvrant tous les niveaux ci-dessus.

Coordination du projet

Florent DUPONT DE DINECHIN (CENTRE D'INNOVATION EN TELECOMMUNICATIONS ET INTEGRATION DE SERVICES)

L'auteur de ce résumé est le coordinateur du projet, qui est responsable du contenu de ce résumé. L'ANR décline par conséquent toute responsabilité quant à son contenu.

Partenariat

CEA LETI CEA Laboratoire d’Electronique et de Technologie de l’Information
TIMA Techniques de l'Informatique et de la Microélectronique pour l'Architecture des systèmes intégrés
DI ENS Département d'Informatique de l'Ecole Normale Supérieure
EA3720 CENTRE D'INNOVATION EN TELECOMMUNICATIONS ET INTEGRATION DE SERVICES

Aide de l'ANR 594 703 euros
Début et durée du projet scientifique : septembre 2018 - 48 Mois

Liens utiles

Explorez notre base de projets financés

 

 

L’ANR met à disposition ses jeux de données sur les projets, cliquez ici pour en savoir plus.

Inscrivez-vous à notre newsletter
pour recevoir nos actualités
S'inscrire à notre newsletter