GPU Computing Graphics Processing Unitsvpowerful, Programmable, and Highly Parallelvare Increasingly Targeting General-Purpose Computing Applications

GPU Computing Graphics Processing Unitsvpowerful, Programmable, and Highly Parallelvare Increasingly Targeting General-Purpose Computing Applications

INVITED PAPER GPU Computing Graphics Processing UnitsVpowerful, programmable, and highly parallelVare increasingly targeting general-purpose computing applications. By John D. Owens, Mike Houston, David Luebke, Simon Green, John E. Stone, and James C. Phillips ABSTRACT | The graphics processing unit (GPU) has become an I. INTRODUCTION integral part of today’s mainstream computing systems. Over Parallelism is the future of computing. Future micropro- the past six years, there has been a marked increase in the cessor development efforts will continue to concentrate on performance and capabilities of GPUs. The modern GPU is not adding cores rather than increasing single-thread perfor- only a powerful graphics engine but also a highly parallel mance. One example of this trend, the heterogeneous programmable processor featuring peak arithmetic and mem- nine-core Cell broadband engine, is the main processor in ory bandwidth that substantially outpaces its CPU counterpart. the Sony Playstation 3 and has also attracted substantial The GPU’s rapid increase in both programmability and interest from the scientific computing community. Simi- capability has spawned a research community that has larly, the highly parallel graphics processing unit (GPU) is successfully mapped a broad range of computationally de- rapidly gaining maturity as a powerful engine for manding, complex problems to the GPU. This effort in general- computationally demanding applications. The GPU’s purpose computing on the GPU, also known as GPU computing, performance and potential offer a great deal of promise has positioned the GPU as a compelling alternative to for future computing systems, yet the architecture and traditional microprocessors in high-performance computer programming model of the GPU are markedly different systems of the future. We describe the background, hardware, than most other commodity single-chip processors. and programming model for GPU computing, summarize the The GPU is designed for a particular class of state of the art in tools and techniques, and present four GPU applications with the following characteristics. Over the computing successes in game physics and computational past few years, a growing community has identified other biophysics that deliver order-of-magnitude performance gains applications with similar characteristics and successfully over optimized CPU applications. mapped these applications onto the GPU. • Computational requirements are large. Real-time KEYWORDS | General-purpose computing on the graphics rendering requires billions of pixels per second, processing unit (GPGPU); GPU computing; parallel computing andeachpixelrequireshundredsormoreopera- tions. GPUs must deliver an enormous amount of compute performance to satisfy the demand of complex real-time applications. • Parallelism is substantial. Fortunately, the graphics pipeline is well suited for parallelism. Operations Manuscript received May 11, 2007; revised October 21, 2007 and January 2008. The on vertices and fragments are well matched to fine- work of J. Owens was supported by the U.S. Department of Energy under Early Career Principal Investigator Award DE-FG02-04ER25609, the National Science grained closely coupled programmable parallel Foundation under Award 0541448, the SciDAC Institute for Ultrascale Visualization, compute units, which in turn are applicable to and Los Alamos National Laboratory. The work of M. Houston was supported by the Intel Foundation Ph.D. Fellowship Program, the U.S. Department of Energy, many other computational domains. AMD, and ATI. • Throughput is more important than latency. GPU J. D. Owens is with the Department of Electrical and Computer Engineering, University of California, Davis, CA 95616 USA (e-mail: [email protected]). implementations of the graphics pipeline prioritize M. Houston is with the Department of Computer Science, Stanford University, throughput over latency. The human visual system Stanford, CA 94305 USA (e-mail: [email protected]). D. Luebke and S. Green are with NVIDIA Corporation, Santa Clara, CA 95050 USA operates on millisecond time scales, while opera- (e-mail: [email protected]; [email protected]). tions within a modern processor take nanoseconds. J. E. Stone and J. C. Phillips are with the Beckman Institute for Advanced Science and Technology, University of Illinois at Urbana-Champaign, Urbana, IL 61801 USA This six-order-of-magnitude gap means that the (e-mail: [email protected]; [email protected]). latency of any individual operation is unimportant. Digital Object Identifier: 10.1109/JPROC.2008.917757 As a consequence, the graphics pipeline is quite 0018-9219/$25.00 Ó2008 IEEE Vol. 96, No. 5, May 2008 | Proceedings of the IEEE 879 Authorized licensed use limited to: Univ of California-Santa Barbara. Downloaded on June 20, 2009 at 18:30 from IEEE Xplore. Restrictions apply. Owens et al.:GPUComputing deep, perhaps hundreds to thousands of cycles, the potential of the GPU for delivering real performance with thousands of primitives in flight at any given gains on computationally complex, large problems. time. The pipeline is also feed-forward, removing In Section VIII, we conclude by looking to the future: the penalty of control hazards, further allowing what features can we expect in future systems, and what optimal throughput of primitives through the are the most important problems that we must address as pipeline. This emphasis on throughput is charac- the field moves forward? One of the most important teristic of applications in other areas as well. challenges for GPU computing is to connect with the Six years ago, the GPU was a fixed-function processor, mainstream fields of processor architecture and program- built around the graphics pipeline, that excelled at three- ming systems, as well as learn from the parallel computing dimensional (3-D) graphics but little else. Since that experts of the past, and we hope that the audience of time, the GPU has evolved into a powerful programmable this paper will find common interests with the experts in processor, with both application programming interface our field. (APIs) and hardware increasingly focusing on the programmable aspects of the GPU. The result is a processor with enormous arithmetic capability [a single II. GPU ARCHITECTURE NVIDIA GeForce 8800 GTX can sustain over 330 giga- TheGPUhasalwaysbeenaprocessorwithample floating-point operations per second (Gflops)] and computational resources. The most important recent streaming memory bandwidth (80+ GB/s), both substan- trend, however, has been exposing that computation to tially greater than a high-end CPU. The GPU has a the programmer. Over the past few years, the GPU has distinctive architecture centered around a large number evolved from a fixed-function special-purpose processor of fine-grained parallel processors that we discuss in into a full-fledged parallel programmable processor with Section II. additional fixed-function special-purpose functionality. Just as important in the development of the GPU as a More than ever, the programmable aspects of the general-purpose computing engine has been the advance- processor have taken center stage. ment of the programming model and programming tools. We begin by chronicling this evolution, starting from The challenge to GPU vendors and researchers has been to the structure of the graphics pipeline and how the GPU has strike the right balance between low-level access to the become a general-purpose architecture, then taking a hardware to enable performance and high-level program- closer look at the architecture of the modern GPU. ming languages and tools that allow programmer flexibility and productivity, all in the face of rapidly advancing A. The Graphics Pipeline hardware. In Section III, we discuss how general-purpose The input to the GPU is a list of geometric primitives, programs are mapped onto the GPU. We then give a high- typically triangles, in a 3-D world coordinate system. level summary of the techniques used in building Through many steps, those primitives are shaded and applications on the GPU (Section V) and the rapidly mapped onto the screen, where they are assembled to advancing software environments that enable their devel- create a final picture. It is instructive to first explain the opment (Section IV). specific steps in the canonical pipeline before showing Until recently, GPU computing could best be described how the pipeline has become programmable. as an academic exercise. Because of the primitive nature of Vertex Operations: The input primitives are formed the tools and techniques, the first generation of applications from individual vertices. Each vertex must be transformed were notable for simply working at all. As the field matured, into screen space and shaded, typically through computing the techniques became more sophisticated and the compar- their interaction with the lights in the scene. Because isons with non-GPU work more rigorous. Our recent survey typical scenes have tens to hundreds of thousands of of the field (completed in November 2006) summarizes this vertices, and each vertex can be computed independently, age of GPU computing [1]. We are now entering the third this stage is well suited for parallel hardware. stage of GPU computing: building real applications on which Primitive Assembly: The vertices are assembled into GPUs demonstrate an appreciable advantage. triangles, the fundamental hardware-supported primitive For instance, as games have become increasingly limited in today’s GPUs.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    21 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us