Arithmétiques réelles sur FPGA : virgule fixe, virgule flottante et système logarithmique
Institution:
École normale supérieure (Lyon ; 1987-2009)Disciplines:
Directors:
Abstract EN:
First introduced as interfaces between other integrated circuits, the FPGA (Field-Programmable Gate Array) reconfigurable circuits have seen number of integrated transistors greatly increase over the last twenty years. This increase was followed by the apparition of other application domains, first with rapid prototyping, and more recently in the acceleration of specific computations. The use of FPGAs is now common practice in digital signal processing, in cryptography or in bio-informatics, to name but a few. Some of these applications requiring computations over real numbers, many questions arise with the problem of performing those computations: what accuracy should one require? at what cost? for what speed and thoughput performances? The work presented in this thesis aims at answering (at least partially) to these questions. For that purpose, we choose to study various systems for representing real numbers : fixed-point, floating-point and logarithmic number system. Several operators are presented for these three number systems, ranging from basic operators (for floating-point and logarithmic number system) to operators for the evaluation of elementary function (for fixed- and floating-point), with the constant objective to explore all the involved trade-offs as thouroughly as possible. This requires developing generic and flexible algorithms which can be easily adapted to the needs of each particular application. It also involves an accurate and also generic error analysis for each operator in order to guarantee their accuracy.
Abstract FR:
À l'origine développés pour être utilisés comme de simples interfaces entre divers circuits intégrés, les circuits reconfigurables FPGA (pour Field-Programmable Gate Arrays) ont gagné en capacité d'intégration ces vingt dernières années. Ce phénomène s'est accompagné d'un important élargissement du domaine d'utilisation de ces circuits, tout d'abord dans la direction du prototypage rapide et plus récemment dans l'accélération de calculs spécifiques. On retrouve ainsi les FPGA en traitement du signal, en cryptographie ou encore en bio-informatique, entre autres. Certaines de ces applications nécessitant des calculs sur les nombres réels, de nombreuses questions se posent quant à la réalisation de ces calculs : avec quelle précision calculer ? à quel coût ? pour quelles performances ? Les travaux présentés dans cette thèse tentent d'apporter des éléments de réponse à ces questions. Nous choisissons d'étudier divers systèmes de représentations de nombres réels : la virgule fixe, la virgule flottante et le système logarithmique. Divers opérateurs sont présentés pour ces trois systèmes, des opérateurs de base (en virgule flottante et système logarithmique) aux opérateurs pour l'évaluation de fonctions élémentaires (en virgule fixe et virgule flottante), avec la motivation commune de couvrir au mieux les divers compromis qui entrent en jeu. Cela demande donc de développer des algorithmes génériques et souples pour être adaptés aux besoins de chaque application. Cela requiert aussi une analyse d'erreur précise et elle aussi générique pour chaque opérateur de manière à garantir leur précision.