High-Level Synthesis Design Space Exploration: Past, Present, and Future

This article presents a survey of the different modern high-level synthesis (HLS) design space exploration (DSE) techniques that have been proposed so far to automatically generate hardware accelerators of different tradeoffs. HLS has multiple advantages compared to traditional RT-level-based hardware design. One key advantage is that a variety of different microarchitectures of unique tradeoffs can be obtained from the same untimed behavioral description by setting different synthesis options. Out of all the possible microarchitectures, the one that the designers are most interested in are the Pareto-optimal ones. The main problem is that the search space grows superlinearly with the number of synthesis options, and hence, heuristics have been proposed to search the space efficiently. This article summarizes the main techniques proposed and addresses the critical issues still not resolved as well identifies new opportunities in this field. It also serves as a guide for anyone wanting to create their own HLS DSE.

[1]  G. Moore Cramming more components onto integrated circuits, Reprinted from Electronics, volume 38, number 8, April 19, 1965, pp.114 ff. , 2006, IEEE Solid-State Circuits Newsletter.

[2]  Antonino Mazzeo,et al.  A Pruning Technique for B&B Based Design Exploration of Approximate Computing Variants , 2016, 2016 IEEE Computer Society Annual Symposium on VLSI (ISVLSI).

[3]  Kazutoshi Wakabayashi,et al.  Machine learning predictive modelling high-level synthesis design space exploration , 2012, IET Comput. Digit. Tech..

[4]  Daniele Loiacono,et al.  A Multi-objective Genetic Algorithm for Design Space Exploration in High-Level Synthesis , 2008, 2008 IEEE Computer Society Annual Symposium on VLSI.

[5]  Kalyanmoy Deb,et al.  A fast and elitist multiobjective genetic algorithm: NSGA-II , 2002, IEEE Trans. Evol. Comput..

[6]  Laura Pozzi,et al.  Cluster-Based Heuristic for High Level Synthesis Design Space Exploration , 2018, IEEE Transactions on Emerging Topics in Computing.

[7]  Anirban Sengupta,et al.  PSDSE: Particle Swarm Driven Design Space Exploration of Architecture and Unrolling Factors for Nested Loops in High Level Synthesis , 2014, 2014 Fifth International Symposium on Electronic System Design.

[8]  Kiamal Z. Pekmestzi,et al.  Efficient High Level Synthesis Exploration Methodology Combining Exhaustive and Gradient-Based Pruned Searching , 2010, 2010 IEEE Computer Society Annual Symposium on VLSI.

[9]  Jason Cong,et al.  Pattern-based behavior synthesis for FPGA resource reduction , 2008, FPGA '08.

[10]  Anirban Sengupta,et al.  Exploration of Multi-objective Tradeoff during High Level Synthesis Using Bacterial Chemotaxis and Dispersal , 2014, KES.

[11]  Benjamin Carrion Schafer,et al.  Adaptive Simulated Annealer for high level synthesis design space exploration , 2009, 2009 International Symposium on VLSI Design, Automation and Test.

[12]  Pingfan Meng,et al.  Adaptive Threshold Non-Pareto Elimination: Re-thinking machine learning for system level design space exploration on FPGAs , 2016, 2016 Design, Automation & Test in Europe Conference & Exhibition (DATE).

[13]  Yun Liang,et al.  COMBA: A comprehensive model-based analysis framework for high level synthesis of real applications , 2017, 2017 IEEE/ACM International Conference on Computer-Aided Design (ICCAD).

[14]  Jason Helge Anderson,et al.  Impact of FPGA architecture on resource sharing in high-level synthesis , 2012, FPGA '12.

[15]  Preeti Ranjan Panda,et al.  The Impact of Loop Unrolling on Controller Delay in High Level Synthesis , 2007, 2007 Design, Automation & Test in Europe Conference & Exhibition.

[16]  Monica S. Lam,et al.  The SUIF Compiler System: a Parallelizing and Optimizing Research Compiler , 1994 .

[17]  Christopher Torng,et al.  INVITED: A Modular Digital VLSI Flow for High-Productivity SoC Design , 2018, 2018 55th ACM/ESDA/IEEE Design Automation Conference (DAC).

[18]  Benjamin Carrión Schäfer Probabilistic Multiknob High-Level Synthesis Design Space Exploration Acceleration , 2016, IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems.

[19]  Kalyanmoy Deb,et al.  A Fast Elitist Non-dominated Sorting Genetic Algorithm for Multi-objective Optimisation: NSGA-II , 2000, PPSN.

[20]  Kazutoshi Wakabayashi,et al.  Design Space Exploration Acceleration Through Operation Clustering , 2010, IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems.

[21]  Ivan Augé,et al.  User Guided High Level Synthesis , 2008 .

[22]  Shoaib Kamil,et al.  OpenTuner: An extensible framework for program autotuning , 2014, 2014 23rd International Conference on Parallel Architecture and Compilation (PACT).

[23]  R.H. Dennard,et al.  Design Of Ion-implanted MOSFET's with Very Small Physical Dimensions , 1974, Proceedings of the IEEE.

[24]  Philippe Coussy,et al.  High-Level Synthesis: from Algorithm to Digital Circuit , 2008 .

[25]  Benjamin Carrion Schafer Probabilistic Multiknob High-Level Synthesis Design Space Exploration Acceleration , 2016 .

[26]  David J. Greaves,et al.  Using RTL-to-C++ translation for large soc concurrent engineering: a case study , 2003 .

[27]  Xiaotong Li,et al.  Temperature-triggered behavioral IPs HW Trojan detection method with FPGAs , 2015, 2015 25th International Conference on Field Programmable Logic and Applications (FPL).

[28]  Luca P. Carloni,et al.  On learning-based methods for design-space exploration with High-Level Synthesis , 2013, 2013 50th ACM/EDAC/IEEE Design Automation Conference (DAC).

[29]  Laura Pozzi,et al.  Lattice-Traversing Design Space Exploration for High Level Synthesis , 2018, 2018 IEEE 36th International Conference on Computer Design (ICCD).

[30]  Jason Cong,et al.  High-Level Synthesis for FPGAs: From Prototyping to Deployment , 2011, IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems.

[31]  Kazutoshi Wakabayashi,et al.  Divide and conquer high-level synthesis design space exploration , 2012, TODE.

[32]  Daniel Gajski,et al.  Component selection for high-performance pipelines , 1996, IEEE Trans. Very Large Scale Integr. Syst..

[33]  Sherief Reda,et al.  ABACUS: A technique for automated behavioral synthesis of approximate computing circuits , 2014, 2014 Design, Automation & Test in Europe Conference & Exhibition (DATE).

[34]  Pedro C. Diniz,et al.  A compiler approach to fast hardware design space exploration in FPGA-based systems , 2002, PLDI '02.

[35]  Amit Kumar Singh,et al.  Exploiting loop-array dependencies to accelerate the design space exploration with high level synthesis , 2015, 2015 Design, Automation & Test in Europe Conference & Exhibition (DATE).

[36]  Francis C. M. Lau,et al.  Accelerating FPGA Prototyping through Predictive Model-Based HLS Design Space Exploration , 2019, 2019 56th ACM/IEEE Design Automation Conference (DAC).

[37]  Benjamin Carrion Schafer Enabling High-Level Synthesis Resource Sharing Design Space Exploration in FPGAs Through Automatic Internal Bitwidth Adjustments , 2017, IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems.

[38]  Wei Zhang,et al.  FlexCL: An analytical performance model for OpenCL workloads on flexible FPGAs , 2017, 2017 54th ACM/EDAC/IEEE Design Automation Conference (DAC).

[39]  Zhiru Zhang,et al.  A Parallel Bandit-Based Approach for Autotuning FPGA Compilation , 2017, FPGA.

[40]  Scott Kirkpatrick,et al.  Optimization by simulated annealing: Quantitative studies , 1984 .

[41]  Benjamin Carrión Schäfer Parallel High-Level Synthesis Design Space Exploration for Behavioral IPs of Exact Latencies , 2017, ACM Trans. Design Autom. Electr. Syst..

[42]  Pingfan Meng,et al.  Spector: An OpenCL FPGA benchmark suite , 2016, 2016 International Conference on Field-Programmable Technology (FPT).

[43]  Glenn Reinman,et al.  Accelerating divergent applications on SIMD architectures using neural networks , 2014, 2014 IEEE 32nd International Conference on Computer Design (ICCD).

[44]  Stephen Neuendorffer,et al.  FPGA Pipeline Synthesis Design Exploration Using Module Selection and Resource Sharing , 2007, IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems.

[45]  Jason Cong,et al.  S2FA: An Accelerator Automation Framework for Heterogeneous Computing in Datacenters , 2018, 2018 55th ACM/ESDA/IEEE Design Automation Conference (DAC).

[46]  Benjamin Carrión Schäfer,et al.  S3CBench: Synthesizable Security SystemC Benchmarks for High-Level Synthesis , 2017, J. Hardw. Syst. Secur..

[47]  Frédéric Rousseau,et al.  A Fast and Autonomous HLS Methodology for Hardware Accelerator Generation under Resource Constraints , 2013, 2013 Euromicro Conference on Digital System Design.

[48]  Bingsheng He,et al.  Performance Modeling and Directives Optimization for High-Level Synthesis on FPGA , 2020, IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems.

[49]  Gang Wang,et al.  Design space exploration using time and resource duality with the ant colony optimization , 2006, 2006 43rd ACM/IEEE Design Automation Conference.

[50]  I ScottKirkpatrick Optimization by Simulated Annealing: Quantitative Studies , 1984 .

[51]  Laura Pozzi,et al.  Machine Learning Approach for Loop Unrolling Factor Prediction in High Level Synthesis , 2018, 2018 International Conference on High Performance Computing & Simulation (HPCS).

[52]  Jason Cong,et al.  CHARM: a composable heterogeneous accelerator-rich microprocessor , 2012, ISLPED '12.

[53]  Luca P. Carloni,et al.  A method to abstract RTL IP blocks into C++ code and enable high-level synthesis , 2013, 2013 50th ACM/EDAC/IEEE Design Automation Conference (DAC).

[54]  Alessandro Cilardo,et al.  Interplay of loop unrolling and multidimensional memory partitioning in HLS , 2015, 2015 Design, Automation & Test in Europe Conference & Exhibition (DATE).

[55]  Dirk Stroobandt,et al.  An overview of today’s high-level synthesis tools , 2012, Design Automation for Embedded Systems.

[56]  Farah Naz Taher,et al.  Design and Optimization of Reliable Hardware Accelerators: Leveraging the Advantages of High-Level Synthesis , 2018, 2018 IEEE 24th International Symposium on On-Line Testing And Robust System Design (IOLTS).

[57]  Qiang Xu,et al.  Approximate Computing: A Survey , 2016, IEEE Design & Test.

[58]  Marco Laumanns,et al.  Performance assessment of multiobjective optimizers: an analysis and review , 2003, IEEE Trans. Evol. Comput..

[59]  Jason Helge Anderson,et al.  The Effect of Compiler Optimizations on High-Level Synthesis for FPGAs , 2013, 2013 IEEE 21st Annual International Symposium on Field-Programmable Custom Computing Machines.

[60]  Benjamin Carrión Schäfer,et al.  VeriIntel2C: Abstracting RTL to C to maximize High-Level Synthesis Design Space Exploration , 2019, Integr..

[61]  Fabrizio Ferrandi,et al.  Bambu : A Free Framework for the High Level Synthesis of Complex Applications , 2012 .

[62]  Salil Raje,et al.  Generalized resource sharing , 1997, 1997 Proceedings of IEEE International Conference on Computer Aided Design (ICCAD).

[63]  Anirban Sengupta,et al.  TL-HLS: Methodology for Low Cost Hardware Trojan Security Aware Scheduling With Optimal Loop Unrolling Factor During High Level Synthesis , 2017, IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems.

[64]  Benjamin Carrion Schafer,et al.  Machine-learning based simulated annealer method for high level synthesis design space exploration , 2014, Proceedings of the 2014 Electronic System Level Synthesis Conference (ESLsyn).

[65]  Rajesh K. Gupta,et al.  Grater: An approximation workflow for exploiting data-level parallelism in FPGA acceleration , 2016, 2016 Design, Automation & Test in Europe Conference & Exhibition (DATE).

[66]  Anirban Sengupta,et al.  User power-delay budget driven PSO based design space exploration of optimal k-cycle transient fault secured datapath during high level synthesis , 2015, Sixteenth International Symposium on Quality Electronic Design.

[67]  Yun Liang,et al.  Lin-Analyzer: A high-level performance analysis tool for FPGA-based accelerators , 2016, 2016 53nd ACM/EDAC/IEEE Design Automation Conference (DAC).

[68]  Benjamin Carrión Schäfer,et al.  S2CBench: Synthesizable SystemC Benchmark Suite for High-Level Synthesis , 2014, IEEE Embedded Systems Letters.

[69]  Jason Helge Anderson,et al.  LegUp: high-level synthesis for FPGA-based processor/accelerator systems , 2011, FPGA '11.

[70]  Hiroyuki Tomiyama,et al.  CHStone: A benchmark program suite for practical C-based high-level synthesis , 2008, 2008 IEEE International Symposium on Circuits and Systems.

[71]  Vittorio Zaccaria,et al.  ReSPIR: A Response Surface-Based Pareto Iterative Refinement for Application-Specific Design Space Exploration , 2009, IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems.

[72]  Luca P. Carloni,et al.  COSMOS , 2017, ACM Trans. Embed. Comput. Syst..

[73]  Dong Liu,et al.  Efficient and reliable High-Level Synthesis Design Space Explorer for FPGAs , 2016, 2016 26th International Conference on Field Programmable Logic and Applications (FPL).

[74]  Eric Senn,et al.  ∂ GAUT: A High-Level Synthesis Tool for DSP applications , 2008 .

[75]  Sparsh Mittal,et al.  A Survey of Techniques for Approximate Computing , 2016, ACM Comput. Surv..

[76]  Andreas Krause,et al.  "Smart" design space sampling to predict Pareto-optimal solutions , 2012, LCTES '12.

[77]  Evangeline F. Y. Young,et al.  Fast and Accurate Estimation of Quality of Results in High-Level Synthesis with Machine Learning , 2018, 2018 IEEE 26th Annual International Symposium on Field-Programmable Custom Computing Machines (FCCM).

[78]  D.A. Van Veldhuizen,et al.  On measuring multiobjective evolutionary algorithm performance , 2000, Proceedings of the 2000 Congress on Evolutionary Computation. CEC00 (Cat. No.00TH8512).

[79]  Yun Liang,et al.  Design space exploration of multiple loops on FPGAs using high level synthesis , 2014, 2014 IEEE 32nd International Conference on Computer Design (ICCD).

[80]  Yu Ting Chen,et al.  A Survey and Evaluation of FPGA High-Level Synthesis Tools , 2016, IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems.

[81]  Jason Cong,et al.  A Study on the Impact of Compiler Optimizations on High-Level Synthesis , 2012, LCPC.

[82]  Wei Luo,et al.  Joint precision optimization and high level synthesis for approximate computing , 2015, 2015 52nd ACM/EDAC/IEEE Design Automation Conference (DAC).