Transforming TLP Into DLP with the Dynamic Inter-Thread Vectorization Architecture Sajith Kalathingal
Total Page:16
File Type:pdf, Size:1020Kb
Transforming TLP into DLP with the dynamic inter-thread vectorization architecture Sajith Kalathingal To cite this version: Sajith Kalathingal. Transforming TLP into DLP with the dynamic inter-thread vectorization archi- tecture. Hardware Architecture [cs.AR]. Université Rennes 1, 2016. English. NNT : 2016REN1S133. tel-01426915v3 HAL Id: tel-01426915 https://tel.archives-ouvertes.fr/tel-01426915v3 Submitted on 28 Aug 2017 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. ANNEE´ 2016 THESE` / UNIVERSITE´ DE RENNES 1 sous le sceau de l’Universit´eBretagne Loire pour le grade de DOCTEUR DE L’UNIVERSITE´ DE RENNES 1 Mention : Informatique Ecole´ doctorale Matisse pr´esent´eepar Sajith Kalathingal pr´epar´ee`al’unit´ede recherche INRIA Institut National de Recherche en Informatique et Automatique Universit´ede Rennes 1 Th`esesoutenue `aRennes Transforming TLP into le 13 D´ecembre 2016 DLP with the Dynamic devant le jury compos´ede : Bernard GOOSSENS Inter-Thread Vector- Professeur `al’Universit´ede Perpignan Via Domitia / Rapporteur Smail NIAR ization Architecture Professeur `al’Universit´ede Valenciennes / Rapporteur Laure GONNORD Maˆitre de conf´erences `a l’Universit´e Lyon 1 / Examinatrice C´edricTEDESCHI Maˆitre de conf´erences `a l’Universit´e Rennes 1 / Examinateur Andr´eSEZNEC Directeur de recherches Inria / Directeur de th´ese Sylvain COLLANGE Charg´ede recherche INRIA / Co-directeur de th´ese Acknowledgement I would like to express my sincere gratitude to my thesis advisors, Andr´eSEZNEC and Sylvain COLLANGE. I would like to thank you for encouraging me and providing guidance during the course of work. Your advice on research have been priceless. I would like to thank the jury members Bernard GOOSSENS, Smail NIAR, Laure GONNORD and C´edricTEDESCHI for providing the opportunity to de- fend the thesis. I would like to thank my parents for supporting me throughout my life. Thank you for all of the sacrifices that you have made for me. Without your support I would not have reached so far. I would like to thank the members of ALF team for their help and support and also for making my stay at Rennes really enjoyable. I would like to thank my wonderful wife Amrutha Muralidharan for the moral support she has given me from thousands of kilometers away, in India. Thank you motivating me and for having the patience. Contents Table of Contents 1 R´esum´een Fran¸cais 5 Introduction 9 1 Background 15 1.1 Instruction-level parallelism . 18 1.1.1 Instruction pipelining . 20 1.1.2 Superscalar execution . 21 1.1.3 Out-of-order execution . 22 1.1.4 Clustering for ILP . 23 1.2 Data-level parallelism . 23 1.2.1 Single Instruction Multiple Data . 24 1.2.2 Single Instruction Multiple Threads (SIMT) . 27 1.3 Thread-level parallelism . 30 1.3.1 Coarse-grained multi-threading . 31 1.3.2 Fine grained multi-threading . 31 1.3.3 Simultaneous multi-threading (SMT) . 32 1.3.4 Clustered multi-threading (CMT) . 33 1 2 Contents 1.4 TLP vs DLP . 35 1.5 Chip multiprocessor . 36 1.6 Conclusion . 36 2 Exploiting inter-thread similarity in microprocessors 39 2.1 Inter-thread similarities in SPMD applications . 39 2.1.1 Source of inter-thread similarities . 40 2.1.2 Vectorization efficiency in an SMT . 42 2.1.3 Dynamic Vectorization . 43 2.2 Thread reconvergence for SPMD applications . 44 2.2.1 Stack-based explicit reconvergence . 45 2.2.2 SIMT extensions for stack-based implicit reconvergence . 45 2.2.3 Stack-less explicit reconvergence . 46 2.2.4 Stack-less implicit reconvergence . 47 2.3 Vectorization of instructions across threads . 49 2.4 General purpose architectures exploiting inter-thread redundancy 50 2.5 GPU architectures to exploit inter-thread redundancies . 51 2.6 Conclusion . 52 3 Dynamic Inter-Thread Vectorization Architecture 55 3.1 Warps in DITVA . 56 3.2 Overview of the Dynamic Inter-Thread Vectorization Architecture 58 3.3 Pipeline architecture . 60 3.3.1 Front-end . 60 3.3.2 In-order issue enforcement and dependency check . 63 3.3.3 Execution: register file and functional units . 66 3.3.4 Leveraging explicit SIMD instructions . 68 3.3.5 Handling misprediction, exception or divergence . 69 Contents 3 3.4 Data memory accesses . 70 3.5 Maintaining lockstep execution . 71 3.6 Clustered Multi-threading in DITVA . 72 3.7 Conclusion . 73 4 Evaluation 77 4.1 Experimental Framework . 77 4.1.1 DITVA-SIM . 77 4.1.2 Evaluations using DITVA-SIM . 79 4.2 Performance evaluation . 81 4.2.1 Throughput . 81 4.2.2 Divergence and mispredictions . 82 4.2.3 Impact of split data TLB . 83 4.2.4 L1 cache bank conflict reduction . 83 4.2.5 Impact of memory bandwidth on memory intensive appli- cations . 84 4.2.6 Impact of Warp size . 86 4.2.7 Impact of banked DV-SIMD register banking . 86 4.3 Hardware Overhead, Power and Energy . 87 4.3.1 Qualitative evaluation . 87 4.3.2 Quantitative evaluation . 89 4.4 Conclusion . 90 5 Future work 93 5.1 Out-of-order execution . 93 5.1.1 Register renaming . 94 5.1.2 Reservation station / Issue queue . 95 5.1.3 Reorder buffer . 95 4 Contents 5.1.4 Branch misprediction . 95 5.2 Out-of-order extension for DITVA architecture . 96 5.2.1 Register management . 97 5.2.1.1 Register allocation . 98 5.2.1.2 Register deallocation . 99 5.2.1.3 Handling divergence and reconvergence . 99 5.2.2 Handling branch misprediction . 100 5.3 Conclusion . 100 Bibliography 119 List of figures 121 R´esum´een Fran¸cais Dans cette th`ese,nous proposons l’architecture Dynamic Inter-Thread Vector- ization (DITVA), une technique pour am´eliorerles performances des applica- tions multi-thread SPMD dans un microprocesseur g´en´eraliste. Les threads d’applications SPMD ex´ecutent souvent les mˆemesinstructions sur des donn´ees diff´erentes. Pour tirer parti de la redondance de contrˆoledans les applications SPMD, DITVA assemble dynamiquement des instructions identiques de plusieurs threads en cours d’ex´ecutionen une seule instruction vectorielle au moment de l’ex´ecution.La vectorisation r´eduitle nombre d’op´erationsdans le pipeline, car l’instruction vectoris´eefactorise le contrˆoleentre les threads en travaillant sur des donn´eesdiff´erentes. DITVA ´etendun processeur SMT disposant d’instructions SIMD avec un mode d’ex´ecutionde vectorisation inter-threads. Dans ce mode, DITVA exploite les unit´esvectorielles existantes, am´eliorant ainsi l’utilisation des capacit´es vectorielles des microprocesseurs existants. DITVA maintient la compatibilit´ebinaire avec les architectures CPU existantes. Grˆace`al’utilisation des unit´esvectorielles et `ala r´eductiondes op´erationsde pipeline, DITVA vise `aam´eliorerle d´ebitd’ex´ecutiond’une puce microprocesseur x86_64 tout en r´eduisant sa consommation globale d’´energie. Limitations au niveau transistor d’un microprocesseur La technologie des microprocesseurs a beaucoup ´evolu´edepuis l’introduction du premier micro- processeur Intel 4004 en 1971 par Intel. L’Intel 4004 ´etaitr´ealis´eavec une finesse de gravure de 10 µm avec seulement 2300 transistors. Le processeur Intel Skylake, mis sur le march´een 2015, emploie un process de 14nm avec pr`esde 1,9 milliards de transistors. Gordon E. Moore a observ´eque le nombre de transistors dans un circuit int´egr´edouble chaque ann´ee.[M+98] Robert H. Dennard a observ´equ’avec la r´eductionde taille des transistors, 5 6 R´esum´een Fran¸cais la puissance totale requise reste constante [DRBL74]. La loi de Moore associ´ee au passage `al’´echelle de Dennard se traduit par une croissance exponentielle de la performance par watt. La loi de Dennard a pris fin avec l’augmentation de la finesse de gravure. Les courants de fuite et la dissipation de chaleur ont com- menc´e`adevenir un r´eelprobl`emepour le passage `al’´echelle de la performance au travers le l’augmentation des fr´equencesd’horloge. Par cons´equent, les fr´equences d’horloge ont commenc´e`ase stabiliser apr`esle milieu des ann´ees2000, malgr´e l’adoption de diff´erentes technologies de transistors. Techniques micro-architecturales pour am´eliorerla performance Alors que l’augmentation des fr´equencesd’horloge est une fa¸cond’am´eliorerles per- formances des microprocesseurs, la micro-architecture elle-mˆemejoue un rˆole important dans l’optimisation des microprocesseurs pour le d´ebit, la latence et l’efficacit´e´energ´etique. Suivant ces exigences, les fabricants de processeurs doivent souvent assurer des compromis lors de la conception d’un processeur `a usage g´en´eraliste.Par exemple, un processeur mobile, qui utilise des petits cœurs est optimis´epour l’´energieaux d´epens du d´ebit,tandis qu’un GPU est optimis´e pour le d´ebitau d´etriment de la latence. Avec l’´evolutivit´elimit´eedes fr´equencesd’horloge, le multiprocesseur sur puce (CMP), c’est-`a-direun multi-cœur [ONH+96], a ´et´elargement adopt´eau cours des dix derni`eresann´ees. Au lieu d’un grand cœur monolithique, un CMP se compose de plusieurs cœurs dans une seule puce qui partagent certaines des ressources mat´eriellestelles que des caches. Une application mono-thread est ex´ecut´eedans un cœur unique du CMP tandis qu’une application parall`elepeut utiliser plusieurs cœurs grˆace `aun faible coˆutde communication entre les pro- cesseurs.