Hardware acceleration of sequential loops - Inria - Institut national de recherche en sciences et technologies du numérique Accéder directement au contenu
Rapport (Rapport De Recherche) Année : 2011

Hardware acceleration of sequential loops

Pierre Michaud
  • Fonction : Auteur
  • PersonId : 738135
  • IdHAL : pmichaud

Résumé

The current trend in general-purpose microprocessors is to take advantage of Moore's law to increase the number of cores on the same chip. In a few technology generations, this will lead to chips with hundreds of superscalar cores. Obtaining high performance on these so-called many-cores will require to parallelize the applications. Nevertheless, it is unlikely that all the applications will take full advantage of the high number of cores. Hence it is important, along with increasing the number of cores, to increase sequential performance and dedicate a relatively large silicon area and power budget for that purpose. In this study, we consider the possibility to increase sequential performance with a loop accelerator. The loop accelerator sits beside a conventional superscalar core and is specialized for executing dynamic loops, i.e., periodic sequences of dynamic instructions. Loops are detected and accelerated automatically, without help from the programmer or the compiler. The execution is migrated from the superscalar core to the loop accelerator when a dynamic loop is detected, and back to the superscalar core when a loop exit condition is encountered. We describe the proposed loop accelerator and we study its performance on the SPEC CPU2006 applications. We show that significant performance gains may be achieved on some applications.
La tendance actuelle des microprocesseurs généralistes est d'exploiter la loi de Moore en augmentant le nombre de coeurs sur une même puce. Dans quelques générations technologiques, cette tendance produira des puces avec des centaines de coeurs superscalaires. Il sera nécessaire de paralléliser les applications afin d'obtenir de hautes performances sur ces futurs multi-coeurs. Cependant, il ne sera probablement pas possible pour toutes les applications d'exploiter tous les coeurs. Il est donc important de continuer d'augmenter la performance séquentielle en même temps que la performance parallèle, en réservant à l'accélération séquentielle une partie relativement importante de la surface de silicium et du budget en puissance électrique de la puce. Dans cette étude, nous considérons la possibilité d'augmenter la performance séquentielle grâce à un accélérateur de boucle. L'accélérateur de boucle est associé à un coeur superscalaire classique et est spécialisé pour l'exécution des boucles dynamiques, c'est-à-dire des séquences périodiques d'instructions dynamiques. Les boucles sont détectées et accélérées automatiquement, sans aide du programmeur ou du compilateur. L'exécution migre du coeur superscalaire vers l'accélérateur de boucle quand une boucle dynamique est détectée, et vice versa lorsqu'on rencontre une condition de sortie de boucle. Nous décrivons l'accélérateur de boucle proposé et nous étudions sa performance sur les applications SPEC CPU2006. Nous montrons que des gains de performance relativement importants peuvent être obtenus pour certaines applications.
Fichier principal
Vignette du fichier
RR-7802.pdf (339.72 Ko) Télécharger le fichier
Origine : Fichiers produits par l'(les) auteur(s)

Dates et versions

hal-00641350 , version 1 (15-11-2011)

Identifiants

  • HAL Id : hal-00641350 , version 1

Citer

Pierre Michaud. Hardware acceleration of sequential loops. [Research Report] RR-7802, INRIA. 2011. ⟨hal-00641350⟩
268 Consultations
121 Téléchargements

Partager

Gmail Facebook X LinkedIn More