Efficient execution of recursive programs on commodity vector hardware

15Citations
Citations of this article
22Readers
Mendeley users who have this article in their library.
Get full text

Abstract

The pursuit of computational efficiency has led to the proliferation of throughput-oriented hardware, from GPUs to increasingly wide vector units on commodity processors and accelerators. This hardware is designed to efficiently execute data-parallel computations in a vectorized manner. However, many algorithms are more naturally expressed as divide-and-conquer, recursive, task-parallel computations. In the absence of data parallelism, it seems that such algorithms are not well suited to throughput-oriented architectures. This paper presents a set of novel code transformations that expose the data parallelism latent in recursive, task-parallel programs. These transformations facilitate straightforward vectorization of task-parallel programs on commodity hardware. We also present scheduling policies that maintain high utilization of vector resources while limiting space usage. Across several task-parallel benchmarks, we demonstrate both efficient vector resource utilization and substantial speedup on chips using Intel's SSE4.2 vector units, as well as accelerators using Intel's AVX512 units. Copyright is held by the owner/author(s). Publication rights licensed to ACM.

Cite

CITATION STYLE

APA

Ren, B., Jo, Y., Krishnamoorthy, S., Agrawal, K., & Kulkarni, M. (2015). Efficient execution of recursive programs on commodity vector hardware. In Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI) (Vol. 2015-June, pp. 509–520). Association for Computing Machinery. https://doi.org/10.1145/2737924.2738004

Register to see more suggestions

Mendeley helps you to discover research relevant for your work.

Already have an account?

Save time finding and organizing research with Mendeley

Sign up for free