Thèse soutenue

Une accélération matérielle à précision variable pour le calcul scientifique

FR  |  
EN
Auteur / Autrice : Andrea Bocco
Direction : Florent Dupont de DinechinYves Durand
Type : Thèse de doctorat
Discipline(s) : Informatique
Date : Soutenance le 29/07/2020
Etablissement(s) : Lyon
Ecole(s) doctorale(s) : École doctorale en Informatique et Mathématiques de Lyon (Lyon ; 2009-....)
Partenaire(s) de recherche : établissement opérateur d'inscription : Institut national des sciences appliquées (Lyon ; 1957-....)
Laboratoire : CITI - Centre d'Innovation en Télécommunications et Intégration de services (Lyon, INSA) - CITI Centre of Innovation in Telecommunications and Integration of services / CITI - Commissariat à l'énergie atomique et aux énergies alternatives - Laboratoire d'Electronique et de Technologie de l'Information
Equipe de recherche : Software and Cognitive radio for telecommunications
Jury : Président / Présidente : Frédéric Pétrot
Examinateurs / Examinatrices : Florent Dupont de Dinechin, Yves Durand, Frédéric Pétrot, Marc Dumas, Nathalie Revol, Fabrizio Ferrandi
Rapporteurs / Rapporteuses : Frédéric Pétrot, Marc Dumas

Résumé

FR  |  
EN

La plupart des unités matérielles arithmétiques à virgule flottante (en anglais Floating-Point, FP) prennent en charge les formats et les opérations spécifiés dans le standard IEEE 754. Ces formats ont une longueur en bits fixe et sont définis sur 16, 32, 64 et 128 bits. Cependant, certaines applications, par exemple les solveurs de systèmes linéaires, ou encore la géométrie computationnelle, pourraient bénéficier de formats différents pour représenter les flottants sur différentes tailles, avec différents compromis entre les champs des exposant et mantisse. La classe des formats de précision variable (en anglais Variable Precision, VP) répond à ces exigences. L'objectif de cette recherche est de proposer un système de calcul VP capable d'augmenter la précision ou l'efficacité de calcul des problèmes en offrant une granularité plus fine des opérations FP. Ce travail propose un système de calcul FP à VP basé sur trois couches de calcul. La couche externe prend en charge les formats IEEE existants pour les variables d'entrée et de sortie. La couche interne utilise des registres de longueur variable pour les opérations de multiplication-addition à haute précision. Enfin, une couche intermédiaire prend en charge le chargement et le stockage des résultats intermédiaires dans la mémoire cache sans perte de précision, avec un format VP réglable dynamiquement. Le support des formats différents entre la représentation interne et le stockage en mémoire proche permets d'envisager des "grands vecteurs" en VP avec la possibilité d’avoir une haute précision de calcul dans la couche interne. L'unité à VP exploite le format FP UNUM de type I, en proposant des solutions pour remédier à certains de ses difficultés intrinsèques, telles que la latence variable de l'opération interne et l'empreinte mémoire variable des variables intermédiaires. Contrairement aux formats définis par IEEE 754, dans l'UNUM de type I, la taille d'un nombre est stockée dans la représentation elle-même. Ce travail propose une architecture de jeu d'instructions pour programmer le système de calcul VP qui suit la structure des couches de calcul susmentionnée. L'objectif de cette ISA est d'établir une séparation claire entre le format de la mémoire et celui à l'intérieur du coprocesseur. Avec cette ISA, le programmeur peut écrire des programmes VP de telle sorte que les instructions assembleur générées soient décorrélées de la taille et des formats des variables du programme. Cette décorrélation se fait en stockant les informations sur la taille, la précision et le format des variables du programme dans des registres d'état dédiés, à l'intérieur de l'unité VP. Ces registres d’état sont utilisés par une unité de chargement et de stockage (Load and Store Unit, LSU), étroitement couplée à l'unité de calcul VP, qui prend en charge la conversion des données entre les couches de calcul.