Graphics Processing UnitsVpowerful, programmable, and highly parallelVare increasingly targeting general-purpose computing applications.

The graphics processing unit (GPU) has become an integral part of today's mainstream computing systems. Over the past six years, there has been a marked increase in the performance and capabilities of GPUs. The modern GPU is not only a powerful graphics engine but also a highly parallel programmable processor featuring peak arithmetic and mem- ory bandwidth that substantially outpaces its CPU counterpart. The GPU's rapid increase in both programmability and capability has spawned a research community that has successfully mapped a broad range of computationally de- manding, complex problems to the GPU. This effort in general- purpose computing on the GPU,also known asGPU computing, has positioned the GPU as a compelling alternative to traditional microprocessors in high-performance computer systems of the future. We describe the background, hardware, and programming model for GPU computing, summarize the state of the art in tools and techniques, and present four GPU computing successes in game physics and computational biophysics that deliver order-of-magnitude performance gains over optimized CPU applications.

[1]  Naga K. Govindaraju,et al.  A Survey of General‐Purpose Computation on Graphics Hardware , 2007 .

[2]  Philip M. Hubbard,et al.  Collision Detection for Interactive Graphics Applications , 1995, IEEE Trans. Vis. Comput. Graph..

[3]  David Blythe The Direct3D 10 system , 2006, SIGGRAPH 2006.

[4]  David Tarditi,et al.  Accelerator: using data parallelism to program GPUs for general-purpose uses , 2006, ASPLOS XII.

[5]  Laxmikant V. Kalé,et al.  Scalable molecular dynamics with NAMD , 2005, J. Comput. Chem..

[6]  Dinesh Manocha,et al.  Efficient relational database management using graphics processors , 2005, DaMoN '05.

[7]  Rüdiger Westermann,et al.  A particle system for interactive visualization of 3D flows , 2005, IEEE Transactions on Visualization and Computer Graphics.

[8]  Bryan Chan,et al.  Shader algebra , 2004, SIGGRAPH 2004.

[9]  K Schulten,et al.  VMD: visual molecular dynamics. , 1996, Journal of molecular graphics.

[10]  Pat Hanrahan,et al.  Understanding the efficiency of GPU algorithms for matrix-matrix multiplication , 2004, Graphics Hardware.

[11]  Dinesh Manocha,et al.  LU-GPU: Efficient Algorithms for Solving Dense Linear Systems on Graphics Hardware , 2005, ACM/IEEE SC 2005 Conference (SC'05).

[12]  Guy E. Blelloch,et al.  Vector Models for Data-Parallel Computing , 1990 .

[13]  Rüdiger Westermann,et al.  Linear algebra operators for GPU implementation of numerical algorithms , 2003, SIGGRAPH Courses.

[14]  Kenneth E. Batcher,et al.  Sorting networks and their applications , 1968, AFIPS Spring Joint Computing Conference.

[15]  Eric Darve,et al.  N-Body Simulations on GPUs , 2007, ArXiv.

[16]  Mark J. Harris Mapping computational concepts to GPUs , 2005, SIGGRAPH Courses.

[17]  Dinesh Manocha,et al.  Fast computation of database operations using graphics processors , 2004, SIGMOD '04.

[18]  Klaus Schulten,et al.  Accelerating Molecular Modeling Applications with GPU Computing , 2009 .

[19]  Pat Hanrahan,et al.  Brook for GPUs: stream computing on graphics hardware , 2004, SIGGRAPH 2004.

[20]  Daniel A. Keim,et al.  A Graphics Hardware Accelerated Algorithm for Nearest Neighbor Search , 2006, International Conference on Computational Science.