ePrints@IIScePrints@IISc Home | About | Browse | Latest Additions | Advanced Search | Contact | Help

Software Pipelined Execution of Stream Programs on GPUs

Udupa, Abhishek and Govindarajan, R and Thazhuthaveetil, Matthew J (2009) Software Pipelined Execution of Stream Programs on GPUs. In: 7th International Symposium on Code Generation and Optimization, MAR 22-25, 2009, Seattle, WA, pp. 200-209.

[img] PDF
sftwre.pdf - Published Version
Restricted to Registered users only

Download (741kB) | Request a copy
Official URL: http://ieeexplore.ieee.org/search/srchabstract.jsp...


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 pipelin parallelism. Further it takes into consideration the synchronization and bandwidth limitations of GPUs, and yields speedups between 1.87X and 36.83X over a single threaded CPU.

Item Type: Conference Paper
Publisher: IEEE
Additional Information: Copyright 2007 IEEE. Personal use of this material is permitted. However, permission to reprint/republish this material for advertising or promotional purposes or for creating new collective works for resale or redistribution to servers or lists, or to reuse any copyrighted component of this work in other works must be obtained from the IEEE.
Keywords: CUDA; GPU Programming; Software Pipelining; Stream Programming
Department/Centre: Division of Electrical Sciences > Computer Science & Automation
Date Deposited: 12 Apr 2010 08:26
Last Modified: 19 Sep 2010 05:59
URI: http://eprints.iisc.ac.in/id/eprint/27056

Actions (login required)

View Item View Item