16464

SafeGPU: Contract- and Library-Based GPGPU for Object-Oriented Languages

Alexey Kolesnichenko, Christopher M. Poskitt, Sebastian Nanz
Department of Computer Science, ETH Zurich, Switzerland
ETH-Zurich, 2016

@article{kolesnichenko2016safegpu,

   title={SafeGPU: Contract-and Library-Based GPGPU for Object-Oriented Languages},

   author={Kolesnichenko, Alexey and Poskitt, Christopher M and Nanz, Sebastian},

   journal={Computer Languages, Systems & Structures},

   year={2016},

   publisher={Elsevier}

}

Download Download (PDF)   View View   Source Source   Source codes Source codes

Package:

374

views

Using GPUs as general-purpose processors has revolutionized parallel computing by providing, for a large and growing set of algorithms, massive data-parallelization on desktop machines. An obstacle to their widespread adoption, however, is the difficulty of programming them and the low-level control of the hardware required to achieve good performance. This paper proposes a programming approach, SafeGPU, that aims to make GPU data-parallel operations accessible through high-level libraries for object-oriented languages, while maintaining the performance benefits of lower-level code. The approach provides data-parallel operations for collections that can be chained and combined to express compound computations, with data synchronization and device management all handled automatically. It also integrates the design-by-contract methodology, which increases confidence in functional program correctness by embedding executable specifications into the program text. We present a prototype of SafeGPU for Eiffel, and show that it leads to modular and concise code that is accessible for GPGPU non-experts, while still providing performance comparable with that of hand-written CUDA code. We also describe our first steps towards porting it to C#, highlighting some challenges, solutions, and insights for implementing the approach in different managed languages. Finally, we show that runtime contract-checking becomes feasible in SafeGPU, as the contracts can be executed on the GPU.
VN:F [1.9.22_1171]
Rating: 3.6/5 (5 votes cast)
SafeGPU: Contract- and Library-Based GPGPU for Object-Oriented Languages, 3.6 out of 5 based on 5 ratings

* * *

* * *

HGPU group © 2010-2017 hgpu.org

All rights belong to the respective authors

Contact us: