High-Level Synthesis Revised - Generation of FPGA Accelerators from a Domain-Specific Language using the Polyhedron Model

In this work, we provide an overview of out high-level synthesis framework PARO. PARO is targeted at data flow dominant algorithms where most of the computational load lies in loop nests, defined by affine expressions. In Zn these loop definitions can be interpreted as half-spaces, which intersect to form convex polyhedra around the sets of loop iterations. Hence, we employ the polyhedron model to analyze and restructure these algorithms to derive highly parallel and energy efficient implementations on massively parallel architectures. Specifically, in this work, we discuss the implementation of dedicated FPGA accelerators and showcase the capabilities of out framework for the development of a range image conditioning pipeline for smart range sensing cameras.

[1]  Jürgen Teich,et al.  Resource constrained and speculative scheduling of an algorithm class with run-time dependent conditionals , 2004 .

[2]  Vikram S. Adve,et al.  LLVM: a compilation framework for lifelong program analysis & transformation , 2004, International Symposium on Code Generation and Optimization, 2004. CGO 2004..

[3]  Jürgen Teich,et al.  Real-timerange image preprocessing on FPGAs , 2013, 2013 International Conference on Reconfigurable Computing and FPGAs (ReConFig).

[4]  Arvind,et al.  Hands-on Introduction to Bluespec System Verilog (BSV) , 2008, 2008 6th ACM/IEEE International Conference on Formal Methods and Models for Co-Design.

[5]  Jingling Xue,et al.  Loop Tiling for Parallelism , 2000, Kluwer International Series in Engineering and Computer Science.

[6]  Nikil D. Dutt,et al.  SPARK: a high-level synthesis framework for applying parallelizing compiler transformations , 2003, 16th International Conference on VLSI Design, 2003. Proceedings..

[7]  Adrian Park,et al.  Designing Modular Hardware Accelerators in C with ROCCC 2.0 , 2010, 2010 18th IEEE Annual International Symposium on Field-Programmable Custom Computing Machines.

[8]  Michael Wolfe,et al.  High performance compilers for parallel computing , 1995 .

[9]  Jürgen Teich,et al.  The PAULA Language for Designing Multi-Dimensional Dataflow-Intensive Applications , 2008, MBMV.

[10]  Vikram Bhatt,et al.  The GreenDroid Mobile Application Processor: An Architecture for Silicon's Dark Future , 2011, IEEE Micro.

[11]  Andreas Koch,et al.  Precore - A Token-Based Speculation Architecture for High-Level Language to Hardware Compilation , 2011, 2011 21st International Conference on Field Programmable Logic and Applications.

[12]  Jürgen Teich,et al.  A deeply pipelined and parallel architecture for denoising medical images , 2010, 2010 International Conference on Field-Programmable Technology.

[13]  Jingling Xue,et al.  Unimodular Transformations of Non-Perfectly Nested Loops , 1997, Parallel Comput..

[14]  Paul Feautrier,et al.  Polyhedron Model , 2011, Encyclopedia of Parallel Computing.

[15]  Jürgen Teich,et al.  PARO: Synthesis of Hardware Accelerators for Multi-Dimensional Dataflow-Intensive Applications , 2008, ARC.