PACXX: Towards a Unified Programming Model for Programming Accelerators using C++14

Haidl Michael, Gorlatch Sergei

Forschungsartikel in Sammelband (Konferenz) | Peer reviewed

Zusammenfassung

We present PACXX -- a unified programming model for programming many-core systems that comprise accelerators like Graphics Processing Units (GPUs). One of the main difficulties of the current GPU programming is that two distinct programming models are required: the host code for the CPU is written in C/C++ with the restricted, C-like API for memory management, while the device code for the GPU has to be written using a device-dependent, explicitly parallel programming model, e.g., OpenCL or CUDA. This leads to long, poorly structured and error-prone codes. In PACXX, both host and device programs are written in the same programming language -- the newest C++14 standard, with all modern features including type inference (\texttt{auto}), variadic templates, generic lambda expressions, as well as STL containers and algorithms. We implement PACXX by a custom compiler (based on the Clang front-end and LLVM IR) and a runtime system, that together perform major tasks of memory management and data synchronization automatically and transparently for the programmer. We evaluate our approach by comparing it to CUDA and OpenCL regarding program size and target performance.

Details zur Publikation

Seitenbereich1-11
VerlagWiley-IEEE Press
ErscheinungsortPiscataway, NJ, USA
Titel der ReiheLLVM-HPC '14 Proceedings of the 2014 LLVM Compiler Infrastructure in HPC
StatusVeröffentlicht
Veröffentlichungsjahr2014
Sprache, in der die Publikation verfasst istEnglisch
KonferenzThe LLVM Compiler Infrastructure in HPC Workshop at Supercomputing '14, New Orleans, undefined
ISBN978-1-4799-7023-0
DOI10.1109/LLVM-HPC.2014.9
Link zum Volltexthttp://dl.acm.org/citation.cfm?id=2688363
StichwörterAccelerators; C++14; Clang/LLVM; SPIR; NVVM IR

Autor*innen der Universität Münster

Gorlatch, Sergei
Professur für Praktische Informatik (Prof. Gorlatch)
Haidl, Michael
Professur für Praktische Informatik (Prof. Gorlatch)