Rapport d'avancement de thèse - mars 2000

NOM / Prénom du  candidat au doctorat Haenni Jacques-Olivier
Directeur de thèse Prof. Eduardo Sanchez
Laboratoire LSL
TITRE Benefits of EPIC Architectures for Multimedia Applications

1. Objectifs principaux du travail

Les applications multimédia requièrent toujours plus de puissance de calcul pour des tâches telles que la compression/décompression en temps réel de son ou de vidéo. Certains processeurs actuels contiennent des instructions dites multimédia permettant d'augmenter les performances de ces applications. Citons par exemple les instructions MMX des Pentium de Intel, dont l'usage pour des algorithmes MPEG permet d'obtenir un speed-up très important.

Ces applications gèrent typiquement des valeurs tenant sur 8, 12 ou 16 bits, gaspillant ainsi les ressources des processeurs actuels, capables de calculer sur 32 ou 64 bits. Les instructions multimédia adressent ce problème en permettant de traiter plusieurs "petites" valeurs (i.e. tenant sur 8 ou 16 bits) dans les "grands" registres disponibles. On peut voir cela comme étant un traitement de vecteurs à typiquement 4 ou 8 composantes. Ce parallélisme de type vectoriel qui apparaît a fait que ces instructions sont également appelées "instructions SIMD".

Le principal problème de cette approche est que les compilateurs ne sont pas encore capables de bien gérer de telles instructions et du code assembleur doit donc être écrit à la main, a moins que l'on se restreigne à des bibliothèques de routines prédéfinies. Quoi qu'il en soit, la recherche de portions de code pouvant tirer parti de ces instructions doit toujours être faite par le programmeur.

L'architecture des processeurs EPIC (Explicitly Parallel Instruction Computing) représente une nouvelle génération de processeurs haute-performance à ILP (Instruction-Level Parallelism) développés par HP et Intel. Ils supportent les schémas d'exécution à spéculation et à prédication. La technologie EPIC offre au compilateur de nouvelles opportunités de trouver du parallélisme entre instructions. Avec ce genre de processeurs, le rôle du compilateur prend une importance grandissante.

Le but de ce projet est de trouver de nouvelles méthodes de compilation, ou d'améliorer les méthodes actuelles, afin d'obtenir de meilleures performances pour les applications multimédia. En effet, actuellement, il peut être plus efficace, en terme de performance, d'écrire certaines parties d'un programme directement en assembleur plutôt que de passer par un compilateur.

Dans le cadre de ma thèse, je vais améliorer la phase de compilation de sorte qu'elle tienne compte des instructions multimédia ou SIMD. J'utiliserai le processeur Itanium (nom de code Merced) de HP et Intel pour mes expériences, bien que les techniques qui seront développées pourront s'appliquer à tous les processeurs implémentant des instructions SIMD.

2. Résultats obtenus durant l'année 1999

Dans un premier temps, j'ai consulté de très nombreux articles touchant à mon sujet de thèse, et incluant les domaines suivants : Dans un deuxième temps, je me suis consacré à la prise en main du compilateur Impact qui est l'outil que je vais utiliser durant toute ma thèse. Ceci a été fait dans une collaboration très étroite avec Jean-Michel Puiatti, qui a adapté ce compilateur pour le processeur VLIW basse consommation qu'il a développé durant sa thèse. Cet apprentissage d'Impact a également été renforcé par la visite au LSL de Dan Connors (Department of Electrical and Computer Engineering de la University of Illinois à Urbana-Champaign) de l'Impact Compiler Group.

Dans un troisième temps, j'ai choisi de coder à la main un algorithme "multimédia" en assembleur Itanium afin de bien sentir les problèmes que j'aurai à aborder lors de la compilation pour les instructions multimédia. L'algorithme choisi est IDEA, un algorithme de cryptage. Le code développé a pu être testé sur le simulateur fonctionnel d'Itanium que j'ai eu l'occasion d'utiliser dans les locaux de HP Europe à Meyrin (cette partie se terminera lors du premier trimestre 2000).

Tout cela m'a permis de faire le point sur les problèmes que j'aurai à résoudre (recherche de parallélisme, taille des données, problèmes d'accès à la mémoire,...). Tous ces problèmes ont été confirmés par une discussion très intéressante avec le Prof. Wen-mei Hwu (Department of Electrical and Computer Engineering de la University of Illinois à Urbana-Champaign) lors de sa visite à Lausanne. Il s'est montré très intéressé par mon travail.

3. Planification de la suite des travaux

La suite de mes travaux en 2000 portera sur les points suivants : Ces deux points seront la base pour l'étape suivante qui sera la proposition et le test de nouvelles optimisations de compilateurs pour l'architecture EPIC.

4. Nouvelles publications

5. Divers

Je remercie Hewlett-Packard Europe, pour leur soutien actif dans ce projet, qui est une collaboration entre HP et l'EPFL.
 
 Date: 22 février 2000 Signature du candidat:

Signature du directeur de thèse: