Exploiting SIMD Parallelism with the CGiS Compiler Framework


Today's desktop PCs feature a variety of parallel processing units. Developing applications that exploit this parallelism is a demanding task, and a programmer has to obtain detailed knowledge about the hardware for efficient implementation. CGiS is a data-parallel programming language providing a unified abstraction for two instances of this parallelism: 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 applicability of CGiS for GPUs has been shown in previous work, this work presents the extension of the framework for SIMD instruction sets of CPUs. We show how to overcome the obstacles in mapping the abstract programming model of CGiS to the SIMD hardware. Our experimental results underline the viability of this approach: Real-world applications can be implemented easily with CGiS and result in efficient code.

paper (PDF)

BibTeX information

 author={Nicolas Fritz and Philipp Lucas and Reinhard Wilhelm},
 title={Exploiting {SIMD} Parallelism with the {CGiS} Compiler Framework},
 booktitle={Proceedings of the 20th International Workshop on
  Languages and Compilers for Parallel Computing (LCPC'07)},
 editor={Vikram Adve and Mar\'ia Jes\'us Garzar\'an and Paul Petersen},

More information

For more information about CGiS, please visit the CGiS homepage.

back to publications

Valid XHTML 1.0 Strict, valid CSS.

Best viewed with any browser.

Author: Philipp Lucas.