survey of domain specific languages for fpga computing
play

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


  1. Survey of Domain- Specific Languages for FPGA Computing Nachiket Kapre nachiket@ieee.org

  2. Some goodness metric Expressiveness (Freedom) 2

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

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

  5. Singapore’s contempt of court bill Singapore: Contempt of court bill is a threat to freedom of expression Some goodness metric https://www.amnesty.org/en/latest/news/2016/08/singapore-contempt-of-court-law/ https://twitter.com/amnesty/status/674053786520915969 Donald Trump's hate-filled rhetoric & bigoted scapegoating flies in the face of equality & MUST be rejected. Trump’s attack on judge Expressiveness (Freedom) 5

  6. Some goodness metric Classic HDLs Expressiveness (Freedom) 6

  7. DSLs Some goodness metric Classic HDLs Expressiveness (Freedom) 7

  8. 8

  9. Outline • Review of FPGA Design Flow 
 — Where we stand? 
 — Need for DSLs • Classification of DSLs • Code Vignettes • Experimental Results 9

  10. Outline • Review of FPGA Design Flow 
 — Where we stand? 
 — Need for DSLs • Classification of DSLs • Code Vignettes • Experimental Results 10

  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

  12. Example code sketches 12

  13. Example code sketches 13

  14. What’s different? • What makes the C code smaller? • Clocking/Reset? • Explicit pipelining • Type information 
 — registers, wires, number of bits 14

  15. Simple forms of parallelism 15

  16. Simple forms of parallelism 16

  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

  18. Outline • Review of FPGA Design Flow 
 — Where we stand? 
 — Need for DSLs • Classification of DSLs • Code Vignettes • Experimental Results 18

  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

  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

  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

  22. 22

  23. 23

  24. P4 24

  25. P4 25

  26. Lua/Torch P4 26

  27. 27

  28. 28

  29. 29

  30. 30

  31. Outline • Review of FPGA Design Flow 
 — Where we stand? 
 — Need for DSLs • Classification of DSLs • Code Vignettes • Experimental Results 31

  32. Matlab HDL Coder 32

  33. Maxeler 33

  34. SCORE 34

  35. MSR Accelerator C# 35

  36. JHDL 36

  37. CHISEL 37

  38. Outline • Review of FPGA Design Flow 
 — Where we stand? 
 — Need for DSLs • Classification of DSLs • Code Vignettes • Experimental Results 38

  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 ax 2 +bx+c mapping example 39

  40. 40

  41. Compiler modified 41

  42. Vendor HLS 42

  43. Limited to arith expr 43

  44. Tool config tough 44

  45. Dated EDIFs 45

  46. Hardware students disliked 46

  47. 47

  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

Recommend


More recommend