VersaPipe: A Versatile Programming Framework for Pipelined Computing on GPU

Abstract

Pipeline is an important programming pattern, while GPU, designed mostly for data-level parallel executions, lacks an efficient mechanism to support pipeline programming and executions. This paper provides a systematic examination of various existing pipeline execution models on GPU, and analyzes their strengths and weaknesses. To address their shortcomings, this paper then proposes three new execution models equipped with much improved controllability, including a hybrid model that is capable of getting the strengths of all. These insights ultimately lead to the development of a software programming framework named VersaPipe. With VersaPipe, users only need to write the operations for each pipeline stage. VersaPipe will then automatically assemble the stages into a hybrid execution model and configure it to achieve the best performance. Experiments on a set of pipeline benchmarks and a real-world face detection application show that VersaPipe produces up to $6.90 times (2.88 times$ on average) speedups over the original manual implementations. CCS CONCEPTS • General and reference $i̊ghtarrow$ Performance; • Computing methodologies $g̊htarrow$ Parallel computing methodologies; • Computer systems organization $rh̊tarrow$ Heterogeneous (hybrid) systems;

Publication
2017 50th Annual IEEE/ACM International Symposium on Microarchitecture (MICRO)
Jidong Zhai
Jidong Zhai
Associate Professor
(特别研究员、博士生导师)
Wenguang Chen
Wenguang Chen
Professor
(教授)