SIMD Code Generation in Data-Parallel Programming
Autoren
Mehr zum Buch
CGiS is a data-parallel programming language providing a unified abstraction for two parallel processing units in today's desktop PCs: graphics processing units (GPUs) and the vector processing units of CPUs. The CGiS compiler framework fully virtualizes the differences in capability and accessibility by mapping an abstract data-parallel programming model on those targets. The underlying work focuses on applying this model to CPUs with SIMD instruction sets. We have identified, adapted and implemented a set of program analyses to expose and access the available parallelism. The code generation phase is based on selected optimization algorithms tailored to SIMD code generation. Three backends have been implemented to assess the effectiveness of our approach: Intel's SSE, Freescale's AltiVec and - as an example for multicore architectures - IBM's Cell BE. Our experimental results show excellent average performance gains and underline the viability of this approach.