Minh Quan Ho - Optimization of data transfer on many-core processors, applied to dense linear algebra and stencil computations

13:45
Jeudi
5
Jui
2018
Organisé par : 
Minh Quan Ho
Intervenant : 
Minh Quan Ho
Équipes : 
Information détaillée : 

Composition du jury :

  • Bernard Tourancheau - Professeur, Université Grenoble Alpes - Directeur de thèse
  • Joël Falcou - Maitre de conferences, Université Paris-Sud - Rapporteur
  • Francisco Daniel Igual Pena - Assistant professeur, Univ. Complutense De Madrid - Rapporteur
  • Christian Obrecht - Maitre de conferences, INSA Lyon - Examinateur
  • Benoît  Dupont De Dinechin - Directeur de la Technologie, Kalray S.A - Examinateur
  • Raphaël Couturier - Professeur, Université Bourgogne Franche-Comté - Examinateur

 

 

Résumé : 

La prochaine cible de Exascale en calcul haute performance (High Performance Computing - HPC) et des récent accomplissements dans l'intelligence artificielle donnent l'émergence des architectures alternatives non conventionnelles, dont l'efficacité énergétique est typique des systèmes embarqués, tout en fournissant un écosystème de logiciel équivalent aux plateformes HPC classiques. Un facteur clé de performance de ces architectures à plusieurs cœurs est l'exploitation de la localité de données, en particulier l'utilisation de mémoire locale (scratchpad) en combinaison avec des moteurs d'accès direct à la mémoire (Direct Memory Access - DMA) afin de chevaucher le calcul et la communication. Un tel paradigme soulève des défis de programmation considérables à la fois au fabricant et au développeur d'application. Dans cette thèse, nous abordons les problèmes de transfert et d'accès aux mémoires hiérarchiques, de performance de calcul, ainsi que les défis de programmation des applications HPC, sur l'architecture pluri-cœurs MPPA de Kalray.

Pour le premier cas d'application lié à la méthode de Boltzmann sur réseau (Lattice Boltzmann method - LBM), nous fournissons des techniques génériques et réponses fondamentales à la question de la décomposition d'un domaine "stencil" itératif tridimensionnel sur les processeurs clusterisés équipés de mémoires locales et de circuit DMA. Nous proposons un algorithme de streaming et de recouvrement basé sur les DMA, délivrant 33% d'amélioration de performance par rapport à l'implémentation basée sur la mémoire cache par défaut. Le calcul de stencil multi-dimensionnel souffre d'un goulot d'étranglement important sur les entrées/sorties de données et d'un espace mémoire sur puce limité. Nous avons développé un nouvel algorithme de propagation LBM locale (in-place). Il consiste à travailler sur une seule instance des données, au lieu de deux, réduisant de moitié l'empreinte mémoire ainsi qu'une efficacité de performance-par-octet 1.5 fois meilleur que l'algorithme traditionnel dans l'état de l'art.

Du côté du calcul intensif en algèbre linéaire dense, nous construisons un benchmark de multiplication matricielle optimale, basé sur exploitation de la mémoire locale et la communication DMA asynchrone. Ces techniques sont ensuite étendues à un module DMA générique pour le framework BLIS. Ceci nous permet d'instancier une bibliothèque BLAS3 (Basic Linear Algebra Subprograms) portable et optimisée sur n'importe quelle architecture possédant des DMA, en moins de 100 lignes de code. Nous atteignons une performance maximale de 75% du maximum théorique sur le processeur MPPA pour l'opération de multiplication de matrices (GEMM) de BLAS, sans avoir à écrire des milliers de lignes de code laborieusement optimisées pour le même résultat.