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.
@conference(CGiS-LCPC07,
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)},
month={October},
editor={Vikram Adve and Mar\'ia Jes\'us Garzar\'an and Paul Petersen},
year=2008,
publisher={Springer-Verlag},
series={LNCS},
volume=5234,
pages={246--260}
)
For more information about CGiS, please visit the CGiS homepage.
Valid XHTML 1.0 Strict, valid CSS.
Author: Philipp Lucas.