A compiler approach to fast hardware design space exploration in FPGA-based systems
- 17 May 2002
- conference paper
- Published by Association for Computing Machinery (ACM)
- Vol. 37 (5) , 165-176
- https://doi.org/10.1145/512529.512550
Abstract
The current practice of mapping computations to custom hardware implementations requires programmers to assume the role of hardware designers. In tuning the performance of their hardware implementation, designers manually apply loop transformations such as loop unrolling. designers manually apply loop transformations. For example, loop unrolling is used to expose instruction-level parallelism at the expense of more hardware resources for concurrent operator evaluation. Because unrolling also increases the amount of data a computation requires, too much unrolling can lead to a memory bound implementation where resources are idle. To negotiate inherent hardware space-time trade-offs, designers must engage in an iterative refinement cycle, at each step manually applying transformations and evaluating their impact. This process is not only error-prone and tedious but also prohibitively expensive given the large search spaces and with long synthesis times. This paper describes an automated approach to hardware design space exploration, through a collaboration between parallelizing compiler technology and high-level synthesis tools. We present a compiler algorithm that automatically explores the large design spaces resulting from the application of several program transformations commonly used in application-specific hardware designs. Our approach uses synthesis estimation techniques to quantitatively evaluate alternate designs for a loop nest computation. We have implemented this design space exploration algorithm in the context of a compilation and synthesis system called DEFACTO, and present results of this implementation on five multimedia kernels. Our algorithm derives an implementation that closely matches the performance of the fastest design in the design space, and among implementations with comparable performance, selects the smallest design. We search on average only 0.3% of the design space. This technology thus significantly raises the level of abstraction for hardware design and explores a design space much larger than is feasible for a human designer.Keywords
This publication has 6 references indexed in Scilit:
- Evaluation of the streams-C C-to-FPGA compilerPublished by Association for Computing Machinery (ACM) ,2001
- An automated process for compiling dataflow graphs into reconfigurable hardwareIEEE Transactions on Very Large Scale Integration (VLSI) Systems, 2001
- Hardware-software co-design of embedded reconfigurable architecturesPublished by Association for Computing Machinery (ACM) ,2000
- Understanding Behavioral SynthesisPublished by Springer Nature ,1999
- Improving the ratio of memory operations to floating-point operations in loopsACM Transactions on Programming Languages and Systems, 1994
- Improving register allocation for subscripted variablesPublished by Association for Computing Machinery (ACM) ,1990