Combining data reuse with data-level parallelization for FPGA-targeted hardware compilation: a geometric programming framework

  • Authors:
  • Qiang Liu;George A. Constantinides;Konstantinos Masselos;Peter Y. K. Cheung

  • Affiliations:
  • Department of Electrical and Electronic Engineering, Imperial College London, London, UK;Department of Electrical and Electronic Engineering, Imperial College London, London, UK;Department of Computer Science and Technology, University of Peloponnese, Tripolis, Greece;Department of Electrical and Electronic Engineering, Imperial College London, London, UK

  • Venue:
  • IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems
  • Year:
  • 2009

Quantified Score

Hi-index 0.03

Visualization

Abstract

A nonlinear optimization framework is proposed in this paper to automate exploration of the design space consisting of data-reuse (buffering) decisions and loop-level parallelization, in the context of field-programmable-gate-array-targeted hardware compilation. Buffering frequently accessed data in on-chip memories can reduce off-chip memory accesses and open avenues for parallelization. However, the exploitation of both data reuse and parallelization is limited by the memory resources available on-chip. As a result, considering these two problems separately, e.g., first exploring data reuse and then exploring data-level parallelization, based on the data-reuse options determined in the first step, may not yield the performance-optimal designs for limited on-chip memory resources. We consider both problems at the same time, exposing the dependence between the two. We show that this combined problem can be formulated as a nonlinear program and further show that efficient solution techniques exist for this problem, based on recent advances in optimization of so-called geometric programming problems. The results from applying this framework to several real benchmarks implemented on a Xilinx device demonstrate that given different constraints on on-chip memory utilization, the corresponding performanceoptimal designs are automatically determined by the framework. We have also implemented designs determined by a two-stage optimization method that first explores data reuse and then explores parallelization on the same platform, and by comparison, the performance-optimal designs proposed by our framework are faster than the designs determined by the two-stage method by up to 5.7 times.