{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,1,13]],"date-time":"2026-01-13T22:43:59Z","timestamp":1768344239899,"version":"3.49.0"},"reference-count":28,"publisher":"Association for Computing Machinery (ACM)","issue":"3","license":[{"start":{"date-parts":[[2008,8,1]],"date-time":"2008-08-01T00:00:00Z","timestamp":1217548800000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["ACM Trans. Graph."],"published-print":{"date-parts":[[2008,8]]},"abstract":"<jats:p>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.<\/jats:p>","DOI":"10.1145\/1360612.1360618","type":"journal-article","created":{"date-parts":[[2008,8,5]],"date-time":"2008-08-05T13:35:10Z","timestamp":1217943310000},"page":"1-12","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":52,"title":["BSGP"],"prefix":"10.1145","volume":"27","author":[{"given":"Qiming","family":"Hou","sequence":"first","affiliation":[{"name":"Tsinghua University"}]},{"given":"Kun","family":"Zhou","sequence":"additional","affiliation":[{"name":"Microsoft Research Asia"}]},{"given":"Baining","family":"Guo","sequence":"additional","affiliation":[{"name":"Tsinghua University and Microsoft Research Asia"}]}],"member":"320","published-online":{"date-parts":[[2008,8]]},"reference":[{"key":"e_1_2_2_1_1","unstructured":"ARTIS 2004. X3DToolKit homepage. http:\/\/artis.imag.fr\/Software\/X3D\/.  ARTIS 2004. X3DToolKit homepage. http:\/\/artis.imag.fr\/Software\/X3D\/."},{"key":"e_1_2_2_2_1","unstructured":"ATI 2006. Researcher CTM documentation. http:\/\/ati.amd.com\/companyinfo\/researcher\/documents.html.  ATI 2006. Researcher CTM documentation. http:\/\/ati.amd.com\/companyinfo\/researcher\/documents.html."},{"key":"e_1_2_2_3_1","doi-asserted-by":"publisher","DOI":"10.1145\/1015706.1015800"},{"key":"e_1_2_2_4_1","doi-asserted-by":"publisher","DOI":"10.1145\/115372.115320"},{"key":"e_1_2_2_5_1","doi-asserted-by":"publisher","DOI":"10.1145\/1071866.1071869"},{"key":"e_1_2_2_6_1","doi-asserted-by":"crossref","unstructured":"Ford L. R. and Fulkerson D. R. 1962. Flows in Networks. Princeton University Press.  Ford L. R. and Fulkerson D. R. 1962. Flows in Networks . Princeton University Press.","DOI":"10.1515\/9781400875184"},{"key":"e_1_2_2_7_1","doi-asserted-by":"publisher","DOI":"10.1145\/800133.804339"},{"key":"e_1_2_2_8_1","volume-title":"Parallel and Distributed Processing Symposium, 45--54","author":"Gress A.","unstructured":"Gress , A. , and Zachmann , G . 2006. GPU-ABiSort: optimal parallel sorting on stream architectures . In Parallel and Distributed Processing Symposium, 45--54 . Gress, A., and Zachmann, G. 2006. GPU-ABiSort: optimal parallel sorting on stream architectures. In Parallel and Distributed Processing Symposium, 45--54."},{"key":"e_1_2_2_9_1","unstructured":"Harris M. Owens J. Sengupta S. Zhang Y. and Davidson A. 2007. CUDPP homepage. http:\/\/www.gpgpu.org\/developer\/cudpp\/.  Harris M. Owens J. Sengupta S. Zhang Y. and Davidson A. 2007. CUDPP homepage. http:\/\/www.gpgpu.org\/developer\/cudpp\/."},{"key":"e_1_2_2_10_1","doi-asserted-by":"publisher","DOI":"10.1016\/S0167-8191(98)00093-3"},{"key":"e_1_2_2_11_1","doi-asserted-by":"publisher","DOI":"10.1145\/1230100.1230129"},{"key":"e_1_2_2_12_1","doi-asserted-by":"publisher","DOI":"10.1145\/167962.165874"},{"key":"e_1_2_2_13_1","doi-asserted-by":"publisher","DOI":"10.1145\/1201775.882362"},{"key":"e_1_2_2_14_1","volume-title":"Metaprogramming GPUs with Sh","author":"McCool M.","unstructured":"McCool , M. , and Du Toit , S. 2004. Metaprogramming GPUs with Sh . AK Peters Ltd . McCool, M., and Du Toit, S. 2004. Metaprogramming GPUs with Sh. AK Peters Ltd."},{"key":"e_1_2_2_15_1","volume-title":"Proceedings of Graphics hardware, 57--68","author":"McCool M. D.","unstructured":"McCool , M. D. , Qin , Z. , and Popa , T. S . 2002. Shader metaprogramming . In Proceedings of Graphics hardware, 57--68 . McCool, M. D., Qin, Z., and Popa, T. S. 2002. Shader metaprogramming. In Proceedings of Graphics hardware, 57--68."},{"key":"e_1_2_2_16_1","doi-asserted-by":"publisher","DOI":"10.1145\/1015706.1015801"},{"key":"e_1_2_2_17_1","doi-asserted-by":"publisher","DOI":"10.1145\/383507.383520"},{"key":"e_1_2_2_18_1","unstructured":"NVIDIA 2007. CUDA homepage. http:\/\/developer.nvidia.com\/object\/cuda.html.  NVIDIA 2007. CUDA homepage. http:\/\/developer.nvidia.com\/object\/cuda.html."},{"key":"e_1_2_2_19_1","doi-asserted-by":"publisher","DOI":"10.1145\/280814.280857"},{"key":"e_1_2_2_20_1","doi-asserted-by":"publisher","DOI":"10.1145\/965333.965338"},{"key":"e_1_2_2_21_1","doi-asserted-by":"publisher","DOI":"10.1145\/344779.344976"},{"key":"e_1_2_2_22_1","volume-title":"Proceedings of Eurographics'07","author":"Popov S.","unstructured":"Popov , S. , G\u00fcnther , J. , Seidel , H.-P. , and Slusallek , P . 2007. Stackless kd-tree traversal for high performance gpu ray tracing . In Proceedings of Eurographics'07 , 415--424. Popov, S., G\u00fcnther, J., Seidel, H.-P., and Slusallek, P. 2007. Stackless kd-tree traversal for high performance gpu ray tracing. In Proceedings of Eurographics'07, 415--424."},{"key":"e_1_2_2_23_1","doi-asserted-by":"publisher","DOI":"10.1145\/383259.383275"},{"key":"e_1_2_2_24_1","unstructured":"Sengupta S. Harris M. Zhang Y. and Owens J. D. 2007. Scan primitives for gpu computing. In Graphics Hardware 97--106.   Sengupta S. Harris M. Zhang Y. and Owens J. D. 2007. Scan primitives for gpu computing. In Graphics Hardware 97--106."},{"key":"e_1_2_2_25_1","doi-asserted-by":"publisher","DOI":"10.1155\/1997\/532130"},{"key":"e_1_2_2_26_1","doi-asserted-by":"publisher","DOI":"10.1145\/1168857.1168898"},{"key":"e_1_2_2_27_1","doi-asserted-by":"publisher","DOI":"10.1145\/79173.79181"},{"key":"e_1_2_2_28_1","doi-asserted-by":"publisher","DOI":"10.1145\/103135.103136"}],"container-title":["ACM Transactions on Graphics"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/1360612.1360618","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/1360612.1360618","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T13:56:09Z","timestamp":1750254969000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/1360612.1360618"}},"subtitle":["bulk-synchronous GPU programming"],"short-title":[],"issued":{"date-parts":[[2008,8]]},"references-count":28,"journal-issue":{"issue":"3","published-print":{"date-parts":[[2008,8]]}},"alternative-id":["10.1145\/1360612.1360618"],"URL":"https:\/\/doi.org\/10.1145\/1360612.1360618","relation":{},"ISSN":["0730-0301","1557-7368"],"issn-type":[{"value":"0730-0301","type":"print"},{"value":"1557-7368","type":"electronic"}],"subject":[],"published":{"date-parts":[[2008,8]]},"assertion":[{"value":"2008-08-01","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}