Tampere University of Technology

TUTCRIS Research Portal

Design Flow for Portable Dataflow Programming of Heterogeneous Platforms

Research output: Chapter in Book/Report/Conference proceedingConference contributionScientificpeer-review

Details

Original languageEnglish
Title of host publication2018 Conference on Design and Architectures for Signal and Image Processing
PublisherIEEE
ISBN (Electronic)978-1-5386-8237-1
ISBN (Print)978-1-5386-8238-8
DOIs
Publication statusPublished - Oct 2018
Publication typeA4 Article in a conference publication
EventConference on Design and Architectures for Signal and Image Processing -
Duration: 1 Jan 1900 → …

Conference

ConferenceConference on Design and Architectures for Signal and Image Processing
Period1/01/00 → …

Abstract

The processing platforms of contemporary mobile devices are commonly built around System-on-Chip (SoC) solutions that contain general purpose processor cores (GPPs), digital signal processors, accelerator circuits, and possibly a graphics processing unit (GPU) as processing resources. Software design for such SoCs can be very time-consuming, as the various processing resource types (e.g. GPPs and GPUs) conventionally require different languages to be programmed. For example, GPUs are programmed via CUDA or OpenCL, whereas GPPs are commonly programmed in C++. As a consequence, code that has originally been written for one processing resource, cannot necessarily be executed on a different processing resource type. This paper presents a novel design flow that addresses this code portability challenge. On a high level the application is described using a dataflow graph, whereas the detailed functionality of application components is written in Halide, a performance portable language that provides code generation for OpenCL, CUDA, HVX DSP, ARM and x86 targets. The proposed design flow is built around PRUNE, a recent dataflow programming framework. The functionality of the design flow is presented with three case study applications, and the measurements show an average speedup of 9.3x over single-core C code when the proposed design flow is used.

Publication forum classification

Field of science, Statistics Finland