Survey of Domain- Specific Languages for FPGA Computing Nachiket - - PowerPoint PPT Presentation

survey of domain specific languages for fpga computing
SMART_READER_LITE
LIVE PREVIEW

Survey of Domain- Specific Languages for FPGA Computing Nachiket - - PowerPoint PPT Presentation

Survey of Domain- Specific Languages for FPGA Computing Nachiket Kapre nachiket@ieee.org Some goodness metric Expressiveness (Freedom) 2 Some goodness metric Trumps attack on judge Expressiveness (Freedom) 3 Singapores contempt


slide-1
SLIDE 1

Survey of Domain- Specific Languages for FPGA Computing

Nachiket Kapre nachiket@ieee.org

slide-2
SLIDE 2

Expressiveness (Freedom) Some goodness metric

2

slide-3
SLIDE 3

Expressiveness (Freedom) Some goodness metric Trump’s attack on judge

3

slide-4
SLIDE 4

Expressiveness (Freedom) Some goodness metric Singapore’s contempt of court bill Trump’s attack on judge

4

slide-5
SLIDE 5

Expressiveness (Freedom) Some goodness metric Singapore’s contempt of court bill Trump’s attack on judge

Singapore: Contempt of court bill is a threat to freedom of expression

Donald Trump's hate-filled rhetoric & bigoted scapegoating flies in the face of equality & MUST be rejected. https://twitter.com/amnesty/status/674053786520915969

https://www.amnesty.org/en/latest/news/2016/08/singapore-contempt-of-court-law/

5

slide-6
SLIDE 6

Expressiveness (Freedom) Some goodness metric Classic HDLs

6

slide-7
SLIDE 7

Expressiveness (Freedom) Some goodness metric Classic HDLs DSLs

7

slide-8
SLIDE 8

8

slide-9
SLIDE 9

Outline

  • Review of FPGA Design Flow


— Where we stand?
 — Need for DSLs

  • Classification of DSLs
  • Code Vignettes
  • Experimental Results

9

slide-10
SLIDE 10

Outline

  • Review of FPGA Design Flow


— Where we stand?
 — Need for DSLs

  • Classification of DSLs
  • Code Vignettes
  • Experimental Results

10

slide-11
SLIDE 11

FPGA flow

  • FPGA flow longer, more

complex

  • Problem 1: Write low-level

Verilog code

  • Problem 2: Wait hours to

compile
 (adds insult to injury)

  • Problem 3: Long verification

feedback cycles.

11

slide-12
SLIDE 12

Example code sketches

12

slide-13
SLIDE 13

Example code sketches

13

slide-14
SLIDE 14

What’s different?

  • What makes the C

code smaller?

  • Clocking/Reset?
  • Explicit pipelining
  • Type information


— registers, wires, number of bits

14

slide-15
SLIDE 15

Simple forms of parallelism

15

slide-16
SLIDE 16

Simple forms of parallelism

16

slide-17
SLIDE 17

Limits of OpenCL/HLS

  • One alternative to HDLs — OpenCL/HLS flow
  • Restricted subset of C (no pointers, no complex data

sharing) —> sacrifice freedom for speed

  • Drawbacks:


— Overheads due to implicit assumptions
 — more area, slower design, not fully optimised
 — Only really addresses time-to-compilation
 — still need to do synth + P&R

17

slide-18
SLIDE 18

Outline

  • Review of FPGA Design Flow


— Where we stand?
 — Need for DSLs

  • Classification of DSLs
  • Code Vignettes
  • Experimental Results

18

slide-19
SLIDE 19

Domain-Specific Languages

  • “Beauty lies in the eye of the beholder”
  • Conventional “application-domain” view


— finance, HPC, radio, multimedia, networking, databases, security.

  • Suggest two alternate views in this paper…

19

slide-20
SLIDE 20

Axes of classification

  • (1) Conventional “application-domain” view


— focus on end-user of FPGA technology

  • (2) “compute-model” view


— analogous to Berkeley’s Ptolemy classification

  • (3) “design” view


— behind-the-scenes tinkerers, library developers, system builders, academics

20

slide-21
SLIDE 21

Axes of classification

  • (1) Conventional “application-domain” view


— focus on end-user of FPGA technology

  • (2) “compute-model” view


— analogous to Berkeley’s Ptolemy classification

  • (3) “design” view


— behind-the-scenes tinkerers, library developers, system builders, academics

21

slide-22
SLIDE 22

22

slide-23
SLIDE 23

23

slide-24
SLIDE 24

24

P4

slide-25
SLIDE 25

25

P4

slide-26
SLIDE 26

26

P4 Lua/Torch

slide-27
SLIDE 27

27

slide-28
SLIDE 28

28

slide-29
SLIDE 29

29

slide-30
SLIDE 30

30

slide-31
SLIDE 31

Outline

  • Review of FPGA Design Flow


— Where we stand?
 — Need for DSLs

  • Classification of DSLs
  • Code Vignettes
  • Experimental Results

31

slide-32
SLIDE 32

Matlab HDL Coder

32

slide-33
SLIDE 33

Maxeler

33

slide-34
SLIDE 34

SCORE

34

slide-35
SLIDE 35

MSR Accelerator C#

35

slide-36
SLIDE 36

JHDL

36

slide-37
SLIDE 37

CHISEL

37

slide-38
SLIDE 38

Outline

  • Review of FPGA Design Flow


— Where we stand?
 — Need for DSLs

  • Classification of DSLs
  • Code Vignettes
  • Experimental Results

38

slide-39
SLIDE 39

Experimental Evaluation

  • NTU MSc Embedded Systems cohort


— Class of 2014-15
 — ~25-30 students

  • 3-4 students per DSL
  • One 4hr lab session devoted to working on the

ax2+bx+c mapping example

39

slide-40
SLIDE 40

40

slide-41
SLIDE 41

Compiler modified

41

slide-42
SLIDE 42

Vendor HLS

42

slide-43
SLIDE 43

Limited to arith expr

43

slide-44
SLIDE 44

Tool config tough

44

slide-45
SLIDE 45

Dated EDIFs

45

slide-46
SLIDE 46

Hardware students disliked

46

slide-47
SLIDE 47

47

slide-48
SLIDE 48

Conclusions

  • Summary


— Vast space of DSLs
 — Various states of rot — unmaintained projects

  • How to navigate?


— First attempt: Does HLS/OpenCL work for you
 — Next try: Well-supported tools such as Matlab HDLCoder, Tabview FPGA, Maxeler Dataflow
 — Finally: Check amongst the DSLs, or write your own

48