Data Locality on Manycore Architectures
Optimisation de la Localité des Données sur Architectures Manycœurs
Résumé
The growing number of cores on modern-day processors and the evolution of their overall architecture continues to bring new challenges to code optimizations for these platforms. Running code on such architectures requires data transfers between the multiple memories located throughout the chip that are expensive in both time and energy. In order to limit the impact of these transfers on the performances of applications we present a new approach that combines both a model for memory-usage and a code transformation. This transformation consists of the rescheduling of code at various levels with the goal of regrouping the different accesses to the same data element in a small window of time. The implementation of this new method is illustrated with multiple use-cases for which the effects on data transfers are evaluated.
La multiplication du nombre de cœurs sur les processeurs modernes et l'évolution de leur architecture d'ensemble continue de soulever de nouvelles problématiques pour l'optimisation des codes destinés à ces plateformes. L’exécution sur de telles architectures nécessite des transferts de données coûteux en temps et en énergie entre les différentes mémoires reparties sur l'ensemble du processeur. Afin de limiter l'impact de ces transferts de données sur les performances d'une application nous présentons une nouvelle approche associant à la fois une modélisation de l'utilisation de la mémoire et une transformation de code. Cette transformation repose sur un ré-ordonnancement du code à différentes échelles pour regrouper les accès à une même donnée dans le temps. L'implémentation de cette nouvelle approche est illustré par plusieurs cas d'utilisation pour lesquels l'effet sur les transferts de mémoire en mémoire est évalué.
Loading...