Mapping applications on two-level configurable hardware

Implementing applications on Reconfigurable Computing Architectures (RCAs) is an important research topic because of their high potential to accelerate a wide range of functions. Nevertheless, configuring and programming RCAs is a long-standing challenge. In this paper, we propose a design methodology to map an algorithm on an FPGA preconfigured with a Coarse-Grained Reconfigurable Architecture (CGRA). At the lowest configuration level, the architecture of the CGRA is elaborated, synthesized, placed and routed by some hardware design specialist using suitable tools. At the highest level, someone who has no particular knowledge in hardware design is however able to configure the CGRA in order to map his algorithm on a mesh of parallel computing and communicating nodes. Nevertheless, for medium and large applications, where the number of nodes varies from tens to thousands, getting good mapping of applications becomes manually intractable. Founded on well known mapping and routing algorithms that we have tailored to match our context, we propose a design methodology to automate the mapping of applications on a two-level configurable adaptive hardware fabric. Preliminary experiments on Fast Fourier Transform (FFT) and matrix multiplication applications show that the proposed methodology can lead to high throughput and/or low latency within a reasonable design time.

[1]  Mladen Berekovic,et al.  ADRES & DRESC: Architecture and Compiler for Coarse-GrainReconfigurable Processors , 2007 .

[2]  Aviral Shrivastava,et al.  EPIMap: Using Epimorphism to map applications on CGRAs , 2012, DAC Design Automation Conference 2012.

[3]  Luigi Carro,et al.  A just-in-time modulo scheduling for virtual coarse-grained reconfigurable architectures , 2013, 2013 International Conference on Embedded Computer Systems: Architectures, Modeling, and Simulation (SAMOS).

[4]  Nader Bagherzadeh,et al.  A Modulo Scheduling Algorithm for a Coarse-Grain Reconfigurable Array Template , 2007, 2007 IEEE International Parallel and Distributed Processing Symposium.

[5]  Scott A. Mahlke,et al.  Modulo graph embedding: mapping applications onto coarse-grained reconfigurable architectures , 2006, CASES '06.

[6]  Yvon Savaria,et al.  Two-level configuration for FPGA: A new design methodology based on a computing fabric , 2012, 2012 IEEE International Symposium on Circuits and Systems.

[7]  Liang Chen,et al.  Graph minor approach for application mapping on CGRAs , 2012, FPT.

[8]  Scott A. Mahlke,et al.  Edge-centric modulo scheduling for coarse-grained reconfigurable architectures , 2008, 2008 International Conference on Parallel Architectures and Compilation Techniques (PACT).

[9]  Rudy Lauwereins,et al.  DRESC: a retargetable compiler for coarse-grained reconfigurable architectures , 2002, 2002 IEEE International Conference on Field-Programmable Technology, 2002. (FPT). Proceedings..

[10]  B. Ramakrishna Rau,et al.  Iterative Modulo Scheduling , 1996, International Journal of Parallel Programming.