reflections on 10 years of flopoco
play

Reflections on 10 years of FloPoCo Florent de Dinechin The FloPoCo - PowerPoint PPT Presentation

Reflections on 10 years of FloPoCo Florent de Dinechin The FloPoCo project A generator of application-specific hardware arithmetic operators open-ended list (division by 3, exp, log, trigs, ... function approximators, FIIR, IIR, ...) each


  1. Reflections on 10 years of FloPoCo Florent de Dinechin

  2. The FloPoCo project A generator of application-specific hardware arithmetic operators open-ended list (division by 3, exp, log, trigs, ... function approximators, FIIR, IIR, ...) each operator heavily parameterized √ x 2+ y 2+ z 2 x arithmetic operation log x x sin e x + y √ e x i π x n � i =0 input formats .vhdl FloPoCo output formats ... ... FPGA frequency Functional specification Performance specification F. de Dinechin Reflections on 10 years of FloPoCo 2

  3. The FloPoCo project A generator of application-specific hardware arithmetic operators open-ended list (division by 3, exp, log, trigs, ... function approximators, FIIR, IIR, ...) each operator heavily parameterized √ x 2+ y 2+ z 2 x arithmetic operation log x x sin e x + y √ e x i π x n � i =0 input formats .vhdl FloPoCo output formats ... ... FPGA frequency Functional specification Performance specification A philosophy of computing just right Interface: never output bits that are not numerically meaningful (output format = ⇒ accuracy specification) Inside: never compute bits that are not useful to the final result F. de Dinechin Reflections on 10 years of FloPoCo 2

  4. A candidate for the Worst Logo Ever contest S X E X F X Right: a floating-point exponential Shift to fixed−point (with bits of M. Joldes and B. Pasca) wE + wF + g + 1 Fixed-point X × 1 / log(2) E wE + wF + g + 1 × log(2) x √ x 2+ y 2+ z 2 log x x √ sin e x + y wE + wF + g + 1 x i π x e wE + 1 � n Y A Z i =0 MSB wF + g + 1 − 2 k k e A e Z − Z − 1 wF + g + 1 − k 1 + wF + g MSB wF + g + 2 − k wF + g + 2 − k wF + g − k each wire, each component E tailored to its context 1 + wF + g normalize / round R F. de Dinechin Reflections on 10 years of FloPoCo 3

  5. Genesis Genesis Focus on two features The future F. de Dinechin Reflections on 10 years of FloPoCo 4

  6. All my life, I have been afflicted with very good students Very good students tend to write kilolines of (very good?) code FPLibrary (J´ er´ emie Detrey’s PhD, 2004-2007): open-source VHDL for floating-point +, − , × , / , √ , then sin , cos , exp , log , ... then LNS (logarithm number system) arithmetic plus two generic HW function approximation techniques F. de Dinechin Reflections on 10 years of FloPoCo 5

  7. All my life, I have been afflicted with very good students Very good students tend to write kilolines of (very good?) code FPLibrary (J´ er´ emie Detrey’s PhD, 2004-2007): open-source VHDL for floating-point +, − , × , / , √ , then sin , cos , exp , log , ... then LNS (logarithm number system) arithmetic plus two generic HW function approximation techniques ... plus bits of Java/Python/C++ to generate some of the VHDL from SRT tables for division and square root ... to Remez + error analysis + design-space exploration F. de Dinechin Reflections on 10 years of FloPoCo 5

  8. All my life, I have been afflicted with very good students Very good students tend to write kilolines of (very good?) code FPLibrary (J´ er´ emie Detrey’s PhD, 2004-2007): open-source VHDL for floating-point +, − , × , / , √ , then sin , cos , exp , log , ... then LNS (logarithm number system) arithmetic plus two generic HW function approximation techniques ... plus bits of Java/Python/C++ to generate some of the VHDL from SRT tables for division and square root ... to Remez + error analysis + design-space exploration A solid and well-tested agile development methodology one paper, one bit of quick-and-dirty code F. de Dinechin Reflections on 10 years of FloPoCo 5

  9. All my life, I have been afflicted with very good students Very good students tend to write kilolines of (very good?) code FPLibrary (J´ er´ emie Detrey’s PhD, 2004-2007): open-source VHDL for floating-point +, − , × , / , √ , then sin , cos , exp , log , ... then LNS (logarithm number system) arithmetic plus two generic HW function approximation techniques ... plus bits of Java/Python/C++ to generate some of the VHDL from SRT tables for division and square root ... to Remez + error analysis + design-space exploration A solid and well-tested agile development methodology one paper, one bit of quick-and-dirty code That’s a lot of work doomed to oblivion when the student leaves (this particular traitor defected to finite-field arithmetic) F. de Dinechin Reflections on 10 years of FloPoCo 5

  10. And then a scientific Grand Plan When FPGAs are better at floating-point than microprocessors F. de Dinechin Reflections on 10 years of FloPoCo 6

  11. And then a scientific Grand Plan When FPGAs are better at floating-point than microprocessors Submitted to ISFPGA In my humble opinion, a visionary paper “We can do this, we should do that” Tepid reviews (“prove it”, “lack of results”)... = ⇒ poster Then, overwhelming response to the poster... F. de Dinechin Reflections on 10 years of FloPoCo 6

  12. Evolution of the Grand Plan Initial brand When FPGAs are better at floating-point than microprocessors F. de Dinechin Reflections on 10 years of FloPoCo 7

  13. Evolution of the Grand Plan Initial brand When FPGAs are better at floating-point than microprocessors Not your neighbour’s FPU F. de Dinechin Reflections on 10 years of FloPoCo 7

  14. Evolution of the Grand Plan Initial brand When FPGAs are better at floating-point than microprocessors Not your neighbour’s FPU First rebranding FPGA-specific arithmetic (floating-point, but not only) F. de Dinechin Reflections on 10 years of FloPoCo 7

  15. Evolution of the Grand Plan Initial brand When FPGAs are better at floating-point than microprocessors Not your neighbour’s FPU First rebranding FPGA-specific arithmetic (floating-point, but not only) All the operators you will never see in a processor (and how to build them) (Arith 2011 panel) F. de Dinechin Reflections on 10 years of FloPoCo 7

  16. Evolution of the Grand Plan Initial brand When FPGAs are better at floating-point than microprocessors Not your neighbour’s FPU First rebranding FPGA-specific arithmetic (floating-point, but not only) All the operators you will never see in a processor (and how to build them) (Arith 2011 panel) Current rebranding Application-specific arithmetic (FPGA, but not only) F. de Dinechin Reflections on 10 years of FloPoCo 7

  17. Evolution of the Grand Plan Initial brand When FPGAs are better at floating-point than microprocessors Not your neighbour’s FPU First rebranding FPGA-specific arithmetic (floating-point, but not only) All the operators you will never see in a processor (and how to build them) (Arith 2011 panel) Current rebranding Application-specific arithmetic (FPGA, but not only) Circuits computing just right Save routing! Save power! Don’t move around useless bits! F. de Dinechin Reflections on 10 years of FloPoCo 7

  18. First non-arithmetic slide Other technical motivations (piling up with the code) VHDL doesn’t scale well with number of parameters (especially with Jeremie insisting in writing recursive hardware) F. de Dinechin Reflections on 10 years of FloPoCo 8

  19. First non-arithmetic slide Other technical motivations (piling up with the code) VHDL doesn’t scale well with number of parameters (especially with Jeremie insisting in writing recursive hardware) Research code ⇐ ⇒ design-space exploration ⇒ many many parameters ⇐ I/O sizes ... but also design choices (e.g. SRT radix etc) ... and open-ended parameters (e.g. the constant in a constant multiplier) ... and we want to parameterize with the target FPGA! F. de Dinechin Reflections on 10 years of FloPoCo 8

  20. First non-arithmetic slide Other technical motivations (piling up with the code) VHDL doesn’t scale well with number of parameters (especially with Jeremie insisting in writing recursive hardware) Research code ⇐ ⇒ design-space exploration ⇒ many many parameters ⇐ I/O sizes ... but also design choices (e.g. SRT radix etc) ... and open-ended parameters (e.g. the constant in a constant multiplier) ... and we want to parameterize with the target FPGA! A recurrent silly promise, each time we submit a paper: “the design will be pipelined in the final version” a perfect waste of good student’s time exponential complexity WRT number of parameters F. de Dinechin Reflections on 10 years of FloPoCo 8

  21. First non-arithmetic slide Other technical motivations (piling up with the code) VHDL doesn’t scale well with number of parameters (especially with Jeremie insisting in writing recursive hardware) Research code ⇐ ⇒ design-space exploration ⇒ many many parameters ⇐ I/O sizes ... but also design choices (e.g. SRT radix etc) ... and open-ended parameters (e.g. the constant in a constant multiplier) ... and we want to parameterize with the target FPGA! A recurrent silly promise, each time we submit a paper: “the design will be pipelined in the final version” a perfect waste of good student’s time exponential complexity WRT number of parameters Heroic experiments with Xilinx JBits F. de Dinechin Reflections on 10 years of FloPoCo 8

Recommend


More recommend