@inproceedings{0c5c88ef4786403a91b060ae0dec617e,
title = "Pagoda: Fine-Grained GPU Resource Virtualization for Narrow Tasks",
abstract = "Massively multithreaded GPUs achieve high throughput by running thousands of threads in parallel. To fully utilize the hardware, workloads spawn work to the GPU in bulk by launching large tasks, where each task is a kernel that contains thousands of threads that occupy the entire GPU. GPUs face severe underutilization and their performance benefits vanish if the tasks are narrow, i.e., they contain < 500 threads. Latency-sensitive applications in network, signal, and image processing that generate a large number of tasks with relatively small inputs are examples of such limited parallelism. This paper presents Pagoda, a runtime system that virtualizes GPU resources, using an OS-like daemon kernel called MasterKernel. Tasks are spawned from the CPU onto Pagoda as they become available, and are scheduled by the MasterKernel at the warp granularity. Experimental results demonstrate that Pagoda achieves a geometric mean speedup of 5.70x over PThreads running on a 20-core CPU, 1.51x over CUDA-HyperQ, and 1.69x over GeMTC, the state-of- the-art runtime GPU task scheduling system.",
keywords = "GPU runtime system, Task parallelism, Utilization",
author = "Yeh, {Tsung Tai} and Amit Sabne and Putt Sakdhnagool and Rudolf Eigenmann and Rogers, {Timothy G.}",
year = "2017",
month = jan,
day = "26",
doi = "10.1145/3018743.3018754",
language = "English",
series = "Proceedings of the ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, PPOPP",
publisher = "Association for Computing Machinery",
pages = "221--234",
booktitle = "PPoPP 2017 - Proceedings of the 22nd ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming",
note = "null ; Conference date: 04-02-2017 Through 08-02-2017",
}