ChopStiX: Systematic Extraction of Code-Representative Microbenchmarks

Through microbenchmarks, processor designers have the ability to quickly measure tradeoffs in microarchitectural decisions for a processor design. To avoid the time-consuming and error-prone process of manually hand-crafting microbenchmarks, designers rely on automated microbenchmark generator frameworks that generate synthetic codes for different purposes [1–5]. However, synthetic microbenchmark characteristics –not genuinely derived from real program code– are not very likely to ever occur in real programs. As a result, driving the processor design process using such unrealistic microbenchmarks can lead to over-engineering the final design. Moreover, such non core-representative microbenchmarks can fail to identify performance bottlenecks in the microarchitecture and programs as they are unable to exactly mimic the pipeline behavior at very fine granularity. Therefore, there is a need to systematically generate code-representative microbenchmarks from real program code.

[1]  J. Y. Yen,et al.  Finding the K Shortest Loopless Paths in a Network , 2007 .

[2]  Pradip Bose,et al.  Voltage Noise in Multi-Core Processors: Empirical Characterization and Optimization Opportunities , 2014, 2014 47th Annual IEEE/ACM International Symposium on Microarchitecture.

[3]  Lizy Kurian John,et al.  Improved automatic testcase synthesis for performance model validation , 2005, ICS '05.

[4]  Massoud Pedram,et al.  Microprocessor power estimation using profile-driven program synthesis , 1998, IEEE Trans. Comput. Aided Des. Integr. Circuits Syst..

[5]  Lieven Eeckhout,et al.  Performance Cloning: A Technique for Disseminating Proprietary Applications as Benchmarks , 2006, 2006 IEEE International Symposium on Workload Characterization.

[6]  Meeta Sharma Gupta,et al.  Systematic Energy Characterization of CMP/SMT Processor Systems via Automated Micro-Benchmarks , 2012, 2012 45th Annual IEEE/ACM International Symposium on Microarchitecture.