Contract-based general-purpose GPU programming
Using GPUs as general-purpose processors has revolutionized parallel computing by offering, for a large and growing set of algorithms, massive data-parallelization on desktop machines. An obstacle to widespread adoption, however, is the difficulty of programming them and the low-level control of the...
Saved in:
Main Authors: | , , , |
---|---|
Format: | text |
Language: | English |
Published: |
Institutional Knowledge at Singapore Management University
2015
|
Subjects: | |
Online Access: | https://ink.library.smu.edu.sg/sis_research/4910 https://ink.library.smu.edu.sg/context/sis_research/article/5913/viewcontent/Kolesnichenko_PNM.GPCE.2015__2_.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-5913 |
---|---|
record_format |
dspace |
spelling |
sg-smu-ink.sis_research-59132020-02-13T07:09:32Z Contract-based general-purpose GPU programming KOLESNICHENKO, Alexey POSKITT, Christopher M. NANZ, Sebastian MEYER, Bertrand Using GPUs as general-purpose processors has revolutionized parallel computing by offering, for a large and growing set of algorithms, massive data-parallelization on desktop machines. An obstacle to widespread adoption, however, is the difficulty of programming them and the low-level control of the hardware required to achieve good performance. This paper suggests a programming library, SafeGPU, that aims at striking a balance between programmer productivity and performance, by making GPU data-parallel operations accessible from within a classical object-oriented programming language. The solution is integrated with the design-by-contract approach, which increases confidence in functional program correctness by embedding executable program specifications into the program text. We show that our library leads to modular and maintainable code that is accessible to GPGPU non-experts, while providing performance that is comparable with hand-written CUDA code. Furthermore, runtime contract checking turns out to be feasible, as the contracts can be executed on the GPU. 2015-10-01T07:00:00Z text application/pdf https://ink.library.smu.edu.sg/sis_research/4910 info:doi/10.1145/2814204.2814216 https://ink.library.smu.edu.sg/context/sis_research/article/5913/viewcontent/Kolesnichenko_PNM.GPCE.2015__2_.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 programming object-orientation 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 programming object-orientation design-by-contract program correctness Programming Languages and Compilers Software Engineering |
spellingShingle |
GPGPU parallel computing runtime code generation programming object-orientation design-by-contract program correctness Programming Languages and Compilers Software Engineering KOLESNICHENKO, Alexey POSKITT, Christopher M. NANZ, Sebastian MEYER, Bertrand Contract-based general-purpose GPU programming |
description |
Using GPUs as general-purpose processors has revolutionized parallel computing by offering, for a large and growing set of algorithms, massive data-parallelization on desktop machines. An obstacle to widespread adoption, however, is the difficulty of programming them and the low-level control of the hardware required to achieve good performance. This paper suggests a programming library, SafeGPU, that aims at striking a balance between programmer productivity and performance, by making GPU data-parallel operations accessible from within a classical object-oriented programming language. The solution is integrated with the design-by-contract approach, which increases confidence in functional program correctness by embedding executable program specifications into the program text. We show that our library leads to modular and maintainable code that is accessible to GPGPU non-experts, while providing performance that is comparable with hand-written CUDA code. Furthermore, runtime contract checking turns out to be feasible, as the contracts can be executed on the GPU. |
format |
text |
author |
KOLESNICHENKO, Alexey POSKITT, Christopher M. NANZ, Sebastian MEYER, Bertrand |
author_facet |
KOLESNICHENKO, Alexey POSKITT, Christopher M. NANZ, Sebastian MEYER, Bertrand |
author_sort |
KOLESNICHENKO, Alexey |
title |
Contract-based general-purpose GPU programming |
title_short |
Contract-based general-purpose GPU programming |
title_full |
Contract-based general-purpose GPU programming |
title_fullStr |
Contract-based general-purpose GPU programming |
title_full_unstemmed |
Contract-based general-purpose GPU programming |
title_sort |
contract-based general-purpose gpu programming |
publisher |
Institutional Knowledge at Singapore Management University |
publishDate |
2015 |
url |
https://ink.library.smu.edu.sg/sis_research/4910 https://ink.library.smu.edu.sg/context/sis_research/article/5913/viewcontent/Kolesnichenko_PNM.GPCE.2015__2_.pdf |
_version_ |
1770575093028618240 |