Génération dynamique de code pour l’optimisation énergétique Fernando Akira Endo To cite this version: Fernando Akira Endo. Génération dynamique de code pour l’optimisation énergétique. Architec- tures Matérielles [cs.AR]. Université Grenoble Alpes, 2015. Français. NNT: 2015GREAM044. tel- 01285964 HAL Id: tel-01285964 https://theses.hal.science/tel-01285964 Submitted on 10 Mar 2016 HAL is a multi-disciplinary open access L’archive ouverte pluridisciplinaire HAL, est archive for the deposit and dissemination of sci- destinée au dépôt et à la diffusion de documents entific research documents, whether they are pub- scientifiques de niveau recherche, publiés ou non, lished or not. The documents may come from émanant des établissements d’enseignement et de teaching and research institutions in France or recherche français ou étrangers, des laboratoires abroad, or from public or private research centers. publics ou privés. THÈSE Pour obtenir le grade de DOCTEUR DE L’UNIVERSITÉ DE GRENOBLE Spécialité : Informatique Arrêtéministérial:7août2006 Présentéepar Fernando Akira ENDO Thèse dirigée par Henri-Pierre CHARLES préparée au sein du Laboratoire Infrastructures Atelier Logiciel pour Puce, CEA Grenoble et de l’École Doctorale Mathématiques, Sciences et Technologies de l’Information, Informatique Génération dynamique de code pour l’optimisation énergétique Thèse soutenue publiquement le 18 Septembre 2015, devant le jury composé de : M. Frédéric PÉTROT ProfesseurauGrenobleInstituteofTechnology,Président M. Florent DE DINECHIN Professeuràl’INSAdeLyon,Rapporteur M. Paul KELLY Professeuràl’ImperialCollegeLondon,Rapporteur Mme Karine HEYDEMANN Maîtredeconférencesàl’UniversitéPierreetMarieCurie,Examinatrice M. Henri-Pierre CHARLES DirecteurderechercheauCEALIST,Directeurdethèse M. Damien COUROUSSÉ IngénieurchercheurauCEALIST,Grenoble,Co-Encadrantdethèse Dedico esta tese a minha família, que sempre me apoiou. iv Agradecimentos Gostaria de agradecer a todo pessoal do laboratório, que me acolheu durante esses três anos de doutorado,etambémaoCEApelofinanciamentodestatese,assimcomoaosintegrantesdabancaexam- inadora,emespecialaosexaminadoresdadissertação,Dr.FlorentdeDinechineDr.PaulKelly,porsuas sugestõesecorreções. Gostariade agradecerespecialmente aosmeus amigosFayçal Benazize ThibaultCattelani, queme ajudaram a revisar e corrigir o resumo em francês da tese, e também Alexandre Aminot, Ivan Llopard, Laurentiu Trifan, Thierno Barry, Tiana Rakotovao e Victor Lomüller, que revisaram e corrigiram meus artigos,queporsuavezforamintegradosàtese. Gostaria também de agradecer à UNICAMP, ao programa BRAFITEC e ao INSA de Lyon, sem os quais não teria tido a oportunidade de realizar um intercâmbio na França e obter um diploma francês, quefacilitouminhacandidaturaaodoutorado. Finalmente,gostariadeagradeceràPhiInnovations,poisgrandepartedoconhecimentoqueaprendi nessa empresa, incluindo a BeagleBoard-xM que recebi de presente, foram úteis ao desenvolvimento técnicoecientíficodemeustrabalhos. vi Contents I Thesis 1 1Introduction 3 1.1 Thesiscontribution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 1.1.1 Run-timecodegenerationandauto-tuningforembeddedsystems . . . . . . . . 7 1.1.2 Micro-architecturalsimulationofARMcores . . . . . . . . . . . . . . . . . . . 7 1.2 Thesisorganization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 2Stateoftheart 9 2.1 SourcesofenergyconsumptioninICs . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2.1.1 Staticorleakagepower . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2.1.2 Dynamicpower . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 2.2 Energyreductiontechniquesintegratedintocompilers . . . . . . . . . . . . . . . . . . . 10 2.2.1 Energyreductioninsoftware . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 2.2.2 Compilertechniques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 2.3 TheARMarchitecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 2.4 Embeddedprocessorsimulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 2.4.1 Abstractionlevels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 2.4.2 Micro-architecturalperformancesimulation . . . . . . . . . . . . . . . . . . . . 16 2.4.3 Micro-architecturalenergysimulation . . . . . . . . . . . . . . . . . . . . . . . 18 2.5 Run-timecodeoptimizations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 2.5.1 Run-timecodespecialization . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 2.5.2 Dynamicbinaryoptimizations . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 2.5.3 Run-timerecompilation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 2.5.4 Onlineauto-tuning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 2.6 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 3Micro-architecturalsimulationofARMprocessors 29 3.1 gem5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 3.1.1 Thearm_detailedconfiguration . . . . . . . . . . . . . . . . . . . . . . . . 31 3.1.2 Modelingimprovements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 3.1.3 In-ordermodelbasedontheO3CPUmodel . . . . . . . . . . . . . . . . . . . . 35 3.2 McPAT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 3.2.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 3.2.2 Bettermodelingcoreheterogeneity . . . . . . . . . . . . . . . . . . . . . . . . 40 3.3 Parametersandstatisticsconversionfromgem5toMcPAT . . . . . . . . . . . . . . . . 40 viii CONTENTS 3.4 Performancevalidation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 3.4.1 Referencemodels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 3.4.2 Simulationmodels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 3.4.3 Benchmarks. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 3.4.4 AccuracyevaluationoftheCortex-Amodels . . . . . . . . . . . . . . . . . . . 47 3.4.5 In-ordermodelbehaviorandimprovementforaCortex-A8 . . . . . . . . . . . . 49 3.5 Areaandrelativeenergy/performancevalidation . . . . . . . . . . . . . . . . . . . . . . 51 3.5.1 Referencemodels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 3.5.2 Simulationmodels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 3.5.3 Benchmarks. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 3.5.4 Areavalidation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 3.5.5 Relativeenergy/performancevalidation . . . . . . . . . . . . . . . . . . . . . . 56 3.6 Exampleofarchitectural/micro-architecturalexploration . . . . . . . . . . . . . . . . . 57 3.7 Scopeandlimitations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 3.7.1 Scope . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 3.7.2 Limitations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 3.8 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 4Run-timecodegeneration 63 4.1 deGoal: atooltoembeddynamiccodegeneratorsintoapplications . . . . . . . . . . . . 63 4.1.1 Utilizationworkflow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 4.1.2 Example of kernel implementation: C with and without SIMD intrinsics and deGoalversions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 4.1.3 TheBeginandEndcommands . . . . . . . . . . . . . . . . . . . . . . . . . . 66 4.1.4 Registerallocation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 4.1.5 Codegenerationdecisions: deGoalmixedtoCcode . . . . . . . . . . . . . . . 68 4.1.6 Branchesandloops . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 4.2 Thesiscontribution: NewfeaturesandportingtoARMprocessors . . . . . . . . . . . . 69 4.2.1 Overviewofcontributions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 4.2.2 SISDandSIMDcodegeneration . . . . . . . . . . . . . . . . . . . . . . . . . . 71 4.2.3 Configurableinstructionscheduler . . . . . . . . . . . . . . . . . . . . . . . . . 72 4.2.4 Staticanddynamicconfiguration. . . . . . . . . . . . . . . . . . . . . . . . . . 73 4.2.5 Furtherimprovementsanddiscussion . . . . . . . . . . . . . . . . . . . . . . . 74 4.3 Performanceanalysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 4.3.1 Evaluationboards . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 4.3.2 BenchmarksanddeGoalkernels . . . . . . . . . . . . . . . . . . . . . . . . . . 75 4.3.3 Rawperformanceevaluation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 4.3.4 Transparentvectorization: SISDvsSIMDcodegeneration . . . . . . . . . . . . 80 4.3.5 Dynamiccodespecialization . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 4.3.6 Run-timeauto-tuningpossibilitieswithdeGoal . . . . . . . . . . . . . . . . . . 82 4.4 Scopeandlimitations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 4.4.1 Scope . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 4.4.2 Limitations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 4.5 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 CONTENTS ix 5Onlineauto-tuningforembeddedsystems 87 5.1 Motivationalexample . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 5.2 Methodology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 5.2.1 Auto-tuningwithdeGoal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 5.2.2 Regenerationdecisionandspaceexploration . . . . . . . . . . . . . . . . . . . 94 5.2.3 Kernelevaluationandreplacement . . . . . . . . . . . . . . . . . . . . . . . . . 95 5.3 Experimentalsetup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 5.3.1 Hardwareplatforms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 5.3.2 Simulationplatform . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 5.3.3 Benchmarks. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 5.3.4 Evaluationmethodology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 5.4 Experimentalresults . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 5.4.1 Realplatforms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 5.4.2 Simulatedcores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 5.4.3 Analysiswithvaryingworkload . . . . . . . . . . . . . . . . . . . . . . . . . . 105 5.4.4 Analysisofcorrelationbetweenauto-tuningparametersandpipelinedesigns . . 105 5.5 Scope,limitationsandfuturework . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108 5.5.1 Scope . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108 5.5.2 Limitations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108 5.5.3 Futurework . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 5.6 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 6Conclusionandprospects 111 6.1 Achievements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 6.1.1 Embeddedcoresimulationwithgem5andMcPAT . . . . . . . . . . . . . . . . 111 6.1.2 Run-timecodegenerationandauto-tuningforembeddedsystems . . . . . . . . 112 6.1.3 Summaryofachievements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 6.1.4 Amountofwork . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114 6.2 Prospects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114 II Appendix 117 Agem5toMcPATconversiontables 119 Listoffigures 126 Listoftables 128 Bibliography 131 Personalbibliography 143 Glossary 145 Résuméétendu 149
Description: