Execution Time Minimization Based on Hardware/Software Partitioning and Speculative Prefetch

This report addresses the problem of minimizing the average execution time of an application, based on speculative FPGA configuration prefetch. Dynamically reconfigurable systems (like FPGAs) provide both the performance of hardware acceleration and the flexibility and adaptability that modern applications require. Unfortunately, one of their main drawbacks that significantly impacts performance is the high reconfiguration overhead. Configuration prefetching is one method to reduce this penalty by overlapping FPGA reconfigurations with useful computations. In order to make it effective and to avoid very high misprediction penalties, it is important to prefetch the configurations that provide the highest performance improvement, and to do this early enough to hide the reconfiguration overhead. In this report we propose a speculative approach that schedules prefetches at design time and simultaneously performs HW/SW partitioning, in order to minimize the expected execution time of an application. Our method prefetches and executes in hardware those configurations that provide the highest performance improvement. The algorithm takes into consideration profiling information (such as branch probabilities and execution time distributions), correlated with the application characteristics. We demonstrate the effectiveness of our approach compared to the previous state-of-art using extensive experiments, including real-life case studies.

[1]  Taking Advantage of Advances in FPGA Floating-Point IP Cores , 1998 .

[2]  Zhiyuan Li,et al.  Configuration management techniques for reconfigurable computing , 2002 .

[3]  Francky Catthoor,et al.  A hybrid prefetch scheduling heuristic to minimize at run-time the reconfiguration overhead of dynamically reconfigurable hardware [multimedia applications] , 2005, Design, Automation and Test in Europe.

[4]  K. Bertels,et al.  Instruction scheduling for dynamic hardware configurations [M-JPEG encoder case study] , 2005, Design, Automation and Test in Europe.

[5]  Petru Eles,et al.  Co-design techniques for distributed real-time embedded systems with communication security constraints , 2012, 2012 Design, Automation & Test in Europe Conference & Exhibition (DATE).

[6]  Petru Eles,et al.  Performance optimization of error detection based on speculative reconfiguration , 2011, 2011 48th ACM/EDAC/IEEE Design Automation Conference (DAC).

[7]  Douglas A. Wolfe,et al.  Nonparametric Statistical Methods , 1973 .

[8]  Alfred V. Aho,et al.  Compilers: Principles, Techniques, and Tools , 1986, Addison-Wesley series in computer science / World student series edition.

[9]  Roberto Cordone,et al.  Partitioning and Scheduling of Task Graphs on Partially Dynamically Reconfigurable FPGAs , 2009, IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems.

[10]  Scott Hauck,et al.  Configuration prefetch for single context reconfigurable coprocessors , 1998, FPGA '98.

[11]  Zhiyuan Li,et al.  Configuration prefetching techniques for partial reconfigurable coprocessor with relocation and defragmentation , 2002, FPGA '02.

[12]  Vikram S. Adve,et al.  LLVM: a compilation framework for lifelong program analysis & transformation , 2004, International Symposium on Code Generation and Optimization, 2004. CGO 2004..

[13]  Stamatis Vassiliadis,et al.  Interprocedural Compiler Optimization for Partial Run-Time Reconfiguration , 2006, J. VLSI Signal Process..

[14]  Jürgen Teich,et al.  Interprocedural Placement-Aware Configuration Prefetching for FPGA-Based Systems , 2010, 2010 18th IEEE Annual International Symposium on Field-Programmable Custom Computing Machines.

[15]  Nikil D. Dutt,et al.  Physically-aware HW-SW partitioning for reconfigurable architectures with partial dynamic reconfiguration , 2005, Proceedings. 42nd Design Automation Conference, 2005..