Characterizing Performance and Cache Impacts of Code Multi-Versioning on Multicore Architectures
Description
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 comprehensive study of the impact of multi-versioning 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.
Files
2017_pdp_multiversioning.pdf
Files
(795.1 kB)
Name | Size | Download all |
---|---|---|
md5:288509855e8cb78525df5b93f441cbf9
|
795.1 kB | Preview Download |
Additional details
Related works
- Is part of
- 978-1-5090-6058-0 (ISBN)