GPUBlocks

GUI Programming Tool for CUDA and OpenCL

Yuan Shin Hwang, Hsih Hsin Lin, Shen Hung Pai, ChiaHeng Tu

Research output: Contribution to journalArticle

1 Citation (Scopus)

Abstract

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.

Original languageEnglish
Pages (from-to)235-245
Number of pages11
JournalJournal of Signal Processing Systems
Volume91
Issue number3-4
DOIs
Publication statusPublished - 2019 Mar 1

Fingerprint

Parallel programming
Parallel Programming
Graphical user interfaces
Programming
Computer systems
Hardware
Matrix Computation
Computer systems programming
Programming Environments
Hardware Architecture
Optimization
Prototyping
Graphics Processing Unit
Parallel processing systems
Parallel Computing
Drag
High Performance
Norm
Experimental Results
Graphics processing unit

All Science Journal Classification (ASJC) codes

  • Control and Systems Engineering
  • Theoretical Computer Science
  • Signal Processing
  • Information Systems
  • Modelling and Simulation
  • Hardware and Architecture

Cite this

Hwang, Yuan Shin ; Lin, Hsih Hsin ; Pai, Shen Hung ; Tu, ChiaHeng. / GPUBlocks : GUI Programming Tool for CUDA and OpenCL. In: Journal of Signal Processing Systems. 2019 ; Vol. 91, No. 3-4. pp. 235-245.
@article{d60b1edd73684906a6dd3194ce1e0399,
title = "GPUBlocks: GUI Programming Tool for CUDA and OpenCL",
abstract = "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.",
author = "Hwang, {Yuan Shin} and Lin, {Hsih Hsin} and Pai, {Shen Hung} and ChiaHeng Tu",
year = "2019",
month = "3",
day = "1",
doi = "10.1007/s11265-018-1395-2",
language = "English",
volume = "91",
pages = "235--245",
journal = "Journal of Signal Processing Systems",
issn = "1939-8018",
publisher = "Springer New York",
number = "3-4",

}

GPUBlocks : GUI Programming Tool for CUDA and OpenCL. / Hwang, Yuan Shin; Lin, Hsih Hsin; Pai, Shen Hung; Tu, ChiaHeng.

In: Journal of Signal Processing Systems, Vol. 91, No. 3-4, 01.03.2019, p. 235-245.

Research output: Contribution to journalArticle

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, ChiaHeng

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

VL - 91

SP - 235

EP - 245

JO - Journal of Signal Processing Systems

JF - Journal of Signal Processing Systems

SN - 1939-8018

IS - 3-4

ER -