Equality Saturation A New Approach to Optimization Ross

  • Slides: 28
Download presentation
Equality Saturation: A New Approach to Optimization Ross Tate, Mike Stepp, Zach Tatlock, Sorin

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

Traditional Optimization Phase Ordering Problem Original Program Optimized Program Optimizations Local Profitability Heuristics

Traditional Optimization

Traditional Optimization

Exploring Equivalences

Exploring Equivalences

Exploring Equivalences

Exploring Equivalences

Our Approach Program Expression Graph CFG→PEG Conversion

Our Approach Program Expression Graph CFG→PEG Conversion

Our Approach Equality Saturation CFG→PEG Conversion Equality Saturation Global Profitability Heuristic PEG→CFG Conversion

Our Approach Equality Saturation CFG→PEG Conversion Equality Saturation Global Profitability Heuristic PEG→CFG Conversion

Our Approach Global Profitability Heuristic CFG→PEG Conversion Equality Saturation Global Profitability Heuristic PEG→CFG Conversion

Our Approach Global Profitability Heuristic CFG→PEG Conversion Equality Saturation Global Profitability Heuristic PEG→CFG Conversion

Our Approach PEG→CFG Conversion CFG→PEG Conversion Equality Saturation Global Profitability Heuristic PEG→CFG Conversion

Our Approach PEG→CFG Conversion CFG→PEG Conversion Equality Saturation Global Profitability Heuristic PEG→CFG Conversion

Benefits Mitigates Phase Ordering Problem ◦ Non-destructive updates allow exponential search Global Profitability Heuristic

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 CFG→PEG Conversion Equality Saturation Global Profitability Heuristic PEG→CFG Conversion

Example sum = 0; for (i = 0; i < 10; i++) sum +=

Example sum = 0; for (i = 0; i < 10; i++) sum += 4 * i; return sum; CFG→PEG Conversion Equality Saturation Global Profitability Heuristic PEG→CFG Conversion

Representing Loops sum = 0; for (i = 0; i < 10; i++) sum

Representing Loops sum = 0; for (i = 0; i < 10; i++) sum += 4 * i; return sum; * θ 1 4 0 + 1 CFG→PEG Conversion ü Complete Representation ü Referentially Transparent ü No Intermediate Variables Equality Saturation Global Profitability Heuristic PEG→CFG Conversion

Equality Analyses ∀X. 4*X = (X≪ 2) << * 2 ◦ ∀X. 4*X =

Equality Analyses ∀X. 4*X = (X≪ 2) << * 2 ◦ ∀X. 4*X = (X≪ 2) θ 1 4 0 Identify Equalities PEG Node Granularity Equality Axioms + 1 CFG→PEG Conversion Equality Saturation Global Profitability Heuristic PEG→CFG Conversion

Equality Inference ∀X. 4*X = (X≪ 2) ∀X, Y. 4*θ(X, Y) = θ(4*X, 4*Y)

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 θ 1 4 0 + 4 CFG→PEG Conversion 0 ∀X. X*0 = 0 4 ∀X. X*1 = X 4 1 Equality Saturation + * * Global Profitability Heuristic * * 1 4 PEG→CFG Conversion

E-PEG << θ 1 * 2 θ 1 4 0 + 4 1 CFG→PEG

E-PEG << θ 1 * 2 θ 1 4 0 + 4 1 CFG→PEG Conversion + * * 0 4 * 4 Equality Saturation Global Profitability Heuristic 1 PEG→CFG Conversion

PEG Selection << θ 1 * 2 Global 4 θ 1 Profitability Heuristic 0

PEG Selection << θ 1 * 2 Global 4 θ 1 Profitability Heuristic 0 + 4 1 CFG→PEG Conversion + * * 0 4 * 4 Equality Saturation Global Profitability Heuristic 1 PEG→CFG Conversion

Optimized PEG θ 1 0 + 4 CFG→PEG Conversion Equality Saturation Global Profitability Heuristic

Optimized PEG θ 1 0 + 4 CFG→PEG Conversion Equality Saturation Global Profitability Heuristic PEG→CFG Conversion

Optimized Program θ 1 0 + 4 CFG→PEG Conversion Equality Saturation sum = 0;

Optimized Program θ 1 0 + 4 CFG→PEG Conversion Equality Saturation sum = 0; for(j = 0; j < 40; j += 4) sum += j; return sum; Global Profitability Heuristic PEG→CFG Conversion

Optimized Program sum = 0; for(i = 0; i < 10; i++) sum +=

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 CFG→PEG Conversion Equality Saturation Global Profitability Heuristic PEG→CFG Conversion

Emergent Optimizations composed from simple rules ◦ ◦ ◦ Loop Induction Variable Strength Reduction

Emergent 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 CFG→PEG Conversion Equality Saturation Global Profitability Heuristic PEG→CFG Conversion

Implementation CFG→PEG Conversion Equality Saturation Global Profitability Heuristic PEG→CFG Conversion

Implementation CFG→PEG Conversion Equality Saturation Global Profitability Heuristic PEG→CFG Conversion

Implementation CFG→PEG Conversion Equality Saturation Global Profitability Heuristic PEG→CFG Conversion Algorithm provided in the

Implementation CFG→PEG Conversion Equality Saturation Global Profitability Heuristic PEG→CFG Conversion Algorithm provided in the Technical Report Model heap with values having linear types

Implementation CFG→PEG Conversion Equality Saturation Global Profitability Heuristic PEG→CFG Conversion Tarjan’s Union-Find Algorithm ◦

Implementation CFG→PEG Conversion Equality Saturation Global Profitability Heuristic PEG→CFG Conversion 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 CFG→PEG Conversion Equality Saturation Pseudo-Boolean Solver Global Profitability Heuristic PEG→CFG Conversion ◦ Assign

Implementation CFG→PEG Conversion Equality Saturation Pseudo-Boolean Solver Global Profitability Heuristic PEG→CFG Conversion ◦ 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

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 Spec. JVM (per method): ◦ 1030 programs found in less than 200 MB memory ◦ Average compilation time per stage: CFG→PEG Conversion Equality Saturation 14 msec 88 msec Global Profitability Heuristic 1499 msec PEG→CFG Conversion 43 msec

Translation Validator CFG→PEG Conversion Equality Saturation ? Validation of Soot optimizer on Spec. JVM:

Translation Validator CFG→PEG Conversion Equality Saturation ? Validation of Soot optimizer on Spec. JVM: ◦ 98% of optimized methods successfully validated ◦ Optimization bug found within remaining 2%

Conclusions Powerful ◦ Simultaneous Exponential Search ◦ Emergent Optimizations Extensible ◦ Cooperative Equality Analyses

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

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