Exploiting the Parallelism of Heterogeneous Systems using Dataflow Graphs on Top of OpenCL
Computer Engineering and Networks Laboratory, ETH Zurich, 8092 Zurich, Switzerland
IEEE Symposium on Embedded Systems for Real-time Multimedia (ESTIMedia), 2013
@inproceedings{stst2013a,
author={Lars Schor and Andreas Tretter and Tobias Scherer and Lothar Thiele},
title={Exploiting the Parallelism of Heterogeneous Systems using Dataflow Graphs on Top of OpenCL},
address={Montreal, Canada},
booktitle={Proc. IEEE Symposium on Embedded Systems for Real-time Multimedia (ESTIMedia)},
publisher={IEEE},
month={Oct},
year={2013}
}
Programming heterogeneous systems has been greatly simplified by OpenCL, which provides a common low-level API for a large variety of compute devices. However, many low-level details, including data transfer, task scheduling, or synchronization, must still be managed by the application designer. Often, it is desirable to program heterogeneous systems in a higher-level language, making the developing process faster and less error-prone. In this paper, we introduce a framework to efficiently execute applications specified as synchronous dataflow graphs (SDF) on heterogeneous systems by means of OpenCL. In our approach, actors are embedded into OpenCL kernels and data channels are automatically instantiated to improve memory access latencies and end-to-end performance. The multilevel parallelism resulting from the hierarchical structure of heterogeneous systems is exploited by applying two techniques. Pipeline and task parallelism are used to distribute the application to the different compute devices and data-parallelism is used to concurrently process independent actor firings or even output tokens in a SIMD fashion. We demonstrate that the proposed framework can be used by application designers to efficiently exploit the parallelism of heterogeneous systems without writing low-level architecture dependent code.
August 13, 2013 by hgpu