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
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
Explore More Topics
Stay informed with curated content and fresh updates.