Tech Report:
Date Published:
As the programmability and performance of modern GPUs continues to
increase, many researchers are looking to graphics hardware to solve
problems previously performed on general purpose CPUs. In many cases,
performing general purpose computation on graphics hardware can provide a
significant advantage over implementations on traditional CPUs. However,
if GPUs are to become a powerful processing resource, it is important to
establish the correct abstraction of the hardware; this will encourage
efficient application design as well as an optimizable interface for
hardware designers.
In this paper, we present a stream processor abstraction for performing data parallel computation using graphics hardware. In this model, computation is expressed as kernels executing over streams of data. We have implemented this abstraction with current programmable hardware in a system called \emph{Brook} and present a variety of applications demonstrating its functionality. Stream computing not only represents an accurate computational model for today's hardware but it also captures the underlying advantage of computing on graphics hardware. |