Compilation and Pipeline Synthesis for FPGA-based Custom Computing Machines

Compilation and Pipeline Synthesis for FPGA-based Custom Computing Machines

Speaker: Markus Weinhardt
When: February 7, 2pm
Where: ICSI

Abstract:

First, this talk briefly introduces FPGA-based Custom Computing Machines (FCCMs), i.e. host microprocessor systems with field-programmable coprocessors. Next, a novel integrated programming method for FCCMs is presented. It uses an imperative high-level programming language to specify both the host program (software) and the coprocessor configuration (hardware). This renders FCCMs useful for users without hardware design experience. In the first step, we analyze and vectorize the input program. Then, for suitable FOR-loops, hardware pipelines are synthesized. The pipelines execute the loops' operators in parallel on the reconfigurable hardware, thus speeding up the program. To determine the suitable loops, we devel- oped a partitioning method which dynamically selects software or hardware execution at runtime. It takes into account the expected hardware accele- ration as well as the communication and configuration overhead. To show the feasibility of our approach, we have built a prototypical "pipeline compiler". It automatically synthesizes pipelines and inte- grates the configuration and control of the coprocessors within the host program. Results of some experiments on a small FCCM using this compiler are presented.