[BOOK][B] A study of persistent threads style GPU programming for GPGPU workloads
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 …
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 …
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.
ieeexplore.ieee.org