TY - JOUR
T1 - GPUBlocks
T2 - GUI Programming Tool for CUDA and OpenCL
AU - Hwang, Yuan Shin
AU - Lin, Hsih Hsin
AU - Pai, Shen Hung
AU - Tu, Chia Heng
N1 - Funding Information:
Acknowledgment This work was supported in part by the Ministry of Science and Technology of Taiwan under Grants MOST 104-2622-8-002-002, MOST 105-2622-8-002-002, MOST 104-2221-E-011-007, and MOST 105-2221-E-011-069-MY3, and sponsored by MediaTek Inc., Hsin-chu, Taiwan.
Publisher Copyright:
© 2018, Springer Science+Business Media, LLC, part of Springer Nature.
PY - 2019/3/1
Y1 - 2019/3/1
N2 - Recent advances in general-purpose graphics processing units (GPGPUs) have resulted in massively parallel hardware that is widely available to achieve high performance in desktop, notebook, and even mobile computer systems. While multicore technology has become the norm of modern computers, programming such systems requires the understanding of underlying hardware architecture and hence posts a great challenge for average programmers, who might be professionals in specific domains, but not experts in parallel programming. This paper presents a GUI tool called GPUBlocks that can facilitate parallel programming on multicore computer systems. GPUBlocks is developed based on the OpenBlocks framework, an extendable tool for graphical programming, to construct the GUI-based programming environment for CUDA and OpenCL parallel computing platforms. Programmers simply need to drag-n-drop blocks, fill the fields of the blocks, and connect them according to array or matrix computations that are specified by algorithms. GPUBlocks can then translate block-based code to CUDA or OpenCL programs. Furthermore, a couple of optimization constructs have also been offered for rapid program optimization. Experimental results have shown that the generated CUDA and OpenCL programs can achieve reasonable speedups on GPUs. Consequently, GPUBlocks can be used as a tool for fast prototyping of GPU applications or a platform for educational parallel programming.
AB - Recent advances in general-purpose graphics processing units (GPGPUs) have resulted in massively parallel hardware that is widely available to achieve high performance in desktop, notebook, and even mobile computer systems. While multicore technology has become the norm of modern computers, programming such systems requires the understanding of underlying hardware architecture and hence posts a great challenge for average programmers, who might be professionals in specific domains, but not experts in parallel programming. This paper presents a GUI tool called GPUBlocks that can facilitate parallel programming on multicore computer systems. GPUBlocks is developed based on the OpenBlocks framework, an extendable tool for graphical programming, to construct the GUI-based programming environment for CUDA and OpenCL parallel computing platforms. Programmers simply need to drag-n-drop blocks, fill the fields of the blocks, and connect them according to array or matrix computations that are specified by algorithms. GPUBlocks can then translate block-based code to CUDA or OpenCL programs. Furthermore, a couple of optimization constructs have also been offered for rapid program optimization. Experimental results have shown that the generated CUDA and OpenCL programs can achieve reasonable speedups on GPUs. Consequently, GPUBlocks can be used as a tool for fast prototyping of GPU applications or a platform for educational parallel programming.
UR - http://www.scopus.com/inward/record.url?scp=85050640736&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=85050640736&partnerID=8YFLogxK
U2 - 10.1007/s11265-018-1395-2
DO - 10.1007/s11265-018-1395-2
M3 - Article
AN - SCOPUS:85050640736
SN - 1939-8018
VL - 91
SP - 235
EP - 245
JO - Journal of Signal Processing Systems
JF - Journal of Signal Processing Systems
IS - 3-4
ER -