SafeGPU: Contract- and library-based GPGPU for object-oriented languages

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...

Full description

Saved in:
Bibliographic Details
Main Authors: KOLESNICHENKO, Alexey, POSKITT, Christopher M., NANZ, Sebastian
Format: text
Language:English
Published: Institutional Knowledge at Singapore Management University 2016
Subjects:
Online Access:https://ink.library.smu.edu.sg/sis_research/4858
https://ink.library.smu.edu.sg/context/sis_research/article/5861/viewcontent/Kolesnichenko_Poskitt_Nanz.COMLAN.2016.pdf
Tags: Add Tag
No Tags, Be the first to tag this record!
Institution: Singapore Management University
Language: English
id sg-smu-ink.sis_research-5861
record_format dspace
spelling sg-smu-ink.sis_research-58612020-01-23T07:07:49Z SafeGPU: Contract- and library-based GPGPU for object-oriented languages KOLESNICHENKO, Alexey POSKITT, Christopher M. NANZ, Sebastian 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. 2016-08-01T07:00:00Z text application/pdf https://ink.library.smu.edu.sg/sis_research/4858 info:doi/10.1016/j.cl.2016.08.002 https://ink.library.smu.edu.sg/context/sis_research/article/5861/viewcontent/Kolesnichenko_Poskitt_Nanz.COMLAN.2016.pdf http://creativecommons.org/licenses/by-nc-nd/4.0/ Research Collection School Of Computing and Information Systems eng Institutional Knowledge at Singapore Management University GPGPU parallel computing runtime code generation generative programming object-orientation managed languages design-by-contract program correctness Programming Languages and Compilers Software Engineering
institution Singapore Management University
building SMU Libraries
continent Asia
country Singapore
Singapore
content_provider SMU Libraries
collection InK@SMU
language English
topic GPGPU
parallel computing
runtime code generation
generative programming
object-orientation
managed languages
design-by-contract
program correctness
Programming Languages and Compilers
Software Engineering
spellingShingle GPGPU
parallel computing
runtime code generation
generative programming
object-orientation
managed languages
design-by-contract
program correctness
Programming Languages and Compilers
Software Engineering
KOLESNICHENKO, Alexey
POSKITT, Christopher M.
NANZ, Sebastian
SafeGPU: Contract- and library-based GPGPU for object-oriented languages
description 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.
format text
author KOLESNICHENKO, Alexey
POSKITT, Christopher M.
NANZ, Sebastian
author_facet KOLESNICHENKO, Alexey
POSKITT, Christopher M.
NANZ, Sebastian
author_sort KOLESNICHENKO, Alexey
title SafeGPU: Contract- and library-based GPGPU for object-oriented languages
title_short SafeGPU: Contract- and library-based GPGPU for object-oriented languages
title_full SafeGPU: Contract- and library-based GPGPU for object-oriented languages
title_fullStr SafeGPU: Contract- and library-based GPGPU for object-oriented languages
title_full_unstemmed SafeGPU: Contract- and library-based GPGPU for object-oriented languages
title_sort safegpu: contract- and library-based gpgpu for object-oriented languages
publisher Institutional Knowledge at Singapore Management University
publishDate 2016
url https://ink.library.smu.edu.sg/sis_research/4858
https://ink.library.smu.edu.sg/context/sis_research/article/5861/viewcontent/Kolesnichenko_Poskitt_Nanz.COMLAN.2016.pdf
_version_ 1770575065763545088