|
|
Brook for GPUs: Stream
Computing on Graphics Hardware
Ian
Buck
Stanford
Computer Graphics Lab
Tuesday, February
17th,
2004, 4pm - 5pm
540A/B Cory Hall (D.O.P. Center Classroom)
Chess Talk
|
Abstract
As the
programmability and performance of modern GPUs (Graphics Processing
Units) 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 and to provide a useful platform for development.
In this talk I will present Brook for GPUs, a C-like programming
language that implements the stream programming model using the modern
GPU. BrookGPU consists of a compiler, BRCC, which takes as input
generic Brook stream code and produces GPU specific code. Together with
the Brook runtime system, BRT, we can compile and run stream code using
DirectX 9, OpenGL, or multi-processor CPUs. I will present the
design of the system, the implementation, and some of the applications
we are studying.
In addition, I will discuss how implementing a streaming programming
model on GPUs introduces a variety of systems research questions.
These include the virtualization of GPU resources to better map current
GPUs to the streaming programming model, as well as architectural
issues, specifically what GPUs can teach us about the design of
streaming architectures.
|