thesis

Contribution à la compilation dynamique pour des jeux d'instructions multimédia

Defense date:

Jan. 1, 2005

Edit

Disciplines:

Directors:

Abstract EN:

La compilation est un domaine en constant mouvement dont les acteurs cherchent à prendre en compte l'évolution permanente des architectures. Toutefois, il devient de plus en plus difficile d'exploiter les nouvelles ressources issues de cette évolution car la complexité des processeurs augmente et les temps de mise sur le marché de nouvelles gammes par les constructeurs se réduisent. Les compilateurs actuels ne sont pas encore en mesure d'exploiter facilement et efficacement toutes les possibilités offertes. En effet, la majeure partie des langages de programmation n'a toujours pas intégré les fonctionnalités des nouveaux jeux d'instructions, qui sont pourtant en mesure d'accélérer significativement les applications graphiques ou les calculs scientifiques. Ces lacunes des compilateurs ôtent aux développeurs du secteur des possibilités d'optimisation des applications à moindre coût. Au cours de ce travail de thèse, nous nous sommes intéressés à la problématique de l'optimisation des applications multimédia sur des architectures hétérogènes du point de vue de la compilation, afin de définir le cadre général des optimisations à apporter. De là, nous avons orienté notre recherche vers la définition et l'implémentation d'un générateur de code dynamique minimaliste, la compilette. Une fois la validation de l'apport de nos compilettes effectuée et nos expérimentations réalisées, nous avons pu approfondir cette recherche par l'étude et l'implémentation d'un cache logiciel adapté à la génération de code dynamique. A l'avenir, nous envisageons de poursuivre son étude, et de travailer à l'étendre sur toutes les architectures concernée, ainsi qu'à automatiser sa mise en place

Abstract FR:

Compilation is a constantly evolving field, the participants of which are trying to take into account the improvement in CPU architectures. However, exploiting those new possibilities prove to be more and more difficult, as the complexity of CPU constantly increases, while the delay before each release of a new product range decreases. Present compilers are not yet able to take easily and efficiently advantage of the new possibilities offered. Indeed, most developpement languages have not yet implemented the fonctionnalities of the new instructions sets, which have proven to be able to significantly accelerate graphic applications or scientific computations. Those gaps in compiler technology prevent the programmers from easily optimizing their applications at minimal cost. During this thesis work, we studied optimization of multimedia applications on heterogeneous architectures from the point of view of compilation, in order to define a global framework for improvements. >From there, we geared our research towards the definition and implementation of a minimalist code generator : the compilet. Once the contribution of our compilets validated, and our experiments completed, we brought our research further by stufying and implementing a software cache adapted to dynamic code generation. In the future, we propose to pursue in this study, while expanding it to all relevant architectures and automating its use