A Language for Nested Data Parallel Design-space Exploration on GPUs

Bo Joel Svensson, Mary Sheeran, Ryan R. Newton
Indiana University
Indiana University, Technical report TR712, 2014


   title={A Language for Nested Data Parallel Design-space Exploration on GPUs},

   author={Svensson, Bo Joel and Sheeran, Mary and Newton, Ryan R},



Download Download (PDF)   View View   Source Source   



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 kernel performance. To that end Obsidian includes guaranteed elimination of intermediate arrays and predictable space/time costs, while also providing array functions that are polymorphic across different levels of the GPUs’ hierarchical structure, providing a limited form of nested data parallelism. We walk through case-studies that demonstrate how to use Obsidian for rapid design exploration or auto-tuning, resulting in better performance than hand-tuned kernels in an existing GPU language.
No votes yet.
Please wait...

Recent source codes

* * *

* * *

HGPU group © 2010-2024 hgpu.org

All rights belong to the respective authors

Contact us: