memory-driven mixed low precision quantization for enabling ...03-14-30...top1 weights (mb)...

26
Memory-driven mixed low precision quantization for enabling deep inference networks on microcontrollers Manuele Rusci*, Alessandro Capotondi, Luca Benini *[email protected] Energy-Efficient Embedded Systems Laboratory Dipartimento di Ingegneria dell’Energia Elettrica e dell’Informazione “Guglielmo Marconi” – DEI Università di Bologna

Upload: others

Post on 10-Sep-2020

7 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Memory-driven mixed low precision quantization for enabling ...03-14-30...Top1 Weights (MB) Full-Precision 70.9 16.8 w8a8 70.1 4.06 w4a4 0.1 2.05 Almost lossless with 8 bit on Image

Memory-driven mixed low precision

quantization for enabling deep inference

networks on microcontrollers

Manuele Rusci*, Alessandro Capotondi, Luca Benini

*[email protected]

Energy-Efficient Embedded Systems Laboratory

Dipartimento di Ingegneria dell’Energia Elettrica e dell’Informazione

“Guglielmo Marconi” – DEI – Università di Bologna

Page 2: Memory-driven mixed low precision quantization for enabling ...03-14-30...Top1 Weights (MB) Full-Precision 70.9 16.8 w8a8 70.1 4.06 w4a4 0.1 2.05 Almost lossless with 8 bit on Image

Microcontrollers for smart sensors

M.Rusci - MLSys2020 Austin 2

Page 3: Memory-driven mixed low precision quantization for enabling ...03-14-30...Top1 Weights (MB) Full-Precision 70.9 16.8 w8a8 70.1 4.06 w4a4 0.1 2.05 Almost lossless with 8 bit on Image

Microcontrollers for smart sensors

❑ Low-power (<10-100mW) & low-cost❑ Smart device are battery- operated

❑ Highly-flexible (SW programmable)

❑ But limited resources(!)❑ few MB of memories

❑ single RISC core up to few 100s MHZ (STM32H7: 400MHz) with DSP SIMD instructions and optional FPU

❑ Currently, tiny visual DL tasks on MCUs (visual wake words, CIFAR10)

M.Rusci - MLSys2020 Austin

Source: STM32H7 datasheet

Challenge: Run ‘complex’ and ‘big’ (Imagenet-size) DL inference on MCU ?

3

Page 4: Memory-driven mixed low precision quantization for enabling ...03-14-30...Top1 Weights (MB) Full-Precision 70.9 16.8 w8a8 70.1 4.06 w4a4 0.1 2.05 Almost lossless with 8 bit on Image

Deep Learning for microcontrollers

“Efficient” topologies: Accuracy vs MAC vs Memory

M.Rusci - MLSys2020 Austin

Source: https://towardsdatascience.com/neural-

network-architectures-156e5bad51ba

But

quantization

is also

essential…

+

a0 a1 a2 a3

w0 w1 w2 w3 INT16: 2 instr + 16 bytes

INT8: 1 instr + 8 bytesRe

du

cin

g b

it

pre

cis

ion

Me

mo

ry

(if ISA MAC SIMD available)

Ac

cu

rac

y

Issue2: 8-16 bit are not sufficient to bring ‘complex’ models on MCUs (memory!!)

Issue1: Integer-only model needed for deployment on low-power MCUs

FP32 : 4 instr + 32 bytes

Co

mp

ute

4

Page 5: Memory-driven mixed low precision quantization for enabling ...03-14-30...Top1 Weights (MB) Full-Precision 70.9 16.8 w8a8 70.1 4.06 w4a4 0.1 2.05 Almost lossless with 8 bit on Image

Memory-Driven Mixed-Precision Quantization

apply minimum tensor-wise quantization ≤8bit to fit the

memory constraints with very-low accuracy drop

M.Rusci - MLSys2020 Austin

Best Top1: 70.1%

Best Mixed: 68%

Best Top4 Fit 60.5%

Best Top1 Fit:48%

➢ Challenges:

– How to define the quantization policy

– Combine quantization flow this with integer only transformation

5

still margin

Using less than

8 bits…

x

y

z

Page 6: Memory-driven mixed low precision quantization for enabling ...03-14-30...Top1 Weights (MB) Full-Precision 70.9 16.8 w8a8 70.1 4.06 w4a4 0.1 2.05 Almost lossless with 8 bit on Image

End-to-end Flow & Contributions

M.Rusci - MLSys2020 Austin

Model

Selection

& Training

Device-

aware

Fine-

Tuning

Graph

Optim

Microcontroller

deployment

Full-

precision

model

f(x)

Deployment

Integer-only

model

g’(x) Code

Generator

C

code

Fake-

quantized

model

g(x)

Memory Constraints

DNN Development Flow for microcontrollers

Device-aware Fine-TuningWe define a rule-based methodology to

determine the mixed-precision quantization

policy driven by a memory objective function.

Graph OptimizationWe introduce the Integer Channel-Normalization (ICN) activation

layer to generate an integer-only deployment graph when applying

uniform sub-byte quantization.

Deployment on MCUA latency-accuracy tradeoff on iso-memory

mixed-precision networks belonging to the

Imagenet MobilenetV1 family when running on a

STM32H7 MCU.

Goal: Define a design flow to bring Imagenet-size models into an MCU

device while paying a low accuracy drop.

6

Page 7: Memory-driven mixed low precision quantization for enabling ...03-14-30...Top1 Weights (MB) Full-Precision 70.9 16.8 w8a8 70.1 4.06 w4a4 0.1 2.05 Almost lossless with 8 bit on Image

INTEGER-ONLY

W/ SUB-BYTE

QUANTIZATION

Graph Optimization

M.Rusci - MLSys2020 Austin 7

Model

Selection

& Training

Device-

aware

Fine-

Tuning

Graph

Optim

Microcontroller

deployment

Full-

precision

model

f(x)

Deployment

Integer-only

model

g’(x) Code

Generator

C

code

Fake-

quantized

model

g(x)

Memory Constraints

DNN Development Flow for microcontrollers

Page 8: Memory-driven mixed low precision quantization for enabling ...03-14-30...Top1 Weights (MB) Full-Precision 70.9 16.8 w8a8 70.1 4.06 w4a4 0.1 2.05 Almost lossless with 8 bit on Image

State of the Art❑ Inference with Integer-only arithmetic (Jacob, 2018)

❑ Affine transformation between real value and (uniform) quantized parameters

❑ Quantization-aware retraining

❑ Folding of batch norm into conv weights + rounding of per-layer scaling

parameters

M.Rusci - MLSys2020 Austin

𝑡 = 𝑆𝑡 × (𝑇𝑞 − 𝑍𝑡)

real value

tensor or sub-

tensor

quantized tensor (INT-Q)

8

(Jacob, 2018) Jacob, Benoit, et al. "Quantization and training of neural networks for efficient integer-arithmetic-only inference." CVPR 2018

Quantization

Method

Top1 Weights

(MB)

Full-Precision 70.9 16.8

w8a8 70.1 4.06

w4a4 0.1 2.05

☺ Almost lossless with 8 bit on Image classification and detection problems. Used by TF Lite.

4 bit MobilnetV1: Training collapse when folding batch norm into convolution weights

Does not support Per-Channel (PC) weight quantization

Integer-Only MobilenetV1_224_1.0

Page 9: Memory-driven mixed low precision quantization for enabling ...03-14-30...Top1 Weights (MB) Full-Precision 70.9 16.8 w8a8 70.1 4.06 w4a4 0.1 2.05 Almost lossless with 8 bit on Image

Integer-Channel Normalization (ICN)

Xq

Fake-Quantized Sub-Graph

Conv2D

BatchNorm

Activation

QuantAct

Φ

𝑌𝑞 = 𝑞𝑢𝑎𝑛𝑡𝑎𝑐𝑡𝜙 − 𝜇

𝜎⋅ 𝛾 + 𝛽

Yq

𝜇, 𝜎, 𝛾, 𝛽 are channel-wise

batchnorm parameters

Replacing

𝜙 = ∑𝑤 ⋅ 𝑥

𝑡 = 𝑆𝑡 × (𝑇𝑞 − 𝑍𝑡)

𝑌𝑞 = 𝑍𝑦 + 𝑞𝑢𝑎𝑛𝑡𝑎𝑐𝑡𝑆𝑖𝑆𝑤𝑆𝑜

𝛾

𝜎( Φ +

1

𝑆𝑖𝑆𝑤𝐵 − 𝜇 +

𝛽 𝜎

𝛾)

Φ = ∑(𝑊𝑞 − 𝑍𝑤) ⋅ (𝑋𝑞 − 𝑍𝑥)

Φ+ 𝐵𝑞 )(𝑀02𝑁0 𝑀0, 𝑁0, 𝐵𝑞are channel-

wise integer params

𝑆𝑤 is scalar if PL, else array

𝑆𝑖 , 𝑆𝑜 are scalar

Integer Channel-Normalization (ICN)

activation function

➢ holds either for PL or PC quantization

of weights

9

Quantization

Method

Top1 Weights

(MB)

Full-Precision 70.9 16.8

PL+ICN w4a4 61.75 2.10

PC+ICN w4a4 66.41 2.12

Integer-Only MobilenetV1_224_1.0

M.Rusci - MLSys2020 Austin

Page 10: Memory-driven mixed low precision quantization for enabling ...03-14-30...Top1 Weights (MB) Full-Precision 70.9 16.8 w8a8 70.1 4.06 w4a4 0.1 2.05 Almost lossless with 8 bit on Image

MIXED-PRECISION

QUANTIZATION POLICY

Device-aware Fine-Tuning

M.Rusci - MLSys2020 Austin 10

Model

Selection

& Training

Device-

aware

Fine-

Tuning

Graph

Optim

Microcontroller

deployment

Full-

precision

model

f(x)

Deployment

Integer-only

model

g’(x) Code

Generator

C

code

Fake-

quantized

model

g(x)

Memory Constraints

DNN Development Flow for microcontrollers

Page 11: Memory-driven mixed low precision quantization for enabling ...03-14-30...Top1 Weights (MB) Full-Precision 70.9 16.8 w8a8 70.1 4.06 w4a4 0.1 2.05 Almost lossless with 8 bit on Image

Deployment of an integer-only graph

M.Rusci - MLSys2020 Austin

weight 0

conv 3

conv 0

conv 4

add 0

conv 1weight 1

weight 3

weight 4

conv 2weight 2

11

Problem

Can this graph fit the

memory constraints of our

MCU device?

Output Data

Input Data

MROM

MRAM

Wei

ght

Par

amet

ers

Page 12: Memory-driven mixed low precision quantization for enabling ...03-14-30...Top1 Weights (MB) Full-Precision 70.9 16.8 w8a8 70.1 4.06 w4a4 0.1 2.05 Almost lossless with 8 bit on Image

Deployment of an integer-only graph

M.Rusci - MLSys2020 Austin

weight 0

conv 3

conv 0

conv 4

add 0

conv 1weight 1

weight 3

weight 4

conv 2weight 2

12

Problem

Can this graph fit the

memory constraints of our

MCU device?

Read-only memory

MROM for static

parameters

Read-write

memory

MRAM for

dynamic

valuesOutput Data

Input Data

Weight Parameters

Page 13: Memory-driven mixed low precision quantization for enabling ...03-14-30...Top1 Weights (MB) Full-Precision 70.9 16.8 w8a8 70.1 4.06 w4a4 0.1 2.05 Almost lossless with 8 bit on Image

Deployment of an integer-only graph

M.Rusci - MLSys2020 Austin

weight 0

conv 3

conv 0

conv 4

add 0

conv 1weight 1

weight 3

weight 4

[M1]

weights

must fit

MROM

[M2] I/O of a

node must fit

MRAM

conv 2weight 2

[M1]

𝑖=0

𝐿−1

𝑚𝑒𝑚 𝑊𝑖 , 𝑄𝑤𝑖 +𝑚𝑒𝑚 𝑀0, 𝑁0, 𝐵𝑞 < 𝑀𝑅𝑂𝑀

[M2]

m𝑒𝑚 𝑋𝑖 , 𝑄𝑥𝑖 +𝑚𝑒𝑚 𝑌𝑖 , 𝑄𝑦

𝑖 < 𝑀𝑅𝐴𝑀, ∀𝑖

Problem Formulation

Find the quantization policy 𝑄𝑥𝑖 , 𝑄𝑦

𝑖 , 𝑄𝑤𝑖

to satisfy [M1] and [M2]

𝑄𝑥𝑖 , 𝑄𝑦

𝑖 , 𝑄𝑤𝑖 ∈ 2,4,8 bits

13

Page 14: Memory-driven mixed low precision quantization for enabling ...03-14-30...Top1 Weights (MB) Full-Precision 70.9 16.8 w8a8 70.1 4.06 w4a4 0.1 2.05 Almost lossless with 8 bit on Image

Rule-Based Mixed-Precision

M.Rusci - MLSys2020 Austin

Set 𝑄𝑤𝑖 = 8

Compute mem occupation

ri =𝑚𝑒𝑚(𝑤𝑖 , 𝑄𝑤

𝑖 )

𝑡𝑜𝑡𝑀𝐸𝑀𝑅 = max 𝑟𝑖

Cut 𝑄𝑤𝑖 of the lower layer

with a mem occupation

𝑟𝑖 > 𝑅 − 𝛿

[M1]

satisfied

?

no

yes

Goal

Maximize

memory

utilization

Weights

Quantization Policy

conv 2

conv 0w0

w2

conv 1w1

𝑄𝑤0 = 8

𝑄𝑤1 = 8

𝑄𝑤2 = 8

22%

15%

conv 3w3

𝑄𝑤3 = 8

50%

13%

𝛿 = 5%

[M1] : size(w0) + size(w1) +

size (w2) + size(w3) < 𝑀𝑅𝑂𝑀

14

Page 15: Memory-driven mixed low precision quantization for enabling ...03-14-30...Top1 Weights (MB) Full-Precision 70.9 16.8 w8a8 70.1 4.06 w4a4 0.1 2.05 Almost lossless with 8 bit on Image

Rule-Based Mixed-Precision

M.Rusci - MLSys2020 Austin

Set 𝑄𝑤𝑖 = 8

Compute mem occupation

ri =𝑚𝑒𝑚(𝑤𝑖 , 𝑄𝑤

𝑖 )

𝑡𝑜𝑡𝑀𝐸𝑀𝑅 = max 𝑟𝑖

Cut 𝑄𝑤𝑖 of the lower layer

with a mem occupation

𝑟𝑖 > 𝑅 − 𝛿

[M1]

satisfied

?

no

yes

Any cut reduces

the bit precision by

one step: 8→4,

4→2

Goal

Maximize

memory

utilization

Weights

Quantization Policy

conv 2

conv 0w0

w2

conv 1w1

𝑄𝑤0 = 8

𝑄𝑤1 = 8

𝑄𝑤2 = 8

22%

15%

conv 3w3

𝑄𝑤3 = 4

50%

13%

Cut layer 3!

𝛿 = 5%

[M1] : size(w0) + size(w1) +

size (w2) + size(w3) < 𝑀𝑅𝑂𝑀

15

30%

20%

33%

17%

Page 16: Memory-driven mixed low precision quantization for enabling ...03-14-30...Top1 Weights (MB) Full-Precision 70.9 16.8 w8a8 70.1 4.06 w4a4 0.1 2.05 Almost lossless with 8 bit on Image

Rule-Based Mixed-Precision

M.Rusci - MLSys2020 Austin

Set 𝑄𝑤𝑖 = 8

Compute mem occupation

ri =𝑚𝑒𝑚(𝑤𝑖 , 𝑄𝑤

𝑖 )

𝑡𝑜𝑡𝑀𝐸𝑀𝑅 = max 𝑟𝑖

Cut 𝑄𝑤𝑖 of the lower layer

with a mem occupation

𝑟𝑖 > 𝑅 − 𝛿

[M1]

satisfied

?

no

yes

Any cut reduces

the bit precision by

one step: 8→4,

4→2

Goal

Maximize

memory

utilization

Weights

Quantization Policy

conv 2

conv 0w0

w2

conv 1w1

𝑄𝑤0 = 8

𝑄𝑤1 = 8

𝑄𝑤2 = 4

30%

20%

conv 3w3

𝑄𝑤3 = 4

33%

17%

𝛿 = 5%

Cut layer 2!

[M1] : size(w0) + size(w1) +

size (w2) + size(w3) < 𝑀𝑅𝑂𝑀

16

Page 17: Memory-driven mixed low precision quantization for enabling ...03-14-30...Top1 Weights (MB) Full-Precision 70.9 16.8 w8a8 70.1 4.06 w4a4 0.1 2.05 Almost lossless with 8 bit on Image

Rule-Based Mixed-Precision

M.Rusci - MLSys2020 Austin

Set 𝑄𝑥𝑖 = 𝑄𝑦

𝑖−1 = 8

[M2]

satisfied

?

no

yes

For any layer iWhile 𝑚𝑒𝑚 𝑦𝑖 , 𝑄𝑦

𝑖 >

𝑚𝑒𝑚 𝑥𝑖 , 𝑄𝑥𝑖 and !M2:

Cut Qyi

For any layer iWhile 𝑚𝑒𝑚 𝑦𝑖 , 𝑄𝑦

𝑖 <

𝑚𝑒𝑚 𝑥𝑖 , 𝑄𝑥𝑖 and !M2:

Cut Qxi

forw

ard

ba

ckw

ard

Any cut reduces

the bit precision by

one step: 8→4,

4→2

Goal

Maximize

memory

utilization

Activation

Quantization Policy

conv 2

conv 0

conv 1

conv 3

size y0

size y1

size y2

size y3

size y0 +size y1 < 𝑀𝑅𝐴𝑀

size y1 +size y3 < 𝑀𝑅𝐴𝑀

size y2 +size y3 < 𝑀𝑅𝐴𝑀

[M2]

forw

ard

Cut this?

17

Page 18: Memory-driven mixed low precision quantization for enabling ...03-14-30...Top1 Weights (MB) Full-Precision 70.9 16.8 w8a8 70.1 4.06 w4a4 0.1 2.05 Almost lossless with 8 bit on Image

Rule-Based Mixed-Precision

M.Rusci - MLSys2020 Austin

Set 𝑄𝑥𝑖 = 𝑄𝑦

𝑖−1 = 8

[M2]

satisfied

?

no

yes

For any layer iWhile 𝑚𝑒𝑚 𝑦𝑖 , 𝑄𝑦

𝑖 >

𝑚𝑒𝑚 𝑥𝑖 , 𝑄𝑥𝑖 and !M2:

Cut Qyi

For any layer iWhile 𝑚𝑒𝑚 𝑦𝑖 , 𝑄𝑦

𝑖 <

𝑚𝑒𝑚 𝑥𝑖 , 𝑄𝑥𝑖 and !M2:

Cut Qxi

forw

ard

ba

ckw

ard

Any cut reduces

the bit precision by

one step: 8→4,

4→2

Goal

Maximize

memory

utilization

Activation

Quantization Policy

conv 2

conv 0

conv 1

conv 3

size y0

size y1

size y2

size y3

size y0 +size y1 < 𝑀𝑅𝐴𝑀

size y1 +size y3 < 𝑀𝑅𝐴𝑀

size y2 +size y3 < 𝑀𝑅𝐴𝑀

[M2]

forw

ard

Cut this?

18

Page 19: Memory-driven mixed low precision quantization for enabling ...03-14-30...Top1 Weights (MB) Full-Precision 70.9 16.8 w8a8 70.1 4.06 w4a4 0.1 2.05 Almost lossless with 8 bit on Image

Rule-Based Mixed-Precision

M.Rusci - MLSys2020 Austin

Set 𝑄𝑥𝑖 = 𝑄𝑦

𝑖−1 = 8

[M2]

satisfied

?

no

yes

For any layer iWhile 𝑚𝑒𝑚 𝑦𝑖 , 𝑄𝑦

𝑖 >

𝑚𝑒𝑚 𝑥𝑖 , 𝑄𝑥𝑖 and !M2:

Cut Qyi

For any layer iWhile 𝑚𝑒𝑚 𝑦𝑖 , 𝑄𝑦

𝑖 <

𝑚𝑒𝑚 𝑥𝑖 , 𝑄𝑥𝑖 and !M2:

Cut Qxi

forw

ard

ba

ckw

ard

Any cut reduces

the bit precision by

one step: 8→4,

4→2

Goal

Maximize

memory

utilization

Activation

Quantization Policy

conv 2

conv 0

conv 1

conv 3

size y0

size y1

size y2

size y3

size y0 +size y1 < 𝑀𝑅𝐴𝑀

size y1 +size y3 < 𝑀𝑅𝐴𝑀

size y2 +size y3 < 𝑀𝑅𝐴𝑀

[M2]

backw

ard

Cut this?

19

Page 20: Memory-driven mixed low precision quantization for enabling ...03-14-30...Top1 Weights (MB) Full-Precision 70.9 16.8 w8a8 70.1 4.06 w4a4 0.1 2.05 Almost lossless with 8 bit on Image

Experimental Results on MobilenetV1

Iso-memory MobilenetV1 models with 2MB FLASH and 512kB RAM.

M.Rusci - MLSys2020 Austin

Open source: https://github.com/mrusci/training-mixed-precision-quantized-networks

Model Mparams Full-Prec Mix-PC Mix-PL

224_1.0 4.24 70.9 64.3 59.6

192_1.0 4.24 70.0 65.9 61.9

224_0.75 2.59 68.4 68.0 67.0

192_0.75 2.59 67.2 67.2 64.8

224_0.5 1.34 63.3 63.5 63.1

192_0.5 1.34 61.7 62.0 59.5

Integer-only

Quantization-aware Fine-Tuning recipe:

❑ Init w/ pre-trained params

❑ 8H on 4 NVIDIA Tesla P100

❑ ADAM, lr=1e-4 (5e-5 @5eph, 1e-5 at 8 eph)

❑ Frozen batch norm stats after 1 eph

❑ Asymmetric quant on weights, either PC

(min/max) or PL (PACT)

❑ Asymmetric activation (PACT)

20

Page 21: Memory-driven mixed low precision quantization for enabling ...03-14-30...Top1 Weights (MB) Full-Precision 70.9 16.8 w8a8 70.1 4.06 w4a4 0.1 2.05 Almost lossless with 8 bit on Image

Experimental Results on MobilenetV1

Iso-memory MobilenetV1 models with 2MB FLASH and 512kB RAM.

M.Rusci - MLSys2020 Austin

Open source: https://github.com/mrusci/training-mixed-precision-quantized-networks

Model Mparams Full-Prec Mix-PC Mix-PL

224_1.0 4.24 70.9 64.3 59.6

192_1.0 4.24 70.0 65.9 61.9

224_0.75 2.59 68.4 68.0 67.0

192_0.75 2.59 67.2 67.2 64.8

224_0.5 1.34 63.3 63.5 63.1

192_0.5 1.34 61.7 62.0 59.5

Integer-only

Quantization-aware Fine-Tuning recipe:

❑ Init w/ pre-trained params

❑ 8H on 4 NVIDIA Tesla P100

❑ ADAM, lr=1e-4 (5e-5 @5eph, 1e-5 at 8 eph)

❑ Frozen batch norm stats after 1 eph

❑ Asymmetric quant on weights, either PC

(min/max) or PL (PACT)

❑ Asymmetric activation (PACT)

Higher drop due to more

aggressive cuts

21

Page 22: Memory-driven mixed low precision quantization for enabling ...03-14-30...Top1 Weights (MB) Full-Precision 70.9 16.8 w8a8 70.1 4.06 w4a4 0.1 2.05 Almost lossless with 8 bit on Image

Experimental Results on MobilenetV1

Iso-memory MobilenetV1 models with 2MB FLASH and 512kB RAM.

M.Rusci - MLSys2020 Austin

Open source: https://github.com/mrusci/training-mixed-precision-quantized-networks

Model Mparams Full-Prec Mix-PC Mix-PL

224_1.0 4.24 70.9 64.3 59.6

192_1.0 4.24 70.0 65.9 61.9

224_0.75 2.59 68.4 68.0 67.0

192_0.75 2.59 67.2 67.2 64.8

224_0.5 1.34 63.3 63.5 63.1

192_0.5 1.34 61.7 62.0 59.5

Integer-only

Quantization-aware Fine-Tuning recipe:

❑ Init w/ pre-trained params

❑ 8H on 4 NVIDIA Tesla P100

❑ ADAM, lr=1e-4 (5e-5 @5eph, 1e-5 at 8 eph)

❑ Frozen batch norm stats after 1 eph

❑ Asymmetric quant on weights, either PC

(min/max) or PL (PACT)

❑ Asymmetric activation (PACT)

Lossless, ~8 bit fits the memory

constraints

Higher drop due to more

aggressive cuts

22

Page 23: Memory-driven mixed low precision quantization for enabling ...03-14-30...Top1 Weights (MB) Full-Precision 70.9 16.8 w8a8 70.1 4.06 w4a4 0.1 2.05 Almost lossless with 8 bit on Image

Experimental Results on MobilenetV1

Iso-memory MobilenetV1 models with 2MB FLASH and 512kB RAM.

M.Rusci - MLSys2020 Austin

Open source: https://github.com/mrusci/training-mixed-precision-quantized-networks

Model Mparams Full-Prec Mix-PC Mix-PL

224_1.0 4.24 70.9 64.3 59.6

192_1.0 4.24 70.0 65.9 61.9

224_0.75 2.59 68.4 68.0 67.0

192_0.75 2.59 67.2 67.2 64.8

224_0.5 1.34 63.3 63.5 63.1

192_0.5 1.34 61.7 62.0 59.5

Integer-only

Quantization-aware Fine-Tuning recipe:

❑ Init w/ pre-trained params

❑ 8H on 4 NVIDIA Tesla P100

❑ ADAM, lr=1e-4 (5e-5 @5eph, 1e-5 at 8 eph)

❑ Frozen batch norm stats after 1 eph

❑ Asymmetric quant on weights, either PC

(min/max) or PL (PACT)

❑ Asymmetric activation (PACT)

Lossless, ~8 bit fits the memory

constraints

Higher drop due to more

aggressive cuts

Nearly lossless, few but

‘significant’ cuts ☺

Overall, an integer-only network running

on MCU with -2.9% accuracy drop wrt to

the most precise model

23

Page 24: Memory-driven mixed low precision quantization for enabling ...03-14-30...Top1 Weights (MB) Full-Precision 70.9 16.8 w8a8 70.1 4.06 w4a4 0.1 2.05 Almost lossless with 8 bit on Image

LATENCY-ACCURACY

TRADE-OFF ON A STM32H7 MCU

Deployments on MCUs

M.Rusci - MLSys2020 Austin 24

Model

Selection

& Training

Device-

aware

Fine-

Tuning

Graph

Optim

Microcontroller

deployment

Full-

precision

model

f(x)

Deployment

Integer-only

model

g’(x) Code

Generator

C

code

Fake-

quantized

model

g(x)

Memory Constraints

DNN Development Flow for microcontrollers

Page 25: Memory-driven mixed low precision quantization for enabling ...03-14-30...Top1 Weights (MB) Full-Precision 70.9 16.8 w8a8 70.1 4.06 w4a4 0.1 2.05 Almost lossless with 8 bit on Image

40

45

50

55

60

65

70

0 500 1000 1500

Top

-1 A

ccu

racy

Latency (CPU MCycles)

128-MixQ-PL 160-MixQ-PL192-MixQ-PL 224-MixQ-PL128-MixQ-PC-ICN 160-MixQ-PC-ICN192-MixQ-PC-ICN 224-MixQ-PC-ICN

Latency-Accuracy Trade Off

Experiments runs on a STM32H743 (400MHz clk)

M.Rusci - MLSys2020 Austin

Mobilenet_192_0.5

INT8 Top1: 59.5%

Mobilenet_224_0.75

MixQ-PC-ICN Top1: 68%

Mobilenet_224_0.75

MixQ-PL Top1: 67%

➢ The implementation is based on the sw lib

for mixed-precision inference (based on

Cmsis-NN):

❑ Cmix-NN:

https://github.com/EEESlab/CMix-NN

❑ UINT2-4 software emulated

❑ MAC 2x16 bits

➢ PC on the pareto

➢ But PC slower than PL by 20-30%

Φ = ∑ 𝑋𝑞 − 𝑍𝑥 ⋅ 𝑊𝑞 − 𝑍𝑤= ∑𝑋𝑖𝑚2𝑐𝑜𝑙 ⋅ 𝑊𝑞 − 𝑍𝑤

= ∑𝑋𝑖𝑚2𝑐𝑜𝑙 ⋅ 𝑊𝑞 − ∑𝑋𝑖𝑚2𝑐𝑜𝑙 ⋅ 𝑍𝑤 PL

PC

Overall +8% with respect to best 8-bit

integer-only MobilenetV1 fitting the device

(Jacob et al. 2018)

25

Page 26: Memory-driven mixed low precision quantization for enabling ...03-14-30...Top1 Weights (MB) Full-Precision 70.9 16.8 w8a8 70.1 4.06 w4a4 0.1 2.05 Almost lossless with 8 bit on Image

Wrap-up

• We proposed an end-to-end methodology to train and

deploy ‘complex’ DL models on tiny MCUs.

– sub-byte uniform quantization

– mixed-precision settings

– a memory-driven rule-based method for determine the

quantization policy

– integer-only transformation with ICN activation layers

– mixed precision software library for MCU

• Deployment of a 68% Imagenet MobilenetV1 into a MCU

with 2MB FLASH and 512 kB RAM.

M.Rusci - MLSys2020 Austin 26