Table Of ContentSource-to-Source Automatic Program Transformations
for GPU-like Hardware Accelerators
Mehdi Amini
To cite this version:
Mehdi Amini. Source-to-Source Automatic Program Transformations for GPU-like Hardware
Accelerators. Other [cs.OH]. Ecole Nationale Sup´erieure des Mines de Paris, 2012. English.
<NNT : 2012ENMP0105>. <pastel-00958033>
HAL Id: pastel-00958033
https://pastel.archives-ouvertes.fr/pastel-00958033
Submitted on 11 Mar 2014
HAL is a multi-disciplinary open access L’archive ouverte pluridisciplinaire HAL, est
archive for the deposit and dissemination of sci- destin´ee au d´epˆot et `a la diffusion de documents
entific research documents, whether they are pub- scientifiques de niveau recherche, publi´es ou non,
lished or not. The documents may come from ´emanant des ´etablissements d’enseignement et de
teaching and research institutions in France or recherche fran¸cais ou ´etrangers, des laboratoires
abroad, or from public or private research centers. publics ou priv´es.
INSTITUT DES SCIENCES ET TECHNOLOGIES
École doctorale nO432 :
Sciences des Métiers de l’Ingénieur
Doctorat ParisTech
T H È S E
pourobtenirlegradededocteurdélivrépar
l’École nationale supérieure des mines de Paris
Spécialité «Informatique temps-réel, robotique et automatique»
présentéeetsoutenuepubliquementpar
Mehdi Amini
le13décembre2012
Transformations de programme automatiques et source-à-source
pour accélérateurs matériels de type GPU
⇠⇠⇠
Source-to-Source Automatic Program Transformations for
GPU-like Hardware Accelerators
Directeurdethèse:FrançoisIrigoin
Co-encadrementdelathèse:FabienCoelho
Co-encadrementdelathèse:RonanKeryell
T
Jury
M.CédricBastoul,MaîtredeConférence,Alchemy/LRI/INRIA,UniversitéParis-Sud Examinateur
H
M.PhilippeClauss,Professeur,ICPS/LSIIT,UniversitédeStrasbourg Examinateur
M.FabienCoelho,Maître-Assistant,CRI,MINESParisTech Co-encadrantdelathèse
È
M.AlbertCohen,DirecteurdeRecherche,PARKAS,INRIARocquencourt Rapporteur
M.AlainDarte,DirecteurdeRecherche,LIP,CNRS Rapporteur
S
M.FrançoisIrigoin,DirecteurdeRecherche,CRI,MINESParisTech Directeurdethèse
M.RonanKeryell,DirecteurScientifique,SILKAN Co-encadrantdelathèse
E
M.SanjayRajopadhye,Professeur,CS/ECEDepartments,ColoradoStateUniversity Rapporteur
MINESParisTech
CentredeRechercheenInformatique
35rueSaint-Honoré,77305Fontainebleau,France
To my beloved father.
Remerciements
Avant toute chose, relever ce défi personnel n’aurait pas été possible sans le soutien
indéfectibledematendreépouse,cestroisdernièresannéesn’ontpasétélesplusreposantes
et j’admire sa patience et sa tolérance vis à vis de son mari travaillant à 500km de notre
domicile et s’absentant régulièrement pour toutes sortes de conférences ou formations.
Mes pensées vont évidement à mon fils Tim, mon moteur principal aujourd’hui, mais
aussi celui qui m’épuise à longueur de journées (du moins le peu de celles que j’ai passé
avecluiàlamaisoncesdernièresannées). Acroirequ’ilpuisesonénergiequisembleinfinie
dans la notre.
J’ai la chance d’avoir des parents formidables à qui j’ai posé beaucoup de difficultés
qu’ils ont su surmonter pour me pousser à faire des études. Peut-être que Tim qui me le
rend bien me fait mesurer l’ampleur de la tâche. Je les en remercie milles fois.
Une aventure commence souvent avec une rencontre, et pour satisfaire ma nature nos-
talgique, je vais la raconter. C’était le 4 juin 2009, lorsque mon étoile m’a conduit à
assister à la Journée jeunes chercheurs sur les Multiprocesseurs et Multicoeurs à Paris.
Quelle chance d’être encore là à la fin de la journée lorsqu’un curieux personnage (non, je
ne me risquerai pas à une description à la Zola) s’est levé pour annoncer qu’il cherchait
des candidats passionnés à un projet un peu fou (ou des candidats un peu fous pour un
projet passionnant, je ne sais plus très bien...). Il n’en fallait pas plus pour piquer ma
curiosité et, après une description plus détaillée, j’étais fasciné par la folie apparente du
projet et j’oubliais être le fou potentiel. Je repartais vers mon TGV, une carte de visite
dans la poche. Peu après minuit le soir même, sitôt rentré chez moi, j’envoyais mon CV à
Ronan Keryell. Le doigt dans l’engrenage...
Trois jours plus tard, j’étais invité par François Irigoin à lui rendre visite à
Fontainebleau. C’est finalement le 1er juillet que je me suis rendu dans les locaux du
Centre de Recherche en Informatique (CRI) pour y rencontrer celui qui allait me proposer
de diriger cette thèse. Neuf jours plus tard, Ronan me proposait de réaliser ces travaux
dans une petite entreprise. Était-ce le goût du risque ? Ou peut-être le nom tellement cool
de HPC Project ? Le challenge de la thèse n’était pas assez difficile à relever en lui même
qu’il fallait y associer une entreprise ? A moins que Ronan n’ait simplement su employer
les arguments qui font mouche pour un esprit pur: Nous sommes prêts à te prendre en
thèse CIFRE entre HPC Project et CRI, histoire de combiner le fun de la thèse avec une
rémunération raisonnable et de voir la vie à 2 endroits différents.
Le 6 décembre j’étais encore ingénieur à l’Université de Strasbourg, le 7 décembre 2009
l’aventurecommençaitvraiment. Lejourmêmejem’envolaispouruneécolethématiquesur
le calcul hautes performances sur accélérateurs matériels et je rencontrais deux personnes
dont j’ignorais l’importance de nos futurs interactions: Béatrice Creusillet et Stéphanie
Even. Je ne pouvais rêver meilleur départ.
A ces rencontres s’en sont succédées de nombreuses autres, et il m’est impossible de
toutes les mentionner ici. Certaines ont été plus marquantes, ou ont eu plus d’impact
dans le cadre de mes travaux, que ce soit vis-à-vis de l’orientation de mes recherches ou
simplement de mes conditions de "travail".
Bien sûr Ronan et François, pour m’avoir supporté, ont la plus grande part de mérites,
ils ont été en quelque sorte le Yin et le Yang, le Chaud et le Froid, l’Alpha et l’Omega,
enfin bref les éléments essentiels au maintient d’un équilibre pendant ces trois années. J’ai
le privilège de continuer à travailler avec Ronan aujourd’hui. Fabien Coelho, qui a rejoint
l’aventure en cours de route (et il n’avait pas l’excuse de l’ignorance, il avait déjà eu à me
supporter sur pipsdev@), a su apporter une couleur différente et compléter efficacement
la direction de mes travaux. J’ai beaucoup progressé à leur contact, techniquement et
humainement. Leurs relectures attentives et leur nombreux commentaires ont contribué
significativement à l’amélioration de ce manuscrit, et j’atteste que tout ce qui peut em-
pêcher ce dernier de répondre à l’exigence du lecteur reste de mon seul fait, que ce soit
de ma paresse ou de mon incompétence (je me plais à croire au premier et à douter du
second).
Au rang de mes collègues, j’ai eu la chance de côtoyer des gens très brillant. Il est très
facile d’être modeste quand on évolue dans un pareil environnement.
JeresteadmiratifdevantlaqualitédutravaildeBéatricequicontinueàm’impressionner
chaquesemaineparsonefficacité. Jedéconseillelalecturedesonmanuscritdethèseàtout
doctorant: laqualité(etlataille)del’ouvrageposeunebaseàdécouragerdecommencersa
propre rédaction. Si elle n’était pas si gentille, dévouée, et tellement agréable, je pourrais
peut-être songer à lui trouver un défaut. Au même titre que Ronan, je suis chanceux
de pouvoir continuer à la compter parmi mes collègues pour la suite de nos travaux sur
Par4All.
Je suis heureux d’avoir pu travailler avec Serge papillon Guelton pour la teneur nos
discussions techniques, pour sa fraîcheur, et pour son enthousiasme communicatif. Nos
différences ont été sources d’enrichissement, que j’espère mutuel.
Lechoixdem’engageravecSilkan(HPC-Projectàcetteépoque)comportaitdesrisques,
mais ce fut payant. En dehors de l’expérience intéressante qui a consister à trouver
l’équilibre entre la recherche et les problématiques terre-à-terre d’une jeune entreprise,
j’ai côtoyé (et continue à travailler avec) des gens brillants. Parmi eux Pierre Villalon,
François-Xavier Pasquier, Thierry Porcher, Janice Onanian McMahon, Onil Nazra Per-
sada Goubier, ou Yannick Langlois ; mais également notre PDG-CEO Pierre Fiorini que
je remercie pour la confiance qu’il m’accorde.
Le CRI est un laboratoire accueillant, situé dans un cadre magnifique pour ne rien
gâcher. J’ai apprécié d’y rencontrer et d’échanger sur la compilation avec Pierre Jouvelot,
Karim Barkati, Antoniu Pop, Amira Mensi, Rachid Habel, ou encore Claude Tadonki ;
et d’échanger sur divers autres sujets avec Georges-André Silber, Claire Medrala, Laurent
Daverio, ou Jacqueline Altimira.
J’ai découvert la communauté française de compilation, grâce aux immanquable
journées compilation que je soupçonne de devoir beaucoup à l’implication de Laure
Gonnord parmi d’autres. J’y ai fait beaucoup de rencontre, et passé d’excellent moment.
J’espère que mon éloignement géographique actuel me laissera des opportunités d’assister
et de partager nos travaux lors de quelques journées futures.
Je me dois de dire que je ne me serai pas lancé dans ce projet sans avoir vécu à
côté l’équipe Informatique et Calcul Parallèle Scientifique (ICPS) de Strasbourg et son
ambiance de travail inégalable. Les meilleurs enseignants de mon cursus universitaire
en font (ou faisait) partis, parmi eux : Alain Ketterlin, Vincent Loechner, Eric Violard,
Catherine Mongenet, Arnaud Giersch, ou encore Benoit Meister. J’ai vraiment apprécié
l’informatique en suivant leur enseignement. J’ai une pensée particulière pour Philippe
Clauss avec qui j’ai découvert la programmation parallèle, et qui, ce 4 juin 2009 dans le
TGV qui nous ramenait de Paris, m’a encouragé à postuler sur ce sujet de thèse.
Pour m’avoir montré une autre facette de la recherche, et m’avoir encadré (supporté ?)
pendant mon stage de Master à l’Observatoire Astronomique de Strasbourg, je remercie
chaleureusement Dominique Aubert.
Je suis très honoré de ne compter dans mon jury que des gens que j’admire pour la
qualité de leur travaux, et que j’apprécie en dehors pour tous nos contacts passés et, je
l’espère, futurs. je suis reconnaissant à mes rapporteurs d’avoir accepté cette charge, je
mesure la quantité de travail qui leur a été demandé, et j’apprécie particulièrement le
sérieux de leur lecture et de leurs commentaires.
Il me reste un petit mot pour Benoît Pin qui à partager notre bureau à Fontainebleau,
et un autre petit mot pour relever que j’ai apprécié le grand nombre de formations de
qualité proposées et surtout la gestion efficace de Régine Molins de l’École des Mines et
d’Alexandrine Jamin de ParisTech.
Enfin, mes travaux des trois dernières années n’auraient été possible sans le soutien fi-
nancierde(ordrealphabétiquedesprojets): l’AssociationNationaledelaRechercheetdela
Technologie (ANRT) et le dispositif CIFRE, l’Agence Nationale pour la Recherche (ANR)
et le projet MediaGPU, le Pôle de Compétitivité SYSTEM@TIC et le projet OpenGPU,
et bien entendu Silkan.
Abstract
Since the beginning of the 2000s, the raw performance of processors stopped its expo-
nentialincrease. Themoderngraphicprocessingunits(GPUs)havebeendesignedasarray
of hundreds or thousands of compute units. The GPUs’ compute capacity quickly leads
them to be diverted from their original target to be used as accelerators for general pur-
posecomputation. HoweverprogrammingaGPUefficientlytoperformothercomputations
than 3D rendering remains challenging.
The current jungle in the hardware ecosystem is mirrored by the software world, with
more and more programming models, new languages, different APIs, etc. But no one-fits-
all solution has emerged.
This thesis proposes a compiler-based solution to partially answer the three “P” prop-
erties: Performance, Portability, and Programmability. The goal is to transform auto-
matically a sequential program into an equivalent program accelerated with a GPU. A
prototype, Par4All, is implemented and validated with numerous experiences. The pro-
grammability and portability are enforced by definition, and the performance may not be
as good as what can be obtained by an expert programmer, but still has been measured
excellent for a wide range of kernels and applications.
A survey of the GPU architectures and the trends in the languages and framework
design is presented. The data movement between the host and the accelerator is managed
without involving the developer. An algorithm is proposed to optimize the communication
by sending data to the GPU as early as possible and keeping them on the GPU as long
as they are not required by the host. Loop transformations techniques for kernel code
generation are involved, and even well-known ones have to be adapted to match specific
GPU constraints. They are combined in a coherent and flexible way and dynamically
scheduledwithinthecompilationprocessofaninterproceduralcompiler. Somepreliminary
work is presented about the extension of the approach toward multiple GPUs.
Description:domicile et s'absentant régulièrement pour toutes sortes de conférences ou formations. Mes pensées vont .. 2.2.1 Open Graphics Library (OpenGL) .