Tutorial Session: Scientific Computing on Graphics Hardware
General Information
Date and Time
Sunday, May 28 2006, 12:00--18:00, room: A-Nike
Target audience:
Beginner to intermediate level, no graphics background required
Speakers and organisers:
-
Robert Strzodka, Stanford University, Max Planck Center
http://www.stanford.edu/~strzodka -
Dominik Göddeke, Applied Mathematics, University of Dortmund
http://www.mathematik.uni-dortmund.de/~goeddeke/
Abstract and summary
The tutorial comprises two sessions. For the first session, no GPGPU experience is required, all necessary concepts are introduced without assuming prior knowledge. The second session presents techniques to improve both performance and accuracy of GPGPU applications.
Session A: Why GPUs and what can they do?
- A1: Why GPUs? This talk gives a comprehensive introduction to GPUs as fast, parallel array processors. The data-parallel programming paradigm is contrasted to the instruction-stream based paradigm that applies on CPUs, and several high-level GPU characteristics are presented.
- A2: GPGPU programming After a brief introduction to programming options in GPGPU, this talk explains the basics of GPGPU programming and algorithmic techniques using multiple illustrated examples.
- A3: GPGPU showcase and example demos A short live demo of several example GPGPU applications.
Session B: Performance and accuracy
- B1: Performance Using one common PDE as an example, this talk identifies five key possibilities to increase performance of GPGPU applications. The presented approaches are general in nature and do not apply to PDEs exclusively.
- B2: Accuracy This talk gives a detailed introduction to mixed precision iterative refinement techniques, one possibility to achieve high precision on low-precision hardware (and also possible speedups on the CPU). The necessary background in math and chip design is provided, and the fundamental difference between precision and accuracy is addressed.
Course Notes
Slides for each talk are available in PPS format. Microsoft Powerpoint or the freely available Powerpoint viewer are required to view these slides. The animations might look a bit weird in OpenOffice, but work in principle.
- All slides in one convenient ZIP file: slides.zip (6MB)
- A0: Introduction (0.2MB)
- A1: Why GPUs (0.9MB)
- A2: GPGPU Programming (0.9MB)
- A3: GPGPU showcase (3MB)
- B0: Introduction (0.2MB)
- B1: Performance (1.7MB)
- B2: Accuracy (0.6MB)
Additional Material
GPGPU in general
- A Survey of General-Purpose Computation on Graphics Hardware by Owens et al., Eurographics 2005 State of the Art Report
- GPGPU news and paper archive
- GPGPU Wiki
Similar GPGPU courses
GPGPU programming resources
- GPGPU.org developer resources
- Dominik Göddeke's GPGPU Tutorials
- The official GPGPU FAQ
- GPGPU.org forums
Programs used in the GPGPU showcase
- NVIDIA SDK: GPGPU Fluid
- Fluid Simulations on GPU with Complex Obstacles
- tum.3d particle engine (Winner of IEEE 2005 Visualization Contest)
- ClawHMMER by Horn et al.: A streaming HMMer-search implementation
- FlexiPlan by Gayle et al.: Path Planning for Deformable Robots in Complex Environments
- GPU-FFTlib by Jansen et al.: Filtered Back-Projection and Fourier Volume Rendering
- Glift by Lefohn et al.: Generic, efficient random-access GPU data structures