Equality Saturation A New Approach to Optimization Ross
- Slides: 28
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
Exploring Equivalences
Exploring Equivalences
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 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
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 += 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 += 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 = (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) << θ 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 Conversion + * * 0 4 * 4 Equality Saturation Global Profitability Heuristic 1 PEG→CFG Conversion
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 PEG→CFG Conversion
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 += 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 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 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 ◦ 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 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 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: ◦ 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
- Equality saturation
- Aggressive role
- Substantive equality vs formal equality
- Formal and substantive equality
- New-old approach to creating new ventures
- Jelaskan teknik optimasi dan peralatan manajemen
- What is the zone of aeration
- Zone of saturation
- Velocity saturation results in
- Effective green time
- Convenience sampling adalah
- Subcooling and superheat formula
- Mosfet dc analysis
- Pmos saturation current equation
- Logistic curve method
- Normal oxygen saturation by age
- Diode saturation current
- Vdssat
- What is velocity saturation in mosfet
- Today
- Saturation condition for bjt
- Saturation azote plongée
- Hepcidin ferroportin
- Water table chart
- Zone of aeration and zone of saturation
- The first transistor
- Equivalent circuit of bjt
- Ascorbic acid saturation test
- Unit of transistor