Accueil du site > Vie de la recherche > Prix et distinctions




Recherchez sur ce site


Mieux détourner les capacités de calcul des cartes graphiques

Les cartes graphiques (GPU) sont des dispositifs performants et spécialisés dotés de nombreuses unités de calcul, dédiés à l’affichage et au traitement 3D. Des systèmes permettent d’en détourner l’usage pour réaliser des calculs généralistes, normalement effectués par le processeur : la programmation GPGPU (General Purpose GPU). Dans sa thèse « Abstractions Performantes pour Cartes Graphiques », récompensée par le Groupement de Recherche Génie de la Programmation et du Logiciel (GDR GPL), Mathias Bourgoin du Laboratoire d’informatique de Paris 6 (LIP6) (CNRS/UPMC) propose des solutions de plus haut niveau d’abstraction pour la programmation GPGPU, afin de la rendre à la fois plus accessible et plus sûre.

La programmation GPGPU « classique » est en effet de très bas niveau d’abstraction. Elle demande par exemple de manipuler explicitement de nombreux paramètres matériels comme la mémoire ou le placement des calculs sur les différentes unités, ou encore d’associer des programmes hôtes, qui sont exécutés par le processeur, et des noyaux de calcul, qui sont des programmes assez courts exécutés par le GPGPU.

La proposition de Mathias Bourgoin est d’introduire deux langages de programmation dédiés à la programmation GPGPU, SPML et Sarek. Afin de préciser les garanties que ces langages apportent, en particulier sur la position des données au cours de l’exécution d’un programme, sa thèse spécifie leur comportement à travers leur sémantique opérationnelle. Il choisit également pour l’implantation de ces langages d’utiliser le langage de haut niveau OCaml, à travers la bibliothèque SPOC et le langage Sarek dédié à l’expression des noyaux de calculs et intégré à OCaml. Des tests montrent que cette solution permet d’atteindre un haut niveau de performance, pour des exemples simples, comme pour le portage d’une application numérique réaliste depuis Fortran et Cuda, vers OCaml.

Dans cet exemple, SPOC et Sarek peuvent être utilisés à la fois par des programmeurs OCaml qui souhaitent utiliser des dispositifs GPGPU, mais aussi par la communauté du calcul numérique et plus particulièrement pour du calcul haute-performance. De façon plus générale, les solutions proposées étant particulièrement extensibles, elles permettent de définir des squelettes de programmation offrant davantage d’abstractions. À travers un exemple, la thèse présente comment ces constructions algorithmiques simplifient la programmation GPGPU et autorisent le développement d’optimisations supplémentaires. Enfin, Mathias Bourgoin discute des possibilités offertes par l’évolution des systèmes matériels et logiciels pour offrir une solution unifiée pour la programmation GPGPU.

Ce travail de thèse fait donc un pont entre les accélérateurs matériels et les langages de haut niveau, tout en tenant compte de l’hétérogénéité des systèmes combinant processeurs classiques et accélérateurs. Le prix de thèse GDR GPL (Groupement de Recherche Génie de la Programmation et du Logiciel), qui lui a été décerné récompense ce travail qui concilie les préoccupations d’expressivité des programmes tout en conservant l’efficacité et la sûreté d’exécution de ceux-ci.

GDR GPL

Un Groupement de Recherche (GDR) est une structure CNRS qui regroupe une communauté scientifique française autour d’une thématique de recherche stratégique ou fondamentale. Le GDR GPL (Génie Logiciel et Programmation) joue un rôle essentiel dans cette optique ; il constitue un creuset pour le réflexion, l’échange et la promotion des techniques de conception, validation et déploiement des logiciels.