Source-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: