Combining high productivity and high performance in image processing using single assignment C on multi-core CPUs and many-core GPUs

V. Wieser, C. Grelck, J. Guo, P. Haslinger, F. Korzeniowski, B. Moser, S. Scholz. Combining high productivity and high performance in image processing using single assignment C on multi-core CPUs and many-core GPUs. Journal of Electronic Imaging, volume 21, number 2, pages DOI: 10.1117/1.JEI.21.2.021116, 7, 2012.

Autoren
  • Volkmar Wieser
  • Clemens Grelck
  • Jing Guo
  • Peter Haslinger
  • Filip Korzeniowski
  • Bernhard Moser
  • Sven-Bodo Scholz
TypArtikel
JournalJournal of Electronic Imaging
Nummer2
Band21
ISSN1017-9909
Monat7
Jahr2012
SeitenDOI: 10.1117/1.JEI.21.2.021116
Abstract

In this paper the challenge of parallelization development of industrial high performance inspection systems is addressed concerning a conventional parallelization approach versus an auto-parallelized technique. Therefore, we introduce the functional array processing language Single Assignment C (SaC), which relies on a hardware virtualization concept for automated, parallel machine code generation for multicore CPUs and GPUs. Additional, software engineering aspects like programmability, productivity, understandability, maintainability and resulting achieved gain in performance are discussed from the point of view of a developer. With several illustrative benchmarking examples from the field of image processing and machine learning, the relationship between runtime performance and efficiency of development is analyzed.