Algorithmique du décalage d'instructions - TEL - Thèses en ligne Accéder directement au contenu
Thèse Année : 2001

Instructions shifting algorithmics

Algorithmique du décalage d'instructions

Résumé

The constant evolution of processors architectures, with superscalar, instruction-level parallelism, prediction and speculation capabilities and the multiple number of levels in the memory hierarchy give an increasing importance to the work of the compiler.
In this thesis we deal with source program transformations, intended to optimization within the compilation process, and especially with a transformation known as loop shifting.
This transformation is used as a basis for software pipelining, it has an incidence on the instruction level parallelism and registers usage.
It is also involved as a component of loop parallelization techniques based on affine schedules.
In this thesis we have tried to reach a better understanding of the possibilities that loop shifting has to offer, to know which goals it is able to score, and which problems remain hard.
To this intent, we have studied loop shifting within a variety of contexts, more or less close to each other, and we provide a contribution for each of them.

In the context of software pipelining, we give a polynomial algorithm to find the loop shifting leading to as much instruction-level parallelism as possible, and we perform an experimental study of its absolute efficiency, with the help of PASTAGA (french translation of ``Platform for statistical analysis and algorithms testing on random graphs''), a tool we developed for this purpose.
In the contexts of register usage (stage scheduling), loop parallelization and locality, we give answers in each case to loop shifting problems: complexity, exact solutions and heuristics.
L'évolution constante des processeurs vers des architectures proposant des capacités superscalaires, de parallélisme au niveau des instructions, de prédiction, de spéculation et la multiplication des niveaux de hiérarchie mémoire donnent de plus en plus d'importance au travail du compilateur.
Dans cette thèse, nous nous intéressons aux transformations du programme source destinées à l'optimisation dans la chaîne de compilation, et plus particulièrement à une transformation appelée décalage d'instructions.
Cette transformation sert de base au pipeline logiciel, elle a une influence sur le parallélisme au niveau des instructions et l'utilisation des registres.
Elle intervient également comme composante des techniques de parallélisation de boucles par ordonnancement affine.
Nous avons voulu mieux comprendre les perspectives offertes par le décalage d'instructions, savoir quels objectifs il permettait d'atteindre mais aussi savoir quels problèmes de décalage restaient difficiles.
Pour cela nous avons étudié le décalage d'instructions dans plusieurs contextes plus ou moins proches, et apporté des contributions à chacun d'entre eux.

Dans le cadre du pipeline logiciel, nous proposons un algorithme polynomial pour déterminer le décalage le plus à même de produire un maximum de parallélisme au niveau des instructions, et une étude expérimentale de l'efficacité absolue de la technique à l'aide de l'outil logiciel que nous avons réalisé dans ce but : PASTAGA (pour Plate-forme d'Analyse Statistique et de Tests d'Algorithmes sur Graphes Aléatoires).
Dans le cadre de l'utilisation des registres (stage scheduling), de la parallélisation de boucle et de la localité, nous apportons des réponses aux problèmes de décalage d'instructions associés~: complexité, solutions exactes, approximations.
Fichier principal
Vignette du fichier
PhD2001-06.pdf (4.04 Mo) Télécharger le fichier

Dates et versions

tel-00084753 , version 1 (10-07-2006)

Identifiants

  • HAL Id : tel-00084753 , version 1

Citer

Guillaume Huard. Algorithmique du décalage d'instructions. Autre [cs.OH]. Ecole normale supérieure de lyon - ENS LYON, 2001. Français. ⟨NNT : ⟩. ⟨tel-00084753⟩
425 Consultations
1069 Téléchargements

Partager

Gmail Facebook X LinkedIn More