Improving tiling, reducing compilation time, and extending the scope of polyhedral compilation Mohamed Riyadh Baghdadi
To cite this version:
Mohamed Riyadh Baghdadi. Improving tiling, reducing compilation time, and extending the scope of polyhedral compilation. Programming Languages [cs.PL]. Université Pierre et Marie Curie - Paris VI, 2015. English. NNT : 2015PA066368. tel-01270558
HAL Id: tel-01270558 https://tel.archives-ouvertes.fr/tel-01270558 Submitted on 8 Feb 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. THESE DE DOCTORAT DE L’UNIVERSITE PIERRE ET MARIE CURIE
École Doctorale Informatique, Télécommunications et Électronique de paris
Improving Tiling, Reducing Compilation Time, and Extending the Scope of Polyhedral Compilation
Présentée par Riyadh BAGHDADI Codirigée par Albert COHEN et Sven VERDOOLAEGE
soutenue le 25/09/2015 devant le jury composé de :
Rapporteurs M. Cédric Bastoul Professor, University of Strasbourg M. Paul H J Kelly Professor, Imperial College London
Examinateurs M. Stef Graillat Professor, University Pierre et Marie Curie (Paris 6) M. Cédric Bastoul Professor, University of Strasbourg M. Paul H J Kelly Professor, Imperial College London M. J. Ramanujam Professor, Louisiana State University M. Albert Cohen Senior Research Scientist, INRIA, France M. Sven Verdoolaege Associate Researcher, Polly Labs and KU Leuven
Contents
List of Figures vii
List of Tables ix
Nomenclature xi
1 Introduction and Background 1 1.1 Introduction...... 1 1.2 BackgroundandNotations ...... 5 1.2.1 MapsandSets ...... 5 1.2.2 AdditionalDefinitions ...... 7 1.2.3 PolyhedralRepresentationofPrograms ...... 8 1.2.4 DataLocality...... 13 1.2.5 LoopTransformations ...... 14 1.3 Outline ...... 15
2 Tiling Code With Memory-Based Dependences 19 2.1 Introductionandrelatedwork...... 19 2.2 SourcesofFalseDependences ...... 21 2.3 MotivatingExample ...... 23 2.4 LiveRangeNon-Interference ...... 24 2.4.1 Liveranges ...... 24 2.4.2 Constructionofliveranges ...... 25 2.4.3 Liverangenon-interference ...... 26 2.4.4 Live range non-interference and tiling: a relaxed permutability criterion 27 2.4.5 Illustrativeexamples ...... 29 2.4.6 Parallelism ...... 31 2.5 Effectof3AContheTilabilityofaLoop...... 32 2.6 ExperimentalEvaluation ...... 34 iv Contents
2.7 ExperimentalResults ...... 36 2.7.1 Evaluating the Effect of Ignoring False Dependences on Tiling . . . . 38 2.7.2 Performance evaluation for Polybench-3AC ...... 43 2.7.3 Reasonsforslowdowns...... 45 2.7.4 Performance evaluation for Polybench-PRE ...... 45 2.8 ConclusionandFutureWork ...... 46
3 Scheduling Large Programs 49 3.1 Introduction...... 49 3.2 Definitions...... 51 3.3 ExampleofStatementClustering...... 51 3.4 ClusteringAlgorithm ...... 53 3.5 Using Offline Clustering with the Pluto Affine Scheduling Algorithm. . . . . 54 3.5.1 Correctness of Loop Transformations after Clustering ...... 56 3.6 ClusteringHeuristics ...... 56 3.6.1 ClusteringDecisionValidity ...... 56 3.6.2 SCCClustering...... 57 3.6.3 Basic-blockClustering ...... 59 3.7 Experiments...... 60 3.8 RelatedWork ...... 65 3.9 ConclusionandFutureWork ...... 67
4 The PENCIL Language 69 4.1 Introduction...... 69 NCIL4.2 PE Language...... 70 4.2.1 Overviewof PENCIL ...... 70 4.2.2 PENCIL DefinitionasaSubsetofC99 ...... 73 4.2.3 PENCIL ExtensionstoC99...... 77
4.3 DetailedDescription ...... 77