High Level Data Structures for GPGPU Programming in a Statically Typed Language - Archive ouverte HAL
Article Dans Une Revue International Journal of Parallel Programming Année : 2016

High Level Data Structures for GPGPU Programming in a Statically Typed Language

Résumé

To increase software performance, it is now common to use hardware accelerators. Currently, GPUs are the most widespread accelerators that can handle general computations. This requires to use GPGPU frameworks such as Cuda or OpenCL. Both are very low-level and make the benefit of GPGPU programming difficult to achieve. In particular, they require to write programs as a combination of two subprograms, and, to manually manage devices and memory transfers. This increases the complexity of the overall software design. The idea we develop in this paper is to guarantee expressiveness and safety for CPU and GPU computations and memory managements with high-level data-structures and static type-checking. In this paper, we present how statically typed languages, compilers and libraries help harness high level GPGPU programming. In particular, we show how we added high-level user-defined data structures to a GPGPU programming framework based on a statically typed programming language: OCaml. Thus, we describe the introduction of records and tagged unions shared between the host program and GPGPU kernels described via a domain specific language as well as a simple pattern matching control structure to manage them. Examples, practical tests and comparisons with state of the art tools, show that our solutions improve code design, productivity, and safety while providing a high level of performance.
Fichier non déposé

Dates et versions

hal-01320488 , version 1 (23-05-2016)

Identifiants

Citer

Mathias Bourgoin, Emmanuel Chailloux, Jean-Luc Lamotte. High Level Data Structures for GPGPU Programming in a Statically Typed Language. International Journal of Parallel Programming, 2016, ⟨10.1007/s10766-016-0424-7⟩. ⟨hal-01320488⟩
231 Consultations
0 Téléchargements

Altmetric

Partager

More