BSGP: bulk-synchronous GPU programming. 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.

This software is also peer reviewed by journal TOMS.

References in zbMATH (referenced in 5 articles )

Showing results 1 to 5 of 5.
Sorted by year (citations)

  1. Klöckner, Andreas; Pinto, Nicolas; Lee, Yunsup; Catanzaro, Bryan; Ivanov, Paul; Fasih, Ahmed: PyCUDA and PyOpenCL: a scripting-based approach to GPU run-time code generation (2012) ioport
  2. Andon, P. I.; Doroshenko, A. Yu.; Zhereb, K. A.: Programming high-performance parallel computations: formal models and graphics processing units (2011) ioport
  3. Goodrich, Michael T.; Mitzenmacher, Michael: Privacy-preserving access of outsourced data via oblivious RAM simulation (2011)
  4. Valiant, Leslie G.: A bridging model for multi-core computing (2011)
  5. Hou, Qiming; Zhou, Kun; Guo, Baining: BSGP: Bulk-synchronous GPU programming. (2008) ioport