CUDABlock: A GUI Programming Tool for CUDA - Hsih-Hsin Lin; Chia-Heng Tu; Yuan-Shin Hwang (Proceedings - International Workshops on Parallel Processing, 2015)
Recent advances in graphics processing units (GPUs) 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 joe programmers, who might be professionals in specific domains, but not experts in parallel programming. This paper presents a GUI tool called CUDA Block that can facilitate parallel programming on multicore computer systems. CUDA Block is developed based on the Open Blocks framework, an extendable tool for graphical programming, to construct the GUI-based programming environment for CUDA parallel computing platform. 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. CUDA Block can then export block-based code to CUDA programs. Furthermore, a couple of optimization constructs have also been also offered for rapid program optimization. Preliminary experimental results have shown that the generated CUDA programs can achieve reasonable speedups on GPUs. Consequently, CUDA Block can be used as a tool for fast prototyping of GPU applications or a platform for education of parallel programming.