This Article 
   
 Share 
   
 Bibliographic References 
   
 Add to: 
 
Digg
Furl
Spurl
Blink
Simpy
Google
Del.icio.us
Y!MyWeb
 
 Search 
   
2009 International Symposium on Code Generation and Optimization
Software Pipelined Execution of Stream Programs on GPUs
Seattle, Washington
March 22-March 25
ISBN: 978-0-7695-3576-0
The StreamIt programming model has been proposed to exploit parallelism in streaming applications on general purpose multi-core architectures. This model allows programmers to specify the structure of a program as a set of filters that act upon data, and a set of communication channels between them. The StreamIt graphs describe task, data and pipeline parallelism which can be exploited on modern Graphics Processing Units (GPUs), as they support abundant parallelism in hardware. In this paper, we describe the challenges in mapping StreamIt to GPUs and propose an efficient technique to software pipeline the execution of stream programs on GPUs. We formulate this problem --- both scheduling and assignment of filters to processors --- as an efficient Integer Linear Program (ILP), which is then solved using ILP solvers. We also describe a novel buffer layout technique for GPUs which facilitates exploiting the high memory bandwidth available in GPUs. The proposed scheduling utilizes both the scalar units in GPU, to exploit data parallelism, and multiprocessors, to exploit task and pipeline parallelism.
Index Terms:
CUDA, GPU Programming, Software Pipelining, Stream Programming
Citation:
Abhishek Udupa, R. Govindarajan, Matthew J. Thazhuthaveetil, "Software Pipelined Execution of Stream Programs on GPUs," cgo, pp.200-209, 2009 International Symposium on Code Generation and Optimization, 2009
Usage of this product signifies your acceptance of the Terms of Use.