Efficient search space exploration for HW-SW partitioning

  • Authors:
  • Sudarshan Banerjee;Nikil Dutt

  • Affiliations:
  • University of California, Irvine, CA;University of California, Irvine, CA

  • Venue:
  • Proceedings of the 2nd IEEE/ACM/IFIP international conference on Hardware/software codesign and system synthesis
  • Year:
  • 2004

Quantified Score

Hi-index 0.00

Visualization

Abstract

Hardware/software (HW-SW) partitioning is a key problem in the codesign of embedded systems, studied extensively in the past. One major open challenge for traditional partitioning approaches -- as we move to more complex and heterogeneous SOCs -- is the lack of efficient exploration of the large space of possible HW/SW configurations, coupled with the inability to efficiently scale up with larger problem sizes. In this paper, we make two contributions for HW-SW partitioning of applications represented as procedural call-graphs: 1) we prove that during partitioning, the execution time metric for moving a vertex needs to be updated only for the immediate neighbours of the vertex, rather than for all ancestors along paths to the root vertex; consequently, we observe faster run-times for move-based partitioning algorithms such as Simulated Annealing (SA), allowing call graphs with thousands of vertices to be processed in less than a second, and 2) we devise a new cost function for SA that allows frequent discovery of better partitioning solutions by searching spaces overlooked by traditional SA cost functions. We present experimental results on a very large design space, where several thousand configurations are explored in minutes as compared to several hours or days using a traditional SA formulation. Furthermore, our approach is frequently able to locate better design points with over 10% improvement in application execution time compared to the solutions generated by a Kernighan-Lin partitioning algorithm starting with an all-SW partitioning.