The Anytime Automaton Joshua San Miguel Natalie Enright Jerger - - PowerPoint PPT Presentation

the anytime automaton
SMART_READER_LITE
LIVE PREVIEW

The Anytime Automaton Joshua San Miguel Natalie Enright Jerger - - PowerPoint PPT Presentation

The Anytime Automaton Joshua San Miguel Natalie Enright Jerger Summary We propose the Anytime Automaton : A new computation model for approximate computing. 2 Summary We propose the Anytime Automaton : A new computation model for


slide-1
SLIDE 1

The Anytime Automaton

Joshua San Miguel Natalie Enright Jerger

slide-2
SLIDE 2

Summary

2

We propose the Anytime Automaton:

  • A new computation model for approximate computing.
slide-3
SLIDE 3

Summary

3

We propose the Anytime Automaton:

  • A new computation model for approximate computing.

application execution quality final

  • utput
slide-4
SLIDE 4

Summary

4

We propose the Anytime Automaton:

  • A new computation model for approximate computing.

application execution quality final

  • utput
slide-5
SLIDE 5

Approximate Computing

Many applications are inherently noisy and imprecise.

5

http://www.zentut.com/ http://www.businessweek.com/ http://www.cc.gatech.edu/~cnieto6/ http://www.analyticbridge.com/ http://themusicparlour.blogspot.ca/ http://www.scientific-computing.com/

Data mining Computer vision Audio and video processing Gaming Machine learning Dynamical simulation

slide-6
SLIDE 6

Approximate Computing

Many applications are inherently noisy and imprecise.

6

http://www.zentut.com/ http://www.businessweek.com/ http://www.cc.gatech.edu/~cnieto6/ http://www.analyticbridge.com/ http://themusicparlour.blogspot.ca/ http://www.scientific-computing.com/

Data mining Computer vision Audio and video processing Gaming Machine learning Dynamical simulation

But how can we apply approximate computing techniques and still ensure acceptability in final output?

slide-7
SLIDE 7

Approximate Computing

program () { foos_on_first(); bars_on_second(); hello_worlds_on_third(); }

7

time foos_on_first bars_on_second hello_worlds_on_third

slide-8
SLIDE 8

Approximate Computing

program () { approx_foos_on_first(); bars_on_second(); hello_worlds_on_third(); }

8

time foos_on_first bars_on_second hello_worlds_on_third tune quality (runtime-quality tradeoff)

slide-9
SLIDE 9

Approximate Computing

program () { approx_foos_on_first(); bars_on_second(); hello_worlds_on_third(); }

9

time foos_on_first bars_on_second hello_worlds_on_third tune quality (runtime-quality tradeoff)

slide-10
SLIDE 10

Approximate Computing

program () { approx_foos_on_first(); approx_bars_on_second(); hello_worlds_on_third(); }

10

time bars_on_second hello_worlds_on_third tune quality foos_on_first

slide-11
SLIDE 11

Approximate Computing

program () { approx_foos_on_first(); approx_bars_on_second(); hello_worlds_on_third(); }

11

time bars_on_second hello_worlds_on_third tune quality foos_on_first

slide-12
SLIDE 12

Approximate Computing

program () { approx_foos_on_first(); approx_bars_on_second(); hello_worlds_on_third(); }

12

time bars_on_second hello_worlds_on_third foos_on_first But final output may not be acceptable!

slide-13
SLIDE 13

Approximate Computing

program () { approx_foos_on_first(); approx_bars_on_second(); hello_worlds_on_third(); }

13

time bars_on_second hello_worlds_on_third foos_on_first But final output may not be acceptable!

Difficult to ensure acceptability of final output

  • n-the-fly, since quality control limited to local

approximations and not their composition. (Challenge #1: Holistic Quality Control)

slide-14
SLIDE 14

Approximate Computing

program () { approx_foos_on_first(); approx_bars_on_second(); hello_worlds_on_third(); }

14

time bars_on_second hello_worlds_on_third foos_on_first But final output may not be acceptable!

Difficult to ensure acceptability of final output

  • n-the-fly, since quality control limited to local

approximations and not their composition. (Challenge #1: Holistic Quality Control)

tune local quality tune local quality

slide-15
SLIDE 15

Real-Time Computing

Real-time systems impose strict runtime constraints; loss in output quality more tolerable than not finishing in time.

15

http://www.streamingvideoprovider.co.uk/ http://www.beaudaniels-illustration.com/ http://m.exed.hec.edu/

Streaming multimedia Automotive systems Telecommunications

slide-16
SLIDE 16

Real-Time Computing

program () { approx_foos_on_first(); approx_bars_on_second(); hello_worlds_on_third(); }

16

time foos_on_first bars_on_second hello_worlds_on_third strict target runtime

slide-17
SLIDE 17

Real-Time Computing

program () { approx_foos_on_first(); approx_bars_on_second(); hello_worlds_on_third(); }

17

time foos_on_first bars_on_second hello_worlds_on_third tune quality tune quality strict target runtime

slide-18
SLIDE 18

Real-Time Computing

program () { approx_foos_on_first(); approx_bars_on_second(); hello_worlds_on_third(); }

18

time foos_on_first bars_on_second hello_worlds_on_third tune quality tune quality strict target runtime

slide-19
SLIDE 19

Real-Time Computing

program () { approx_foos_on_first(); approx_bars_on_second(); hello_worlds_on_third(); }

19

time foos_on_first bars_on_second hello_worlds_on_third But actual runtimes variable! strict target runtime

slide-20
SLIDE 20

Real-Time Computing

program () { approx_foos_on_first(); approx_bars_on_second(); hello_worlds_on_third(); }

20

time foos_on_first bars_on_second hello_worlds_on_third

Difficult to ensure strict real-time constraints are met (i.e., interrupt the application), since runtime-quality tradeoffs vary dynamically. (Challenge #2: Interruptibility)

But actual runtimes variable! strict target runtime

slide-21
SLIDE 21

User-Interactive Computing

In user-interactive environments, users dictate quality requirements on-the-fly.

21

http://www.businessweek.com/ http://www.pcadvisor.co.uk/ http://www.expressvpn.com/

Gaming Mobile vision Search/recommendation

slide-22
SLIDE 22

User-Interactive Computing

program () { approx_foos_on_first(); approx_bars_on_second(); hello_worlds_on_third(); }

22

time foos_on_first bars_on_second hello_worlds_on_third

slide-23
SLIDE 23

User-Interactive Computing

program () { approx_foos_on_first(); approx_bars_on_second(); hello_worlds_on_third(); }

23

time bars_on_second hello_worlds_on_third foos_on_first tune quality?

slide-24
SLIDE 24

User-Interactive Computing

program () { approx_foos_on_first(); approx_bars_on_second(); hello_worlds_on_third(); }

24

time bars_on_second hello_worlds_on_third But target quality unknown! foos_on_first tune quality?

slide-25
SLIDE 25

User-Interactive Computing

program () { approx_foos_on_first(); approx_bars_on_second(); hello_worlds_on_third(); }

25

time bars_on_second hello_worlds_on_third But target quality unknown! foos_on_first tune quality?

Difficult to ensure acceptability for a given user at a given context, since acceptable quality cannot be determined a priori. (Challenge #3: User Flexibility)

slide-26
SLIDE 26

Anytime Automaton

26

We propose the Anytime Automaton:

  • A new computation model for approximate computing.
  • Revisits and generalizes concepts from anytime (or iterative)

algorithms, originally studied for real-time decision problems.

  • A recipe for applying approximate computing techniques such

that the final output is available early and improves in quality

  • ver time.
slide-27
SLIDE 27

Anytime Automaton

27

application execution quality

slide-28
SLIDE 28

Anytime Automaton

28

application execution quality final

  • utput

conventionally, single output

slide-29
SLIDE 29

Anytime Automaton

29

application execution quality precise

  • utput
slide-30
SLIDE 30

Anytime Automaton

30

application execution quality precise

  • utput

holistic quality control: final output available early

slide-31
SLIDE 31

Anytime Automaton

31

application execution quality precise

  • utput

strict target runtime

slide-32
SLIDE 32

Anytime Automaton

32

application execution quality precise

  • utput

interruptibility: use current output if needed strict target runtime

slide-33
SLIDE 33

Anytime Automaton

33

application execution quality precise

  • utput
slide-34
SLIDE 34

Anytime Automaton

34

application execution quality precise

  • utput
slide-35
SLIDE 35

Anytime Automaton

35

application execution quality precise

  • utput
slide-36
SLIDE 36

Anytime Automaton

36

application execution quality precise

  • utput

user flexibility: wait longer for better quality

slide-37
SLIDE 37

Outline

Anytime Automaton

  • The Model
  • The Approximations

Evaluation

  • Methodology
  • Experimental Results

Conclusion

37

slide-38
SLIDE 38

Anytime Automaton

38

program:

data dependence computation

slide-39
SLIDE 39

Anytime Automaton

39

inst A;

program:

slide-40
SLIDE 40

Anytime Automaton

40

inst A; inst B; inst C;

program:

slide-41
SLIDE 41

Anytime Automaton

41

func (...);

program:

slide-42
SLIDE 42

Anytime Automaton

42

kernel () { ... }

program:

slide-43
SLIDE 43

Dataflow Model

43

program:

slide-44
SLIDE 44

Dataflow Model

44

i n p u t

slide-45
SLIDE 45

Dataflow Model

45

i n p u t

slide-46
SLIDE 46

Dataflow Model

46

i n p u t

slide-47
SLIDE 47

Dataflow Model

47

i n p u t

slide-48
SLIDE 48

Dataflow Model

48

i n p u t

slide-49
SLIDE 49

Dataflow Model

49

i n p u t

slide-50
SLIDE 50

Dataflow Model

50

i n p u t

slide-51
SLIDE 51

Dataflow Model

51

i n p u t

slide-52
SLIDE 52

Anytime Automaton

52

slide-53
SLIDE 53

Anytime Automaton

53

produce a single result

slide-54
SLIDE 54

Anytime Automaton

54

produce multiple approx versions of result (i.e., anytime) precise version

slide-55
SLIDE 55

Anytime Automaton

55

Data Diffusion Model

slide-56
SLIDE 56

Anytime Automaton

56

i n p u t

slide-57
SLIDE 57

Anytime Automaton

57

i n p u t

slide-58
SLIDE 58

Anytime Automaton

58

i n p u t child works on parent’s approx result

slide-59
SLIDE 59

Anytime Automaton

59

i n p u t child works on parent’s approx result parent works on producing better approx result

slide-60
SLIDE 60

Anytime Automaton

60

i n p u t

slide-61
SLIDE 61

Anytime Automaton

61

i n p u t

slide-62
SLIDE 62

Anytime Automaton

62

i n p u t

slide-63
SLIDE 63

Anytime Automaton

63

i n p u t final output available early

slide-64
SLIDE 64

Anytime Automaton

64

i n p u t

slide-65
SLIDE 65

Anytime Automaton

65

i n p u t

slide-66
SLIDE 66

Anytime Automaton

66

i n p u t

slide-67
SLIDE 67

Anytime Automaton

67

i n p u t

slide-68
SLIDE 68

Anytime Automaton

68

i n p u t

slide-69
SLIDE 69

Anytime Automaton

69

i n p u t precise output

slide-70
SLIDE 70

Anytime Automaton – The Model

70

  • 1. Ensure precise output is always produced eventually.
slide-71
SLIDE 71

Anytime Automaton – The Model

71

  • 1. Ensure precise output is always produced eventually.
slide-72
SLIDE 72

Anytime Automaton – The Model

72

  • 1. Ensure precise output is always produced eventually.

kernel () { ... }

slide-73
SLIDE 73

Anytime Automaton – The Model

73

  • 1. Ensure precise output is always produced eventually.

kernel () { ... } pure function

slide-74
SLIDE 74

Anytime Automaton – The Model

74

  • 1. Ensure precise output is always produced eventually.

kernel () { ... } pure function single-writer, updates isolated

slide-75
SLIDE 75

Anytime Automaton – The Model

75

  • 2. Create the effect of improving accuracy over time.
slide-76
SLIDE 76

Anytime Automaton – The Model

76

  • 2. Create the effect of improving accuracy over time.

Anytime (or iterative) algorithms have been studied before but are traditionally built into the coarse-grained derivation of an application. Approximate computing techniques have proliferated recently and have been shown to have general fine-grained applicability.

slide-77
SLIDE 77

Anytime Automaton – The Model

77

  • 2. Create the effect of improving accuracy over time.
slide-78
SLIDE 78

Anytime Automaton – The Model

78

  • 2. Create the effect of improving accuracy over time.

anytime algorithm?

slide-79
SLIDE 79

Anytime Automaton – The Model

79

  • 2. Create the effect of improving accuracy over time.

kernel () { ... }

slide-80
SLIDE 80

Anytime Automaton – The Model

80

  • 2. Create the effect of improving accuracy over time.

kernel () { ... } approx computing techniques

slide-81
SLIDE 81

Anytime Automaton – The Model

81

  • 2. Create the effect of improving accuracy over time.

approx computing techniques

slide-82
SLIDE 82

Anytime Automaton – The Model

82

  • 3. Enable interruptibility via pipelining.
slide-83
SLIDE 83

Anytime Automaton – The Model

83

  • 3. Enable interruptibility via pipelining.

time computation A computation B computation C

slide-84
SLIDE 84

Anytime Automaton – The Model

84

  • 3. Enable interruptibility via pipelining.

time computation B computation C

slide-85
SLIDE 85

Anytime Automaton – The Model

85

  • 3. Enable interruptibility via pipelining.

time computation C

slide-86
SLIDE 86

Anytime Automaton – The Model

86

  • 3. Enable interruptibility via pipelining.

time computation C final output not ready!

slide-87
SLIDE 87

Anytime Automaton – The Model

87

  • 3. Enable interruptibility via pipelining.

time computation A computation B computation C

slide-88
SLIDE 88

Anytime Automaton – The Model

88

  • 3. Enable interruptibility via pipelining.

time computation A computation B computation C

slide-89
SLIDE 89

Anytime Automaton – The Model

89

  • 3. Enable interruptibility via pipelining.

time computation A computation B computation C

slide-90
SLIDE 90

Anytime Automaton – The Model

90

  • 3. Enable interruptibility via pipelining.

time approx output ready! computation A computation B computation C

slide-91
SLIDE 91

Anytime Automaton – The Approximations

91

  • 1. General case: apply approximations iteratively.
slide-92
SLIDE 92

Anytime Automaton – The Approximations

92

  • 1. General case: apply approximations iteratively.

quality knob

slide-93
SLIDE 93

Anytime Automaton – The Approximations

93

loop perforation smaller perforation stride load value approximation lower approximation degree neural acceleration higher neural network complexity SRAM bit upsets higher supply voltage floating-point precision more mantissa bits

  • 1. General case: apply approximations iteratively.
slide-94
SLIDE 94

Anytime Automaton – The Approximations

94

  • 1. General case: apply approximations iteratively.
  • Loop perforation
slide-95
SLIDE 95

Anytime Automaton – The Approximations

95

perforation stride 20: for i = 0, 20, 40, 60, 80, 100, ...., N-1

  • 1. General case: apply approximations iteratively.
  • Loop perforation
slide-96
SLIDE 96

Anytime Automaton – The Approximations

96

  • 1. General case: apply approximations iteratively.
  • Loop perforation

perforation stride 20: for i = 0, 20, 40, 60, 80, 100, ...., N-1 perforation stride 15: for i = 0, 15, 30, 45, 60, 75, ....., N-1 perforation stride 10: for i = 0, 10, 20, 30, 40, 50, ....., N-1 perforation stride 5: for i = 0, 5, 10, 15, 20, 25, ......, N-1 perforation stride 1: for i = 0, 1, 2, 3, 4, 5, 6, 7, ...., N-1

slide-97
SLIDE 97

Anytime Automaton – The Approximations

97

  • 1. General case: apply approximations iteratively.
  • Loop perforation

perforation stride 20: for i = 0, 20, 40, 60, 80, 100, ...., N-1 perforation stride 15: for i = 0, 15, 30, 45, 60, 75, ....., N-1 perforation stride 10: for i = 0, 10, 20, 30, 40, 50, ....., N-1 perforation stride 5: for i = 0, 5, 10, 15, 20, 25, ......, N-1 perforation stride 1: for i = 0, 1, 2, 3, 4, 5, 6, 7, ...., N-1

Achieves desired effect of improving quality over time, but can yield redundant work.

slide-98
SLIDE 98

Anytime Automaton – The Approximations

98

  • 1. General case: apply approximations iteratively.
  • Loop perforation

perforation stride 20: for i = 0, 20, 40, 60, 80, 100, ...., N-1 perforation stride 15: for i = 0, 15, 30, 45, 60, 75, ....., N-1 perforation stride 10: for i = 0, 10, 20, 30, 40, 50, ....., N-1 perforation stride 5: for i = 0, 5, 10, 15, 20, 25, ......, N-1 perforation stride 1: for i = 0, 1, 2, 3, 4, 5, 6, 7, ...., N-1

slide-99
SLIDE 99

Anytime Automaton – The Approximations

99

  • 2. Better case: apply diffusive approximations.
  • Each approximation builds on the previous one.
slide-100
SLIDE 100

Anytime Automaton – The Approximations

100

  • 2. Better case: apply diffusive approximations.
  • Each approximation builds on the previous one.

data dependences (each approximate result contributes usefully to precise result)

slide-101
SLIDE 101

Anytime Automaton – The Approximations

101

  • 2. Better case: apply diffusive approximations.
  • Each approximation builds on the previous one.

data dependences (each approximate result contributes usefully to precise result) data sampling more samples integer/fixed-point precision more bits

slide-102
SLIDE 102

Anytime Automaton – The Approximations

102

  • 2. Better case: apply diffusive approximations.
  • Input sampling (e.g., generating a distribution)
slide-103
SLIDE 103

Anytime Automaton – The Approximations

103

  • 2. Better case: apply diffusive approximations.
  • Input sampling (e.g., generating a distribution)
slide-104
SLIDE 104

Anytime Automaton – The Approximations

104

  • 2. Better case: apply diffusive approximations.
  • Input sampling (e.g., generating a distribution)

commutative

  • peration
slide-105
SLIDE 105

Anytime Automaton – The Approximations

105

  • 2. Better case: apply diffusive approximations.
  • Input sampling (e.g., generating a distribution)

To improve quality, no need to reiterate from beginning; therefore, diffusive. (e.g., just add more samples to current result)

slide-106
SLIDE 106

Anytime Automaton – The Approximations

106

  • 2. Better case: apply diffusive approximations.
  • Input sampling (e.g., generating a distribution)
slide-107
SLIDE 107

Anytime Automaton – The Approximations

107

  • 2. Better case: apply diffusive approximations.
  • Input sampling (e.g., generating a distribution)
slide-108
SLIDE 108

Anytime Automaton – The Approximations

108

  • 2. Better case: apply diffusive approximations.
  • Input sampling (e.g., generating a distribution)
slide-109
SLIDE 109

Anytime Automaton – The Approximations

109

  • 2. Better case: apply diffusive approximations.
  • Input sampling (e.g., generating a distribution)
slide-110
SLIDE 110

Anytime Automaton – The Approximations

110

  • 2. Better case: apply diffusive approximations.
  • Input sampling (e.g., generating a distribution)

Minimal redundant work since each element processed exactly once.

slide-111
SLIDE 111

Anytime Automaton – The Approximations

111

  • 2. Better case: apply diffusive approximations.
  • Output sampling (e.g., generating an image)
slide-112
SLIDE 112

Anytime Automaton – The Approximations

112

  • 2. Better case: apply diffusive approximations.
  • Output sampling (e.g., generating an image)

sequential permutation

slide-113
SLIDE 113

Anytime Automaton – The Approximations

113

  • 2. Better case: apply diffusive approximations.
  • Output sampling (e.g., generating an image)
slide-114
SLIDE 114

Anytime Automaton – The Approximations

114

  • 2. Better case: apply diffusive approximations.
  • Output sampling (e.g., generating an image)
slide-115
SLIDE 115

Anytime Automaton – The Approximations

115

  • 2. Better case: apply diffusive approximations.
  • Output sampling (e.g., generating an image)
slide-116
SLIDE 116

Anytime Automaton – The Approximations

116

  • 2. Better case: apply diffusive approximations.
  • Output sampling (e.g., generating an image)
slide-117
SLIDE 117

Anytime Automaton – The Approximations

117

  • 2. Better case: apply diffusive approximations.
  • Output sampling (e.g., generating an image)
slide-118
SLIDE 118

Anytime Automaton – The Approximations

118

  • 2. Better case: apply diffusive approximations.
  • Output sampling (e.g., generating an image)

tree permutation

slide-119
SLIDE 119

Anytime Automaton – The Approximations

119

  • 2. Better case: apply diffusive approximations.
  • Output sampling (e.g., generating an image)
slide-120
SLIDE 120

Anytime Automaton – The Approximations

120

  • 2. Better case: apply diffusive approximations.
  • Output sampling (e.g., generating an image)
slide-121
SLIDE 121

Anytime Automaton – The Approximations

121

  • 2. Better case: apply diffusive approximations.
  • Output sampling (e.g., generating an image)
slide-122
SLIDE 122

Anytime Automaton – The Approximations

122

  • 2. Better case: apply diffusive approximations.
  • Integer/fixed-point precision (e.g., dot product)

[ X Y Z ] ● [ 10.1101 01.0010 11.0110 ]

slide-123
SLIDE 123

X * 10.1101 Y * 01.0010 Z * 11.0110

Anytime Automaton – The Approximations

123

  • 2. Better case: apply diffusive approximations.
  • Integer/fixed-point precision (e.g., dot product)

time

[ X Y Z ] ● [ 10.1101 01.0010 11.0110 ]

slide-124
SLIDE 124

X * 10.1101 Y * 01.0010 Z * 11.0110

Anytime Automaton – The Approximations

124

  • 2. Better case: apply diffusive approximations.
  • Integer/fixed-point precision (e.g., dot product)

time final result not ready!

[ X Y Z ] ● [ 10.1101 01.0010 11.0110 ]

slide-125
SLIDE 125

X * 10.1101 Y * 01.0010 Z * 11.0110

Anytime Automaton – The Approximations

125

  • 2. Better case: apply diffusive approximations.
  • Integer/fixed-point precision (e.g., dot product)

time

[ X Y Z ] ● [ 10.1101 01.0010 11.0110 ]

slide-126
SLIDE 126

Y * 01.0010 Z * 11.0110

Anytime Automaton – The Approximations

126

  • 2. Better case: apply diffusive approximations.
  • Integer/fixed-point precision (e.g., dot product)

time

X * 10 X * 11 X * 01

MSb LSb

[ X Y Z ] ● [ 10.1101 01.0010 11.0110 ]

slide-127
SLIDE 127

Anytime Automaton – The Approximations

127

  • 2. Better case: apply diffusive approximations.
  • Integer/fixed-point precision (e.g., dot product)

time

X * 10 Y * 01 Z * 11 X * 11 Y * 00 Z * 01 X * 01 Y * 10 Z * 10

MSb LSb

[ X Y Z ] ● [ 10.1101 01.0010 11.0110 ]

slide-128
SLIDE 128

Anytime Automaton – The Approximations

128

  • 2. Better case: apply diffusive approximations.
  • Integer/fixed-point precision (e.g., dot product)

time

X * 10 Y * 01 Z * 11 X * 11 Y * 00 Z * 01 X * 01 Y * 10 Z * 10

MSb LSb

[ X Y Z ] ● [ 10.1101 01.0010 11.0110 ]

slide-129
SLIDE 129

Anytime Automaton – The Approximations

129

  • 2. Better case: apply diffusive approximations.
  • Integer/fixed-point precision (e.g., dot product)

time

X * 10 Y * 01 Z * 11 X * 11 Y * 00 Z * 01 X * 01 Y * 10 Z * 10

approx result ready! MSb LSb

[ X Y Z ] ● [ 10.1101 01.0010 11.0110 ]

slide-130
SLIDE 130

Anytime Automaton

130

More details in paper:

  • Asynchronous/synchronous pipelining
  • Data locality with sampling
  • Approximate storage techniques
  • Thread scheduling
slide-131
SLIDE 131

Evaluation – Methodology

131

Experiments:

  • IBM Power 780 system
  • 4 POWER7+ cores
  • 32 total hardware threads

Applications:

  • PERFECT and AxBench suites
  • 2D convolution (output sampling, reduced precision†, SRAM bit upsets†)
  • debayer (output sampling)
  • discrete wavelet transform (loop perforation)
  • histogram equalization (input and output sampling)
  • k-means clustering (output sampling)

†see paper

slide-132
SLIDE 132

Evaluation – 2D Convolution

132 10 20 30 40 0.5 1 1.5 2 SNR (dB) runtime (normalized to baseline) inf

better

slide-133
SLIDE 133

Evaluation – 2D Convolution

133 10 20 30 40 0.5 1 1.5 2 SNR (dB) runtime (normalized to baseline) inf

better

slide-134
SLIDE 134

Evaluation – 2D Convolution

134 10 20 30 40 0.5 1 1.5 2 SNR (dB) runtime (normalized to baseline) inf

better

slide-135
SLIDE 135

Evaluation – 2D Convolution

135 10 20 30 40 0.5 1 1.5 2 SNR (dB) runtime (normalized to baseline) inf

better

slide-136
SLIDE 136

Evaluation – 2D Convolution

136 10 20 30 40 0.5 1 1.5 2 SNR (dB) runtime (normalized to baseline) inf

better

slide-137
SLIDE 137

Evaluation – 2D Convolution

137 10 20 30 40 0.5 1 1.5 2 SNR (dB) runtime (normalized to baseline) inf

better

slide-138
SLIDE 138

Evaluation – 2D Convolution

138 10 20 30 40 0.5 1 1.5 2 SNR (dB) runtime (normalized to baseline) inf

better

slide-139
SLIDE 139

Evaluation – Debayer

139 5 10 15 20 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 SNR (dB) runtime (normalized to baseline) inf

better

slide-140
SLIDE 140

Evaluation – Debayer

140 5 10 15 20 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 SNR (dB) runtime (normalized to baseline) inf

better

slide-141
SLIDE 141

Evaluation – Debayer

141 5 10 15 20 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 SNR (dB) runtime (normalized to baseline) inf

better

slide-142
SLIDE 142

Evaluation – Debayer

142 5 10 15 20 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 SNR (dB) runtime (normalized to baseline) inf

better

slide-143
SLIDE 143

Evaluation – Debayer

143 5 10 15 20 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 SNR (dB) runtime (normalized to baseline) inf

better

slide-144
SLIDE 144

Evaluation – Discrete Wavelet Transform

144 5 10 15 20 25 30 0.5 1 1.5 2 2.5 SNR (dB) runtime (normalized to baseline) inf

better

slide-145
SLIDE 145

Evaluation – Discrete Wavelet Transform

145 5 10 15 20 25 30 0.5 1 1.5 2 2.5 SNR (dB) runtime (normalized to baseline) inf

better

slide-146
SLIDE 146

Evaluation – Discrete Wavelet Transform

146 5 10 15 20 25 30 0.5 1 1.5 2 2.5 SNR (dB) runtime (normalized to baseline) inf

better

slide-147
SLIDE 147

Evaluation – Discrete Wavelet Transform

147 5 10 15 20 25 30 0.5 1 1.5 2 2.5 SNR (dB) runtime (normalized to baseline) inf

better

slide-148
SLIDE 148

Evaluation – Discrete Wavelet Transform

148 5 10 15 20 25 30 0.5 1 1.5 2 2.5 SNR (dB) runtime (normalized to baseline) inf

better

slide-149
SLIDE 149

Evaluation – Summary

149

how acceptable the output is how much time is expended

slide-150
SLIDE 150

Conclusion

150

We propose the Anytime Automaton:

  • A new computation model for approximate computing.

application execution quality precise

  • utput
slide-151
SLIDE 151

Conclusion

151

We propose the Anytime Automaton:

  • A new computation model for approximate computing.

application execution quality holistic quality control: final output available early precise

  • utput
slide-152
SLIDE 152

Conclusion

152

We propose the Anytime Automaton:

  • A new computation model for approximate computing.

application execution quality interruptibility: use current output if needed precise

  • utput
slide-153
SLIDE 153

Conclusion

153

We propose the Anytime Automaton:

  • A new computation model for approximate computing.

application execution quality precise

  • utput

user flexibility: wait longer for better quality

slide-154
SLIDE 154

Thank you

The Anytime Automaton

Joshua San Miguel Natalie Enright Jerger Special thanks to IBM collaborators: Viji Srinivasan, Ravi Nair, Dan Prener