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

Haidl Michael, Gorlatch Sergei

Research article in edited proceedings (conference) | Peer reviewed

Abstract

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 about the publication

Page range1-11
Publishing companyWiley-IEEE Press
Place of publicationPiscataway, NJ, USA
Title of seriesLLVM-HPC '14 Proceedings of the 2014 LLVM Compiler Infrastructure in HPC
StatusPublished
Release year2014
Language in which the publication is writtenEnglish
ConferenceThe LLVM Compiler Infrastructure in HPC Workshop at Supercomputing '14, New Orleans, undefined
ISBN978-1-4799-7023-0
DOI10.1109/LLVM-HPC.2014.9
Link to the full texthttp://dl.acm.org/citation.cfm?id=2688363
KeywordsAccelerators; C++14; Clang/LLVM; SPIR; NVVM IR

Authors from the University of Münster

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