skip to main content
article

Accelerator: using data parallelism to program GPUs for general-purpose uses

Published:20 October 2006Publication History
Skip Abstract Section

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.

References

  1. BLELLOCH, G. E. NESL: A Nested Data-Parallel Language. Tech. Rep. CMU-CS-93-129, April 1993. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. BLYTHE, D. The Direct3D 10 System. Transactions on Graphics 25, 3 (Aug. 2006), 724--734. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  4. BUDD, T.A. An APL compiler for a vector processor. ACM Transactions on Programming Languages and Systems 6, 3 (July 1984), 297--313. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. E. TRUCCO, AND VERRI, A. Introductory Techniques for 3-D Computer Vision. Prentice Hall, 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. GARDNER, M. The fantastic combinations of John Conway's new solitaire game "life". Scientific American 223 (1970), 120--123.Google ScholarGoogle ScholarCross RefCross Ref
  7. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  8. 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 ScholarGoogle Scholar
  9. LIN, C., AND SNYDER, L. ZPL: An array sublanguage. In Languages and Compilers for Parallel Computing (1993), pp. 96--114. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  11. LUCAS, B., AND KANADE, T. An iterative image registration technique with an application to stereo vision. In IJCAI81 (1981), pp. 674--679.Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. 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 ScholarGoogle ScholarCross RefCross Ref
  13. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  14. MCCOOL, M., AND TOIT, S.D. Metaprogramming GPUs with Sh. A K Peters, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. MONTRYM, J., AND MORETON, H. The GeForce 6800. IEEE Micro (March-April 2005), 41--51. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. PHARR, M., AND FERNANDO, R., Eds. GPUGems2: Programming Techniques for High-Performance Graphics and General-Purpose Computation. Addison-Wesley, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. RICHARDSON, I.E.G. Video Codec Design. John Wiley & Sons, 2002.Google ScholarGoogle Scholar
  18. SABOT, G.W. The Paralation Model: Architecture-Independent Parallel Programming (Artificial Intelligence). The MIT Press, 1988. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. SCHARSTEIN, D., SZELISKI, R., AND ZABIH, R. A taxonomy and evaluation of dense two-frame stereo correspondence algorithms, 2001.Google ScholarGoogle Scholar
  20. 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 ScholarGoogle Scholar
  21. SHI, J., AND TOMASI, C. Good features to track. In IEEE Conference on Computer Vision and Pattern Recognition (CVPR'94) (Seattle, June 1994).Google ScholarGoogle Scholar

Index Terms

  1. Accelerator: using data parallelism to program GPUs for general-purpose uses

        Recommendations

        Comments

        Login options

        Check if you have access through your login credentials or your institution to get full access on this article.

        Sign in

        Full Access

        • Published in

          cover image ACM SIGARCH Computer Architecture News
          ACM SIGARCH Computer Architecture News  Volume 34, Issue 5
          Proceedings of the 2006 ASPLOS Conference
          December 2006
          425 pages
          ISSN:0163-5964
          DOI:10.1145/1168919
          Issue’s Table of Contents
          • cover image ACM Conferences
            ASPLOS XII: Proceedings of the 12th international conference on Architectural support for programming languages and operating systems
            October 2006
            440 pages
            ISBN:1595934510
            DOI:10.1145/1168857

          Copyright © 2006 ACM

          Publisher

          Association for Computing Machinery

          New York, NY, United States

          Publication History

          • Published: 20 October 2006

          Check for updates

          Qualifiers

          • article

        PDF Format

        View or Download as a PDF file.

        PDF

        eReader

        View online with eReader.

        eReader
        About Cookies On This Site

        We use cookies to ensure that we give you the best experience on our website.

        Learn more

        Got it!