PolyJuice: Detecting Mis-Compilation Bugs in Tensor Compilers with Equality Saturation(…)
summary
PolyJuice builds equivalent tensor-graph variants via equality saturation and selects the most simplified and most complex extracts to force different compilation passes, then cross-checks compiled outputs. It applies NSmith for graph generation, uses egg for e-graphs, and targets seven compilers including PyTorch Inductor, TVM, TensorRT, XLA, OnnxRuntime, EinNet, Hidet. Evaluation finds 84 non-crash mis-compilation bugs with 49 confirmed and 20 fixed, and reports <2% runtime overhead.
AI-written summary · about
chapters (9)
- 0:00PolyJuice introduction
- 2:33Non-crash mis-compilation bugs
- 4:01Challenge in rewriting tensor programs
- 6:56PolyJuice workflow with equality saturation
- 9:31Rewrite rules implementation
- 10:14Experimental results and performance
- 11:19TVM bug case study
- 13:33Summary and open-source
- 14:40Q&A
related talks
11mQiMeng-Xpiler: Transcompiling Tensor Programs for Deep Learning Systems with a...
14mCoverage-guided tensor compiler fuzzing with joint IR-pass mutation
13mMind the Abstraction Gap: Bringing Equality Saturation to Real-World ML Compilers
20mTensor Algebra Equivalence Checker
59mUnder-approximation for Scalable Bug Detection
15mPET: Optimizing Tensor Programs with Partially Equivalent Transformations and Automated
32mCompilation of Dynamic Sparse Tensor Algebra
18mOptimization-Directed Compiler Fuzzing for Continuous Translation Validation
