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

被引:52
作者
Tarditi, David
Puri, Sidd
Oglesby, Jose
机构
关键词
measurement; performance; experimentation; languages; graphics processing units; data parallelism; just-in-time compilation;
D O I
10.1145/1168918.1168898
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
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.
引用
收藏
页码:325 / 335
页数:11
相关论文
共 21 条
[1]  
[Anonymous], IEEE INT C AC SPEECH
[2]  
BLELLOCH GE, 1993, CMUCS93129
[3]   The Direct3D 10 system [J].
Blythe, David .
ACM TRANSACTIONS ON GRAPHICS, 2006, 25 (03) :724-734
[4]  
BUCK I, 2004, T GRAPHICS, V23, P3
[5]   AN APL COMPILER FOR A VECTOR PROCESSOR [J].
BUDD, TA .
ACM TRANSACTIONS ON PROGRAMMING LANGUAGES AND SYSTEMS, 1984, 6 (03) :297-313
[6]   FANTASTIC COMBINATIONS OF JOHN CONWAYS NEW SOLITAIRE GAME LIFE [J].
GARDNER, M .
SCIENTIFIC AMERICAN, 1970, 223 (04) :120-&
[7]  
Guibas Leo J, 1978, P 5 ANN ACM S PRINC, P1
[8]  
LASTRA A, 2004, 2004 ACM WORKSH GEN
[9]  
LIN C, 1993, LANGUAGES COMPILERS, P96
[10]  
Lindholm E, 2001, COMP GRAPH, P149, DOI 10.1145/383259.383274