GPU Acceleration for the C++ Standard Template Library
University of Pennsylvania
University of Pennsylvania, 2012
@article{delozier2012gpu,
title={GPU Acceleration for the C++ Standard Template Library},
author={DeLozier, C.},
year={2012}
}
Modern programmers must exploit parallelism for performance gains, possibly through the use of an attached or on-chip GPU. To take advantage of the GPU in C++ programs, the programmer must use either a new language (CUDA or OpenCL) or an external library (Thrust). Rather than requiring that programmers learn new tools, modify existing code, and change software development practices, the C++ Standard Template Library (STL) can be modified to automatically accelerate common algorithms using the GPU. This paper presents a GPU accelerated version of the C++ STL, libcxxgpu. Using the thrust library, function calls to the algorithms provided by the C++ STL are executed on the GPU, depending on a set of heuristics that determine when to use the CPU and when to use the GPU. In this paper, we detail the implementation of the accelerated library, highlight challenges encountered, and analyze the performance factors that determine which device should be used.
May 2, 2012 by hgpu