290 likes | 463 Vues
This paper introduces a new optimization approach called Equality Saturation, which tackles the traditional Optimization Phase Ordering Problem in programming. By exploring equivalences and utilizing a Global Profitability Heuristic, our approach transforms programs efficiently. It offers benefits such as mitigating phase ordering issues, enabling non-destructive updates for exponential search, and enhancing translation validation. The method involves representing loops and equality analyses through Program Expression Graphs, allowing for complete representation without intermediate variables. With Equality Inference and Global Profitability Heuristic, the optimized Program Expression Graphs are achieved. The approach also includes Loop Induction Variable Strength Reduction and other emergent optimizations based on simple rules. Implementation details and case studies with Peggy, a Java Bytecode Optimizer, showcase significant improvements in program efficiency and runtime. Finally, this study concludes with insights on the extensibility and powerful nature of Equality Saturation in optimization and translation validation.
E N D
Equality Saturation:A New Approach to Optimization Ross Tate, Mike Stepp, Zach Tatlock, Sorin Lerner University of California, San Diego
Traditional Optimization Phase Ordering Problem Original Program Optimized Program Optimizations Local Profitability Heuristics
CFG→PEG Conversion Our Approach Program Expression Graph
Equality Saturation Our Approach
Our Approach Global Profitability Heuristic
PEG→CFG Conversion Our Approach
Benefits • Mitigates Phase Ordering Problem • Non-destructive updates allow exponential search • Global Profitability Heuristic • Explore first, then decide • Translation Validation • Verify translations using equality saturation
Example sum = 0; for (i = 0; i < 10; i++) sum += 4 * i; return sum;
Representing Loops sum = 0; for (i = 0; i < 10; i++) sum += 4 * i; return sum; * 4 θ1 • Complete Representation • Referentially Transparent • No Intermediate Variables 0 + 1
Equality Analyses • Identify Equalities • PEG Node Granularity • Equality Axioms • ∀X. 4*X = (X≪2) ∀X. 4*X = (X≪2) << * 2 4 θ1 0 + 1
Equality Inference ∀X. 4*X = (X≪2) ∀X,Y. 4*θ(X, Y) = θ(4*X, 4*Y) << θ1 * ∀ X,Y,Z. X*(Y+Z) = X*Y+ X*Z * 2 * + 4 θ1 4 * * 4 0 0 + ∀X. X*0 = 0 4 1 4 1 ∀X. X*1 = X
E-PEG << * θ1 + * 2 4 θ1 * 4 * 0 + 4 0 1 4 1
PEG Selection << * θ1 Global Profitability Heuristic + * 2 4 θ1 * 4 * 0 + 4 0 1 4 1
Optimized PEG θ1 0 + 4
Optimized Program sum = 0; for(j = 0; j < 40; j += 4) sum += j; return sum; θ1 0 + 4
Optimized Program sum = 0; for(i = 0; i < 10; i++) sum += 4 * i; return sum; sum = 0; for(j = 0; j < 40; j += 4) sum += j; return sum; Loop Induction Variable Strength Reduction
Emergent Optimizations Optimizations composed from simple rules • Loop Induction Variable Strength Reduction • Loop-Operation Factoring • Loop-Operation Distributing • Inter-Loop Strength Reduction • Temporary Object Removal • Partial Inlining
Implementation • Algorithm provided in the Technical Report • Model heap with values having linear types
Implementation • Tarjan’s Union-Find Algorithm • tracks equivalence classes in the E-PEG • Rete Pattern Matching Algorithm • incrementally finds significant nodes in the E-PEG • Equality Analyses: • PEG Operator Axioms • Language-Specific Axioms • Domain-Specific Axioms
Implementation • Pseudo-Boolean Solver • Assign a cost to each operation in the E-PEG • Impose constraints for a well-formed PEG • Minimize the cost of the selected PEG
Peggy: Java Bytecode Optimizer • Observed Emergent Optimizations • Traditionally need to be explicitly implemented • Domain-Specific Analyses: • 7% runtime improvement on Java ray tracer • Compilation of SpecJVM (per method): • 1030 programs found in less than 200MB memory • Average compilation time per stage: 14 msec 88 msec 1499 msec 1499 msec 43 msec
CFG→PEG Conversion • CFG→PEG Conversion • Equality Saturation Translation Validator • Validation of Soot optimizer on SpecJVM: • 98% of optimized methods successfully validated • Optimization bug found within remaining 2% ?
Conclusions • Powerful • Simultaneous Exponential Search • Emergent Optimizations • Extensible • Cooperative Equality Analyses • Domain-Specific Axioms • General • Optimization • Translation Validation
Related Work • E-Graphs • Denali: Basic Block Assembly Superoptimizer • Simplify: Theorem Prover • Representations • Thinned-Gated SSA • Lucid programming language • Value Dependence Graph • Dependence Flow Graph • Program Dependence Graph/Web • Rewrite-Based Optimizers • TAMPR • ASF+SDF • Stratego