Anytime Automaton i n p u t 66
Anytime Automaton i n p u t 67
Anytime Automaton i n p u t 68
Anytime Automaton i n p u t precise output 69
Anytime Automaton – The Model 1. Ensure precise output is always produced eventually. 70
Anytime Automaton – The Model 1. Ensure precise output is always produced eventually. 71
Anytime Automaton – The Model 1. Ensure precise output is always produced eventually. kernel () { ... } 72
Anytime Automaton – The Model 1. Ensure precise output is always produced eventually. pure function kernel () { ... } 73
Anytime Automaton – The Model 1. Ensure precise output is always produced eventually. pure function kernel () { single-writer, ... updates isolated } 74
Anytime Automaton – The Model 2. Create the effect of improving accuracy over time. 75
Anytime Automaton – The Model 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. 76
Anytime Automaton – The Model 2. Create the effect of improving accuracy over time. 77
Anytime Automaton – The Model 2. Create the effect of improving accuracy over time. anytime algorithm? 78
Anytime Automaton – The Model 2. Create the effect of improving accuracy over time. kernel () { ... } 79
Anytime Automaton – The Model 2. Create the effect of improving accuracy over time. approx computing kernel () { techniques ... } 80
Anytime Automaton – The Model 2. Create the effect of improving accuracy over time. approx computing techniques 81
Anytime Automaton – The Model 3. Enable interruptibility via pipelining. 82
Anytime Automaton – The Model 3. Enable interruptibility via pipelining. computation A computation B computation C time 83
Anytime Automaton – The Model 3. Enable interruptibility via pipelining. computation B computation C time 84
Anytime Automaton – The Model 3. Enable interruptibility via pipelining. computation C time 85
Anytime Automaton – The Model 3. Enable interruptibility via pipelining. computation C time final output not ready! 86
Anytime Automaton – The Model 3. Enable interruptibility via pipelining. computation A computation B computation C time 87
Anytime Automaton – The Model 3. Enable interruptibility via pipelining. computation A computation B computation C time 88
Anytime Automaton – The Model 3. Enable interruptibility via pipelining. computation C computation B computation A time 89
Anytime Automaton – The Model 3. Enable interruptibility via pipelining. computation C computation B computation A time approx output ready! 90
Anytime Automaton – The Approximations 1. General case: apply approximations iteratively . 91
Anytime Automaton – The Approximations 1. General case: apply approximations iteratively . quality knob 92
Anytime Automaton – The Approximations 1. General case: apply approximations iteratively . smaller perforation stride loop perforation more mantissa bits floating-point precision higher supply voltage SRAM bit upsets lower approximation degree load value approximation higher neural network complexity neural acceleration 93
Anytime Automaton – The Approximations 1. General case: apply approximations iteratively . Loop perforation 94
Anytime Automaton – The Approximations 1. General case: apply approximations iteratively . Loop perforation for i = 0, 20, 40, 60, 80, 100, ...., N-1 perforation stride 20: 95
Anytime Automaton – The Approximations 1. General case: apply approximations iteratively . Loop perforation for i = 0, 20, 40, 60, 80, 100, ...., N-1 perforation stride 20: for i = 0, 15, 30, 45, 60, 75, ....., N-1 perforation stride 15: for i = 0, 10, 20, 30, 40, 50, ....., N-1 perforation stride 10: for i = 0, 5, 10, 15, 20, 25, ......, N-1 perforation stride 5: for i = 0, 1, 2, 3, 4, 5, 6, 7, ...., N-1 perforation stride 1: 96
Anytime Automaton – The Approximations 1. General case: apply approximations iteratively . Loop perforation for i = 0, 20, 40, 60, 80, 100, ...., N-1 perforation stride 20: for i = 0, 15, 30, 45, 60, 75, ....., N-1 perforation stride 15: Achieves desired effect of improving quality over time, but can yield redundant work. for i = 0, 10, 20, 30, 40, 50, ....., N-1 perforation stride 10: for i = 0, 5, 10, 15, 20, 25, ......, N-1 perforation stride 5: for i = 0, 1, 2, 3, 4, 5, 6, 7, ...., N-1 perforation stride 1: 97
Anytime Automaton – The Approximations 1. General case: apply approximations iteratively . Loop perforation for i = 0, 20, 40, 60, 80, 100, ...., N-1 perforation stride 20: for i = 0, 15, 30, 45, 60, 75, ....., N-1 perforation stride 15: for i = 0, 10, 20, 30, 40, 50, ....., N-1 perforation stride 10: for i = 0, 5, 10, 15, 20, 25, ......, N-1 perforation stride 5: for i = 0, 1, 2, 3, 4, 5, 6, 7, ...., N-1 perforation stride 1: 98
Anytime Automaton – The Approximations 2. Better case: apply diffusive approximations. Each approximation builds on the previous one. 99
Anytime Automaton – The Approximations 2. Better case: apply diffusive approximations. Each approximation builds on the previous one. data dependences (each approximate result contributes usefully to precise result) 100
Recommend
More recommend