What This Document Is
This document, titled “Brook for GPUs: Stream Computing on Graphics Hardware,” is a research paper detailing a system designed to utilize the processing power of Graphics Processing Units (GPUs) for tasks beyond traditional graphics rendering. It explores the concept of “stream computing,” where GPUs are employed as co-processors for general-purpose computation. The work presents a novel approach to programming GPUs using an extended version of the C programming language, incorporating data-parallel constructs. It’s a deep dive into the architecture and potential of early GPU computing techniques.
Why This Document Matters
This paper is valuable for students and researchers in computer science, particularly those focused on parallel programming, computer architecture, and graphics. It’s especially relevant for anyone studying the historical development of GPU computing – understanding the foundations laid by systems like Brook provides crucial context for modern GPU programming frameworks like CUDA and OpenCL. Individuals interested in the performance tradeoffs between CPUs and GPUs for different types of algorithms will also find this work insightful. It offers a foundational understanding of the challenges and opportunities in harnessing GPU power for non-graphical applications.
Topics Covered
* GPU Architecture and Capabilities
* Stream Computing Concepts
* Data-Parallel Programming Models
* Compiler Design for GPU Computing
* Runtime System Virtualization
* Performance Analysis of GPU vs. CPU
* Applications of GPU Computing (Linear Algebra, Image Processing, etc.)
* Hardware limitations and abstractions
What This Document Provides
* A detailed description of the Brook programming model.
* An analysis of how to abstract and virtualize aspects of graphics hardware.
* A cost model for evaluating the performance benefits of using GPUs.
* Performance evaluations across a range of applications, demonstrating the potential speedups achievable with GPU computing.
* Insights into the challenges of general-purpose computation on GPUs and how the Brook system addresses them.
* A comprehensive look at the state of GPU computing in the early 2000s.