Combining high productivity and high performance in image processing using single assignment C on multi-core CPUs and many-core GPUs
| Authors |
|
|---|---|
| Publication date | 2012 |
| Journal | Journal of Electronic Imaging |
| Volume | Issue number | 21 | 2 |
| Pages (from-to) | 021116 |
| Number of pages | 25 |
| Organisations |
|
| Abstract |
We address the challenge of parallelization development of industrial high-performance inspection systems comparing 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 multi-core 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.
|
| Document type | Article |
| Language | English |
| Published at | https://doi.org/10.1117/1.JEI.21.2.021116 |
| Downloads |
combining.pdf
(Submitted manuscript)
|
| Permalink to this page | |