RT info:eu-repo/semantics/article T1 Fancier: a unified framework for Java, C, and OpenCL integration A1 Almeida Rodríguez, Francisco Carmelo A1 Afonso Fumero, Sergio Manuel A2 Ingeniería Informática y de Sistemas A2 Grupo de Computación de Altas Prestaciones K1 Application programming interfaces K1 hardware acceleration K1 heterogeneous systems K1 image processing K1 mobile computing K1 parallel programming K1 performance analysis AB Graphics Processing Units (GPUs) have evolved from very specialized designs geared towardscomputer graphics to accommodate general-purpose highly-parallel workloads. Harnessing the performancethat these accelerators provide requires the use of specialized native programming interfaces, such as CUDAor OpenCL, or higher-level programming models like OpenMP or OpenACC. However, on managed programming languages, offloading execution into GPUs is much harder and error-prone, mainly due to the needto call through a native API (Application Programming Interface), and because of mismatches between valueand reference semantics. The Fancier framework provides a unified interface to Java, C/C++, and OpenCLC compute kernels, together with facilities to smooth the transitions between these programming languages.This combination of features makes GPU acceleration on Java much more approachable. In addition, FancierJava code can be directly translated into equivalent C/C++ or OpenCL C code easily, which simplifiesthe implementation of higher-level abstractions targeting GPU or parallel execution on Java. Furthermore,it reduces the programming effort without adding significant overhead on top of the necessary OpenCL andJava Native Interface (JNI) API calls. We validate our approach on several image processing workloadsrunning on different Android devices. YR 2021 FD 2021 LK http://riull.ull.es/xmlui/handle/915/35032 UL http://riull.ull.es/xmlui/handle/915/35032 LA en DS Repositorio institucional de la Universidad de La Laguna RD 07-jul-2024