A Flexible Compute and Memory Infrastructure for High-Level Language to Hardware Compilation

We present a low-level infrastructure for use by high-level language to hardware compiler back-ends. It consists of the highly parameterizable, technology-independent module library Modlib and the LMEM framework for localizing variables in fast on-chip memories. Modlib not only supports all high-level language operators (including memory accesses), but also provides a wide spectrum of usage modes: covering static and dynamic scheduling, speculative predicated execution, pipeline balancing, and explicit canceling of mis-speculated computations. We examine the performance of the infrastructure for a number of automatically compiled kernels, including an MD5 kernel that significantly profits from using LMEM.

[1]  Andreas Koch,et al.  Memory Access Schemes for Configurable Processors , 2000, FPL.

[2]  Matti Tommiska,et al.  Hardware Implementation Analysis of the MD5 Hash Algorithm , 2005, Proceedings of the 38th Annual Hawaii International Conference on System Sciences.

[3]  S. Kumar,et al.  A benchmark suite for evaluating configurable computing systems—status, reflections, and future directions , 2000, FPGA '00.

[4]  Ronald L. Rivest,et al.  The MD5 Message-Digest Algorithm , 1992, RFC.

[5]  Hiroyuki Tomiyama,et al.  Proposal and Quantitative Analysis of the CHStone Benchmark Program Suite for Practical C-based High-level Synthesis , 2009, J. Inf. Process..

[6]  Andreas Koch,et al.  High-Level-Language Compilation for Reconfigurable Computers , 2005, ReCoSoC.

[7]  Jeff Mason,et al.  CHiMPS: A C-level compilation flow for hybrid CPU-FPGA architectures , 2008, 2008 International Conference on Field Programmable Logic and Applications.

[8]  Elena Moscu Panainte The Molen compiler for reconfigurable architectures , 2007 .

[9]  Andreas Koch,et al.  A Generic Library for Adaptive Computing Environments , 2001, FPL.

[10]  Walid A. Najjar,et al.  Efficient hardware code generation for FPGAs , 2008, TACO.

[11]  Trevor Mudge,et al.  MiBench: A free, commercially representative embedded benchmark suite , 2001 .

[12]  Jason Cong,et al.  Platform-Based Behavior-Level and System-Level Synthesis , 2006, 2006 IEEE International SOC Conference.

[13]  Nikil D. Dutt,et al.  SPARK: a high-level synthesis framework for applying parallelizing compiler transformations , 2003, 16th International Conference on VLSI Design, 2003. Proceedings..

[14]  Andreas Koch,et al.  Memory access parallelisation in high-level language compilation for reconfigurable adaptive computers , 2008, 2008 International Conference on Field Programmable Logic and Applications.

[15]  Andreas Koch,et al.  Accelerating Speculative Execution in High-Level Synthesis with Cancel Tokens , 2008, ARC.

[16]  Seth Copen Goldstein,et al.  Spatial computation , 2004, ASPLOS XI.

[17]  Scott A. Mahlke,et al.  PICO-NPA: High-Level Synthesis of Nonprogrammable Hardware Accelerators , 2002, J. VLSI Signal Process..

[18]  Charles E. Leiserson,et al.  Optimizing Synchronous Circuitry by Retiming (Preliminary Version) , 1983 .

[19]  Andreas Koch,et al.  Architectures and Execution Models for Hardware/Software Compilation and Their System-Level Realization , 2010, IEEE Transactions on Computers.

[20]  Nikil D. Dutt,et al.  Interface synthesis using memory mapping for an FPGA platform , 2003, Proceedings 21st International Conference on Computer Design.

[21]  Howard M. Heys,et al.  FPGA implementation of MD5 hash algorithm , 2001, Canadian Conference on Electrical and Computer Engineering 2001. Conference Proceedings (Cat. No.01TH8555).

[22]  Yi Shao,et al.  Ultra High Throughput Implementations for MD5 Hash Algorithm on FPGA , 2009, HPCA.

[23]  Scott A. Mahlke,et al.  High-level synthesis of nonprogrammable hardware accelerators , 2000, Proceedings IEEE International Conference on Application-Specific Systems, Architectures, and Processors.

[24]  Andreas Koch Compilation for Adaptive Computing Systems Using Complex Parameterized Hardware Objects , 2004, The Journal of Supercomputing.

[25]  Anh Tuan Hoang,et al.  Multi-stage Pipelining MD5 Implementations on FPGA with Data Forwarding , 2008, 2008 16th International Symposium on Field-Programmable Custom Computing Machines.