Publications

Thèses


< retour aux thèses

« Adaption d'un système HPC pour intégrer des FPGAs ».

Auteur : G. Christodoulis
Directeur de thèse : F. Desprez
Rapporteur(s) de thèse : S. Niar, C. Perez,
Examinateur(s) de thèse : O. Muller, R. Namyst, D. Novo, F. Brodequis,
These de Doctorat Université Grenoble Alpes
Soutenance : 05/12/2019

Résumé

En plus des cœurs de CPU traditionnels, d'autres unités de traitement sont utilisées par la communauté High Performance Computing (HPC) afin d'obtenir une efficacité et des performances améliorées. Un Field Programmable Gate Arrays (FPGA), est une unité de traitement composée de logique reprogrammable interconnectée et de blocs mémoire. Ce type d'unité de traitement constitue un candidat prometteur pour améliorer la puissance de calcul de plates-formes HPC car il permet de réduire le nombre de couches d'abstraction entre le niveau de programmation et le matériel réel. En contre-partie, l'exploitation de FPGA nécessite une connaissance approfondie de la conception matérielle de bas niveau et une grande expertise des outils fournis par les vendeurs qui ne correspond pas à celle des programmeurs HPC.
.
Nous avons, dans le cadre de cette thèse, conçu un framework permettant un développement simple des applications scientifiques sur des plateformes hétérogènes intégrant des FPGAs. Au cœur de notre framework se trouve le système d'exécution hétérogène STARPU, qui a été étendu pour supporter les FPGAs, cachant aux programmeurs des opérations complexes dérivant de la complexité de l'architecture sous-jacente et permettant un contrôle fin de la performance à travers différentes stratégies de planification. Pour la communication avec le FPGA, nous avons créé CONOR, une bibliothèque de communication basée sur RIFFA, qui assure la cohérence de l'accélérateur lors de scénarios où les threads logiciels interagissent simultanément avec le calcul effectué sur le FPGA. .
.
Notre approche est évaluée selon deux axes, l'un correspondant à la programmabilité et l'autre aux surcoûts imposés par les composantes additionnelles rattachées au FPGA. La programmabilité du framework a été évaluée à l'aide d'une version par blocs de multiplication de matrice. Cette multiplication de matrice est également utilisée pour démontrer que nos extensions à STARPU n'ont pas imposé de surcoût supplémentaires. En plus du premier exemple de multiplication de matrice, nous avons créé une conception matérielle efficace de GEMM, qui permettra l'exécution d'applications plus complexes et intéressantes comme la décomposition de Cholesky.