logo EDITE Mathias Benoit BOURGOIN
Identité
Mathias Benoit BOURGOIN
État académique
Thèse soutenue le 2013-12-11
Sujet: Abstractions Performantes pour Cartes Graphiques
Direction de thèse:
Laboratoire:
Voisinage
Ellipse bleue: doctorant, ellipse jaune: docteur, rectangle vert: permanent, rectangle jaune: HDR. Trait vert: encadrant de thèse, trait bleu: directeur de thèse, pointillé: jury d'évaluation à mi-parcours ou jury de thèse.
Productions scientifiques
oai:hal.archives-ouvertes.fr:hal-00641009
OC4MC: Objective Caml for Multicore Architectures
Objective Caml is a famous dialect of the ML family languages. It is well-known for its performance as a compiled programming language, notably thanks to its incremental generational automatic memory collection. However, for historical reasons, the latter was built for monocore processors. One consequence is the runtime library assumes there is effectively no more than one thread running at a time, which allows many optimisations for monocore architectures: very few thread mutexes are sufficient to prevent more than a single thread to run at a time. This makes memory allocation and collection quite easier. The way it was built makes it not possible to take advantage of now widespread multicore CPU architectures. This paper presents our feedback on removing Objective Caml's garbage collector and designing a "Stop-The-World Stop&Copy" garbage collector to permit threads to take advantage of multicore architectures.
Draft Proceedings of the 21st Symposium on Implementation and Application of Functional Languages. 21st Symposium on Implementation and Application of Functional Languagesproceeding with peer review 2009-09-23
oai:hal.archives-ouvertes.fr:hal-00697257
SPOC: GPGPU PROGRAMMING THROUGH STREAM PROCESSING WITH OCAML
General purpose computing on graphics processing units (GPGPU) consists of using GPUs to handle computations commonly handled by CPUs. GPGPU programming implies developing specific programs to run on GPUs managed by a host program running on the CPU. To achieve high performance implies to explicitly organize memory transfers between devices. Besides, different incompatible frameworks exist making productivity and portability difficult to achieve. In this paper, we describe SPOC, an OCaml library, defining specific data sets in order to automatically manage transfers between GPU and CPU. SPOC also offers a runtime library looking for multiple frameworks and making them usable transparently. We also describe the link between SPOC and the OCaml garbage collector to optimize transfers dynamically. SPOC benchmarks show that SPOC can offer great performance while simplifying GPGPU programming.
Parallel Processing Letterspeer-reviewed article 2012-05-16
oai:hal.archives-ouvertes.fr:hal-00838345
Retour d'expérience : portage d'une application haute-performance vers un langage de haut niveau
La programmation généraliste des processeurs graphiques implique d'associer des unités de calculs graphiques hyperparallèles avec des CPU classiques dans le but d'accroître les performances d'applica- tions communément traitées par ces derniers. Ces systèmes hybrides sont particulièrement complexes à programmer, en particulier pour en tirer de hautes performances. Afin d'en simplifier l'utilisation, des bibliothèques de haut niveau ont été développées. Cet article décrit l'utilisation d'une de ces biblio- thèques pour effectuer le portage d'une application de calcul physique, PROP. A travers cet exemple, nous décrivons les outils utilisés, en particulier le langage OCaml et la bibliothèque SPOC, ainsi que le portage lui même. Nous étudions également les performances obtenues en les comparant à celle de la version d'origine écrite en Fortran qui exploite les GPU à l'aide de l'environnement Cuda. Les résultats montrent une meilleure fiabilité du programme grâce à OCaml associé à une réduction importante de la taille du code, pour des performances équivalente au programme d'origine.
ComPAS'13 Compas'13conference proceeding 2013-01
Soutenance
Thèse: Abstractions Performantes Pour Cartes Graphiques
Soutenance: 2013-12-11
Rapporteurs: Marco DANELUTTO    Jocelyn SÉROT