Code Generation for Embedded Heterogeneous Architectures on Android

Richard Membarth, Oliver Reiche, Frank Hannig, Jürgen Teich · 2016

Abstract—The success of Android is based on its unified Java programming model that allows to write platform-independent pro-grams for a variety of different target platforms. However, this comes at the cost of performance. As a consequence, Google intro-duced APIs that allow to write native applications and to exploit multiple cores as well as embedded GPUs for compute-intensive parts. This paper proposes code generation techniques in order to target the Renderscript and Filterscript APIs. Renderscript har-nesses multi-core CPUs and unified shader GPUs, while the more restricted Filterscript also supports GPUs with earlier shader mod-els. Our techniques focus on image processing applications and allow to target these APIs and OpenCL from a common description. We further supersede memory transfers by sharing the same memory region among different processing elements on HSA platforms. As reference, we use an embedded platform hosting a multi-core ARM CPU and an ARM Mali GPU. We show that our generated source code is faster than native implementations in OpenCV as well as the pre-implemented script intrinsics provided by Google for acceleration on the embedded GPU. I.

Read the paper · More papers on PaperTik