Classification and transformation of dynamic dataflow programs

Dataflow programming has been used to describe signal processing applications for many years, traditionally with cyclostatic dataflow (CSDF) or synchronous dataflow (SDF) models that restrict expressive power in favor of compile-time analysis and predictability. Dynamic dataflow is not restricted with respect to expressive power, but it does require runtime scheduling in the general case. Fortunately, most signal processing applications are far from being entirely dynamic, and parts with static behavior need not be dynamically scheduled. This paper presents a method to automatically analyze and classify blocks of a dynamic dataflow program within more restrictive dataflow models when possible, and to transform the blocks classified as static to improve execution speed by reducing the number of FIFO accesses. We used this method on actors of two dynamic dataflow descriptions of an MPEG-4 part 2 decoder, and study how classification and transformation increases decoding speed.

[1]  Jean-François Nezan,et al.  An Open Framework for Rapid Prototyping of Signal Processing Applications , 2009, EURASIP J. Embed. Syst..

[2]  Shuvra S. Bhattacharyya,et al.  Parameterized dataflow modeling for DSP systems , 2001, IEEE Trans. Signal Process..

[3]  Jean A. Peperstraete,et al.  Cycle-static dataflow , 1996, IEEE Trans. Signal Process..

[4]  Edward A. Lee,et al.  Scheduling dynamic dataflow graphs with bounded memory using the token flow model , 1993, 1993 IEEE International Conference on Acoustics, Speech, and Signal Processing.

[5]  Mark N. Wegman,et al.  Efficiently computing static single assignment form and the control dependence graph , 1991, TOPL.

[6]  Edward A. Lee,et al.  Dataflow process networks , 2001 .

[7]  Mickaël Raulet,et al.  The Reconfigurable Video Coding Standard [Standards in a Nutshell] , 2010, IEEE Signal Processing Magazine.

[8]  Patrick Cousot,et al.  Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints , 1977, POPL.

[9]  J. T. Buck Static scheduling and code generation from dynamic dataflow graphs with integer-valued control streams , 1994, Proceedings of 1994 28th Asilomar Conference on Signals, Systems and Computers.

[10]  Frank Vahid,et al.  New decompilation techniques for binary-level co-processor generation , 2005, ICCAD-2005. IEEE/ACM International Conference on Computer-Aided Design, 2005..

[11]  Christian Haubelt,et al.  Classification of General Data Flow Actors into Known Models of Computation , 2008, 2008 6th ACM/IEEE International Conference on Formal Methods and Models for Co-Design.

[12]  Sébastien Lafond,et al.  Quasi-Static Scheduling of CAL Actor Networks for Reconfigurable Video Coding , 2011, J. Signal Process. Syst..

[13]  Ian H. Witten,et al.  Identifying Hierarchical Structure in Sequences: A linear-time algorithm , 1997, J. Artif. Intell. Res..

[14]  E.A. Lee,et al.  Synchronous data flow , 1987, Proceedings of the IEEE.

[15]  Thomas Martyn Parks,et al.  Bounded scheduling of process networks , 1996 .

[16]  Rudy Lauwereins,et al.  Cyclo-static data flow , 1995, 1995 International Conference on Acoustics, Speech, and Signal Processing.

[17]  Mickaël Raulet,et al.  Exploring the Concurrency of an MPEG RVC Decoder Based on Dataflow Program Analysis , 2009, IEEE Transactions on Circuits and Systems for Video Technology.

[18]  Gilles Kahn,et al.  The Semantics of a Simple Language for Parallel Programming , 1974, IFIP Congress.