FPGA Acceleration for Computational Glass-Free Displays · FPGA Acceleration for Computational...

25
FPGA Acceleration for Computational Glass-Free Displays Zhuolun He and Guojie Luo Peking University FPGA, Feb. 2017

Transcript of FPGA Acceleration for Computational Glass-Free Displays · FPGA Acceleration for Computational...

Page 1: FPGA Acceleration for Computational Glass-Free Displays · FPGA Acceleration for Computational Glass-Free Displays Zhuolun He and Guojie Luo Peking University FPGA, Feb. 2017 . Motivation:

FPGA Acceleration for Computational Glass-Free

Displays

Zhuolun He and Guojie Luo

Peking University

FPGA, Feb. 2017

Page 2: FPGA Acceleration for Computational Glass-Free Displays · FPGA Acceleration for Computational Glass-Free Displays Zhuolun He and Guojie Luo Peking University FPGA, Feb. 2017 . Motivation:

Motivation: hyperopia/myopia Issues

2

Page 3: FPGA Acceleration for Computational Glass-Free Displays · FPGA Acceleration for Computational Glass-Free Displays Zhuolun He and Guojie Luo Peking University FPGA, Feb. 2017 . Motivation:

Background Technology: Glass-Free Display

• Light-field display

– [Huang and Wetzstein, SIGGRAPH 2014]

• Correcting for visual aberrations

– Display: predistorted content

– Retina: desired image

3

Target light field

display retina

Desired perception

Page 4: FPGA Acceleration for Computational Glass-Free Displays · FPGA Acceleration for Computational Glass-Free Displays Zhuolun He and Guojie Luo Peking University FPGA, Feb. 2017 . Motivation:

Related Technologies: Light Field Camera

4

Page 5: FPGA Acceleration for Computational Glass-Free Displays · FPGA Acceleration for Computational Glass-Free Displays Zhuolun He and Guojie Luo Peking University FPGA, Feb. 2017 . Motivation:

Related: Near-eye Light-field Display

5

Source: NVIDIA, SIGGRAPH Asia 2013

Page 6: FPGA Acceleration for Computational Glass-Free Displays · FPGA Acceleration for Computational Glass-Free Displays Zhuolun He and Guojie Luo Peking University FPGA, Feb. 2017 . Motivation:

Pinhole Array vs. Microlens

6

One 75um pinhole in every 390um

manufactured using lithography

Page 7: FPGA Acceleration for Computational Glass-Free Displays · FPGA Acceleration for Computational Glass-Free Displays Zhuolun He and Guojie Luo Peking University FPGA, Feb. 2017 . Motivation:

In this Paper…

• Analyze the computational kernels

• Accelerate using FPGAs

• Propose several optimizations

7

Page 8: FPGA Acceleration for Computational Glass-Free Displays · FPGA Acceleration for Computational Glass-Free Displays Zhuolun He and Guojie Luo Peking University FPGA, Feb. 2017 . Motivation:

Computational Glass-Free Display

8

Target light field

display retina

Desired perception

= *

T T T

x P u

Page 9: FPGA Acceleration for Computational Glass-Free Displays · FPGA Acceleration for Computational Glass-Free Displays Zhuolun He and Guojie Luo Peking University FPGA, Feb. 2017 . Motivation:

Casting as a Model Fitting Problem

9

minimize 𝑓 𝑥 = ∥ 𝑢 − 𝑃𝑥 ∥ 2subeject to 0 ≤ 𝑥 ≤ 1

= *

T T T

x P u

Page 10: FPGA Acceleration for Computational Glass-Free Displays · FPGA Acceleration for Computational Glass-Free Displays Zhuolun He and Guojie Luo Peking University FPGA, Feb. 2017 . Motivation:

Background of the L-BFGS Algorithm

• L-BFGS: a widely-used convex optimization algorithm

10

Calculate gradient 𝛻𝑓(𝑥𝑘) Calculate direction 𝑝𝑘

Update 𝑥𝑘+1 = 𝑥𝑘 + 𝛼𝑘𝑝𝑘

Search for step length 𝛼𝑘

Converged? done

N

Y

Page 11: FPGA Acceleration for Computational Glass-Free Displays · FPGA Acceleration for Computational Glass-Free Displays Zhuolun He and Guojie Luo Peking University FPGA, Feb. 2017 . Motivation:

Background of the L-BFGS Algorithm

• L-BFGS algorithm

– Input: (history size = m)

▫ 𝑠𝑗 = 𝑥𝑗+1 − 𝑥𝑗

▫ 𝑦𝑗 = 𝛻𝑓(𝑥𝑗+1) − 𝛻𝑓(𝑥𝑗) – Output: direction 𝑝𝑘

• Computational kernels

– dot prod

– vector updates

11

𝑥𝑘−𝑚+1 ⋯ 𝑥𝑘𝛻𝑓 𝑥𝑘−𝑚+1 𝛻𝑓 𝑥𝑘

𝑝𝑘 = −𝛻𝑓(𝑥𝑘) for 𝑖 = 𝑘 − 1 to 𝑘 −𝑚 do

𝛼𝑖 = (𝑠𝑖 ∙ 𝑝𝑘) (𝑠𝑖 ∙ 𝑦𝑖)

𝑝𝑘 = 𝑝𝑘 − 𝛼𝑖𝑦𝑖 end for 𝑝𝑘 = 𝑝𝑘 ∙ (𝑠𝑘−1 ∙ 𝑦𝑘−1) (𝑦𝑘−1 ∙ 𝑦𝑘−1)

for 𝑖 = 𝑘 − 𝑚 to 𝑘 − 1 do

𝛽𝑖 = (𝑦𝑖 ∙ 𝑝𝑘) (𝑠𝑖 ∙ 𝑦𝑖)

𝑝𝑘 = 𝑝𝑘 +(𝛼𝑖 − 𝛽𝑖)𝑠𝑖 end for

return direction 𝑝𝑘

# more work

# some work

Page 12: FPGA Acceleration for Computational Glass-Free Displays · FPGA Acceleration for Computational Glass-Free Displays Zhuolun He and Guojie Luo Peking University FPGA, Feb. 2017 . Motivation:

Vector-free L-BFGS Algorithm

• Original idea

– [NIPS 2014]

• Observation

– 𝑝𝑘 is a linear combination of some basis in {𝑠𝑗} and {𝑦𝑗}

• Techniques

– dot prod ⇒ lookup + scalar op.

– vector update ⇒ coeff. update

12

𝑝𝑘 = −𝛻𝑓(𝑥𝑘) for 𝑖 = 𝑘 − 1 to 𝑘 −𝑚 do

𝛼𝑖 = (𝑠𝑖 ∙ 𝑝𝑘) (𝑠𝑖 ∙ 𝑦𝑖)

𝑝𝑘 = 𝑝𝑘 − 𝛼𝑖𝑦𝑖 end for 𝑝𝑘 = 𝑝𝑘 ∙ (𝑠𝑘−1 ∙ 𝑦𝑘−1) (𝑦𝑘−1 ∙ 𝑦𝑘−1)

for 𝑖 = 𝑘 − 𝑚 to 𝑘 − 1 do

𝛽𝑖 = (𝑦𝑖 ∙ 𝑝𝑘) (𝑠𝑖 ∙ 𝑦𝑖)

𝑝𝑘 = 𝑝𝑘 +(𝛼𝑖 − 𝛽𝑖)𝑠𝑖 end for

return direction 𝑝𝑘

# more work

# some work

Page 13: FPGA Acceleration for Computational Glass-Free Displays · FPGA Acceleration for Computational Glass-Free Displays Zhuolun He and Guojie Luo Peking University FPGA, Feb. 2017 . Motivation:

13

{coeff.} scalar

{coeff.} scalar

{coeff.}

{coeff.}

scalar

{coeff.}

dotprod

table

𝑝𝑘

dotprod()

s-v mult.

v-v add.

dotprod()

s-v mult.

v−v add.

v−v add.

dotprod()

s-v mult.

𝛻𝑓(𝑥𝑘)

𝑝𝑘

Original L-BFGS Vector-free L-BFGS

Page 14: FPGA Acceleration for Computational Glass-Free Displays · FPGA Acceleration for Computational Glass-Free Displays Zhuolun He and Guojie Luo Peking University FPGA, Feb. 2017 . Motivation:

• Similar idea to reduce data transfers

– dot prod ⇒ lookup + scalar op.

– vector update => coeff. update

Updating the Dot Product Table

14

Scenario Focus

[NIPS 2014] Distributed computing

using MapReduce

minimize

#syncs

Ours FPGA acceleration with

small on-chip BRAM

minimize

data transfers

Page 15: FPGA Acceleration for Computational Glass-Free Displays · FPGA Acceleration for Computational Glass-Free Displays Zhuolun He and Guojie Luo Peking University FPGA, Feb. 2017 . Motivation:

– m: history size (e.g., 10)

– d: image size

Distributed vs. FPGA-based

15

Scenario Focus data transfer

[NIPS 2014] Distributed computing

using MapReduce

minimize

#syncs 8md

Ours FPGA acceleration with

small on-chip BRAM

minimize

data transfers (4m+4)d

Page 16: FPGA Acceleration for Computational Glass-Free Displays · FPGA Acceleration for Computational Glass-Free Displays Zhuolun He and Guojie Luo Peking University FPGA, Feb. 2017 . Motivation:

Sparse Matrix-Vector Multiplication

• Size of matrix/vector

– Sparse matrix 𝑃: 16384*490000

– Variable 𝑥: 490000

16

minimize 𝑓 𝑥 = ∥ 𝑢 − 𝑃𝑥 ∥2

Page 17: FPGA Acceleration for Computational Glass-Free Displays · FPGA Acceleration for Computational Glass-Free Displays Zhuolun He and Guojie Luo Peking University FPGA, Feb. 2017 . Motivation:

Sparse Matrix-Vector Multiplication

• Problem: storage of P

• Solution:

– Sparsity => compressed row storage (CRS)

– Range of indices => bitwidth reduction

– #unique values => look-up table (LUT)

▫ ~ 810K non-zero entries

▫ ~600 unique values

17

minimize 𝑓 𝑥 = ∥ 𝑢 − 𝑃𝑥 ∥2

Format Storage (MB)

flat 32112.64

COO 6.63

CRS 5.24

CRS+LUT 2.90

Page 18: FPGA Acceleration for Computational Glass-Free Displays · FPGA Acceleration for Computational Glass-Free Displays Zhuolun He and Guojie Luo Peking University FPGA, Feb. 2017 . Motivation:

Sparse Matrix-Vector Multiplication

• Problem: partitioning vector 𝑥

• “Solution”: – Matrix 𝑃 is irregular but constant

– => access pattern is non-affine but statistically analyzable

– => enumerate factors of |𝑥| as partitioning factors

18

minimize 𝑓 𝑥 = ∥ 𝑢 − 𝑃𝑥 ∥2 Factor 𝑵 Method

Min

cycle/row

Max

cycle/row Total cycle

980 cyclic 1 1 16384

1225 cyclic 1 1 16384

1250 cyclic 1 2 19840

… … … … …

1400 block 4 18 188564

1250 block 5 18 193276

… … … … …

1 N/A 37 54 816272

Page 19: FPGA Acceleration for Computational Glass-Free Displays · FPGA Acceleration for Computational Glass-Free Displays Zhuolun He and Guojie Luo Peking University FPGA, Feb. 2017 . Motivation:

Overall Design of the Accelerator

• [Li et al, FPGA 15]

• Maximize performance

• Subject to resources

19

Page 20: FPGA Acceleration for Computational Glass-Free Displays · FPGA Acceleration for Computational Glass-Free Displays Zhuolun He and Guojie Luo Peking University FPGA, Feb. 2017 . Motivation:

Experimental Evaluation

20

124.5

65.49

47.47

25.26

9.74

0

20

40

60

80

100

120

140

Tim

e (

s)

Baseline

SpMV optimization

L-BFGS enhancement

Overall result after other fine tunings

parameter tuning in L-BFGS

+: 12.78X Speedup

- : Peak memory bandwidth < 800MB/s

Runtime Comparison

Page 21: FPGA Acceleration for Computational Glass-Free Displays · FPGA Acceleration for Computational Glass-Free Displays Zhuolun He and Guojie Luo Peking University FPGA, Feb. 2017 . Motivation:

Conclusions

• Summary

– Bandwidth-friendly L-BFGS algorithm

– Application-specific sparse matrix compression

– Memory partitioning for non-affine access

• Future work

– Possibility of real-time processing

– Construct transformation matrix by eye-ball tracking

– A demonstrative system

21

Page 22: FPGA Acceleration for Computational Glass-Free Displays · FPGA Acceleration for Computational Glass-Free Displays Zhuolun He and Guojie Luo Peking University FPGA, Feb. 2017 . Motivation:

Questions?

22

Page 23: FPGA Acceleration for Computational Glass-Free Displays · FPGA Acceleration for Computational Glass-Free Displays Zhuolun He and Guojie Luo Peking University FPGA, Feb. 2017 . Motivation:

Runtime Profiling of a 2-min L-BFGS

per procedure per operation

23

Page 24: FPGA Acceleration for Computational Glass-Free Displays · FPGA Acceleration for Computational Glass-Free Displays Zhuolun He and Guojie Luo Peking University FPGA, Feb. 2017 . Motivation:

24

Page 25: FPGA Acceleration for Computational Glass-Free Displays · FPGA Acceleration for Computational Glass-Free Displays Zhuolun He and Guojie Luo Peking University FPGA, Feb. 2017 . Motivation:

25