Umpalumpa: a framework for efficient execution of complex image processing workloads on heterogeneous nodes

Authors

STŘELÁK David MYŠKA David PETROVIČ Filip POLÁK Jan OĽHA Jaroslav FILIPOVIČ Jiří

Year of publication 2023
Type Article in Periodical
Magazine / Source Computing
MU Faculty or unit

Institute of Computer Science

Citation
Web URL
Doi http://dx.doi.org/10.1007/s00607-023-01190-w
Keywords Image processing; task-based systems; auto-tuning; data-aware architecture; CUDA
Description Modern computers are typically heterogeneous devices—besides the standard central processing unit (CPU), they commonly include an accelerator such as a graphics processing unit (GPU). However, exploiting the full potential of such computers is challenging, especially when complex workloads consisting of multiple computationally demanding tasks are to be processed. This paper proposes a framework called Umpalumpa, which aims to manage complex workloads on heterogeneous computers. Umpalumpa combines three aspects that ease programming and optimize code performance. Firstly, it implements a data-centric design, where data are described by their physical properties (e. g., location in memory, size) and logical properties (e. g., dimensionality, shape, padding). Secondly, Umpalumpa utilizes task-based parallelism to schedule tasks on heterogeneous nodes. Thirdly, tasks can be dynamically autotuned on a source code level according to the hardware where the task is executed and the processed data. Altogether, Umpalumpa allows for implementing a complex workload, which is automatically executed on CPUs and accelerators, and allows autotuning to maximize the performance with the given hardware and data input. Umpalumpa focuses on image processing workloads, but the concept is generic and can be extended to different types of workloads. We demonstrate the usability of the proposed framework on two previously accelerated applications from cryogenic electron microscopy: 3D Fourier reconstruction and Movie alignment. We show that, compared to the original implementations, Umpalumpa reduces the complexity and improves the maintainability of the main applications’ loops while improving performance through automatic memory management and autotuning of the GPU kernels.
Related projects:

You are running an old browser version. We recommend updating your browser to its latest version.

More info