Michael Carbin Deokhwan Kim Sasa Misailovic and Martin C Rinard Approximate Computing Media Processing Machine Learning Search Solution Space Accuracy versus Cost Accuracy Time ID: 814420
Download The PPT/PDF document "Proving Acceptability Properties of Rela..." is the property of its rightful owner. Permission is granted to download and print the materials on this web site for personal, non-commercial use only, and to display it on your personal computer provided you do not modify the materials and that you retain all copyright notices contained in the materials. By downloading content from our website, you accept the terms of this agreement.
Slide1
Proving Acceptability Properties of Relaxed Nondeterministic Approximate Programs
Michael Carbin
Deokhwan
Kim,
Sasa
Misailovic
, and Martin C.
Rinard
Slide2Approximate Computing
Media Processing, Machine Learning, Search
Slide3Solution Space: Accuracy versus Cost
Accuracy
Time/
Resources/Cost
0%
100%
Highly Accurate,
Expensive
Less
accurate,
Inexpensive
Slide4Standard Program
Accuracy
Time/
Resources/Cost
0%
100%
One point in tradeoff space
Slide5How Do I Access Other Points in Tradeoff Space?
Slide6Approximate Program Transformations
Task Skipping
(Rinard ICS ‘06) Loop Perforation
(Misailovic, Hoffmann,
Sidiroglou, Rinard MIT-TR ’09; ICSE’10; SAS’11; FSE’11).
Dynamic Knobs (Hoffmann, Sidiroglou, Carbin, Misailovic, Rinard ASPLOS’11)
Function Substitution
(Zhu,
Misailovic
,
Kelner
,
Rinard POPL ’12)
Approximate Memories (Lui, Pattabiraman, Moscibroda, Zorn ASPLOS
’11; Sampson, Dietl, Fortuna, Gnanapragasam
, Ceze, Grossman PLDI ‘11)Approximate Memoization
(Chaudhuri, Gulwani,
Lublinerman, NavidPour FSE ’11)Statistical Parallelization (Misailovic
, Kim, Rinard MIT-TR ’10,’12)
Slide7Relaxed Program
Accuracy
Time/
Resources/Cost
0%
100%
Admits executions at multiple points in tradeoff space
Relaxed programs can dynamically and automatically adapt
Slide8Loop Perforation
Profile
program, find
loops that take most timePerforate the
loops (skip some iterations)
for (
i
= 0;
i
< n;
i
++) { … }
relax
s
st
(
s
== 1
||
s
== 2
);
for
(
i
= 0; i < n;
i += s)
{ … }
Nondeterministically
choose loop increment
Execute subset of loop iterations
Slide9Common Reaction
OK, I agree program should run
fasterBut you can’t do this because you’ll get the wrong result!
Slide10Our Response
OK, I agree program should run
fasterBut you can’t do this because you’ll get the wrong result!
You won’
t get the wrong result
You’ll get a different result
Slide11We Tried It, And It Works!(ICSE 2010, FSE 2011)
Parsec Benchmark Suite
x264
(H.264 video encoding)
bodytrack
(human movement tracking)swaptions (swaption pricing)ferret (image search)
canneal
(
digital circuit place and route)
blackscholes
(
European option pricing)
streamcluster
(online point clustering)
Results
Performance improvement Typically over a factor of two
Up to a factor of sevenLess than 10% change in outputBut no guarantees…
Slide12What This Paper Is About
Expressing relaxed programs
Specifying acceptability of relaxed programsProving relaxed programs are acceptable
Slide13Key Insights
Relax statement introduces
nondeterminism Subject to a relaxation condition Original and relaxed programs
share structureUse relational reasoningTo transfer specification/verification effort from original program to relaxed program
Slide14Methodology for Safe and Acceptable Relaxed
P
rograms
Slide15Step #1: Develop a Program
Accuracy
Time/
Resources/Cost
0%
100%
Slide16Step #2: Define and Verify/Validate Acceptability
Accuracy
Time/
Resources/Cost
0%
100%
Define safety and acceptable levels of accuracy
Slide17Defining Acceptable
Safety
Integrity
Accuracy
Key: any implementation that satisfies the stated acceptability properties is acceptable
Acceptability
Properties
Slide18Acceptability Specification
assert
P: verified assertion
assume P
: assumptionOriginal program: established through any means Relaxed program: must be preserved
relate : relational assertionRelates values in relaxed program to original
Slide19Example Acceptability Properties
relate |z<r>
-
z<o>| <=
.1 * z<o>
relate y<r> == y<o>
assert x != 0
a
ssume
x >= 0
Safety:
Integrity:
Accuracy:
Slide20Step #3: Relax Program
Accuracy
Time/
Resources/Cost
0%
100%
Insert relax statements to introduce nondeterministic behaviors at other points
Slide21Relax Statement
relax
(s) st
(s == 1 || s == 2)
Modified Variables
Relaxation Predicate
Slide22Relaxed Program Semantics
Shared Structure, Two Semantics
Original semantics (
relax statements have no effect)Relaxed semantics
(relax statements modify state)
Approximate
Nondeterministic
Slide23Step #4: Verify that
Relaxation Preserves Acceptability
Accuracy
Time/
Resources/Cost
0%
100%
Verify that
is a subset of
Slide24How do we verify relaxed programs?
(Verification Strategies)
Slide25Program Logic (Hoare Logic)
{
x = 1
} x = x + 1 {x = 2}
If we
know P is true of the program, then after execution of s, Q is also true
Slide26Strategy #1: Verify Relaxed Program Outright
Note: relaxation doesn’t modify y
If S(y) is true in the original program, then it’s also true in relaxed
<...>
{ P(x, y) && Q(y) }
relax (x) st (true);{ Q(y) }
<...>
{ R(x, y) && S(y)}
a
ssert R(x, y)
&& S(y);
Lose P because x is modified
Prove both R and S
Slide27Relational Program Logic
{
x<r>
== x<o
> &&
y<r> == y<o>} relax (x) st
(true);
{
y<r>
==
y<o
>
}
Slide28Strategy #2: Relational Reasoning
<...>
{
x<r> == x<o>
&& y<r> ==
y<o>}relax (x) st (true);{ y<r> == y<o> }
<...>
{R(x<r>,
y<r>) && y<r> == y<o
> }
assert R(x, y) && S(y) ;
x
different but y the same
Only prove R
If
S(y<o>)
is true
a
nd
y<r> == y<o>
t
hen
S(y<r>) is true
Relational reasoning is the bridge
Slide29Guarantee: Relative Progress
If original program satisfies all assertions, then
the relaxed program satisfies all assertions
Established through any means: verification, testing, code review
Slide30Formalization
Slide31Language
Slide32Inference Rules
Slide33Coq Formalization
Slide34A Lot of Coq
Formalization is sound.
Relative progress guaranteed
Slide35Case Studies
Dynamic Knobs
Dynamically choose different implementationsStatistical ParallelizationReduce synchronization of parallelized algorithmApproximate Memory
Relax memory integrity of a stored matrix
In the paper!
Slide36Future Work (In Progress/Submission)
Termination
Relaxation may interfereRelative termination perhaps powerful
ScalabilityLarger language; verified with static analysisSynthesizing Relaxations
Derive relaxations from acceptability properties
Slide37Related Work
Executable Specifications
Specification Statement (Morgan TOPLAS ‘88)Relational Reasoning/Program LogicsTranslation Validation (Pnueli
TACAS ’98) Relational Hoare Logic (Benton POPL
’04)Developed for verifying traditional compiler optimizations – i.e., semantic equivalenceSafe Approximate Computations
Critical Region Identification (Carbin ISSTA ‘10)EnerJ: Approximate Data Types (Sampson PLDI ’11)
Slide38Takeaway
Relaxation
is a powerful techniqueIncreased performanceReduced powerDynamic adaptationRelational reasoning
is the key to verifying acceptability of relaxed programs