Geometry of synthesis iv: compiling affine recursion into static hardware

Abramsky's Geometry of Interaction interpretation (GoI) is a logical-directed way to reconcile the process and functional views of computation, and can lead to a dataflow-style semantics of programming languages that is both operational (i.e. effective) and denotational (i.e. inductive on the language syntax). The key idea of Ghica's Geometry of Synthesis (GoS) approach is that for certain programming languages (namely Reynolds's affine Syntactic Control of Interference - SCI) the GoI processes-like interpretation of the language can be given a finitary representation, for both internal state and tokens. A physical realisation of this representation becomes a semantics-directed compiler for SCI into hardware. In this paper we examine the issue of compiling affine recursive programs into hardware using the GoS method. We give syntax and compilation techniques for unfolding recursive computation in space or in time and we illustrate it with simple benchmark-style examples. We examine the performance of the benchmarks against conventional CPU-based execution models.

[1]  George Ferizis,et al.  Mapping Recursive Functions to Reconfigurable Hardware , 2006, 2006 International Conference on Field Programmable Logic and Applications.

[2]  Ross Street,et al.  Traced monoidal categories , 1996 .

[4]  Uday S. Reddy,et al.  Global state considered unnecessary: An introduction to object-based semantics , 1996, LISP Symb. Comput..

[5]  Ian Mackie,et al.  The Power of Closed Reduction Strategies , 2007, WRS@FLoC.

[6]  Dan R. Ghica Applications of Game Semantics: From Program Analysis to Hardware Synthesis , 2009, 2009 24th Annual IEEE Symposium on Logic In Computer Science.

[7]  Dan R. Ghica,et al.  On the Compositionality of Round Abstraction , 2010, CONCUR.

[8]  Ian Craig Mackie The geometry of implementation , 1994 .

[9]  Brad L. Hutchings,et al.  JHDL-an HDL for reconfigurable systems , 1998, Proceedings. IEEE Symposium on FPGAs for Custom Computing Machines (Cat. No.98TB100251).

[10]  Dan R. Ghica,et al.  Geometry of synthesis III: resource management through type inference , 2011, POPL '11.

[11]  Valery Sklyarov,et al.  FPGA-based implementation of recursive algorithms , 2004, Microprocess. Microsystems.

[12]  Dan R. Ghica,et al.  Synchronous Game Semantics via Round Abstraction , 2011, FoSSaCS.

[13]  Kenneth E. Batcher,et al.  Sorting networks and their applications , 1968, AFIPS Spring Joint Computing Conference.

[14]  John C. Reynolds,et al.  Syntactic control of interference , 1978, POPL.

[15]  P. Selinger A Survey of Graphical Languages for Monoidal Categories , 2009, 0908.3347.

[16]  Ian Mackie,et al.  The geometry of interaction machine , 1995, POPL '95.

[17]  Dan R. Ghica,et al.  Function interface models for hardware compilation , 2011, Ninth ACM/IEEE International Conference on Formal Methods and Models for Codesign (MEMPCODE2011).

[18]  David Bailey,et al.  On the rapid computation of various polylogarithmic constants , 1997, Math. Comput..

[19]  Rishiyur S. Nikhil,et al.  Bluespec System Verilog: efficient, correct RTL from high level specifications , 2004, Proceedings. Second ACM and IEEE International Conference on Formal Methods and Models for Co-Design, 2004. MEMOCODE '04..

[20]  Radha Jagadeesan,et al.  New foundations for the geometry of interaction , 1992, [1992] Proceedings of the Seventh Annual IEEE Symposium on Logic in Computer Science.

[21]  Ian Mackie,et al.  Gödel's system tau revisited , 2010, Theor. Comput. Sci..

[22]  Wayne Luk,et al.  A Domain Specific Language for Reconfigurable Path-based Monte Carlo Simulations , 2007, 2007 International Conference on Field-Programmable Technology.

[23]  John C. Reynolds,et al.  The essence of ALGOL , 1997 .

[24]  G. M. Kelly,et al.  Coherence for compact closed categories , 1980 .

[25]  John C. Reynolds,et al.  Syntactic Control of Inference, Part 2 , 1989, ICALP.

[26]  Peter W. O'Hearn,et al.  Algol-like Languages , 1997, Progress in Theoretical Computer Science.

[27]  R. V. Book Algol-like Languages , 1997, Progress in Theoretical Computer Science.

[28]  Dan R. Ghica,et al.  Reasoning about Idealized ALGOL Using Regular Languages , 2000, ICALP.

[29]  Guy McCusker,et al.  A Graph Model for Imperative Computation , 2009, Log. Methods Comput. Sci..

[30]  Dan R. Ghica,et al.  Geometry of synthesis: a structured approach to VLSI design , 2007, POPL '07.

[31]  Peter W. O'Hearn,et al.  Algol-Like Languages: v. 2 , 1996 .

[32]  Mary Sheeran,et al.  Lava: hardware design in Haskell , 1998, ICFP '98.

[33]  Dan R. Ghica,et al.  Geometry of Synthesis II: From Games to Delay-Insensitive Circuits , 2010, MFPS.

[34]  Guy McCusker A Fully Abstract Relational Model of Syntactic Control of Interference , 2002, CSL.

[35]  Peter W. O'Hearn,et al.  Syntactic Control of Interference Revisited , 1999, Theor. Comput. Sci..

[36]  Matthew Wall,et al.  Games for syntactic control of interference , 2004 .

[37]  Tsutomu Maruyama,et al.  Hardware Implementation Techniques for Recursive Calls and Loops , 1999, FPL.