Electronic Systems Design Seminar


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


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.

©2002-2018 U.C. Regents