CGiS, a new Language for Data-parallel GPU Programming

In the last few years, GPUs have become new, promising targets for general purpose programming. Their inherent parallel architecture makes them particularly suited for scientific numerical computations with high arithmetical density. There have been several proposals to exploit the computational power of GPUs for data-parallel algorithms. These approaches vary greatly in the abstraction level of the graphics processing unit exposed to the programmer. Despite the emergence of GPU programming languages, there is still need for a single high-level programming language that naturally lends itself to compilation into efficient code, yet does not overburden the programmer with peculiarities of GPUs. We present a novel unifying approach to facilitate the use of GPUs for data-parallel computation. We describe the language CGIS and the associated infrastructure that allows scientific programmers to express data-parallel computations efficiently on an appropriate level of abstraction.