BOURGOIN Mathias
Direction de recherche : Emmanuel CHAILLOUX
Projet Opengpu - Abstractions performantes pour 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'af- fichage et au traitement 3D. Les systèmes Cuda et OpenCL permettent d'en détourner l'usage pour réaliser des calculs généralistes, normalement effectués par le CPU : la programmation GPGPU (General Purpose GPU). De très bas niveau d'abstraction, ils demandent de manipuler explicitement de nombreux paramètres matériels comme la mémoire ou le placement des calculs sur les différentes unités.
Le but de cette thèse est l'étude de solutions de plus haut niveau d'abstraction pour la programmation GPGPU, afin de la rendre à la fois plus accessible et plus sûre.
Nous introduisons deux langages de programmation dédiés à la programmation GPGPU, SPML et Sarek ainsi que leur sémantique opérationnelle, et les garanties qu'ils apportent. Nous présentons ensuite une implantation de ces langages, en OCaml, à travers la bibliothèque SPOC et le langage dédié intégré, Sarek. Des tests montrent que notre 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. Nous montrons alors comment notre solution permet de définir des squelettes de programmation offrant davantage d'abstractions. À travers un exemple, nous présentons comment ils simplifient la programmation GPGPU et autorisent le développement d'optimisations supplémentaires. Enfin, nous discutons les possibilités offertes par l'évolution des systèmes matériels et logiciels pour offrir une solution unifiée pour la programmation GPGPU.
Soutenance : 11/12/2013
Membres du jury :
M. Jocelyn Sérot (Professeur, Université Blaise Pascal) [Rapporteur]
M. Marco Danelutto (Associate Professor, Universita di Pisa, Italie) [Rapporteur]
M. Emmanuel Chailloux (Professeur, UPMC)
M. Jean-Luc Lamotte (Professeur, UPMC)
M. Jocelyn Sérot (Professeur, Université Blaise Pascal)
M. Carlos Agon (Professeur, IRCAM)
M. Joël Falcou (Maître de Conférences, Université Paris-Sud)
M. Gaétan Hains (Professeur, Université Paris-Est Créteil Val de Marne)
M. Stéphane Vialle (Professeur, Supélec)
Publications 2009-2017
-
2017
- M. Bourgoin, E. Chailloux, A. Doumoulakis : “Profiling High Level Heterogeneous Programs”, Tenth International Workshop on Programmability and Architectures for Heterogeneous Multicores (MULTIPROG 2017), Stockholm, Sweden (2017)
-
2016
- M. Bourgoin, E. Chailloux, J.‑L. Lamotte : “High Level Data Structures for GPGPU Programming in a Statically Typed Language”, International Journal of Parallel Programming, (Springer Verlag) (2016)
-
2015
- M. Bourgoin, E. Chailloux, J.‑L. Lamotte : “High Level Data Structures for GPGPU Programming in a Statically Typed Language”, 8th International Symposium on High-level Parallel Programming and Applications, Pisa, Italy (2015)
- M. Bourgoin, E. Chailloux : “High-Level Accelerated Array Programming in the Web Browser”, ACM SIGPLAN International Workshop on LIbraries, Languages and Compilers for Array Programming, Portland, OR, United States, pp. 31-36 (2015)
-
2014
- M. Bourgoin, E. Chailloux : “High Performance Client-Side Web Programming with SPOC and Js of ocaml”, The OCaml Users and Developers Workshop, Boston, MA, United States (2014)
- M. Bourgoin, E. Chailloux, J.‑L. Lamotte : “Efficient Abstractions for GPGPU Programming”, International Journal of Parallel Programming, vol. 42 (4), pp. 583-600, (Springer Verlag) (2014)
- M. Bourgoin, E. Chailloux : “GPGPU Composition with OCaml”, ACM SIGPLAN International Workshop on LIbraries, Languages and Compilers for Array Programming, ARRAY'14, Edinburgh, United Kingdom, pp. 1-6 (2014)
- M. Bourgoin, E. Chailloux, J.‑L. Lamotte : “High Level GPGPU Programming with Parallel Skeletons”, chapter in PATTERNS FOR PARALLEL PROGRAMMING ON GPUS, (Saxe-Coburg Publications) (2014)
-
2013
- M. Bourgoin : “Projet Opengpu - Abstractions performantes pour cartes graphiques”, soutenance de thèse, soutenance 11/12/2013, direction de recherche Chailloux, Emmanuel (2013)
- M. Bourgoin, E. Chailloux, J.‑L. Lamotte : “High-Performance GPGPU Programming with OCaml”, The OCaml Users and Developers Workshop, Boston, MA, United States (2013)
- M. Bourgoin, E. Chailloux, J.‑L. Lamotte : “Efficient Abstractions for GPGPU Programming”, International Symposium on High-level Parallel Programming and Applications, Paris, France (2013)
- M. Bourgoin, E. Chailloux, J.‑L. Lamotte : “Retour d’expérience : portage d’une application haute-performance vers un langage de haut niveau”, Compas'13, Grenoble, France, pp. 8 (2013)
-
2012
- M. Bourgoin, E. Chailloux, J.‑L. Lamotte : “SPOC: GPGPU PROGRAMMING THROUGH STREAM PROCESSING WITH OCAML”, Parallel Processing Letters, vol. 22 (2), pp. 1240007, (World Scientific Publishing) (2012)
- M. Bourgoin, E. Chailloux, J.‑L. Lamotte : “Experiments with Spoc”, Workshop OpenGPU, HIPEAC 2012, Paris, France (2012)
- M. Bourgoin, E. Chailloux, J.‑L. Lamotte : “SPOC : GPGPU programming through Stream Processing with OCaml”, HLPGPU2012 workshop, Paris, France, pp. 1-8 (2012)
-
2009
- M. Bourgoin, B. Canou, E. Chailloux, A. Jonquet, Ph. Wang : “OC4MC: Objective Caml for Multicore Architectures”, 21st Symposium on Implementation and Application of Functional Languages, vol. SHU-TR-CS-2009-09-1, South Orange, United States, pp. 24-41 (2009)