Toward General-Purpose Code Accelera4on with Analog - - PowerPoint PPT Presentation

toward general purpose code accelera4on with analog
SMART_READER_LITE
LIVE PREVIEW

Toward General-Purpose Code Accelera4on with Analog - - PowerPoint PPT Presentation

Toward General-Purpose Code Accelera4on with Analog Computa4on Amir Yazdanbakhsh o Renee St. Amant + Bradley Thwaites o


slide-1
SLIDE 1

Toward ¡General-­‑Purpose ¡ Code ¡Accelera4on ¡with ¡ Analog ¡Computa4on ¡

Amir ¡Yazdanbakhsho ¡ ¡ ¡ ¡ ¡Renee ¡St. ¡Amant+ ¡ Bradley ¡Thwaiteso ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡Jongse ¡Parko ¡ Hadi ¡Esmaeilzadeho ¡ ¡ ¡ ¡ ¡ ¡ ¡Arjang ¡Hassibi+ ¡ Luis ¡Ceze* ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡Doug ¡Burgerζ ¡

O ¡Georgia ¡Ins4tute ¡of ¡Technology ¡ + ¡The ¡University ¡of ¡Texas ¡at ¡Aus4n ¡ ζ ¡MicrosoR ¡Research ¡ * ¡University ¡of ¡Washington ¡

slide-2
SLIDE 2

Approximate ¡Compu4ng ¡(Hardware) ¡

Truffle ¡[ASPLOS ¡2012] ¡ Probabilis4c ¡CMOS ¡[Rice, ¡Georgia ¡Tech] ¡ Stochas4c ¡processors ¡[Illinois] ¡ Flikker ¡[ASPLOS ¡2011] ¡ ¡

Execute ¡approximable ¡region(s) ¡of ¡the ¡code ¡on ¡ the ¡‘Analog’ ¡circuit. ¡ ¡

slide-3
SLIDE 3

Neural ¡algorithmic ¡transforma4on ¡

3 ¡

Core ¡ Analog ¡Neural ¡ Processing ¡Unit ¡

Analog ¡ ¡ Neural ¡ Model ¡ A-­‑NPU ¡

Algorithmic ¡ Transforma4on ¡

slide-4
SLIDE 4

Programming ¡Model ¡

4 ¡

void ¡edgeDetection( ¡ ¡Image ¡&src, ¡Image ¡&dst) ¡{ ¡ ¡ ¡ ¡ ¡grayscale(src); ¡ ¡ ¡for ¡(int ¡y ¡= ¡…) ¡ ¡ ¡for ¡(int ¡x ¡= ¡…) ¡{ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡dst[x][y] ¡= ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡grad(window(src, ¡x, ¡y)); ¡ ¡ ¡ ¡ ¡ ¡} ¡ ¡} ¡ float ¡grad ¡[[candidate]] ¡(float[3][3] ¡p) ¡ { ¡ ¡ ¡… ¡ } ¡ edgeDetection ¡

slide-5
SLIDE 5

x0 y = sigmoid( X (xiwi)) w0 wi wn xi xn X (xiwi)

… …

I(xi) I(xn) I(x0) R(wi) R(wn)

ADC

X (I(xi)R(wi)) y ≈ sigmoid( X (I(xi)R(wi)))

DAC DAC DAC

x0 xi xn

… …

V to I V to I V to I

R(w0)

Neuron ¡and ¡its ¡Conceptual ¡Analog ¡ Circuit ¡

slide-6
SLIDE 6

Current' Steering' DAC

x0 sx0 w0 sw0

Resistor' Ladder Current' Steering' DAC Resistor' Ladder Diff' Pair

V (|w0x0|) I+(w0x0) V + ⇣X wixi ⌘ swn sxn wn xn R(|w0|) R(|wn|) I(|xn|) V (|wnxn|) I+(wnxn) sy y

Flash ADC y ≈ sigmoid ⇣ V ⇣X wixi ⌘⌘

I(|x0|)

Diff' Pair

I−(w0x0) I−(wnxn) V − ⇣X wixi ⌘

Diff' Amp

+

  • +

;

A ¡Single ¡Analog ¡Neuron ¡

slide-7
SLIDE 7

Column'Selector 8"Wide Analog- Neuron Weight'Buffer 8"Wide Analog- Neuron Weight'Buffer 8"Wide Analog- Neuron Weight'Buffer 8"Wide Analog- Neuron Weight'Buffer Row'Selector Output'FIFO Config'FIFO Input'FIFO

Mixed-­‑signal ¡neural ¡accelerator ¡(A-­‑NPU) ¡

slide-8
SLIDE 8

Applica'on*Speedup

2 4 6 8 10 blackscholes = inversek2j jmeint jpeg kmeans sobel geomean

Core*+*DENPU Core*+*AENPU Core*+*Ideal*NPU

14.1 24.5 48.0 1.1 1.3 1.6 7.9 10.9 14.9 2.3 6.2 14.0 1.5 1.8 1.9 0.5 0.8 1.2 2.4 3.1 3.6

1.8 8.5

2.5 3.7 5.4

8.5

~1.5x ¡ ¡average ¡speedup ¡over ¡D-­‑NPU ¡ Up ¡to ¡24.5x ¡speedup ¡over ¡all-­‑CPU ¡execu4on ¡ ¡

Speedup ¡with ¡A-­‑NPU ¡

slide-9
SLIDE 9

Applica'on*Energy*Reduc'on

2 4 6 8 10 blackscholes = inversek2j jmeint jpeg kmeans sobel geomean

Core*+*DENPU Core*+*AENPU Core*+*Ideal*NPU

42.5 51.2 52.5 1.6 1.7 1.7 25.8 30.0 31.4 7.3 17.8 18.8 2.2 2.3 2.3 1.1 1.3 1.3 2.7 2.8 2.8 24.5 48.0 0.8 2.4

2.4

5.1 6.3 6.5

2.5 8.5 3.3

Energy ¡saving ¡with ¡A-­‑NPU ¡

6.3x ¡average ¡energy ¡reduc4on ¡ Very ¡close ¡to ¡the ¡ideal ¡NPU ¡ ¡

slide-10
SLIDE 10

Quality*degrada'on

0% 20% 40% 60% 80% 100% blackscholes = inversek2j jmeint jpeg kmeans sobel geomean

Floa'ng*Point*DENPU AENPU*+*Ideal*Sigmoid AENPU

Applica4on ¡quality ¡degrada4on ¡

Quality ¡loss ¡in ¡all ¡but ¡one ¡applica4on ¡is ¡less ¡than ¡10% ¡ Customized ¡quality ¡metric ¡for ¡each ¡applica4on ¡

slide-11
SLIDE 11