Approximate Computing Is Dead; Long Live Approximate Computing
Adrian Sampson Cornell
Approximate Computing Is Dead; Long Live Approximate Computing - - PowerPoint PPT Presentation
Approximate Computing Is Dead; Long Live Approximate Computing Adrian Sampson Cornell Hardware Programming Quality Domains Hardware Programming No more approximate functional units. Quality Domains Narrower bit widths are just as
Approximate Computing Is Dead; Long Live Approximate Computing
Adrian Sampson Cornell
Hardware Programming Quality Domains
Hardware Programming Quality Domains No more approximate functional units.
# 0.2 0.4 0.6 0.8 1
MSSIM
0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8
PDP (pJ)
#10 -3
ACA ETAIV RCAapx Type 1 RCAapx Type 2 RCAapx Type 3 Fixed-Point trunc. Fixed-Point round.
better accuracy better efficiency
Narrower bit widths are just as good or better
[Barrois et al., DATE 2017]
approximate adders from the literature just varying the adder width
Hardware Programming Quality Domains No more approximate functional units. No more voltage overscaling.
Dual-voltage approximate CPU
[ASPLOS 2012]
Fetch Decode Reg Read Execute Memory WB
Instruction Cache ITLB Decoder Register File Integer FU FP FU Data Cache DTLB Register File
replicated functional units dual-voltage SRAM arrays
fft imagefill jmeint lu mc raytracer smm sor zxing ALU cache FPU multiplier registers together
(a)
Hardware Programming Quality Domains No more approximate functional units. No more voltage overscaling. In general, no more fine-grained approximate operations.
25pJ 6pJ Control I-Cache Access Register File Access Add
The Horowitz imbalance
a name I made up for this talk [ISSCC 2014]
routers (R) nodes (N) links (L)
Constraint-based programming for spatial architectures
[Nowatzki et al., PLDI 2013]
y z
Hardware Programming Quality Domains No more approximate functional units. No more voltage overscaling. In general, no more fine-grained approximate operations. No more automatic approximability analysis.
int a = ...; int p = ...; @Approx p = a; a = p;
EnerJ type qualifiers
[PLDI 2011]
int a = ...; int p = ...; @Approx
EnerJ type qualifiers
[PLDI 2011]
Let’s insert these automatically!
Hardware Programming Quality Domains No more approximate functional units. No more voltage overscaling. In general, no more fine-grained approximate operations. No more automatic approximability analysis. No more generic unsound compiler transformations.
Loop perforation
[Sidiroglou-Douskos et al., FSE 2011]
for (int i = 0; i < max; i++) { // whatever } i += 2
Hardware Programming Quality Domains No more approximate functional units. No more voltage overscaling. In general, no more fine-grained approximate operations. No more automatic approximability analysis. No more generic unsound compiler transformations. No more weak statistical guarantees.
∀x f(x) is good
Traditional guarantee
Statistical guarantee
Pr [f(x) is good] ≥ T
Statistical guarantee, in reality
Prx∼D [f(x) is good] ≥ T
anticipated input distribution
x probability
x probability
high quality low quality
x probability
x probability
Adversarial distribution
Hardware Programming Quality Domains No more approximate functional units. No more voltage overscaling. In general, no more fine-grained approximate operations. No more automatic approximability analysis. No more generic unsound compiler transformations. No more weak statistical guarantees. No more sadness about the imperfection of quality metrics.
Application Description Error metric FFT Scientific kernels from the SciMark2 benchmark Mean entry difference SOR Mean entry difference MonteCarlo Normalized difference SparseMatMult Mean normalized difference LU Mean entry difference ZXing Smartphone bar code decoder 1 if incorrect, 0 if correct jMonkeyEngine Mobile/desktop game engine Fraction of correct decisions normalized to 0.5 ImageJ Raster image manipulation Mean pixel difference Raytracer 3D image renderer Mean pixel difference
Hardware Programming Quality Domains No more approximate functional units. No more voltage overscaling. In general, no more fine-grained approximate operations. No more automatic approximability analysis. No more generic unsound compiler transformations. No more weak statistical guarantees. No more sadness about the imperfection of quality metrics. No more benchmark-oriented research?
Application Description Error metric FFT Scientific kernels from the SciMark2 benchmark Mean entry difference SOR Mean entry difference MonteCarlo Normalized difference SparseMatMult Mean normalized difference LU Mean entry difference ZXing Smartphone bar code decoder 1 if incorrect, 0 if correct jMonkeyEngine Mobile/desktop game engine Fraction of correct decisions normalized to 0.5 ImageJ Raster image manipulation Mean pixel difference Raytracer 3D image renderer Mean pixel difference
https://arxiv.org/abs/1409.0575
Winning Classification Top-1 Error 0% 5% 10% 15% 20% 25% 30% 2010 2011 2012 2013 2014 2015 2016
ImageNet annual competition
https://youtu.be/-gQMulb6T2o
Real-time graphics
Hardware Programming Quality Domains No more approximate functional units. No more voltage overscaling. In general, no more fine-grained approximate operations. No more automatic approximability analysis. No more generic unsound compiler transformations. No more weak statistical guarantees. No more sadness about the imperfection of quality metrics. No more benchmark-oriented research?
Notes and links: http://www.cs.cornell.edu/~asampson/blog/closedproblems.html