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...
Saved in:
Main Authors: | , , |
---|---|
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 |