Hardware/software partitioning with multi-version implementation exploration

  • Authors:
  • Greg Stitt

  • Affiliations:
  • University of Florida, Gainesville, FL, USA

  • Venue:
  • Proceedings of the 18th ACM Great Lakes symposium on VLSI
  • Year:
  • 2008

Quantified Score

Hi-index 0.00

Visualization

Abstract

Hardware/software partitioning is an increasingly common technique that maps critical regions of a software application into custom hardware to achieve application speedup. Most previous partitioning approaches assume that each application region has only a single hardware implementation. However, code regions typically can be implemented as many different versions that tradeoff performance and area, as in the case of a loop that can be unrolled by different amounts. We introduce a new formulation of hardware/software partitioning that integrates multiple versions of region implementations, improving performance by more than 27% on average compared to partitioning with a single implementation. We present an optimal ILP solution, and introduce an efficient heuristic that achieves solutions within 0% to 8% of the optimal while running in less than one second for large problem sizes.