E-graf
V informatice je e-graf datová struktura, která ukládá relaci ekvivalence nad termy nějakého jazyka.
Definice a operace
[editovat | editovat zdroj]Nechť jsou symboly funkcí v nějakém jazyce, a nechť jsou termy v tomtéž jazyce. Nechť je spočetná množina neprůhledných identifikátorů, u nichž lze ověřovat rovnost. Tuto množinu nazýváme identifikátory e-tříd. Potom e-uzel je symbol n-ární funkce společně s identifikátory e-tříd. E-třída je množina e-uzlů. E-graf obsahuje datovou strukturu disjunktních množin nad identifikátory e-tříd se standardními operacemi , , a .
Identifikátor e-tříd je kanonický, pokud . E-uzel (kde ) je kanonický, pokud je každý kanonický (kde je v ).
E-graf je kombinací: [1]
- struktury disjunktních množin
- hashcons (tj. zobrazení) z kanonických e-uzlů na identifikátory e-tříd
- zobrazení e-tříd které zobrazuje identifikátory e-tříd na e-třídy tak, že přiřadí ekvivalentním identifikátorům stejnou množinu e-uzlů:
Invarianty
[editovat | editovat zdroj]Kromě výše uvedené struktury vyhovuje platný e-graf několika datovým invariantám. [1] Dva e-uzly jsou ekvivalentní, pokud jsou ve stejné e-třídě. Invarianta kongruence uvádí, že e-graf musí zajistit, aby byla ekvivalence uzavřena v rámci kongruence, kde dva e-uzly jsou kongruentní, když . Invarianta hashcons postuluje, že hashcons mapuje kanonické e-uzly na identifikátor jejich e-třídy.
Operace
[editovat | editovat zdroj]E-grafy poskytují abstrakci kolem operací , , a ze struktury disjunktních množin, které zachovávají e-grafové invarianty. Další operací je e-párování. Ten mapuje „vzory“ (termy s proměnnými) na n-tice substitucí (od vzorů k identifikátorům e-tříd) a na identifikátory e-tříd tak, že vrácené e-třídy obsahují uzly, které odpovídají vstupnímu vzoru po aplikování substituce.
Saturace rovností
[editovat | editovat zdroj]Saturace rovností je technika vytváření optimalizujících překladačů pomocí e-grafů. [2] Funguje tak, že aplikuje sadu přepisovacích pravidel pomocí e-párování, dokud není e-graf nasycený, nevyprší časový limit, není dosaženo limitu velikosti e-grafu, není překročen určitý počet iterací nebo není dosaženo jiné zastavovací podmínky. Po přepisování se z e-grafu extrahuje optimální term podle nějaké nákladové funkce, obvykle související s velikostí AST nebo výkonem.
Použití
[editovat | editovat zdroj]E-grafy se používají v automatických důkazových systémech. Tvoří klíčovou součást moderních SMT solverů, jako jsou Z3 [3] a CVC4.
Saturace rovností se používá ve specializovaných optimalizujících kompilátorech, [4] např. pro hluboké učení [5] a lineární algebru. [6] Saturace rovností byla také použita při validaci překladu aplikovanou na sadu nástrojů LLVM. [7]
Reference
[editovat | editovat zdroj]V tomto článku byl použit překlad textu z článku E-graph na anglické Wikipedii.
- ↑ a b Willsey 2021
- ↑ Tate 2009
- ↑ DE MOURA, Leonardo; BJØRNER, Nikolaj. Z3: An Efficient SMT Solver. Editoři C. R. Ramakrishnan, Jakob Rehof. Tools and Algorithms for the Construction and Analysis of Systems. Berlín, Heidelberg: Springer, 2008, roč. 4963, s. 337–340. DOI 10.1007/978-3-540-78800-3_24. (anglicky)
- ↑ JOSHI, Rajeev; NELSON, Greg; RANDALL, Keith. Denali: a goal-directed superoptimizer. ACM SIGPLAN Notices. 17. 5. 2002, roč. 37, čís. 5, s. 304–314. Dostupné online. ISSN 0362-1340. DOI 10.1145/543552.512566.
- ↑ YANG, Yichen; PHOTHILIMTHA, Phitchaya Mangpo; WANG, Yisu Remy. Equality Saturation for Tensor Graph Superoptimization. Další autoři Max Willsey, Sudip Roy, Jacques Pienaar. [s.l.]: [s.n.], 17. 3. 2021. arXiv:cs.AI/2101.01332
- ↑ WANG, Yisu Remy; HUTCHISON, Shana; LEANG, Jonathan. SPORES: Sum-Product Optimization via Relational Equality Saturation for Large Scale Linear Algebra. Další autoři Bill Howe, Dan Suciu. [s.l.]: [s.n.], 22. 12. 2020. arXiv:cs.DB/2002.07951
- ↑ STEPP, Michael; TATE, Ross; LERNER, Sorin. Equality-Based Translation Validator for LLVM. Editoři Ganesh Gopalakrishnan, Shaz Qadeer. Computer Aided Verification. Berlín, Heidelberg: Springer, 2011, roč. 6806, s. 737–742. Dostupné online. DOI 10.1007/978-3-642-22110-1_59. (anglicky)
- DE MOURA, Leonardo; BJØRNER, Nikolaj. Efficient E-Matching for SMT Solvers. S. 183–198. Redakce Frank Pfenning. Automated Deduction – CADE-21 [online]. Springer [cit. 2007]. Roč. 4603, s. 183–198. Dostupné online. DOI 10.1007/978-3-540-73595-3_13. (anglicky)
- WILLSEY, Max; NANDI, Chandrakana; WANG, Yisu Remy, Oliver Flatt, Zachary Tatlock, Pavel Panchekha. egg: Fast and extensible equality saturation. S. 23:1–23:29. Proceedings of the ACM on Programming Languages [online]. [cit. 2021-01-04]. Roč. 5, s. 23:1–23:29. Dostupné online. arXiv 2004.03082. DOI 10.1145/3434304. s2cid 226282597.
- TATE, Ross; STEPP, Michael; TATLOCK, Zachary, Lerner Sorin. Equality saturation: a new approach to optimization. S. 263–276, Savannah, GA, USA. Proceedings of the 36th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages [online]. Association for Computing Machinery [cit. 2009-01-21]. S. 263–276. Dostupné online. DOI 10.1145/1480881.1480915. s2cid 2138086, ISBN 978-1-60558-379-2.