In the last three years, commodity graphics processors (GPUs) have evolved from fixed-function graphics units into powerful data-parallel processors. These streaming processors are capable of sustaining computation rates of greater than ten times that of a single CPU. Researchers in the evolving field of general-purpose computation on graphics processors (GPGPU) have demonstrated mappings to these processors for a wide range of computationally intensive tasks. Examples include ray tracing, molecular dynamics, and surface processing. This tutorial provides a detailed introduction and overview of the GPGPU field to the visualization community. Attendees will gain an understanding of modern GPU architecture, the GPGPU programming model, and the techniques and tools required to apply GPUs to their own applications.
This tutorial will be of interest to the visualization community for several reasons. First, GPU acceleration of partial differential equation solvers, 2D and 3D image processing, and physical simulations directly affect the visualization community. Examples of this are the GPU-based interactive 3D segmentation algorithms published at IEEE Visualization last year. Second, until recently visualization has primarily focused on exploration of pre-captured data. The ability to perform GPGPU-based interactive simulation on a desktop PC, however, opens up a wealth of new visualization research challenges. Lastly, despite recent advances in GPU programming languages, GPGPU practitioners are predominantly graphics specialists. This tutorial presents the background, tools, and implementation details required for researchers in other fields to leverage the computational power of GPUs. The tutorial speakers are experts in the field of general-purpose computation on GPUs and streaming architectures. They have presented papers, conference courses, and university courses on the topic at IEEE Visualization, SIGGRAPH, Graphics Hardware, Stanford, UCDavis, and elsewhere.