Data-Parallel Flattening by Expansion
University of Copenhagen, Denmark
6th ACM SIGPLAN International Workshop on Libraries, Languages and Compilers for Array Programming (ARRAY ’19), 2019
@inproceedings{elsman2019data,
title={Data-parallel flattening by expansion},
author={Elsman, Martin and Henriksen, Troels and Serup, Niels Gustav Westphal},
booktitle={Proceedings of the 6th ACM SIGPLAN International Workshop on Libraries, Languages and Compilers for Array Programming},
pages={14–24},
year={2019},
organization={ACM}
}
We present a higher-order programmer-level technique for compiling particular kinds of irregular data-parallel problems to parallel hardware. The technique, which we have named "flattening-by-expansion" builds on a number of segmented data-parallel operations but is itself implemented as a higher-order generic function, which makes it useful for many irregular problems. Concretely, the implementation is given in Futhark and we demonstrate the usefulness of the functionality for a number of irregular problems and show that, in practice, the irregular problems are compiled to efficient parallel code that can be executed on GPUs. The technique is useful in any data-parallel language that provides a key set of primitives.
June 23, 2019 by hgpu