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 Adrian Sampson André Baixo Benjamin Ransford Thierry Moreau Joshua Yip Luis Ceze Mark Oskin sa pa University of Washington
Great approximation idea Actual implementation Publish paper!
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! Undergrad approved! Based on LLVM! Includes benchmarks Permissive Actually & metrics! license! has docs!
EnerJ type qualifiers for the Clang compiler for ( int k = k1; k < k2; k++) { APPROX float distance = dist(points->p[k], points->p[0]); ... }
Optimization feedback loop analysis library finds coarse-grain, safe-to-approximate regions client optimizations use analysis to relax approximable code $ accept log for ( int k = k1; k < k2; k++) { loop at streamcluster.cpp:651 APPROX float distance = dist(points->p[k], points->p[0]); can offload to NPU ... } $ 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 on a commercial FPGA
Finding coarse approximate regions dominator post-dominator
Auto-tuning for optimal trade-o ff s Annotated Program Performance Candidate Candidate Candidate Candidate Candidate Candidate Output Quality
Auto-tuning for optimal trade-o ff s Annotated Program Performance Candidate Candidate Candidate Candidate Candidate Candidate Output Quality
Auto-tuning for optimal trade-o ff s 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?
http:// accept.rocks
Recommend
More recommend