Embedded processor performance is dependent on both the underlying architecture and the compiler optimizations applied. However, designing both simultaneously is extremely difficult to achieve due to the time constraints designers must work under. Therefore, current methodology involves designing compiler and architecture in isolation, leading to suboptimal performance of the final product.   This article develops a novel approach to this  codesign  space problem. For our specific design space, we demonstrate that we can automatically predict the performance that an optimizing compiler would achieve without actually tuning it for any of the microarchitecture configurations considered. Once trained, a single run of the program compiled with the standard optimization setting is enough to make a prediction on the new microarchitecture with just a 3.2p error rate on average. This allows the designer to accurately choose an architectural configuration with knowledge of how an optimizing compiler will perform on it. We use this to find the best optimizing compiler/architectural configuration in our codesign space and demonstrate that it achieves an average 19p performance improvement and energy savings of 16p compared to the baseline, nearly doubling the energy-efficiency measured as the energy-delay-squared product (EDD).
['Christophe Dubach', 'Timothy M. Jones', 'Michael O’Boyle']
Exploring and Predicting the Effects of Microarchitectural Parameters and Compiler Optimizations on Performance and Energy