A variable precision hardware acceleration for scientific computing - TEL - Thèses en ligne
Theses Year : 2020

A variable precision hardware acceleration for scientific computing

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

Abstract

Most of the Floating-Point (FP) hardware units support the formats and the operations specified in the IEEE 754 standard. These formats have fixed bit-length. They are defined on 16, 32, 64, and 128 bits. However, some applications, such as linear system solvers and computational geometry, benefit from different formats which can express FP numbers on different sizes and different tradeoffs among the exponent and the mantissa fields. The class of Variable Precision (VP) formats meets these requirements. This research proposes a VP FP computing system based on three computation layers. The external layer supports legacy IEEE formats for input and output variables. The internal layer uses variable-length internal registers for inner loop multiply-add. Finally, an intermediate layer supports loads and stores of intermediate results to cache memory without losing precision, with a dynamically adjustable VP format. The VP unit exploits the UNUM type I FP format and proposes solutions to address some of its pitfalls, such as the variable latency of the internal operation and the variable memory footprint of the intermediate variables. Unlike IEEE 754, in UNUM type I the size of a number is stored within its representation. The unit implements a fully pipelined architecture, and it supports up to 512 bits of precision, internally and in memory, for both interval and scalar computing. The user can configure the storage format and the internal computing precision at 8-bit and 64-bit granularity This system is integrated as a RISC-V coprocessor. The system has been prototyped on an FPGA (Field-Programmable Gate Array) platform and also synthesized for a 28nm FDSOI process technology. The respective working frequencies of FPGA and ASIC implementations are 50MHz and 600MHz. Synthesis results show that the estimated chip area is 1.5mm2, and the estimated power consumption is 95mW. The experiments emulated in an FPGA environment show that the latency and the computation accuracy of this system scale linearly with the memory format length set by the user. In cases where legacy IEEE-754 formats do not converge, this architecture can achieve up to 130 decimal digits of precision, increasing the chances of obtaining output data with an accuracy similar to that of the input data. This high accuracy opens the possibility to use direct methods, which are more sensitive to computational error, instead of iterative methods, which always converge. However, their latency is ten times higher than the direct ones. Compared to low precision FP formats, in iterative methods, the usage of high precision VP formats helps to drastically reduce the number of iterations required by the iterative algorithm to converge, reducing the application latency of up to 50%. Compared with the MPFR software library, the proposed unit achieves speedups between 3.5x and 18x, with comparable accuracy.
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.
Fichier principal
Vignette du fichier
these.pdf (7.96 Mo) Télécharger le fichier
Origin Version validated by the jury (STAR)

Dates and versions

tel-03102749 , version 1 (07-01-2021)

Identifiers

  • HAL Id : tel-03102749 , version 1

Cite

Andrea Bocco. A variable precision hardware acceleration for scientific computing. Discrete Mathematics [cs.DM]. Université de Lyon, 2020. English. ⟨NNT : 2020LYSEI065⟩. ⟨tel-03102749⟩
233 View
694 Download

Share

More