Integrating GPGPU computations with CPU coroutines in C++
Subdepartment of Computer Security, National Research University Higher School of Economics, 34 Tallinskaya Ulitsa, Moscow, Russia
Journal of Physics: Conference Series 681 (2016) 012048, 2016
@inproceedings{lebedev2016integrating,
title={Integrating GPGPU computations with CPU coroutines in C++},
author={Lebedev, Pavel A},
booktitle={Journal of Physics: Conference Series},
volume={681},
number={1},
pages={012048},
year={2016},
organization={IOP Publishing}
}
We present results on integration of two major GPGPU APIs with reactor-based event processing model in C++ that utilizes coroutines. With current lack of universally usable GPGPU programming interface that gives optimal performance and debates about the style of implementing asynchronous computing in C++, we present a working implementation that allows a uniform and seamless approach to writing C++ code with continuations that allow processing on CPUs or CUDA/OpenCL accelerators. Performance results are provided that show, if corner cases are avoided, this approach has negligible performance cost on latency.
February 8, 2016 by hgpu