Georgios Christodoulis - Adaption d'un système HPC pour intégrer des FPGAs

14:00
Jeudi
5
Déc
2019
Organisé par : 
Georgios Christodoulis
Intervenant : 
Georgios Christodoulis
Équipes : 

 

Lieu de soutenance :

Salle 202, Étage 1, Bâtiment Giant,  17, Avenue des Martyrs, 38000, Grenoble.

Membres du jury :

Christian Perez, directeur de Recherche, INRIA, rapporteur
Smail Niar, professeur, UPHF Valenciennes, rapporteur
Raymond Namyst, professeur, Université de Bordeaux, examinateur
David Novo, chargé de recherche, LIRM CNRS, examinateur 
François Broquedis, maître de conférences, Grenoble INP, examinateur
Olivier Muller, maître de conférences, Grenoble INP, examinateur
Frédéric Desprez, directeur de Recherche, INRIA, directeur de thèse

 

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.