NNT : 2016SACLV037 THESE DE DOCTORAT DE L’UNIVERSITE PARIS-SACLAY PREPAREE A “UNIVERSITE DE VERSAILLES SAINT QUENTIN” ECOLE DOCTORALE N° 580 Sciences et technologies de l'information et de la communication Spécialité de doctorat Informatique Par M. Abdul Wahid Memon Crowdtuning: Towards Practical and Reproducible Auto-tuning via Crowdsourcing and Predictive Analytics Thèse présentée et soutenue à Versailles, le 17 Juin 2016 : Composition du Jury : Monsieur BARTHOU Denis Professeur, Université de Bordeaux Président Monsieur BARTHOU Denis Professeur, Université de Bordeaux Rapporteur Monsieur BASTOUL Cédric Professeur, Université de Strasbourg Rapporteur Monsieur CASTRO Pablo de Oliveira Maître de conférences, Université de Versailles Examinateur HEYDEMANN Karine Maître de conférences, Université Pierre et Marie Curie Examinatrice Monsieur JALBY William Professeur, Université de Versailles Directeur de thèse Monsieur FURSIN Grigori Chercheur, cTuning Foundation, France Co-directeur de thèse Titre : Crowdtuning: Auto-tuning Pragmatique et Reproductible via Crowdsourcing et Analyses Prédictives Mots clés : réglage automatique de compilateur, gestion des connaissances, reproductibilité des ex- périmentations, l'optimisation du programme par crowdsourcing, apprentissage automatique, partage de code et des données Résumé : Le réglage des heuristiques L’objectif est de permettre à la communauté de d'optimisation de compilateur pour de multiples partager les différents benchmarks, données cibles ou implémentations d’une même d’entrée, compilateurs, outils et autres objets architecture est devenu complexe. De plus, ce tout en formalisant et facilitant la contribution problème est généralement traité de façon ad- participative aux boucles d’apprentissage. Une hoc et consomme beaucoup de temps sans être contrainte est la reproductibilité des nécessairement reproductible. Enfin, des erreurs expérimentations pour l’ensemble des de choix de paramétrage d’heuristiques sont utilisateurs et plateformes. Notre cadre de fréquentes en raison du grand nombre de travail open-source et notre dépôt (repository) possibilités d’optimisation et des interactions public permettent de rendre le réglage complexes entre tous les composants matériels automatique et l'apprentissage d’optimisations et logiciels. La prise en compte de multiples praticable. De plus, cM permet à la exigences, comme la performance, la communauté de valider les résultats, les consommation d'énergie, la taille de code, la comportements inattendus et les modèles fiabilité et le coût, peut aussi nécessiter la conduisant à de mauvaises prédictions. cM gestion de plusieurs solutions candidates. La permet aussi de fournir des informations utiles compilation itérative avec profil d’exécution pour l'amélioration et la personnalisation des (profiling feedback), le réglage automatique modules de réglage automatique et (auto tuning) et l'apprentissage automatique ont d'apprentissage ainsi que pour l'amélioration des montré un grand potentiel pour résoudre ces modèles de prévision et l'identification des problèmes. Par exemple, nous les avons utilisés éléments manquants. avec succès pour concevoir le premier compilateur qui utilise l'apprentissage pour Notre analyse et évaluation du cadre de travail l'optimisation automatique de code. Il s'agit du proposé montre qu'il peut effectivement compilateur Milepost GCC, qui apprend exposer, isoler et identifier de façon automatiquement les meilleures optimisations collaborative les principales caractéristiques qui pour plusieurs programmes, données et contribuent à la précision de la prédiction du architectures en se basant sur les modèle. En même temps, la formalisation du caractéristiques statiques et dynamiques du réglage automatique et de l'apprentissage nous programme. Malheureusement, son utilisation permettent d'appliquer en permanence des en pratique, a été très limitée par le temps techniques standards de réduction de d'apprentissage très long et le manque de complexité. Ceci permet de se contenter d'un benchmarks et de données représentatives. De ensemble minimal d'optimisations pertinentes plus, les modèles d'apprentissage « boîte noire » ainsi que de benchmarks et de données d’entrée ne pouvaient pas représenter de façon pertinente réellement représentatifs. les corrélations entre les caractéristiques des programme ou architectures et les meilleures Nous avons publié la plupart des résultats optimisations. expérimentaux, des benchmarks et des données d’entrée à l'adresse http://c-mind.org tout en Dans cette thèse, nous présentons une nouvelle validant nos techniques dans le projet EU FP6 méthodologie et un nouvel écosystème d’outils Milepost et durant un stage de thèse HiPEAC (framework) sous la nomination Collective avec STMicroelectronics. Mind (cM). Université Paris-Saclay Espace Technologique / Immeuble Discovery Route de l’Orme aux Merisiers RD 128 / 91190 Saint-Aubin, France Title : Crowdtuning: Towards Practical and Reproducible Auto-tuning via Crowdsourcing and Predictive Analytics Keywords : compiler auto-tuning, knowledge management, reproducible expeirments, crowdsourcing program optimization, machine learning, code and data sharing Tuning general compiler optimization tools and other artifacts while formalizing and heuristics or optimizing software for rapidly crowdsourcing optimization and learning in evolving hardware has become intolerably reproducible way across many users complex, ad-hoc, time consuming and error (platforms). Our open-source framework and prone due to enormous number of available public optimization repository helps make design and optimization choices, complex auto-tuning and machine learning practical. interactions between all software and hardware Furthermore, cM let the community validate components, and multiple strict requirements optimization results, share unexpected run-time placed on performance, power consumption, behavior or model mispredictions, provide size, reliability and cost. Iterative feedback- useful feedback for improvement, customize directed compilation, auto-tuning and machine common auto-tuning and learning modules, learning have been showing a high potential to improve predictive models and find missing solve above problems. For example, we features. Our analysis and evaluation of the successfully used them to enable the world's proposed framework demonstrates that it can first machine learning based self-tuning effectively expose, isolate and collaboratively compiler, Milepost GCC, which automatically identify the key features that contribute to the learns the best optimizations across multiple model prediction accuracy. At the same time, programs, data sets and architectures based on formalization of auto-tuning and machine static and dynamic program features. learning allows us to continuously apply Unfortunately, its practical use was very standard complexity reduction techniques to limited by very long training times and lack of leave a minimal set of influential optimizations representative benchmarks and data sets. and relevant features as well as truly Furthermore, « black box » machine learning representative benchmarks and data sets. models alone could not get full insight into correlations between features and best We released most of the experimental results, optimizations. benchmarks and data sets at http://c-mind.org while validating our techniques in the EU FP6 In this thesis, we present the first to our MILEPOST project and during HiPEAC knowledge methodology and framework, called internship at STMicroelectronics. Collective Mind (cM), to let the community share various bench marks, datasets, compilers, Université Paris-Saclay Espace Technologique / Immeuble Discovery Route de l’Orme aux Merisiers RD 128 / 91190 Saint-Aubin, France Dedicatedtomyfamilyandfriends. vii Publications [1] GrigoriFursin,YuriyKashnikov,AbdulWahidMemon,ZbigniewChamski,Olivier Temam,MirceaNamolaru,EladYom-Tov,BilhaMendelson,AyalZaks,EricCourtois, FrancoisBodin,PhilBarnard,EltonAshton,EdwinBonilla,JohnThomson,Christo- pherWilliams,andMichaelF.P.O’Boyle. Milepostgcc: Machinelearningenabled self-tuning compiler. International Journal of Parallel Programming, 39:296–327, 2011. 10.1007/s10766-010-0161-2. [2] GrigoriFursin,AbdulWahidMemon,ChristopheGuillon,andAntonLokhmotov. Collectivemind,partII:Towardsperformance-andcost-awaresoftwareengineering asanaturalscience. arXivpreprintarXiv:1506.06256,18thInternationalWorkshop onCompilersforParallelComputing(CPC’15)London,UK,January2015. [3] AbdulWahidMemonandGrigoriFursin. Crowdtuning: systematizingauto-tuning usingpredictivemodelingandcrowdsourcing. InPARCOmini-symposiumon"Ap- plicationAutotuningforHPC(Architectures)",Munich,Allemagne,September2013. Shared Artifacts Allthebenchmarks,datasetsandtoolspertainingtoCollectiveMindexperimentations havebeensharedforvalidationbycommunityatc-mind.org/repo. ix
Description: