An Automatic Mixed Software Hardware Pipeline Builder for CPU-FPGA Platforms
Takaaki Miyajima, David Thomas, Hideharu Amano

TL;DR
Courier-FPGA is an automated toolchain that accelerates applications on CPU-FPGA platforms by dynamically constructing and replacing function pipelines without source code modifications, achieving significant speedups.
Contribution
It introduces an automatic, runtime-based pipeline builder for CPU-FPGA systems that requires no user intervention or source code changes.
Findings
Achieved 15.36x speedup in a corner detection application.
Automatically constructs function call graphs and offloads functions to FPGA.
Operates without source code modifications or recompilation.
Abstract
Our toolchain for accelerating application called Courier-FPGA, is designed for utilize the processing power of CPU-FPGA platforms for software programmers and non-expert users. It automatically gathers runtime information of library functions from a running target binary, and constructs the function call graph including input-output data. Then, it uses corresponding predefined hardware modules if these are ready for FPGA and prepares software functions on CPU by using Pipeline Generator. The Pipeline Generator builds a pipeline control program by using Intel Threading Building Block to run both hardware modules and software functions in parallel. Finally, Courier-FPGA dynamically replaces the original functions in the binary and accelerates it by using the built pipeline. Courier-FPGA performs these acceleration processes without user intervention, source code tweaks or re-compilations…
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 · VLSI and FPGA Design Techniques
