Accelerator
- 20 October 2006
- journal article
- Published by Association for Computing Machinery (ACM) in ACM SIGOPS Operating Systems Review
- Vol. 40 (5), 325-335
- https://doi.org/10.1145/1168917.1168898
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.Keywords
This publication has 9 references indexed in Scilit:
- The Direct3D 10 systemACM Transactions on Graphics, 2006
- The GeForce 6800IEEE Micro, 2005
- High-quality linear interpolation for demosaicing of Bayer-patterned color imagesPublished by Institute of Electrical and Electronics Engineers (IEEE) ,2004
- Brook for GPUsACM Transactions on Graphics, 2004
- CgACM Transactions on Graphics, 2003
- A user-programmable vertex enginePublished by Association for Computing Machinery (ACM) ,2001
- An APL Compiler for a Vector ProcessorACM Transactions on Programming Languages and Systems, 1984
- Compilation and delayed evaluation in APLPublished by Association for Computing Machinery (ACM) ,1978
- Mathematical GamesScientific American, 1970