Performance and Power of Cache-based Reconfigurable Computing
- Andrew Putnam ,
- Susan Eggers ,
- Dave Bennett ,
- Eric Dellinger ,
- Jeff Mason ,
- Henry Styles ,
- Prasanna Sundararajan ,
- Ralph Wittig
Proceedings of the 36th Annual International Symposium on Computer Architecture |
Published by ACM
Many-cache is a memory architecture that efficiently supports caching in commercially available FPGAs. It facilitates FPGA programming for high-performance computing (HPC) developers by providing them with memory performance that is greater and power consumption that is less than their current CPU platforms, but without sacrificing their familiar, C-based programming environment.
Many-cache creates multiple, multi-banked caches on top of an FGPA’s small, independent memories, each targeting a particular data structure or region of memory in an application and each customized for the memory operations that access it. The caches are automatically generated from C source by the CHiMPS C-to-FPGA compiler.
This paper presents the analyses and optimizations of the CHiMPS compiler that construct many-cache caches. An architectural evaluation of CHiMPS-generated FPGAs demonstrates a performance advantage of 7.8x (geometric mean) over CPU-only execution of the same source code, FPGA power usage that is on average 4.1x less, and consequently performance per watt that is also greater, by a geometric mean of 21.3x.