Characterizing Performance And Cache Impacts Of Code Multi-Versioning On Multicore Architectures

Peter Zangerl, Peter Thoman, Thomas Fahringer
2017 Zenodo  
Code multi-versioning is an increasingly widely adopted tool for implementing optimizations which respond to unknown or dynamically changing runtime conditions, without the performance overhead of just-in-time compilation. A common concern in its use is instruction cache performance, due to larger binary sizes increasing cache pressure on the one hand and more unpredictable branching on the other. Despite this ongoing interest, there has been no comprehensivestudy of the impact of
more » ... ng so far – particularly in a multi-threaded setting. In this paper, we present a categorization of the parameter space potentially affecting multi-versioned performance, a toolset for exploring this space, and an in-depth characterization of three hardware platforms using this toolset.
doi:10.5281/zenodo.375519 fatcat:iwq4kbhz3jccfjpnfet6z33dyq