Abstract
GPUs are difficult to program for general-purpose uses. Programmers can either learn graphics APIs and convert their applications to use graphics pipeline operations or they can use stream programming abstractions of GPUs. We describe Accelerator, a system that uses data parallelism to program GPUs for general-purpose uses instead. Programmers use a conventional imperative programming language and a library that provides only high-level data-parallel operations. No aspects of GPUs are exposed to programmers. The library implementation compiles the data-parallel operations on the fly to optimized GPU pixel shader code and API calls.We describe the compilation techniques used to do this. We evaluate the effectiveness of using data parallelism to program GPUs by providing results for a set of compute-intensive benchmarks. We compare the performance of Accelerator versions of the benchmarks against hand-written pixel shaders. The speeds of the Accelerator versions are typically within 50% of the speeds of hand-written pixel shader code. Some benchmarks significantly outperform C versions on a CPU: they are up to 18 times faster than C code running on a CPU.
- BLELLOCH, G. E. NESL: A Nested Data-Parallel Language. Tech. Rep. CMU-CS-93-129, April 1993. Google Scholar
Digital Library
- BLYTHE, D. The Direct3D 10 System. Transactions on Graphics 25, 3 (Aug. 2006), 724--734. Google Scholar
Digital Library
- BUCK, I., FOLEY, T., HORN, D., SUGERMAN, J., FATAHALIAN, K., HOUSTON, M., AND HANRAHAN, P. Brook for GPUs: Stream computing on graphics hardware. Transactions on Graphics 23, 3 (Aug. 2004). Google Scholar
Digital Library
- BUDD, T.A. An APL compiler for a vector processor. ACM Transactions on Programming Languages and Systems 6, 3 (July 1984), 297--313. Google Scholar
Digital Library
- E. TRUCCO, AND VERRI, A. Introductory Techniques for 3-D Computer Vision. Prentice Hall, 1998. Google Scholar
Digital Library
- GARDNER, M. The fantastic combinations of John Conway's new solitaire game "life". Scientific American 223 (1970), 120--123.Google Scholar
Cross Ref
- GUIBAS, L.J., AND WYATT, D.K. Compilation and delayed evaluation in APL. In POPL '78: Proceedings of the 5th ACM SIGACT-SIGPLAN symposium on Principles of programming languages (New York, NY, USA, 1978), ACM Press, pp. 1--8. Google Scholar
Digital Library
- LASTRA, A., LIN, M., AND MONOCHA, D., Eds. 2004 ACM Workshop on General-Purpose Computing on Graphics Processors (August 2004). http://www.cs.unc.edu/Events/Conferences/GP2/.Google Scholar
- LIN, C., AND SNYDER, L. ZPL: An array sublanguage. In Languages and Compilers for Parallel Computing (1993), pp. 96--114. Google Scholar
Digital Library
- LINDHOLM, E., KILGARD, M.J., AND MORETON, H. A userprogrammable vertex engine. In Proceedings of the 28th Annual Conference on Computer Graphics and Interactive Techniques (2001), ACM, pp. 149--158. Google Scholar
Digital Library
- LUCAS, B., AND KANADE, T. An iterative image registration technique with an application to stereo vision. In IJCAI81 (1981), pp. 674--679.Google Scholar
Digital Library
- MALVAR, H.S., WEI HE, L., AND CUTLER, R. High-quality linear interpolation for demosaicing of bayer-patterned color images. In IEEE International Conference on Acoustics, Speech, and Signal Processing (ICASSP) (2004).Google Scholar
Cross Ref
- MARK, W.R., GLANVILLE, R.S., AKELEY, K., AND KILGARD, M.J. Cg: A system for programming graphics in a c-like language. Transactions on Graphics 22, 3 (2003), 896--907. Google Scholar
Digital Library
- MCCOOL, M., AND TOIT, S.D. Metaprogramming GPUs with Sh. A K Peters, 2004. Google Scholar
Digital Library
- MONTRYM, J., AND MORETON, H. The GeForce 6800. IEEE Micro (March-April 2005), 41--51. Google Scholar
Digital Library
- PHARR, M., AND FERNANDO, R., Eds. GPUGems2: Programming Techniques for High-Performance Graphics and General-Purpose Computation. Addison-Wesley, 2005. Google Scholar
Digital Library
- RICHARDSON, I.E.G. Video Codec Design. John Wiley & Sons, 2002.Google Scholar
- SABOT, G.W. The Paralation Model: Architecture-Independent Parallel Programming (Artificial Intelligence). The MIT Press, 1988. Google Scholar
Digital Library
- SCHARSTEIN, D., SZELISKI, R., AND ZABIH, R. A taxonomy and evaluation of dense two-frame stereo correspondence algorithms, 2001.Google Scholar
- SCHOLZ, S.-B. Single assignment C - Functional programming using imperative style. In Proceedings of the 6th International Workshop on Implementation of Functional Languages (IFL94) (1994), pp. 21.1--21.13.Google Scholar
- SHI, J., AND TOMASI, C. Good features to track. In IEEE Conference on Computer Vision and Pattern Recognition (CVPR'94) (Seattle, June 1994).Google Scholar
Index Terms
Accelerator: using data parallelism to program GPUs for general-purpose uses
Recommendations
Accelerator: using data parallelism to program GPUs for general-purpose uses
Proceedings of the 2006 ASPLOS ConferenceGPUs are difficult to program for general-purpose uses. Programmers can either learn graphics APIs and convert their applications to use graphics pipeline operations or they can use stream programming abstractions of GPUs. We describe Accelerator, a ...
Accelerator: using data parallelism to program GPUs for general-purpose uses
ASPLOS XII: Proceedings of the 12th international conference on Architectural support for programming languages and operating systemsGPUs are difficult to program for general-purpose uses. Programmers can either learn graphics APIs and convert their applications to use graphics pipeline operations or they can use stream programming abstractions of GPUs. We describe Accelerator, a ...
Accelerator: using data parallelism to program GPUs for general-purpose uses
Proceedings of the 2006 ASPLOS ConferenceGPUs are difficult to program for general-purpose uses. Programmers can either learn graphics APIs and convert their applications to use graphics pipeline operations or they can use stream programming abstractions of GPUs. We describe Accelerator, a ...






Comments