BSGP: Bulk-synchronous GPU programming

BSGP: Bulk-synchronous GPU programming
复制标题

DOI:
10.1145/1360612.1360618
复制
发表时间:
2008-08-01
影响因子:
6.2
通讯作者:
Guo, Baining
Guo, Baining
中科院分区:
计算机科学1区
文献类型:
--
作者:
Hou, Qiming;Zhou, Kun;Guo, Baining

文献摘要

被引文献

相似文献

我们介绍BSGP。一种新的编程语言,用于GPU上的通用计算。BSGP程序看起来与顺序C程序非常相似。程序员只需要提供最少的额外信息来描述GPU上的并行处理。因此,BSGP程序易于阅读,编写。并保持。此外,编程的便利性并不以牺牲性能为代价。设计良好的BSGP编译器将BSGP程序转换为内核,并使用最佳分配的临时流将它们组合在一起。在我们的基准测试中,BSGP程序实现了与优化良好的CUDA程序相似或更好的性能。而源代码复杂度和编程时间显著降低。为了测试BSGP的代码效率和编程的易用性,我们实现了各种GPU应用程序,包括一个高度复杂的X3D解析器,使用现有的GPU编程语言很难开发。
We present BSGP. a new programming language for general purpose computation on the GPU. A BSGP program looks much the same as a sequential C program. Programmers only need to supply a bare Minimum of extra information to describe parallel processing on GPUs. As a result, BSGP programs are easy to read, write. and maintain. Moreover, the ease of programming does not come at the cost of performance. A well-designed BSGP compiler converts BSGP programs to kernels and combines them using optimally allocated temporary streams. In our benchmark, BSGP programs achieve similar or better performance than well-optimized CUDA programs. while the source code complexity and programming time are significantly reduced. To test BSGP's code efficiency and ease of programming, we implemented a variety of GPU applications, including a highly sophisticated X3D parser that would be extremely difficult to develop with existing GPU programming languages.