EnerJ Approximate Data Types for Safe and General Low-Power - - PowerPoint PPT Presentation

enerj
SMART_READER_LITE
LIVE PREVIEW

EnerJ Approximate Data Types for Safe and General Low-Power - - PowerPoint PPT Presentation

EnerJ Approximate Data Types for Safe and General Low-Power Computation Adrian Sampson Werner Dietl Emily Fortuna Danushen Gnanapragasam Luis Ceze Dan Grossman sa pa University of Washington PLDI 2011 photo: Apple, Inc. photo: Robert


slide-1
SLIDE 1

EnerJ

Approximate Data Types for Safe and General Low-Power Computation

Adrian Sampson Werner Dietl Emily Fortuna Danushen Gnanapragasam Luis Ceze Dan Grossman

sa pa

PLDI 2011 University of Washington

slide-2
SLIDE 2

photo: Apple, Inc.

slide-3
SLIDE 3

photo: Robert Scoble (CC BY 2.0)

slide-4
SLIDE 4

photo: Rob Van De Pavert (CC BY-NC-SA 2.0)

slide-5
SLIDE 5

EnerJ:

Save energy using programmer controls

  • ver execution correctness.
slide-6
SLIDE 6
slide-7
SLIDE 7

Perfect correctness is not required

information retrieval machine learning sensory data scientific computing physical simulation games augmented reality computer vision

slide-8
SLIDE 8

Anant Agarwal, Martin Rinard, Stelios Sidiroglou, Sasa Misailovic, and Henry

  • Hoffmann. Using code perforation to improve performance, reduce energy

consumption, and respond to failures. Technical report, MIT, 2009. [1] B.E.S. Akgul, L.N. Chakrapani, P. Korkmaz, and K.V. Palem. Probabilistic CMOS technology: A survey and future directions. In IFIP Intl. Conference on VLSI, 2006. [2]

  • M. de Kruijf and K. Sankaralingam. Exploring the synergy of emerging

workloads and silicon reliability trends. In SELSE, 2009. [3] Larkhoon Leem, Hyungmin Cho, Jason Bau, Quinn A. Jacobson, and Subhasish Mitra. ERSA: Error resilient system architecture for probabilistic

  • applications. In DATE, 2010.

[4] Xuanhua Li and Donald Yeung. Exploiting soft computing for increased fault

  • tolerance. In ASGI, 2006.

[5] Song Liu, Karthik Pattabiraman, Thomas Moscibroda, and Benjamin G. Zorn. Flicker: Saving refresh-power in mobile devices through critical data

  • partitioning. Technical Report MSR-TR-2009-138, Microsoft Research, 2009.

[6] Sriram Narayanan, John Sartori, Rakesh Kumar, and Douglas L. Jones. Scalable stochastic processors. In DATE, 2010. [7] Vicky Wong and Mark Horowitz. Soft error resilience of probabilistic inference

  • applications. In SELSE, 2006.

[8]

slide-9
SLIDE 9

Storage

AND NOR NAND

Logic Algorithms

λ

EnerJ

Flikker ASPLOS 2011

Kinds of imprecision

Relax ISCA 2010 Green PLDI 2010

slide-10
SLIDE 10

Generality

A range of approximation strategies supported with a single abstraction.

slide-11
SLIDE 11

Critical Non-Critical

error-sensitive error-resilient

references jump targets JPEG header pixel data neuron weights audio samples video frames

slide-12
SLIDE 12
slide-13
SLIDE 13
slide-14
SLIDE 14

Critical Non-Critical

error-sensitive error-resilient

✓ ✗

references jump targets JPEG header pixel data neuron weights audio samples video frames

slide-15
SLIDE 15

Safety

Separate critical and non-critical program components.

Generality

A range of approximation strategies supported with a single abstraction.

slide-16
SLIDE 16

Java language extension using type annotations Proposed approximate hardware Potential energy savings in existing Java programs

slide-17
SLIDE 17

Java language extension using type annotations Proposed approximate hardware Potential energy savings in existing Java programs

slide-18
SLIDE 18

Java language extension using type annotations Type qualifiers: @Approx

@Precise

& Endorsement Operator overloading Prevention of implicit flows Objects: qualifier polymorphism

slide-19
SLIDE 19

✓ ✗

int a = ...; int p = ...; @Approx @Precise p = a; a = p;

Type qualifiers

slide-20
SLIDE 20

endorse( )

✓ ✗

int a = expensiveCalc(); int p; @Approx @Precise p = a;

Endorsement: escape hatch

quickChecksum(p);

  • utput(p);
slide-21
SLIDE 21

int a = ...; int p = ...; @Approx @Precise p + p; p + a; a + a;

+ : @Precise int, @Precise int → @Precise int + : @Approx int, @Approx int → @Approx int

Logic approximation: overloading

slide-22
SLIDE 22

int a = ...; int p = ...; @Approx @Precise if ( p = 2; } a == 10) {

Control flow

slide-23
SLIDE 23

int a = ...; int p = ...; @Approx @Precise if ( p = 2; } a == 10 ) { endorse( )

Control flow

slide-24
SLIDE 24

float mean() { calculate mean } float[] nums = ...; class FloatSet { new @Approx FloatSet() new @Precise FloatSet() }

Objects

slide-25
SLIDE 25

float mean() { calculate mean } float[] nums = ...; class FloatSet { @Context }

Objects

slide-26
SLIDE 26

float mean() { calculate mean } float[] nums = ...; class FloatSet { @Context } @Approx float mean_APPROX() { take mean of first ½ } @Approx FloatSet someSet = ...; someSet.mean();

slide-27
SLIDE 27

Java language extension using type annotations Proposed approximate hardware Potential energy savings in existing Java programs

slide-28
SLIDE 28

Storage

AND NOR NAND

Logic Algorithms

λ

EnerJ

Hypothetical hardware

slide-29
SLIDE 29

CPU

Hypothetical hardware

Memory Registers Functional Units Data Cache Lower SRAM supply voltage Lower DRAM refresh rate Reduced VDD Smaller FP mantissa

slide-30
SLIDE 30

Java language extension using type annotations Proposed approximate hardware Potential energy savings in existing Java programs

slide-31
SLIDE 31

0% 25% 50% 75% 100% FFT SOR MonteCarlo SMM LU ZXing jME ImageJ Raytracer

33% 34% 19% 4% 23% 14% 20% 25% 33%

Annotated declarations

SciMark2 algorithms

  • ther kernels

full application Annotations are sparse & straightforward to insert

slide-32
SLIDE 32

0% 25% 50% 75% 100% FFT SOR MonteCarlo SMM LU ZXing jME ImageJ Raytracer

Base Mild Medium Aggressive

Total energy used

Saved 10%—50% of total execution energy (in simulation)

slide-33
SLIDE 33

0% 25% 50% 75% 100% FFT SOR MonteCarlo SMM LU ZXing jME ImageJ Raytracer

Base Mild Medium Aggressive

Quality-of-service tradeoff: output error

“Mild” configuration is a good fit for all Some applications can tolerate more approximation

slide-34
SLIDE 34

Also in the paper: Formal semantics Noninterference claim Object layout Hardware model Quality-of-service metrics

slide-35
SLIDE 35

EnerJ:

Save energy using programmer controls

  • ver execution correctness.