HeteroSim: A Heterogeneous CPU-FPGA Simulator

Heterogeneous Computing is a promising direction to address the challenges of performance and power walls in high-performance computing, where CPU-FPGA architectures are particularly promising for application acceleration. However, the development of such architectures associated with optimal memory hierarchies is challenging due to the absence of an integrated simulator to support full system simulation and architectural exploration. In this work, we present HeteroSim, a full system simulator supporting x86 multi-cores integrated with an FPGA via bus connection. It can support fast architectural exploration with respect to number of cores, number of accelerated kernels on FPGA, and different memory hierarchies between CPU and FPGA. Various performance metrics are returned for further performance analysis and architectural configuration optimization.

[1]  Hiroyuki Tomiyama,et al.  CHStone: A benchmark program suite for practical C-based high-level synthesis , 2008, 2008 IEEE International Symposium on Circuits and Systems.

[2]  Somayeh Sardashti,et al.  The gem5 simulator , 2011, CARN.

[3]  David A. Wood,et al.  gem5-gpu: A Heterogeneous CPU-GPU Simulator , 2015, IEEE Computer Architecture Letters.

[4]  Jason Helge Anderson,et al.  LegUp: An open-source high-level synthesis tool for FPGA-based processor/accelerator systems , 2013, TECS.

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

[6]  Wei Zhang,et al.  Analytical Delay Model for CPU-FPGA Data Paths in Programmable System-on-Chip FPGA , 2016, ARC.

[7]  David R. Kaeli,et al.  Multi2Sim: A simulation framework for CPU-GPU computing , 2012, 2012 21st International Conference on Parallel Architectures and Compilation Techniques (PACT).