Concepedia

Abstract

Many opportunities exist to improve micro-architectural performance due to performance events that are dicult to optimize at static compile time. Cache misses and branch mis-prediction patterns may vary for dierent micro-architectures using dierent inputs. Dynamic optimization provides an approach to address these and other performance events at runtime. This paper describes a software system of real implementation that detects performance problems of running applications and deploys optimizations to increase execution eciency. We discuss issues of detecting performance bottlenecks, generating optimized traces and redirecting execution from the original code to the dynamically optimized code. Our current system speeds up many of the CPU2000 benchmark programs having large numbers of D-Cache misses through dynamically deployed cache prefetching. For other applications that don’t benefit from our runtime optimization, the average cost is only 2% of execution time. We present this lightweight system as an example of using existing hardware and software to deploy speculative optimizations to improve a program’s runtime performance.

References

YearCitations

Page 1