Normal view MARC view ISBD view

Building source-to-source compilers for heterogeneous targets [ [Texte imprimé]] / Serge Guelton ; sous la direction de: François Irigoin

Auteur principal : Guelton, Serge, 1982-....Auteur secondaire : : Irigoin, François, 19..-, Directeur de thèseAuteur secondaire collectivité : Ecole nationale supérieure des télécommunications de Bretagne, Brest, Organisme de soutenance;Université de Bretagne occidentale, Organisme de soutenance;Université européenne de Bretagne, Organisme de soutenance;École doctorale Santé, information, communication, matière et mathématiques, Brest, Organisme de soutenancePublication :[S.l.] : [s.n.], 2011Description : 1 vol. (199 p.) : ill. ; 30 cmRésumé : Les machines hétérogènes — des ordinateurs reposant sur la combinaison d’unités de calculs spécialisées pour obtenir des performances élevées et une consommation énergétique moindre — sont difficiles à programmer. Les vendeurs de matériels fournissent généralement un compilateur d’un dialecte du C pour leur machines, mais il faut dans ce cas réécrire complètement l’application cible pour en profiter. Dans cette thèse, nous proposons une nouvelle approche pour faire le pont entre des applications classiques écrites en C et ces dialectes. Partant d’une analyse des contraintes imposées par le matériel, nous proposons un ensemble de transformations de code original qui permet de répondre à ces contraintes et nous les combinons à l’aide d’un gestionnaire de passe complètement programmable qui peut gérer les flots de compilation complexes mis en œuvre lors de la génération de code multi-cible. Cela permet d’obtenir un ensemble de compilateurs réutilisant les mêmes éléments de base tout en ciblant des architectures différentes. Toutes les transformations s’appliquent au niveau source en se basant sur l’infrastructure de compilation PIPS. Les nouvelles transformations proposées sont explicitées en se basant sur la sémantique dénotationnelle et un langage cible simplifié. Elles sont utilisées pour assembler quatre compilateurs différents : un générateur de directives OpenMP, un générateur reciblable d’instructions multimédia pour SSA, AVX et Neon, un générateur de code assembleur pour une machine à base de FPGA spécialisée dans le traitement d’images et un générateur de code CUDA.; Heterogeneous computers—platforms that make use of multiple specialized devices to achieve high throughput or low energy consumption—are difficult to program. Hardware vendors usually provide compilers from a C dialect to their machines, but complete application rewriting is frequently required to take advantage of them. In this thesis, we propose a new approach to building bridges between regular applications written in C and these dialects. From an analysis of the hardware constraints, we propose original code transformations that can meet those constraints, and we combine them using a completely programmable pass manager that can handle the complex compilation flows required by the code generation process for multiple targets. It makes it possible to build a collection of compilers based on the same infrastructure while targeting different architectures. All the code transformations are done at the source level using the PIPS source-to- source compiler framework. New transformations are detailed using denotational semantics on a simplified language and have been combined to build four different compilers: an OpenMP directive generator, a retargetable multimedia instruction generator for SSE, AVX and Neon, an assembly code generator for an FPGA-based image processor and a CUDA generator..Bibliographie: Bibliogr. (p. 183-196) ; Personal bibliogr. (p. 197-198) ; Index (p. 199).Thèse : .Sujet - Nom d'actualité : Compilation (informatique) -- Thèses et écrits académiques Sujet : Logiciel ;Compilation ;Transformation de programme
Current location Call number Status Date due Barcode
Centre de recherche en informatique
11 GUE Sur demande CRI06279D
Centre de recherche en informatique
11 GUE Sur demande CRI06257D

Bibliogr. (p. 183-196) ; Personal bibliogr. (p. 197-198) ; Index (p. 199)

Thèse de doctorat Sciences et technologies de l'information et de la communication Télécom Bretagne 2011

Les machines hétérogènes — des ordinateurs reposant sur la combinaison d’unités de calculs spécialisées pour obtenir des performances élevées et une consommation énergétique moindre — sont difficiles à programmer. Les vendeurs de matériels fournissent généralement un compilateur d’un dialecte du C pour leur machines, mais il faut dans ce cas réécrire complètement l’application cible pour en profiter. Dans cette thèse, nous proposons une nouvelle approche pour faire le pont entre des applications classiques écrites en C et ces dialectes. Partant d’une analyse des contraintes imposées par le matériel, nous proposons un ensemble de transformations de code original qui permet de répondre à ces contraintes et nous les combinons à l’aide d’un gestionnaire de passe complètement programmable qui peut gérer les flots de compilation complexes mis en œuvre lors de la génération de code multi-cible. Cela permet d’obtenir un ensemble de compilateurs réutilisant les mêmes éléments de base tout en ciblant des architectures différentes. Toutes les transformations s’appliquent au niveau source en se basant sur l’infrastructure de compilation PIPS. Les nouvelles transformations proposées sont explicitées en se basant sur la sémantique dénotationnelle et un langage cible simplifié. Elles sont utilisées pour assembler quatre compilateurs différents : un générateur de directives OpenMP, un générateur reciblable d’instructions multimédia pour SSA, AVX et Neon, un générateur de code assembleur pour une machine à base de FPGA spécialisée dans le traitement d’images et un générateur de code CUDA.

Heterogeneous computers—platforms that make use of multiple specialized devices to achieve high throughput or low energy consumption—are difficult to program. Hardware vendors usually provide compilers from a C dialect to their machines, but complete application rewriting is frequently required to take advantage of them. In this thesis, we propose a new approach to building bridges between regular applications written in C and these dialects. From an analysis of the hardware constraints, we propose original code transformations that can meet those constraints, and we combine them using a completely programmable pass manager that can handle the complex compilation flows required by the code generation process for multiple targets. It makes it possible to build a collection of compilers based on the same infrastructure while targeting different architectures. All the code transformations are done at the source level using the PIPS source-to- source compiler framework. New transformations are detailed using denotational semantics on a simplified language and have been combined to build four different compilers: an OpenMP directive generator, a retargetable multimedia instruction generator for SSE, AVX and Neon, an assembly code generator for an FPGA-based image processor and a CUDA generator.

Powered by Koha