~/talk

Verifying and Improving Halide’s Term Rewriting System with Program Synthesis

Talkat OOPSLA 2020 · 2020-11-15..11-20· [compilers-and-language-design]
links:none on file
links:none on file
links:none on file
links:none on file
links:none on file
slides:none on file

Halide’s term rewriting system is formally verified and extended using SMT and synthesis tools: Z3 proves 88% of rules automatically and Coq completes the remaining proofs, finding 4 unsound rules and later 44 broken rules after a division-by-zero semantics change. Termination is proved by a compositional reduction order after fixing 8 rules. A CEGIS-based synthesizer consumes ~100k real expressions and yields 4,000 new rules in a day, improving peak memory by up to 50% with no noticeable compile-time slowdown; fixes match or beat five human patches.

AI-written summary · about

  1. 0:00Start
  2. 0:37A key component! Running benchmark suite without this engine resulted in a 5x increase in compilation times and a 26x increase in runtimes
  3. 1:02Uses of the reasoning engine
  4. 1:59Talk roadmap
  5. 2:44Term rewriting systems
  6. 3:43Limits to reasoning power Reasoning power vs. performance
  7. 4:50Proofs of Correctness: Soundness SMT Solver
  8. 5:44An example of an unsound rule
  9. 6:25Reverification of new semantics
  10. 7:29Proofs of correctness: termination
  11. 8:34Reduction order
  12. 9:25The Halide simplification order
  13. 11:18Strengthening the ruleset via synthesis
  14. 12:23Our synthesis pipeline (briefly)
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.