Towards Numerical Assistants
Trust, Measurement, Community, and Generality for the Numerical Workbench
Pavel Panchekha
pavpan@cs.utah.edu University of Utah
Zachary Tatlock
ztatlock@cs.washington.edu University of Washington
Towards Numerical Assistants Trust, Measurement, Community, and - - PowerPoint PPT Presentation
Towards Numerical Assistants Trust, Measurement, Community, and Generality for the Numerical Workbench Pavel Panchekha Zachary Tatlock pavpan@cs.utah.edu ztatlock@cs.washington.edu University of Utah University of Washington Writing
Pavel Panchekha
pavpan@cs.utah.edu University of Utah
Zachary Tatlock
ztatlock@cs.washington.edu University of Washington
https://xkcd.com/217/
Blake Courter CAD Researcher
Blake Courter CAD Researcher
Blake Courter CAD Researcher
Blake Courter CAD Researcher 2015
FPBench Titanic
FPBench Titanic
FPBench Titanic
Given input expression
Given input expression
Synthesize a floating point implementation
Given input expression
Synthesize a floating point implementation Less error than naive translation
Sample inputs, estimate error
Sample inputs, estimate error Heuristically search for more accurate expressions
Sample inputs, estimate error Heuristically search for more accurate expressions Select best exprs, infer branches
Sample inputs, estimate error Heuristically search for more accurate expressions Select best exprs, infer branches
Test set, not training set
Identify where error is arising
Identify where error is arising Show stepwise derivation
Identify where error is arising Show stepwise derivation Justify by accuracy impact
Build generic telemetry! Iteratively develop viz! 100s bugs fixed, 1000x speedups!
Build generic telemetry! Iteratively develop viz! 100s bugs fixed, 1000x speedups!
Global overviews
Global overviews Per component logs
Global overviews Per component logs Compare to oracles where possible!
Link to join on fpbench.org
“Precision scopes” specify MPMF!
Enables parameter sweeps: iters, cost, accuracy
(FPCore matmul ((A am an) (B bm bn)) :pre (== an bm) (tensor ([m am] [n bn]) (for ([i bm]) ([prod 0 (+ prod (* (ref A m i) (ref B i n)))]) prod)) ) FPBench 2.0 adds tensor support, keeps minimal core