Runtime value numbering: A profiling technique to pinpoint redundant computations

S Wen, X Liu, M Chabbi - 2015 International Conference on …, 2015 - ieeexplore.ieee.org
S Wen, X Liu, M Chabbi
2015 International Conference on Parallel Architecture and …, 2015ieeexplore.ieee.org
Redundant computations can severely degrade performance in HPC applications.
Redundant computations arise due to various causes such as developers' inattention to
performance, inappropriate choice of algorithms, and inefficient code generation, among
others. Aliasing, limited optimization scopes, and insensitivity to input and execution
contexts act as severe deterrents to static program analysis. Furthermore, static analysis
cannot quantify the benefit from redundancy elimination. Consequently, large optimization …
Redundant computations can severely degrade performance in HPC applications. Redundant computations arise due to various causes such as developers' inattention to performance, inappropriate choice of algorithms, and inefficient code generation, among others. Aliasing, limited optimization scopes, and insensitivity to input and execution contexts act as severe deterrents to static program analysis. Furthermore, static analysis cannot quantify the benefit from redundancy elimination. Consequently, large optimization efforts may yield little or no benefit. To address these limitations, we develop a dynamic profiler to pinpoint and quantify redundant computations in an execution. Our methodology -- Runtime Value Numbering (RVN) -- is based on the classical value numbering technique but works at runtime instead of compile time. RVN works on unmodified, fully-optimized binaries. RVN provides insightful feedback about redundancies and helps developers tune their applications for high performance. Since RVN employs fine-grained instrumentation, it incurs high overhead. We apply several optimizations to reduce the profiling overhead. Guided by the feedback from RVN, we optimize four benchmarks from SPEC CPU2000/2006 suite, the Sweep3D, and NAS Multi Grid (MG). We speed up these programs up to 1.22X. RVN identifies computation redundancies that compilers failed to optimize even with profile guided optimization.
ieeexplore.ieee.org