Evolution and trends in GPU computing

Central Processing Units (CPUs) are task-parallel, latency-oriented processors, while Graphics Processing Units (GPUs) are data-parallel, throughput oriented processors. Besides their traditional use as graphics coprocessors, the GPUs have been used in recent years for general purpose computations, too. Rapid development of graphics hardware led to an extensive use in both scientific and commercial applications. Numerous papers report high speedups in various domains. This paper presents an effort to bring GPU computing closer to programmers and wider community of users. GPU computing is explored through NVIDIA Compute Unified Device Architecture (CUDA) that is currently the most mature application programming interface (API) for general purpose computation on GPUs.

[1]  Dorde M. Durdevic,et al.  Domino Tiling: A New Method of Real-Time Conforming Mesh Construction for Rendering Changeable Height Fields , 2011, Journal of Computer Science and Technology.

[2]  Daniel Cederman Concurrent Algorithms and Data Structures for Many-Core Processors , 2011 .

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

[4]  Jens H. Krüger,et al.  A Survey of General‐Purpose Computation on Graphics Hardware , 2007, Eurographics.

[5]  Kait Kasak A Practical Quicksort Algorithm for Graphics Processors , 2011 .

[6]  Milo V. Tomasevic,et al.  Data sorting using graphics processing units , 2011, 2011 19thTelecommunications Forum (TELFOR) Proceedings of Papers.

[7]  Michael Garland,et al.  Designing efficient sorting algorithms for manycore GPUs , 2009, 2009 IEEE International Symposium on Parallel & Distributed Processing.

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

[9]  John E. Stone,et al.  An asymmetric distributed shared memory model for heterogeneous parallel systems , 2010, ASPLOS XV.

[10]  William J. Dally,et al.  The GPU Computing Era , 2010, IEEE Micro.

[11]  Jie Cheng,et al.  Programming Massively Parallel Processors. A Hands-on Approach , 2010, Scalable Comput. Pract. Exp..

[12]  William J. Dally,et al.  GPUs and the Future of Parallel Computing , 2011, IEEE Micro.

[13]  Jie Cheng,et al.  CUDA by Example: An Introduction to General-Purpose GPU Programming , 2010, Scalable Comput. Pract. Exp..

[14]  John D. Owens,et al.  GPU Computing , 2008, Proceedings of the IEEE.

[15]  Guy E. Blelloch,et al.  Prefix sums and their applications , 1990 .