XPP-VC: A C Compiler with Temporal Partitioning for the PACT-XPP Architecture
The eXtreme Processing Platform (XPP) is a unique reconfigurable computing (RC) architecture supported by a complete set of design tools. This paper presents the XPP Vectorizing C Compiler XPP-VC, the first high-level compiler for this architecture. It uses new mapping techniques, combined with efficient vectorization. A temporal partitioning phase guarantees the compilation of programs with unlimited complexity, provided that only the supported C subset is used. A new loop partitioning scheme permits to map large loops of any kind. It is not constrained by loop dependences or nesting levels. To our knowledge, the compilation performance is unmatched by any other compiler for RC. Preliminary evaluations show compilation times of only a few seconds from C code to configuration binaries and performance speedups over standard microprocessor implementations. The overall technology represents a significant step toward RC architectures which are faster and simpler to program.
KeywordsLoop Iteration Internal Memory Configuration Manager Loop Body Abstract Syntax Tree
Unable to display preview. Download preview PDF.
- 1.R. Hartenstein, “A Decade of Reconfigurable Computing: a Visionary Retrospective,” In Proc. Design, Automation and Test in Europe, 2001, pp. 642–649.Google Scholar
- 2.PACT Informationstechnologie GmbH, Germany, “The XPP White Paper,” Release 2.0, June 2001. http://www.pactcorp.com
- 3.V. Baumgarte, et al., “PACT XPP-A Self-reconfigurable Data Processing Architecture,” In Journal of Supercomputing, Kluwer Academic Publishers, (to appear).Google Scholar
- 4.D. C. Cronquist, P. Franklin, C. Fisher, M. Figueroa, C. Ebeling, “Architecture Design of Reconfigurable Pipelined Datapaths,” In 20th Anniversary Conference on Advanced Research in VLSI, Atlanta, GA, USA, March 1999, pp. 23–40.Google Scholar
- 6.Muchnick, S. S., Advanced Compiler Design and Implementation, Morgan Kaufmann Publishers, Inc., San Francisco, CA, USA, 1997.Google Scholar
- 7.M. Weinhardt and W. Luk, “Pipeline Vectorization,” In IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems, Feb. 2001, pp. 234–248.Google Scholar
- 8.Ian Page and Wayne Luk, “Compiling occam into FPGAs,” In FPGAs, Will Moore and Wayne Luk, editors, Abingdon EEI&CS Books, 1991, pp. 271–283.Google Scholar
- 9.T. J. Callahan, J. R. Hauser, and J. Wawrzynek, “The Garp architecture and C compiler,” In IEEE Computer, 33(4), April 2000, pp. 62–69.Google Scholar
- 10.Maya B. Gokhale, Janice M. Stone, “NAPA C: Compiling for a Hybrid RISC/FPGA Architecture,” in Proc. IEEE 6th Symposium on Field-Programmable Custom Computing Machines, Napa Valley, CA, USA, April 1998, pp. 126–135.Google Scholar
- 11.Meenakshi Kaul, Ranga Vemuri, Sriram Govindarajan, Iyad E. Ouaiss, “An Automated Temporal Partitioning and Loop Fission approach for FPGA based recon-figurable synthesis of DSP applications,” in Proc. IEEE/ACM Design Automation Conference, New Orleans, LA, USA, June 21–25, 1999, pp. 616–622.Google Scholar
- 12.João M. P. Cardoso, “A Novel Algorithm Combining Temporal Partitioning and Sharing of Functional Units,” In Proc. IEEE 9th Symposium on Field-Programmable Custom Computing Machines, Rohnert Park, CA, USA, April 30–May 2, 2001.Google Scholar