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 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.
Presentation slides (gpu_contracts_slides.pdf) | 1.14MiB |
Mon 26 Oct Times are displayed in time zone: Eastern Time (US & Canada) change
15:30 - 16:00 Talk | Safer SDN programming through Arbiter GPCE Michael LopezTexas A&M University, C. Jasson CaseyTexas A&M University and Flowgrammable.org, Gabriel Dos ReisTexas A&M University and Microsoft | ||
16:00 - 16:30 Talk | Contract-Based General-Purpose GPU Programming GPCE Alexey KolesnichenkoETH Zurich, Chris PoskittETH Zurich, Switzerland, Sebastian NanzETH Zurich, Bertrand MeyerETH Zurich, Innopolis University and Eiffel Software Link to publication DOI Pre-print Media Attached File Attached | ||
16:30 - 17:00 Talk | Inverse macro in Scala GPCE | ||
17:00 - 17:20 Talk | Towards Tool Support for Spreadsheet-based Domain-Specific Languages GPCE |