Efficient abstractions for GPGPU programming

Efficient abstractions for GPGPU programming

Mercredi 16 avril, LIP, heure et salle à déterminer

Mathias Bourgoin

Résumé:

Currently, General purpose (GP)GPU programming is a popular solution to achieve high performance. It couples inexpensive highly parallel computing units with classic CPUs. These heterogenous systems lead to complex designs combining multiple paradigms and programming languages to manage each hardware architecture. This talk will present a set of tools to harness GPGPU programming through the OCaml programming language. It will describe the SPOC library, which handles GPGPU subprograms (kernels) and data transfers between devices. Then, It will show how SPOC expresses GPGPU kernels: through interoperability with common low-level extensions (from Cuda and OpenCL frameworks) but also via an embedded DSL for OCaml. Finally, It will present how to manage those kernels through parallel skeletons.