sa pa
University of Washington Adrian Sampson André Baixo Benjamin Ransford Thierry Moreau Joshua Yip Luis Ceze Mark Oskin
ACCEPT:
We Built an Open-Source Approximation Compiler Framework So You Don't Have To
ACCEPT: We Built an Open-Source Approximation Compiler Framework - - PowerPoint PPT Presentation
ACCEPT: We Built an Open-Source Approximation Compiler Framework So You Don't Have To Adrian Sampson Andr Baixo Benjamin Ransford Thierry Moreau Joshua Yip Luis Ceze Mark Oskin sa pa University of Washington http:// accept.rocks
University of Washington Adrian Sampson André Baixo Benjamin Ransford Thierry Moreau Joshua Yip Luis Ceze Mark Oskin
We Built an Open-Source Approximation Compiler Framework So You Don't Have To
University of Washington Adrian Sampson André Baixo Benjamin Ransford Thierry Moreau Joshua Yip Luis Ceze Mark Oskin
Great approximation idea Publish paper! Actual implementation
The boring stuff.
Annotation language Programmer feedback Coarse region inference Auto-tuning & Pareto frontier collection Benchmarks
ACCEPT, an open-source framework for approximate computing
ACCEPT: features & benefits!
Based
Undergrad approved! Permissive license! Includes benchmarks & metrics! Actually has docs!
for (int k = k1; k < k2; k++) { APPROX float distance = dist(points->p[k], points->p[0]); ... }
EnerJ type qualifiers for the Clang compiler
Optimization feedback loop
$ accept log loop at streamcluster.cpp:651 can offload to NPU $
for (int k = k1; k < k2; k++) { APPROX float distance = dist(points->p[k], points->p[0]); ... }
analysis library finds coarse-grain, safe-to-approximate regions client optimizations use analysis to relax approximable code reports tell developers where annotations are preventing optimization
Optimization feedback loop
loop at streamcluster.cpp:651 blockers: 1 * streamcluster.cpp:652: store to myhiz APPROX float myhiz; loop at streamcluster.cpp:651 can perforate loop
Region analysis
fine, data-centric annotations coarse, code-centric annotations
Neural acceleration
Finding coarse approximate regions
dominator post-dominator
Annotated Program
Candidate Candidate Candidate Candidate Candidate Candidate
Performance Output Quality
Auto-tuning for optimal trade-offs
Annotated Program
Candidate Candidate Candidate Candidate Candidate Candidate
Performance Output Quality
Auto-tuning for optimal trade-offs
Auto-tuning for optimal trade-offs
General search heuristic based on a bin-packing approximation algorithm Automatically separate training & testing inputs Collect Pareto-optimal configurations
Use ACCEPT to avoid reinventing
Program annotations Tools to help you annotate A benchmark suite Quality-aware auto-tuning Coarse-grained region identification
Next steps
Integration with system simulators Extensible auto-tuning strategy Online monitoring Profile-driven optimizations Your optimization here?