Génération de code binaire pour application multimedia : une approche au vol

Génération de code binaire pour application multimedia : une approche au vol

Par Henri-Pierre Charles
Date : vendredi 2 octobre 2009 18h00
Durée : 20 minutes
Langue : Français
Tags : au binaire code generation vol

Vous pouvez trouver plus d'information sur le site du présentateur :


Les compilateurs sont généralement construits par une approche par
"raffinement successif" : la grammaire du langage est définie, puis
des analyseurs lexical et syntaxiques transforment le langage dans une
forme intermédiaire qui permet enfin de produire le code binaire
final. Des optimisations sont effectuées sur cette chaîne de
compilation pour essayer de transformer les constructions de haut
niveau (structures de données, fonctions, boucles) vers le langage
machine grâce à des raffinements successifs. Dans ce modèle, la
contrainte a satisfaire est le modèle d'architecture du processeur.


Malheureusement la complexité croissante des architectures (plusieurs
jeux d'instructions, jeux d'instructions spécialisés) et le changement
de modèle de programmation (multi-coeurs, multi-threads, GPU, ...)
conduisent vers une complexité sans cesse croissante.

Dans cette présentation, je montrerai qu'en utilisant une approche
très tardive de la production de code, il est possible de prendre en
compte des paramètres qui ne sont, en général, pas utilisés :
alignement mémoire, valeur des données, parallélisme d'instruction,
instructions multimédia, etc.

Grâce à cette approche, il est possible d'atteindre des performances
quasi optimales sur des processeurs comme l'Itanium, le Cell ou le
power4 SP2 (utilisé dans la machine BlueGene) pour des applications
multimédia.

Cette approche est basée sur une description détaillée de
l'architecture : la représentation binaire des instructions qui permet
de créer des générateurs de code spécifiques grace à notre outil HPBCG (High Performance Binary Code Generation [[http://hpbcg.org/]] )


Présentation suivie par: Pierre Bourdon, Nils Grunwald, Jérôme Fenal, Patrick Augé (‎harlie‎), Henri-Pierre Charles, Frédéric Marand (‎OSInet‎), Viktor Horvath, Stéphane Payrard (‎cognominal‎),