Multi-stage programming for GPUs in C++ using PACXX

Michael Haidl, Michel Steuwer, Tim Humernbrum, Sergei Petrovich Gorlatch · 2016

Writing and optimizing programs for high performance on systems with Graphics Processing Units (GPUs) remains a challenging task even for expert programmers. A promising optimization technique is multi-stage programming -- evaluating parts of the program upfront on the CPU and embedding the computed values in the GPU code, thus allowing for more aggressive compiler optimizations. Unfortunately, such optimizations are not possible in CUDA, whereas to apply them in OpenCL, programmers are forced to manipulate the GPU source code as plain strings, which is error-prone and type-unsafe.

Read the paper · More papers on PaperTik