A study of Persistent Threads style GPU programming for GPGPU workloads
Authors:
Top Cited Papers
- 1 May 2012
- conference paper
- Published by Institute of Electrical and Electronics Engineers (IEEE)
- p. 1-14
Abstract
In this paper, we characterize and analyze an increasingly popular style of programming for the GPU called Persistent Threads (PT). We present a concise formal definition for this programming style, and discuss the difference between the traditional GPU programming style (nonPT) and PT, why PT is attractive for some high-performance usage scenarios, and when using PT may or may not be appropriate. We identify limitations of the nonPT style and identify four primary use cases it could be useful in addressing-CPU-GPU synchronization, load balancing/irregular parallelism, producer-consumer locality, and global synchronization. Through micro-kernel benchmarks we show the PT approach can achieve up to an order-of-magnitude speedup over nonPT kernels, but can also result in performance loss in many cases. We conclude by discussing the hardware and software fundamentals that will influence the development of Persistent Threads as a programming style in future systems.Keywords
This publication has 16 references indexed in Scilit:
- An effective GPU implementation of breadth-first search2010
- The Scalable Heterogeneous Computing (SHOC) benchmark suite2010
- Implementing sparse matrix-vector multiplication on throughput-oriented processors2009
- Understanding the efficiency of ray traversal on GPUs2009
- Designing efficient sorting algorithms for manycore GPUs2009
- Message passing on data-parallel architectures2009
- Accelerating leukocyte tracking using CUDA: A case study in leveraging manycore coprocessors2009
- Larrabee: A Many-Core x86 Architecture for Visual ComputingIEEE Micro, 2009
- Scalable parallel programming with CUDA2008
- GPU ComputingProceedings of the IEEE, 2008