Very fast Simulated Annealing for HW-SW partitioning

Hardware/software (HW-SW) partitioning is a key problem in the codesign of embedded systems and has been studied extensively in the past. With the wide av ailability of commercial platforms such as the Virtex-II Pro series from Xilinx that integrate p rocessors with reconfigurable logic, one major existing challenge is the lack of efficient algorithms that can generate very high-quality solutions by exploring a huge HW/SW exploration spacethe key criterion is to obtain such solutions at a speed suitable for integration into a compiler-based pa rtitioner. In this report, we make two contributions for HW-SW partitioning of applications spec ified as procedural call-graphs: 1) We prove that during partitioning, the execution time met ric for moving a vertex needs to be updated only for the immediate neighbours of the vertex, rat her than for all ancestors along paths to the root vertex. This enables move-based partitioning al gorithms such as Simulated Annealing (SA) to execute significantly faster, allowing call graphs w ith thousands of vertices to be processed in less than half a second 2) Additionally, we devise a new cost function for SA that ena bles searching of spaces overlooked by traditional SA cost functions for HW-SW partitioning, al lowing the discovery of additional partitioning solutions in a very efficient manner. We present experimental evidence on a very large design spac e with over 12000 problem instances. We generate the problem instances by varying the call-graph sizes from 20 to 1000 vertices, indegree/outdegree of vertices, communication-to-computati on ratios, and varying the area constraint on the hardware partition. Thousands of problem instances a r explored in a matter of minutes as compared to several hours or days using a traditional SA form ulation. Aggregate data collected

[1]  Edward A. Lee,et al.  A global criticality/local phase driven algorithm for the constrained hardware/software partitioning problem , 1994, CODES.

[2]  R. M. Mattheyses,et al.  A Linear-Time Heuristic for Improving Network Partitions , 1982, 19th Design Automation Conference.

[3]  Brian W. Kernighan,et al.  An efficient heuristic procedure for partitioning graphs , 1970, Bell Syst. Tech. J..

[4]  Edward A. Lee,et al.  A global criticality/local phase driven algorithm for the constrained hardware/software partitioning problem , 1994, Third International Workshop on Hardware/Software Codesign.

[5]  Petru Eles,et al.  System Level Hardware/Software Partitioning Based on Simulated Annealing and Tabu Search , 1997, Des. Autom. Embed. Syst..

[6]  Jörg Henkel,et al.  Hardware-software cosynthesis for microcontrollers , 1993, IEEE Design & Test of Computers.

[7]  Frank Vahid,et al.  A binary-constraint search algorithm for minimizing hardware during hardware/software partitioning , 1994, EURO-DAC '94.

[8]  Juan Carlos López,et al.  On the hardware-software partitioning problem: System modeling and partitioning techniques , 2003, TODE.

[9]  Theerayod Wiangtong,et al.  Comparing Three Heuristic Search Methods for Functional Partitioning in Hardware–Software Codesign , 2002, Des. Autom. Embed. Syst..

[10]  Igor L. Markov,et al.  Combining Two Local Search Approaches to Hypergraph Partitioning , 2003, IJCAI.

[11]  Jörg Henkel,et al.  A hardware/software partitioner using a dynamically determined granularity , 1997, DAC.

[12]  Frank Vahid,et al.  Incremental hardware estimation during hardware/software functional partitioning , 1995, IEEE Trans. Very Large Scale Integr. Syst..

[13]  C. D. Gelatt,et al.  Optimization by Simulated Annealing , 1983, Science.

[14]  Michel Auguin,et al.  HW / SW partitioning approach for reconfigurable system design , 2002, CASES '02.

[15]  Alistair I. Mees,et al.  Convergence of an annealing algorithm , 1986, Math. Program..

[16]  Wayne H. Wolf,et al.  TGFF: task graphs for free , 1998, Proceedings of the Sixth International Workshop on Hardware/Software Codesign. (CODES/CASHE'98).

[17]  Ranga Vemuri,et al.  MAGELLAN: multiway hardware-software partitioning and scheduling for latency minimization of hierarchical control-dataflow task graphs , 2001, Ninth International Symposium on Hardware/Software Codesign. CODES 2001 (IEEE Cat. No.01TH8571).

[18]  Jörg Henkel,et al.  An approach to automated hardware/software partitioning using a flexible granularity that is driven by high-level estimation techniques , 2001, IEEE Trans. Very Large Scale Integr. Syst..

[19]  R.K. Gupta,et al.  System-level synthesis using re-programmable components , 1992, [1992] Proceedings The European Conference on Design Automation.

[20]  A. Sangiovanni-Vincentelli,et al.  The TimberWolf placement and routing package , 1985, IEEE Journal of Solid-State Circuits.

[21]  Frank Vahid,et al.  Extending the Kernighan/Lin Heuristic for Hardware and Software Functional Partitioning , 1997, Des. Autom. Embed. Syst..