Conditional Techniques for Stream Processing Kernels

Ujval J. Kapasi, Ph.D. dissertation, Stanford University, March 2004

Abstract:

The stream programming model casts applications as a set of sequential data streams that are operated on by data-parallel computation kernels. Previous work has shown that this model is a powerful representation for media processing applications, such as image- and signal-processing, because it captures the locality and concurrency inherent to an application. This careful handling of important application properties results in kernels that are compute-intensive---i.e., kernels that perform a large number of arithmetic operations per unit of inter-kernel communication bandwidth. Furthermore, the stream model can be implemented with efficient VLSI designs, such as the Imagine Programmable Stream Processor. The Imagine chip supports 48 ALUs on a single die, operating at over 200MHz. This large number of ALUs provides a high peak performance, but makes efficiently executing kernels with conditional code a challenge.

We will introduce two techniques for efficiently supporting kernel conditionals, such as if-statements, case-statements, and while-loops: conditional routing and conditional streams. Conditional routing is a code transformation that exploits the trade-off of increasing inter-kernel communication in order to increase the performance of kernel inner-loops containing conditional code. The second technique we will discuss is the use of a conditional stream, which is a mechanism to reduce the amount of load-imbalance that arises between parallel processing clusters on a single stream processor chip. Load-imbalance results when different conditional paths are taken on different processing clusters, and causes one or more of the clusters to wait idle for the others to complete a kernel. We will also present a case study of the impact of these techniques on a programmable polygon rendering pipeline that contains many unpredictable conditionals. We show that our techniques improve the performance of this application by 1.9x.

Hardcopy:

Reference

Ujval J. Kapasi. Conditional Techniques for Stream Processing Kernels. PhD thesis, Stanford University, March 2004.

BibTeX Entry

@PhdThesis{Kapasi:2004:PhD,
  author =  "Ujval J. Kapasi",
  title =   "Conditional Techniques for Stream Processing Kernels",
  school =  "Stanford University",
  month =   "March", 
  year =    "2004",
}

Ujval Kapasi