Building Source-to-Source Compilers for Heterogeneous Targets
Computer Science dept., Telecom Bretagne
Telecom ParisTech., 2011
@phdthesis{guelton2011building,
title={Building Source-to-Source Compilers for Heterogeneous Targets},
author={Guelton, Serge},
year={2011}
}
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 compiler 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.
January 4, 2012 by hgpu