A language for hierarchical data parallel design-space exploration on GPUs

1Citations
Citations of this article
8Readers
Mendeley users who have this article in their library.

Abstract

Graphics Processing Units (GPUs) offer potential for very high performance; they are also rapidly evolving. Obsidian is an embedded language (in Haskell) for implementing high performance kernels to be run on GPUs. We would like to have our cake and eat it too; we want to raise the level of abstraction beyond CUDA code and still give the programmer control over the details relevant to kernel performance. To that end, Obsidian provides array representations that guarantee elimination of intermediate arrays while also using the type system to model the hierarchy of the GPU. Operations are compiled very differently depending on what level of the GPU they target, and as a result, the user is gently constrained to write code that matches the capabilities of the GPU. Thus, we implement not Nested Data Parallelism, but a more limited form that we call Hierarchical Data Parallelism. We walk through case-studies that demonstrate how to use Obsidian for rapid design exploration or auto-tuning, resulting in performance that compares well to the hand-tuned kernels used in Accelerate and NVIDIA Thrust.

References Powered by Scopus

Conditional-Sum Addition Logic

415Citations
N/AReaders
Get full text

Programming Parallel Algorithms

295Citations
N/AReaders
Get full text

Accelerating Haskell array codes with multicore GPUs

179Citations
N/AReaders
Get full text

Cited by Powered by Scopus

Low-level functional GPU programming for parallel algorithms

2Citations
N/AReaders
Get full text

Register to see more suggestions

Mendeley helps you to discover research relevant for your work.

Already have an account?

Cite

CITATION STYLE

APA

Svensson, B. J., Newton, R. R., & Sheeran, M. (2016). A language for hierarchical data parallel design-space exploration on GPUs. Journal of Functional Programming, 26. https://doi.org/10.1017/S0956796816000046

Readers over time

‘16‘17‘1800.751.52.253

Readers' Seniority

Tooltip

Researcher 2

50%

Lecturer / Post doc 1

25%

PhD / Post grad / Masters / Doc 1

25%

Readers' Discipline

Tooltip

Computer Science 5

63%

Mathematics 2

25%

Psychology 1

13%

Save time finding and organizing research with Mendeley

Sign up for free
0