This Article 
   
 Share 
   
 Bibliographic References 
   
 Add to: 
 
Digg
Furl
Spurl
Blink
Simpy
Google
Del.icio.us
Y!MyWeb
 
 Search 
   
Joint Forces: From Multithreaded Programming to GPU Computing
January/February 2011 (vol. 28 no. 1)
pp. 51-57
Frank Feinbube, University of Potsdam
Peter Troger, University of Potsdam
Andreas Polze, University of Potsdam
Desktop software developers' interest in graphics hardware is increasing as a result of modern graphics cards' capabilities to act as compute devices that augment the main processor. This capability means parallel computing is no longer a dedicated task for the CPU. A trend toward heterogeneous computing combines the main processor and graphics processing unit (GPU). This overview of how to utilize GPU compute power in the best possible way includes explanations of the primary GPU hardware concepts and the corresponding programming principles. On this foundation, the authors discuss a collection of commonly agreed-upon critical performance optimization strategies that are the key factor for getting true scalability and performance improvements when moving parts of your application from a multithreaded to a GPU-enhanced version.

1. K. Asanovic et al., The Landscape of Parallel Computing Research: A View from Berkeley, tech. report UCB/EECS-2006-183, Univ. of California, Berkeley, Dec. 2006.
2. The OpenCL Specification–Version 1.1, Khronos OpenCL Working Group, Sept. 2010; www.khronos.org/registrycl.
3. V.W. Lee, "Debunking the 100X GPU vs. CPU Myth: An Evaluation of Throughput Computing on CPU and GPU," Proc. 37th Ann. Int'l Symp. Computer Architecture (ISCA 10), ACM Press, 2010, pp. 451–460.
4. S.-Z. Ueng et al., "CUDA-Lite: Reducing GPU Programming Complexity," Proc. 21th Int'l Workshop Languages and Compilers for Parallel Computing (LCPC 08), LNCS 5335, Springer, 2008, pp. 1–15.
5. Advanced Micro Devices, ATI Stream Computing OpenCL Programming Guide, June 2010; http://developer.amd.com/zones/OpenCLZone/ programming/Pagesdefault.aspx.
6. Nvidia, Nvidia OpenCL Best Practices Guide, Version 2.3, Aug. 2009; www.nvidia.com/objectcuda_opencl_new.html.

Index Terms:
graphics processors, optimization, parallel processors, SIMD processors
Citation:
Frank Feinbube, Peter Troger, Andreas Polze, "Joint Forces: From Multithreaded Programming to GPU Computing," IEEE Software, vol. 28, no. 1, pp. 51-57, Jan.-Feb. 2011, doi:10.1109/MS.2010.134
Usage of this product signifies your acceptance of the Terms of Use.