StreamBlocks: A compiler for heterogeneous dataflow computing (technical report)
Endri Bezati, Mahyar Emami, J\"orn Janneck, James Larus

TL;DR
StreamBlocks is an open-source compiler and runtime that simplifies partitioning computations between CPUs and FPGAs using the CAL dataflow language, enabling efficient exploration of hardware-software configurations.
Contribution
It introduces a unified compiler and runtime for heterogeneous platforms that leverages dataflow semantics to optimize parallelism and partitioning.
Findings
Supports both CPU thread parallelism and FPGA parallelism
Includes a profile-guided tool for optimal partitioning
Simplifies exploration of hardware-software configurations
Abstract
To increase performance and efficiency, systems use FPGAs as reconfigurable accelerators. A key challenge in designing these systems is partitioning computation between processors and an FPGA. An appropriate division of labor may be difficult to predict in advance and require experiments and measurements. When an investigation requires rewriting part of the system in a new language or with a new programming model, its high cost can retard the study of different configurations. A single-language system with an appropriate programming model and compiler that targets both platforms simplifies this exploration to a simple recompile with new compiler directives. This work introduces StreamBlocks, an open-source compiler and runtime that uses the CAL dataflow programming language to partition computations across heterogeneous (CPU/accelerator) platforms. Because of the dataflow model's…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsEmbedded Systems Design Techniques · Parallel Computing and Optimization Techniques · Interconnection Networks and Systems
