|
32. GPGPU: General-Purpose Computation on Graphics Hardware
Wednesday, Full Day, 8:30 am - 5:30 pm
Petree Hall D
Level: Intermediate
The graphics processor (GPU) on today's commodity video cards has evolved into an extremely powerful and flexible system. The latest graphics architectures provide tremendous memory bandwidth and computational horsepower, with fully programmable vertex and pixel processing units that support vector operations up to full IEEE floating-point precision. High-level languages have emerged for graphics hardware, making this computational power accessible. Architecturally, GPUs are highly parallel streaming processors optimized for vector operations, with both MIMD (vertex) and SIMD (pixel) pipelines. Not surprisingly, these processors are capable of general-purpose computation beyond the graphics applications for which they were designed. Researchers have found that exploiting the GPU can accelerate some problems by more than an order of magnitude over the CPU.
However, significant barriers still exist for the developer who wishes to use the inexpensive power of commodity graphics hardware, whether for in-game simulation of physics or for conventional computational science. These chips are designed for and driven by video game development; the programming model is unusual, the programming environment is tightly constrained, and the underlying architectures are largely secret. The GPU developer must be an expert in computer graphics and its computational idioms to make effective use of the hardware, and still pitfalls abound. This course provides a detailed introduction to general-purpose computation on graphics hardware (GPGPU). It emphasizes core computational building blocks, ranging from linear algebra to database queries, and reviews the tools, perils, and tricks of the trade in GPU programming. It also presents some interesting and important case studies on general-purpose applications of graphics hardware.
The course presenters are experts on general-purpose GPU computation from academia and industry, and have presented papers and tutorials on the topic at the annual SIGGRAPH conference, Graphics Hardware, Game Developers Conference, and elsewhere.
Prerequisites
Attendees are expected to have experience with a modern graphics API such as OpenGL or Direct 3D, including basic experience in programming vertex and pixel shaders.
Intended Audience
Researchers interested in investigating general-purpose computation on graphics hardware and graphics and games developers interested in incorporating these techniques into their applications.
Course updates and materials
Co-Organizers
Mark Harris
NVIDIA Corporation
David Luebke
University of Virginia
Lecturers
Ian Buck
Stanford University
Naga Govindaraju
University of North Carolina at Chapel Hill
Mark Harris
NVIDIA Corporation
Jens Krüger
Technische Universität München
Aaron E. Lefohn
University of California, Davis
David Luebke
University of Virginia
Timothy J. Purcell
Stanford University, NVIDIA Corporation
Cliff Woolley
University of Virginia
Schedule
| 8:30 |
Welcome and Introduction
Luebke
|
| 9 |
Mapping Computational Concepts to the GPU
Harris
|
| |
GPGPU Building Block
|
| 9:20 |
Linear Algebra Krüger
|
| 9:55 |
Sorting and Searching
Purcell
|
| 10:15 |
Break
|
| 10:30 |
Sorting and Searching Continued Purcell
|
| |
Languages and Tools
|
| 11:15 |
High-level Languages Buck
|
| 11:45 |
Debugging Tools
Purcell
|
| 12:15 |
Lunch
|
| |
Effective GPGPU Programming
|
| 1:45 |
Efficient Data-parallel GPU Programming
Woolley
|
| 2:15 |
Data Formatting and Addressing
Lefohn
|
| 2:45 |
GPU Computation Strategies & Tricks
Buck
|
| 3:30 |
Break
|
| |
Case Studies
|
| 3:45 |
Physically-based Simulation on GPUs
Harris
|
| 4:10 |
Tone Mapping on GPUs
Woolley
|
| 4:35 |
Level Sets on GPUs
Lefoh
|
| 5 |
Global Illumination on GPUs
Purcell
|
|