Converting Data to Task-Parallelism by Rewrites
Indiana University
The 19th ACM SIGPLAN International Conference on Functional Programming (ICFP), 2014
@article{newton2014converting,
title={Converting Data to Task-Parallelism by Rewrites},
author={Newton, Ryan R and Holk, Eric and McDonell, Trevor L},
year={2014}
}
High-level domain-specific-languages for array processing on the GPU are increasingly common, but to date they run only on a single GPU. We argue that languages will need to target multiple devices, even simultaneous combinations of GPU/GPU and CPU/GPU. Increased flexibility may be key to making these languages more easily deployable and thus widespread. To this end, we present a compositional translation that fissions data-parallel programs in the Accelerate language, allowing subsequent compiler stages to map computations on multiple devices via different code-generation backends. As a result, Accelerate becomes the first EDSL to exercise the CPU and GPU with each data-parallel kernel. Further, because Accelerate code is written at a level of abstraction that does not require per-platform tuning, the same source can run efficiently on and across different devices.
March 7, 2014 by hgpu