Title
Design Flow for Portable Dataflow Programming of Heterogeneous Platforms
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.3× over single-core C code when the proposed design flow is used.
Year
DOI
Venue
2018
10.1109/DASIP.2018.8596931
2018 Conference on Design and Architectures for Signal and Image Processing (DASIP)
Keywords
Field
DocType
dataflow programming,parallel processing,digital signal processing
Computer science,CUDA,Parallel computing,Code generation,Dataflow,Dataflow programming,Software portability,Graphics processing unit,Multi-core processor,Speedup
Conference
ISSN
ISBN
Citations 
2164-9766
978-1-5386-8238-8
1
PageRank 
References 
Authors
0.37
12
2
Name
Order
Citations
PageRank
Jani Boutellier113725.36
Henri Lunnikivi210.37