Speculative Dataflow Circuits

With FPGAs facing broader application domains, the conversion of imperative languages into dataflow circuits has been recently revamped as a way to overcome the conservatism of statically scheduled high-level synthesis. Apart from the ability to extract parallelism in irregular and control-dominated applications, dynamic scheduling opens a door to speculative execution, one of the most powerful ideas in computer architecture. Speculation allows executing certain operations before it is known whether they are correct or required: it can significantly increase fine-grain parallelism in loops where the condition takes many cycles to compute; it can also increase the performance of circuits limited by potential dependencies by assuming independence early on and by reverting to the correct execution if the prediction was wrong. In this work, we detail our methodology to enable tentative and reversible execution in dynamically scheduled dataflow circuits. We create a generic framework for handling speculation in dataflow circuits and show that our approach can achieve significant performance improvements over traditional circuit generation techniques.

[1]  William H. Press,et al.  Numerical Recipes 3rd Edition: The Art of Scientific Computing , 2007 .

[2]  Jordi Cortadella,et al.  Speculation in Elastic Systems , 2009, 2009 46th ACM/IEEE Design Automation Conference.

[3]  Jordi Cortadella,et al.  Synthesis of synchronous elastic architectures , 2006, 2006 43rd ACM/IEEE Design Automation Conference.

[4]  Mario R. Casu,et al.  Adaptive Latency Insensitive Protocols and Elastic Circuits with Early Evaluation: A Comparative Analysis , 2009, Electron. Notes Theor. Comput. Sci..

[5]  Shreesha Srinath,et al.  Dynamic Hazard Resolution for Pipelining Irregular Loops in High-Level Synthesis , 2017, FPGA.

[6]  Seth Copen Goldstein,et al.  Pegasus: An Efficient Intermediate Representation , 2002 .

[7]  Simha Sethumadhavan,et al.  Scalable selective re-execution for EDGE architectures , 2004, ASPLOS XI.

[8]  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.

[9]  Stephen A. Edwards,et al.  Compositional dataflow circuits , 2017, MEMOCODE.

[10]  Andreas Koch,et al.  Accelerating Speculative Execution in High-Level Synthesis with Cancel Tokens , 2008, ARC.

[11]  Nikil D. Dutt,et al.  Conditional speculation and its effects on performance and area for high-level synthesis , 2001, International Symposium on System Synthesis (IEEE Cat. No.01EX526).

[12]  Alberto L. Sangiovanni-Vincentelli,et al.  Theory of latency-insensitive design , 2001, IEEE Trans. Comput. Aided Des. Integr. Circuits Syst..

[13]  Keith D. Cooper,et al.  Engineering a Compiler , 2003 .

[14]  J. E. Glynn,et al.  Numerical Recipes: The Art of Scientific Computing , 1989 .

[15]  Paolo Ienne,et al.  Dynamically Scheduled High-level Synthesis , 2018, FPGA.

[16]  Seth Copen Goldstein,et al.  Dataflow: A Complement to Superscalar , 2005, IEEE International Symposium on Performance Analysis of Systems and Software, 2005. ISPASS 2005..

[17]  Cyrille Chavet,et al.  Dynamic branch prediction for high-level synthesis , 2013, 2013 23rd International Conference on Field programmable Logic and Applications.

[18]  Jordi Cortadella,et al.  Synchronous Elastic Circuits with Early Evaluation and Token Counterflow , 2007, 2007 44th ACM/IEEE Design Automation Conference.

[19]  Hans Mulder,et al.  Introducing the IA-64 Architecture , 2000, IEEE Micro.