Two Approximate- Programmability Birds, One Statistical- Inference - - PowerPoint PPT Presentation

two approximate programmability birds one statistical
SMART_READER_LITE
LIVE PREVIEW

Two Approximate- Programmability Birds, One Statistical- Inference - - PowerPoint PPT Presentation

Two Approximate- Programmability Birds, One Statistical- Inference Stone Adrian Sampson University of Washington sa pa APPROX 2014 Assisted approximate programming Statistical inference Cheap check generation 1 Assisted approximate


slide-1
SLIDE 1

sa pa

APPROX 2014 Adrian Sampson

Two Approximate- Programmability Birds, One Statistical- Inference Stone

University of Washington

slide-2
SLIDE 2

slide-3
SLIDE 3

Assisted approximate programming Cheap check generation Statistical inference

slide-4
SLIDE 4

Assisted approximate programming Cheap check generation Statistical inference

1 2 3 4

Next steps

slide-5
SLIDE 5

Expressing quality

Pr[d(f(x), f 0(x)) ≤ b] ≥ p

  • riginal program

relaxed version distance metric input bounding parameters

slide-6
SLIDE 6

Assisted approximate programming

f f 0

slide-7
SLIDE 7

Assisted approximate programming

f f 0

int p = 5; @Approx int a = 7; for (int x = 0..) { a += func(2); @Approx int z; z = p * 2; p += 4; } a /= 9; func2(p); a += func(2); @Approx int y; z = p * 22 + z; p += 10; int p = 5; int a = 7; for (int x = 0..) { a += func(2); int z; z = p * 2; p += 4; } a /= 9; func2(p); a += func(2); int y; z = p * 22 + z; p += 10;

Manual

slide-8
SLIDE 8

Assisted approximate programming

f f 0

+

Pr[d(f(x), f 0(x)) ≤ b] ≥ p

ExpAX [Esmaeilzadeh+] Syndy [Misailovic and Rinard, WACAS] Optimization in Rely [Misailovic+] ⋮

slide-9
SLIDE 9

Assisted approximate programming Cheap check generation Statistical inference

slide-10
SLIDE 10

Quality: the fantasy

Correctness Probability

Inputs average probability

slide-11
SLIDE 11

Quality: the reality

Correctness Probability

Inputs average probability

slide-12
SLIDE 12

Cheap checks to fall back to precise execution

Correctness Probability

Inputs average probability

slide-13
SLIDE 13

Cheap checks

f f 0

Pr[d(f(x), f 0(x)) ≤ b] ≥ p

x s.t.

Pr[d(f(x), f 0(x)) ≤ b] ≥ p

slide-14
SLIDE 14

Assisted approximate programming Cheap check generation Statistical inference

slide-15
SLIDE 15

Approximate program

def dist(x1, y1, x2, y2): return sqrt((x1 − x2) ∗∗ 2 + (y1 − y2) ∗∗ 2)

approximate operations

slide-16
SLIDE 16

Approximate program → probabilistic program

def dist(x1, y1, x2, y2): return sqrt((x1 − x2 + error()) ∗∗ 2 + (y1 − y2 + error()) ∗∗ 2) + error()

slide-17
SLIDE 17

Assisted approximate programming as statistical inference

def dist(x1, y1, x2, y2): return sqrt((x1 − x2 + error(?)) ∗∗ 2 + (y1 − y2 + error(?)) ∗∗ 2) + error(?)

s.t.

Pr[d(f(x), f 0(x)) ≤ b] ≥ p

slide-18
SLIDE 18

Cheap check generation as statistical inference

def dist(x1, y1, x2, y2): return sqrt((x1 − x2 + error()) ∗∗ 2 + (y1 − y2 + error()) ∗∗ 2) + error()

s.t.

Pr[d(f(x), f 0(x)) ≤ b] ≥ p

x1 = dist(?) y1 = dist(?) x2 = dist(?) y2 = dist(?)

slide-19
SLIDE 19

First steps

slide-20
SLIDE 20

First steps: translate to a probability distribution

int p = 5; int a = 7; for (int x = 0..) { a += func(2); int z; z = p * 2; p += 4; } a /= 9; func2(p); a += func(2); int y; z = p * 22 + z; p += 10;

? ? ?

slide-21
SLIDE 21

First steps: statistical inference with constraints?

? ? ?

Pr[d(f(x), f 0(x)) ≤ b] ≥ p

slide-22
SLIDE 22

First steps: statistical inference with constraints and objectives?

? ? ?

Pr[d(f(x), f 0(x)) ≤ b] ≥ p

minimize

slide-23
SLIDE 23

First steps: statistical inference with constraints and objectives scalably?

? ? ?

Pr[d(f(x), f 0(x)) ≤ b] ≥ p

minimize

slide-24
SLIDE 24

Assisted approximate programming Cheap check generation Statistical inference

slide-25
SLIDE 25