DocumentCode
3759132
Title
Runtime Value Numbering: A Profiling Technique to Pinpoint Redundant Computations
Author
Shasha Wen;Xu Liu;Milind Chabbi
Author_Institution
Dept. of Comput. Sci., Coll. of William &
fYear
2015
Firstpage
254
Lastpage
265
Abstract
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.
Keywords
"Redundancy","Optimization","Runtime","Context","Benchmark testing","Algorithm design and analysis","Measurement"
Publisher
ieee
Conference_Titel
Parallel Architecture and Compilation (PACT), 2015 International Conference on
ISSN
1089-795X
Type
conf
DOI
10.1109/PACT.2015.29
Filename
7429311
Link To Document